You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2014/03/29 00:20:54 UTC
[01/34] minor css tweaks to embedded help and fix for if 25948route
is null
Repository: incubator-usergrid
Updated Branches:
refs/heads/master 082530e89 -> d1ee5ec85
refs/pull/85/merge [deleted] de74a8409
refs/pull/86/head [created] b753f4610
refs/pull/86/merge [created] af5fa63de
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d3017f28/portal/test/coverage/instrument/js/usergrid.min.js
----------------------------------------------------------------------
diff --git a/portal/test/coverage/instrument/js/usergrid.min.js b/portal/test/coverage/instrument/js/usergrid.min.js
index e1f62a2..e4030c5 100644
--- a/portal/test/coverage/instrument/js/usergrid.min.js
+++ b/portal/test/coverage/instrument/js/usergrid.min.js
@@ -1,3 +1,3 @@
-/*! usergrid@2.0.1 2014-03-27 */
+/*! usergrid@2.0.1 2014-03-28 */
angular.module("appservices").run(["$templateCache",function($templateCache){"use strict";$templateCache.put("activities/activities.html",'<section class="row-fluid">\n <div class="span12">\n <div class="page-filters">\n <h1 class="title" class="pull-left"><i class="pictogram title">📱</i> Activities</h1>\n </div>\n </div>\n\n</section>\n<section class="row-fluid">\n <div class="span12 tab-content">\n <table class="table table-striped">\n <tbody>\n <tr class="table-header">\n <td>Date</td>\n <td></td>\n <td>User</td>\n <td>Content</td>\n <td>Verb</td>\n <td>UUID</td>\n </tr>\n <tr class="zebraRows" ng-repeat="activity in activities">\n <td>{{formatDate(activity.created)}}</td>\n <td class="gravatar20"> <img ng-src="{{activity.actor.picture}}"/>\n </td>\n <td>{{activity.actor.displayName}}</td>\n <td>{{activity.content}}</td>\n <td>{{activity.verb}}</td>\n
<td>{{activity.uuid}}</td>\n </tr>\n </tbody>\n </table>\n </div>\n</section>'),$templateCache.put("app-overview/app-overview.html",'<div class="app-overview-content" >\n <section class="row-fluid">\n\n <page-title title=" Summary" icon="📱"></page-title>\n <section class="row-fluid">\n <h2 class="title" id="app-overview-title">{{currentApp}}</h2>\n </section>\n <section class="row-fluid">\n\n <div class="span6">\n <chart id="appOverview"\n chartdata="appOverview.chart"\n type="column"></chart>\n </div>\n\n <div class="span6">\n <table class="table table-striped">\n <tr class="table-header">\n <td>Path</td>\n <td>Title</td>\n </tr>\n <tr class="zebraRows" ng-repeat="(k,v) in collections">\n <td>{{v.title}}</td>\n <td>{{v.count}}</td>\n </tr>\n </table>\n </div>\n\n </section>\n</div>'),$templateCache.put("app-overview/doc-includ
es/android.html",'<h2>1. Integrate the SDK into your project</h2>\n<p>You can integrate Apigee features into your app by including the SDK in your project. You can do one of the following:</p>\n\n<ul class="nav nav-tabs" id="myTab">\n <li class="active"><a data-toggle="tab" href="#existing_project">Existing project</a></li>\n <li><a data-toggle="tab" href="#new_project">New project</a></li>\n</ul>\n\n<div class="tab-content">\n <div class="tab-pane active" id="existing_project">\n <a class="jumplink" name="add_the_sdk_to_an_existing_project"></a>\n <p>If you\'ve already got an Android project, you can integrate the Apigee SDK into your project as you normally would:</p>\n <div id="collapse">\n <a href="#jar_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a> \n </div>\n <div id="jar_collapse" class="collapse">\n <p>Add <code>apigee-android-<version>.jar</code> to your class path by doin
g the following:</p>\n \n <h3>Android 4.0 (or later) projects</h3>\n <p>Copy the jar file into the <code>/libs</code> folder in your project.</p>\n \n <h3>Android 3.0 (or earlier) projects</h3>\n <ol>\n <li>In the Eclipse <strong>Package Explorer</strong>, select your application\'s project folder.</li>\n <li>Click the <strong>File > Properties</strong> menu.</li>\n <li>In the <strong>Java Build Path</strong> section, click the <strong>Libraries</strong> tab, click <strong>Add External JARs</strong>.</li>\n <li>Browse to <code>apigee-android-<version>.jar</code>, then click <strong>Open</strong>.</li>\n <li>Order the <code>apigee-android-<version>.jar</code> at the top of the class path:\n <ol>\n <li>In the Eclipse <strong>Package Explorer</strong>, select your application\'s project folder.</li>\n <li>Click the <strong>File > Properties</strong> menu.</li>\n <li>In the properties dialog, in the&n
bsp;<strong>Java Build Path</strong> section, click the <strong>Order and Export</strong> tab.</li>\n <li>\n <p><strong>IMPORTANT:</strong> Select the checkbox for <code>apigee-android-<version>.jar</code>, then click the <strong>Top</strong> button.</p>\n </li>\n </ol>\n </li>\n </ol>\n <div class="warning">\n <h3>Applications using Ant</h3>\n <p>If you are using Ant to build your application, you must also copy <code>apigee-android-<version>.jar</code> to the <code>/libs</code> folder in your application.</p>\n </div>\n </div>\n </div>\n <div class="tab-pane" id="new_project">\n <a class="jumplink" name="create_a_new_project_based_on_the_SDK"></a>\n <p>If you don\'t have a project yet, you can begin by using the project template included with the SDK. The template includes support for SDK features.</p>\n <ul>\n <li>Locate the project template in the expanded SDK. It should be at the following location:\n
<pre><sdk_root>/new-project-template</pre>\n </li>\n </ul>\n </div>\n</div>\n<h2>2. Update permissions in AndroidManifest.xml</h2>\n<p>Add the following Internet permissions to your application\'s <code>AndroidManifest.xml</code> file if they have not already been added. Note that with the exception of INTERNET, enabling all other permissions are optional.</p>\n<pre>\n<uses-permission android:name="android.permission.INTERNET" />\n<uses-permission android:name="android.permission.READ_PHONE_STATE" />\n<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />\n<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />\n<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />\n</pre>\n<h2>3. Initialize the SDK</h2>\n<p>To initialize the App Services SDK, you must instantiate the <code>ApigeeClient</code> class. There are multiple ways to handle this step, but we recommend that you do the fo
llowing:</p>\n<ol>\n <li>Subclass the <code>Application</code> class, and add an instance variable for the <code>ApigeeClient</code> to it, along with getter and setter methods.\n <pre>\npublic class YourApplication extends Application\n{\n \n private ApigeeClient apigeeClient;\n \n public YourApplication()\n {\n this.apigeeClient = null;\n }\n \n public ApigeeClient getApigeeClient()\n {\n return this.apigeeClient;\n }\n \n public void setApigeeClient(ApigeeClient apigeeClient)\n {\n this.apigeeClient = apigeeClient;\n }\n} \n </pre>\n </li>\n <li>Declare the <code>Application</code> subclass in your <code>AndroidManifest.xml</code>. For example:\n <pre>\n<application>\n android:allowBackup="true"\n android:icon="@drawable/ic_launcher"\n android:label="@string/app_name"\n android:name=".YourApplication"\n …\n</app
lication> \n </pre>\n </li>\n <li>Instantiate the <code>ApigeeClient</code> class in the <code>onCreate</code> method of your first <code>Activity</code> class:\n <pre>\nimport com.apigee.sdk.ApigeeClient;\n\n@Override\nprotected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState); \n \n String ORGNAME = "{{currentOrg}}";\n String APPNAME = "{{currentApp}}";\n \n ApigeeClient apigeeClient = new ApigeeClient(ORGNAME,APPNAME,this.getBaseContext());\n\n // hold onto the ApigeeClient instance in our application object.\n yourApp = (YourApplication) getApplication;\n yourApp.setApigeeClient(apigeeClient); \n}\n </pre>\n <p>This will make the instance of <code>ApigeeClient</code> available to your <code>Application</code> class.</p>\n </li>\n</ol>\n<h2>4. Import additional SDK classes</h2>\n<p>The following classes will enable you to call common SDK methods:</p>\n<pre>\nimport com.apigee.sdk.data.client.DataClient; //App Services data methods\nim
port com.apigee.sdk.apm.android.MonitoringClient; //App Monitoring methods\nimport com.apigee.sdk.data.client.callbacks.ApiResponseCallback; //API response handling\nimport com.apigee.sdk.data.client.response.ApiResponse; //API response object\n</pre>\n \n<h2>5. Verify SDK installation</h2>\n\n<p>Once initialized, App Services will also automatically instantiate the <code>MonitoringClient</code> class and begin logging usage, crash and error metrics for your app.</p>\n<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n<p>To verify that the SDK has been properly initialized, run your app, then go to \'Monitoring\' > \'App Usage\' in the <a href="https://www.apigee.com/usergrid">App Services admin portal</a> to verify that data is being sent.</p>\n<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n\n<h2>Installation complete! Try these next steps</h2>\n<ul>\n <li>\n <h3><strong>Call addit
ional SDK methods in your code</strong></h3>\n <p>The <code>DataClient</code> and <code>MonitoringClient</code> classes are also automatically instantiated for you, and accessible with the following accessors:</p>\n <ul>\n <li>\n <pre>DataClient dataClient = apigeeClient.getDataClient();</pre>\n <p>Use this object to access the data methods of the App Services SDK, including those for push notifications, data store, and geolocation.</p>\n </li>\n <li>\n <pre>MonitoringClient monitoringClient = apigeeClient.getMonitoringClient();</pre>\n <p>Use this object to access the app configuration and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</p>\n </li>\n </ul>\n </li> \n <li> \n <h3><strong>Add App Services features to your app</strong></h3>\n <p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these links
to get started with a few of our most popular features:</p>\n <ul>\n <li><strong><a href="http://apigee.com/docs/node/8410">Push notifications</a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per month for free!</li>\n <li><strong>App Monitoring</strong>: When you initialize the App Services SDK, a suite of valuable, <a href="http://apigee.com/docs/node/13190">customizable</a> application monitoring features are automatically enabled that deliver the data you need to fine tune performance, analyze issues, and improve user experience.\n <ul>\n <li><strong><a href="http://apigee.com/docs/node/13176">App Usage Monitoring</a></strong>: Visit the <a href="https://apigee.com/usergrid">App Services admin portal</a> to view usage data for your app, including data on device models, platforms and OS versions running your app.</li> \n <li><strong><a
href="http://apigee.com/docs/node/12861">API Performance Monitoring</a></strong>: Network performance is key to a solid user experience. In the <a href="https://apigee.com/usergrid">App Services admin portal</a> you can view key metrics, including response time, number of requests and raw API request logs.</li> \n <li><strong><a href="http://apigee.com/docs/node/13177">Error & Crash Monitoring</a></strong>: Get alerted to any errors or crashes, then view them in the <a href="https://apigee.com/usergrid">App Services admin portal</a>, where you can also analyze raw error and crash logs.</li>\n </ul> \n </li>\n <li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Target users or return result sets based on user location to keep your app highly-relevant.</li>\n <li><strong><a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about deali
ng with a database ever again.</li>\n <li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement user registration, as well as OAuth 2.0-compliant login and authentication.</li>\n </ul>\n </li>\n <li> \n <h3><strong>Check out the sample apps</strong></h3>\n <p>The SDK includes samples that illustrate Apigee features. You\'ll find the samples in the following location in your SDK download:</p>\n <pre>\napigee-android-sdk-<version>\n ...\n /samples\n </pre>\n <div id="collapse">\n <a href="#samples_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n </div>\n <div id="samples_collapse" class="collapse">\n <p>The samples include the following:</p>\n <table class="table">\n <thead>\n <tr>\n <th scope="col">Sample</th>\n <th scope="col">Description</th>\n </tr>\n </thead>\n <tbody>\
n <tr>\n <td>books</td>\n <td>An app for storing a list of books that shows Apigee database operations such as reading, creating, and deleting.</td>\n </tr>\n <tr>\n <td>messagee</td>\n <td>An app for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n </tr>\n <tr>\n <td>push</td>\n <td>An app that uses the push feature to send notifications to the devices of users who have subscribed for them.</td>\n </tr>\n </tbody>\n </table>\n </div>\n </li>\n</ul>\n'),$templateCache.put("app-overview/doc-includes/ios.html",'<h2>1. Integrate ApigeeiOSSDK.framework</h2>\n<a class="jumplink" name="add_the_sdk_to_an_existing_project"></a>\n<ul class="nav nav-tabs" id="myTab">\n <li class="active"><a data-toggle="tab" href="#existing_project">Existing project</a></li>\n <li><a data-toggle="tab" href="#new_project">New project</a></li>\n</ul>\n<div class="tab-content">\n <div class="tab-pane activ
e" id="existing_project">\n <p>If you\'ve already got an Xcode iOS project, add it into your project as you normally would.</p>\n <div id="collapse"><a class="btn" data-toggle="collapse" href="#framework_collapse">Details</a></div>\n <div class="collapse" id="framework_collapse">\n <ol>\n <li>\n <p>Locate the SDK framework file so you can add it to your project. For example, you\'ll find the file at the following path:</p>\n <pre>\n<sdk_root>/bin/ApigeeiOSSDK.framework</pre>\n </li>\n <li>In the <strong>Project Navigator</strong>, click on your project file, and then the <strong>Build Phases</strong> tab. Expand <strong>Link Binary With Libraries</strong>.</li>\n <li>Link the Apigee iOS SDK into your project.\n <ul>\n <li>Drag ApigeeiOSSDK.framework into the Frameworks group created by Xcode.</li>\n </ul>\n <p>OR</p>\n <ol>\n <li>At the bottom of the <strong>Link Binary With Libraries</strong> group, click the <strong>+</
strong> button. Then click <strong>Add Other</strong>.</li>\n <li>Navigate to the directory that contains ApigeeiOSSDK.framework, and choose the ApigeeiOSSDK.framework folder.</li>\n </ol>\n </li>\n </ol>\n </div>\n </div>\n <div class="tab-pane" id="new_project"><a class="jumplink" name="create_a_new_project_based_on_the_SDK"></a>\n <p>If you\'re starting with a clean slate (you don\'t have a project yet), you can begin by using the project template included with the SDK. The template includes support for SDK features.</p>\n <ol>\n <li>\n <p>Locate the project template in the expanded SDK. It should be at the following location:</p>\n <pre>\n<sdk_root>/new-project-template</pre>\n </li>\n <li>In the project template directory, open the project file: Apigee App Services iOS Template.xcodeproj.</li>\n <li>Get acquainted with the template by looking at its readme file.</li>\n </ol>\n </div>\n</div>\n<h2>2. Add required iOS framework
s</h2>\n<p>Ensure that the following iOS frameworks are part of your project. To add them, under the <strong>Link Binary With Libraries</strong> group, click the <strong>+</strong> button, type the name of the framework you want to add, select the framework found by Xcode, then click <strong>Add</strong>.</p>\n<ul>\n <li>QuartzCore.framework</li>\n <li>CoreLocation.framework</li>\n <li>CoreTelephony.framework </li>\n <li>Security.framework</li>\n <li>SystemConfiguration.framework</li>\n <li>UIKit.framework</li>\n</ul>\n<h2>3. Update \'Other Linker Flags\'</h2>\n<p>In the <strong>Build Settings</strong> panel, add the following under <strong>Other Linker Flags</strong>:</p>\n<pre>\n-ObjC -all_load</pre>\n<p>Confirm that flags are set for both <strong>DEBUG</strong> and <strong>RELEASE</strong>.</p>\n<h2>4. Initialize the SDK</h2>\n<p>The <em>ApigeeClient</em> class initializes the App Services SDK. To do this you will need your organization name and application name, which are a
vailable in the <em>Getting Started</em> tab of the <a href="https://www.apigee.com/usergrid/">App Service admin portal</a>, under <strong>Mobile SDK Keys</strong>.</p>\n<ol>\n <li>Import the SDK\n <p>Add the following to your source code to import the SDK:</p>\n <pre>\n#import <ApigeeiOSSDK/Apigee.h></pre>\n </li>\n <li>\n <p>Declare the following properties in <code>AppDelegate.h</code>:</p>\n <pre>\n@property (strong, nonatomic) ApigeeClient *apigeeClient; \n@property (strong, nonatomic) ApigeeMonitoringClient *monitoringClient;\n@property (strong, nonatomic) ApigeeDataClient *dataClient; \n </pre>\n </li>\n <li>\n <p>Instantiate the <code>ApigeeClient</code> class inside the <code>didFinishLaunching</code> method of <code>AppDelegate.m</code>:</p>\n <pre>\n//Replace \'AppDelegate\' with the name of your app delegate class to instantiate it\nAppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];\n\n//Sepcify your App Services organiz
ation and application names\nNSString *orgName = @"{{currentOrg}}";\nNSString *appName = @"{{currentApp}}";\n\n//Instantiate ApigeeClient to initialize the SDK\nappDelegate.apigeeClient = [[ApigeeClient alloc]\n initWithOrganizationId:orgName\n applicationId:appName];\n \n//Retrieve instances of ApigeeClient.monitoringClient and ApigeeClient.dataClient\nself.monitoringClient = [appDelegate.apigeeClient monitoringClient]; \nself.dataClient = [appDelegate.apigeeClient dataClient]; \n </pre>\n </li>\n</ol>\n\n<h2>5. Verify SDK installation</h2>\n\n<p>Once initialized, App Services will also automatically instantiate the <code>ApigeeMonitoringClient</code> class and begin logging usage, crash and error metrics for your app.</p>\n\n<p>To verify that the SDK has been properly initialized, run your app, then go to <strong>\'Monitoring\' > \'App Usage\'</strong> in the <a href="https://www.apigee.com/usergrid"
>App Services admin portal</a> to verify that data is being sent.</p>\n<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n\n<h2>Installation complete! Try these next steps</h2>\n<ul> \n <li>\n <h3><strong>Call additional SDK methods in your code</strong></h3>\n <p>Create an instance of the AppDelegate class, then use <code>appDelegate.dataClient</code> or <code>appDelegate.monitoringClient</code> to call SDK methods:</p>\n <div id="collapse"><a class="btn" data-toggle="collapse" href="#client_collapse">Details</a></div>\n <div class="collapse" id="client_collapse">\n <ul>\n <li><code>appDelegate.dataClient</code>: Used to access the data methods of the App Services SDK, including those for push notifications, data store, and geolocation.</li>\n <li><code>appDelegate.monitoringClient</code>: Used to access the app configuration
and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</li>\n </ul>\n <h3>Example</h3>\n <p>For example, you could create a new entity with the following:</p>\n <pre>\nAppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];\nApigeeClientResponse *response = [appDelegate.dataClient createEntity:entity];\n </pre>\n </div>\n\n </li>\n <li>\n <h3><strong>Add App Services features to your app</strong></h3>\n <p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these links to get started with a few of our most popular features:</p>\n <ul>\n <li><strong><a href="http://apigee.com/docs/node/8410">Push notifications</a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per
month for free!</li>\n <li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Target users or return result sets based on user location to keep your app highly-relevant.</li>\n <li><strong><a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about dealing with a database ever again.</li>\n <li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement user registration, as well as OAuth 2.0-compliant login and authentication.</li>\n </ul>\n </li>\n <li>\n <h3><strong>Check out the sample apps</strong></h3>\n <p>The SDK includes samples that illustrate Apigee features. To look at them, open the .xcodeproj file for each in Xcode. To get a sample app running, open its project file, then follow the steps described in the section, <a target="_bla
nk" href="http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios">Add the SDK to an existing project</a>.</p>\n <p>You\'ll find the samples in the following location in your SDK download:</p>\n <pre>\napigee-ios-sdk-<version>\n ...\n /samples\n </pre>\n <div id="collapse"><a class="btn" data-toggle="collapse" href="#samples_collapse">Details</a></div>\n <div class="collapse" id="samples_collapse">\n <p>The samples include the following:</p>\n <table class="table">\n <thead>\n <tr>\n <th scope="col">Sample</th>\n <th scope="col">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>books</td>\n <td>An app for storing a list of books that shows Apigee database operations such as reading, creating, and deleting.</td>\n </tr>\n <tr>\n <td>messagee</td>\n <td>An app for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n </tr>\n <tr>\n
<td>push</td>\n <td>An app that uses the push feature to send notifications to the devices of users who have subscribed for them.</td>\n </tr>\n </tbody>\n </table>\n </div>\n <p> </p>\n </li>\n</ul>\n'),$templateCache.put("app-overview/doc-includes/javascript.html",'<h2>1. Import the SDK into your HTML</h2>\n<p>To enable support for Apigee-related functions in your HTML, you\'ll need to include <code>apigee.js</code> in your app. To do this, add the following to the <code>head</code> block of your HTML:</p>\n<pre>\n<script type="text/javascript" src="path/to/js/sdk/apigee.js"></script>\n</pre>\n<h2>2. Instantiate Apigee.Client</h2>\n<p>Apigee.Client initializes the App Services SDK, and gives you access to all of the App Services SDK methods.</p>\n<p>You will need to pass a JSON object with the UUID or name for your App Services organization and application when you instantiate it.</p>\n<pre>\n//Apigee account credentials, available in the
App Services admin portal \nvar client_creds = {\n orgName:\'{{currentOrg}}\',\n appName:\'{{currentApp}}\'\n }\n\n//Initializes the SDK. Also instantiates Apigee.MonitoringClient\nvar dataClient = new Apigee.Client(client_creds); \n</pre>\n\n<h2>3. Verify SDK installation</h2>\n\n<p>Once initialized, App Services will also automatically instantiate <code>Apigee.MonitoringClient</code> and begin logging usage, crash and error metrics for your app.</p>\n\n<p>To verify that the SDK has been properly initialized, run your app, then go to <strong>\'Monitoring\' > \'App Usage\'</strong> in the <a href="https://www.apigee.com/usergrid">App Services admin portal</a> to verify that data is being sent.</p>\n<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n\n<h2>Installation complete! Try these next steps</h2>\n<ul>\n <li> \n <
h3><strong>Call additional SDK methods in your code</strong></h3>\n <p>Use <code>dataClient</code> or <code>dataClient.monitor</code> to call SDK methods:</p>\n <div id="collapse">\n <a href="#client_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n </div>\n <div id="client_collapse" class="collapse">\n <ul>\n <li><code>dataClient</code>: Used to access the data methods of the App Services SDK, including those for push notifications, data store, and geolocation.</li>\n <li><code>dataClient.monitor</code>: Used to access the app configuration and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</li>\n </ul>\n </div>\n </li> \n <li>\n <h3><strong>Add App Services features to your app</strong></h3>\n <p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these li
nks to get started with a few of our most popular features:</p>\n <ul>\n <li><strong><a href="http://apigee.com/docs/node/8410">Push notifications</a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per month for free!</li>\n <li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Keep your app highly-relevant by targeting users or returning result sets based on user location.</li>\n <li><strong><a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about dealing with a database ever again.</li>\n <li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement registration, login and OAuth 2.0-compliant authentication.</li>\n </
ul>\n </li>\n <li>\n <h3><strong>Check out the sample apps</strong></h3>\n <p>The SDK includes samples that illustrate Apigee features. To look at them, open the .xcodeproj file for each in Xcode. You\'ll find the samples in the following location in your SDK download:</p>\n <pre>\napigee-javascript-sdk-master\n ...\n /samples \n </pre>\n <div id="collapse">\n <a href="#samples_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n </div>\n <div id="samples_collapse" class="collapse">\n <p>The samples include the following:</p>\n <table class="table">\n <thead>\n <tr>\n <th scope="col">Sample</th>\n <th scope="col">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>booksSample.html</td>\n <td>An app for storing a list of books that shows Apigee database operations such as reading, creating, and deleting.</td>\n </tr>\n <tr>\n <td>messagee</td>\n
<td>An app for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n </tr>\n <tr>\n <td>monitoringSample.html</td>\n <td>Shows basic configuration and initialization of the HTML5 app monitoring functionality. Works in browser, PhoneGap, Appcelerator, and Trigger.io.</td>\n </tr>\n <tr>\n <td>readmeSample.html</td>\n <td>A simple app for reading data from an Apigee database.</td>\n </tr>\n </tbody>\n </table>\n </div> \n </li> \n</ul>\n'),$templateCache.put("app-overview/doc-includes/net.html",""),$templateCache.put("app-overview/doc-includes/node.html",""),$templateCache.put("app-overview/doc-includes/ruby.html",""),$templateCache.put("app-overview/getting-started.html",'<div class="setup-sdk-content" >\n\n <bsmodal id="regenerateCredentials"\n title="Confirmation"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="regenerateCredentialsDialog"\
n extrabuttonlabel="Yes"\n ng-cloak>\n Are you sure you want to regenerate the credentials?\n </bsmodal>\n\n <page-title icon="🚀" title="Getting Started"></page-title>\n\n <section class="row-fluid">\n\n\n\n\n <div class="span8">\n\n <h2 class="title">Install the SDK for app {{currentApp}}</h2>\n <p>Click on a platform icon below to view SDK installation instructions for that platform.</p>\n <ul class="inline unstyled">\n <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#ios"><i class="sdk-icon-large-ios"></i></a></li>-->\n <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#android"><i class="sdk-icon-large-android"></i></a></li>-->\n <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#javascript"><i class="sdk-icon-large-js"></i></a></li>-->\n\n\n <li ng-click="showSDKDetail(\'ios\')
"\n analytics-on="click"\n analytics-label="App Services"\n analytics-category="Getting Started"\n analytics-event="iOS SDK"><i class="sdk-icon-large-ios"></i></li>\n <li ng-click="showSDKDetail(\'android\')"\n analytics-on="click"\n analytics-label="App Services"\n analytics-category="Getting Started"\n analytics-event="Android SDK"><i class="sdk-icon-large-android"></i></li>\n <li ng-click="showSDKDetail(\'javascript\')"\n analytics-on="click"\n analytics-label="App Services"\n analytics-category="Getting Started"\n analytics-event="JS SDK"><i class="sdk-icon-large-js"></i></li>\n <li><a target="_blank"\n ng-click="showSDKDetail(\'nocontent\')"\n href="http://apigee.com/docs/usergrid/content/sdks-and-examples#nodejs"\n analytics-on="click"\n analytics-label="App Services"\n
analytics-category="Getting Started"\n analytics-event="Node SDK"><i class="sdk-icon-large-node"></i></a></li>\n <li><a target="_blank"\n ng-click="showSDKDetail(\'nocontent\')"\n href="http://apigee.com/docs/usergrid/content/sdks-and-examples#ruby"\n analytics-on="click"\n analytics-label="App Services"\n analytics-category="Getting Started"\n analytics-event="Ruby SDK"><i class="sdk-icon-large-ruby"></i></a></li>\n <li><a target="_blank"\n ng-click="showSDKDetail(\'nocontent\')"\n href="http://apigee.com/docs/usergrid/content/sdks-and-examples#c"\n analytics-on="click"\n analytics-label="App Services"\n analytics-category="Getting Started"\n analytics-event="DotNet SDK"><i class="sdk-icon-large-net"></i></a></li>\n </ul>\n\n <section id="intro-container" class="row
-fluid intro-container">\n\n <div class="sdk-intro">\n </div>\n\n <div class="sdk-intro-content">\n\n <a class="btn normal white pull-right" ng-href="{{sdkLink}}" target="_blank">\n Download SDK\n </a>\n <a class="btn normal white pull-right" ng-href="{{docsLink}}" target="_blank">\n More Docs\n </a>\n <h3 class="title"><i class="pictogram">📕</i>{{contentTitle}}</h3>\n\n <div ng-include="getIncludeURL()"></div>\n </div>\n\n </section>\n </div>\n\n <div class="span4 keys-creds">\n <h2 class="title">Mobile sdk keys</h2>\n <p>For mobile SDK initialization.</p>\n <dl class="app-creds">\n <dt>Org Name</dt>\n <dd>{{currentOrg}}</dd>\n <dt>App Name</dt>\n <dd>{{currentApp}}</dd>\n </dl>\n <h2 class="title">Server app credentials</h2>\n <p>For authenticating from a server side app (i.e. Ruby, .NET, etc.)</p>\n
<dl class="app-creds">\n <dt>Client ID</dt>\n <dd>{{clientID}}</dd>\n <dt>Client Secret</dt>\n <dd>{{clientSecret}}</dd>\n <dt>\n \n </dt>\n <dd> </dd>\n\n <dt>\n <a class="btn filter-selector" ng-click="showModal(\'regenerateCredentials\')">Regenerate</a>\n </dt>\n <dd></dd>\n </dl>\n\n </div>\n\n </section>\n</div>'),$templateCache.put("data/data.html",'<div class="content-page">\n\n <bsmodal id="newCollection"\n title="Create new collection"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="newCollectionDialog"\n extrabuttonlabel="Create"\n buttonid="collection"\n ng-cloak>\n <fieldset>\n <div class="control-group">\n <label for="new-collection-name">Collection Name:</label>\n <div class="controls">\n <input type="text" ug-validate required ng-pattern="collection
NameRegex" ng-attr-title="{{collectionNameRegexDescription}}" ng-model="$parent.newCollection.name" name="collection" id="new-collection-name" class="input-xlarge"/>\n <p class="help-block hide"></p>\n </div>\n </div>\n </fieldset>\n </bsmodal>\n\n <page-title title=" Collections" icon="📾"></page-title>\n\n <section class="row-fluid">\n <div class="span3 user-col">\n <a class="btn btn-primary" id="new-collection-link" ng-click="showModal(\'newCollection\')">New Collection</a>\n <ul class="user-list">\n <li ng-class="queryCollection._type === entity.name ? \'selected\' : \'\'" ng-repeat="entity in collectionList" ng-click="loadCollection(\'/\'+entity.name);">\n <a id="collection-{{entity.name}}-link" href="javaScript:void(0)">/{{entity.name}} </a>\n </li>\n </ul>\n\n </div>\n\n <div class="span9 tab-content">\n <div class="content-page">\n <form name="dataForm" ng-submit="run();">\n
<fieldset>\n <div class="control-group">\n <div class="" data-toggle="buttons-radio">\n <!--a class="btn" id="button-query-back">◀ Back</a-->\n <!--Added disabled class to change the way button looks but their functionality is as usual -->\n <label class="control-label" style="display:none"><strong>Method</strong> <a id="query-method-help" href="#" class="help-link">get help</a></label>\n <input type="radio" id="create-rb" name="query-action" style="margin-top: -2px;" ng-click="selectPOST();" ng-checked="verb==\'POST\'"> CREATE \n <input type="radio" id="read-rb" name="query-action" style="margin-top: -2px;" ng-click="selectGET();" ng-checked="verb==\'GET\'"> READ \n <input type="radio" id="update-rb" name="query-action" style="margin-top: -2px;" ng-click="selectPUT();" ng-checked="verb==\'PUT\'"> UPDATE \n <input type="r
adio" id="delete-rb" name="query-action" style="margin-top: -2px;" ng-click="selectDELETE();" ng-checked="verb==\'DELETE\'"> DELETE\n </div>\n </div>\n\n <div class="control-group">\n <strong>Path </strong>\n <div class="controls">\n <input ng-model="data.queryPath" type="text" ug-validate id="pathDataQuery" ng-attr-title="{{pathRegexDescription}}" ng-pattern="pathRegex" class="span6" autocomplete="off" placeholder="ex: /users" required/>\n </div>\n </div>\n <div class="control-group">\n <a id="back-to-collection" class="outside-link" style="display:none">Back to collection</a>\n </div>\n <div class="control-group">\n <strong>Query</strong>\n <div class="controls">\n <input ng-model="data.searchString" type="text" class="span6" autocomplete="off" placeholder="ex: select * where name=\'fred\'"/>\n <div style="display
:none">\n <a class="btn dropdown-toggle " data-toggle="dropdown">\n <span id="query-collections-caret" class="caret"></span>\n </a>\n <ul id="query-collections-indexes-list" class="dropdown-menu ">\n </ul>\n </div>\n </div>\n </div>\n\n\n <div class="control-group" ng-show="verb==\'GET\' || verb==\'DELETE\'">\n <label class="control-label" for="query-limit"><strong>Limit</strong> <a id="query-limit-help" href="#" ng-show="false" class="help-link">get help</a></label>\n <div class="controls">\n <div class="input-append">\n <input ng-model="data.queryLimit" type="text" class="span5" id="query-limit" placeholder="ex: 10">\n </div>\n </div>\n </div>\n\n <div class="control-group" style="display:{{queryBodyDisplay}}">\n <label class="control-label" for="query-source"><s
trong>JSON Body</strong> <a id="query-json-help" href="#" ng-show="false" class="help-link">get help</a></label>\n <div class="controls">\n <textarea ng-model="data.queryBody" id="query-source" class="span6 pull-left" rows="4">\n { "name":"value" }\n </textarea>\n <br>\n <a class="btn pull-left" ng-click="validateJson();">Validate JSON</a>\n </div>\n </div>\n <div style="clear: both; height: 10px;"></div>\n <div class="control-group">\n <input type="submit" ng-disabled="!dataForm.$valid || loading" class="btn btn-primary" id="button-query" value="{{loading ? loadingText : \'Run Query\'}}"/>\n </div>\n </fieldset>\n </form>\n'+" <div ng-include=\"display=='generic' ? 'data/display-generic.html' : ''\"></div>\n <div ng-include=\"display=='users' ? 'data/display-users.html' : ''\"></div>\n <div ng-include=\"display=='groups' ? 'data/
display-groups.html' : ''\"></div>\n <div ng-include=\"display=='roles' ? 'data/display-roles.html' : ''\"></div>\n\n </div>\n\n </div>\n </section>\n\n\n\n\n</div>\n\n"),$templateCache.put("data/display-generic.html",'\n\n<bsmodal id="deleteEntities"\n title="Are you sure you want to delete the entities(s)?"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="deleteEntitiesDialog"\n extrabuttonlabel="Delete"\n buttonid="del-entity"\n ng-cloak>\n <fieldset>\n <div class="control-group">\n </div>\n </fieldset>\n</bsmodal>\n\n<span class="button-strip">\n <button class="btn btn-primary" ng-disabled="!valueSelected(queryCollection._list) || deleteLoading" ng-click="deleteEntitiesDialog()">{{deleteLoading ? loadingText : \'Delete Entity(s)\'}}</button>\n</span>\n<table class="table table-striped collection-list">\n <thead>\n <tr class="table-header">\n <th><input type="checkbox" n
g-show="queryCollection._list.length > 0" id="selectAllCheckbox" ng-model="queryBoxesSelected" ng-click="selectAllEntities(queryCollection._list,$parent,\'queryBoxesSelected\',true)"></th>\n <th ng-if="hasProperty(\'name\')">Name</th>\n <th>UUID</th>\n <th></th>\n </tr>\n </thead>\n <tbody ng-repeat="entity in queryCollection._list">\n <tr class="zebraRows" >\n <td>\n <input\n type="checkbox"\n id="entity-{{entity._data.name}}-cb"\n ng-value="entity._data.uuid"\n ng-model="entity.checked"\n >\n </td>\n <td ng-if="hasProperty(\'name\')">{{entity._data.name}}</td>\n <td>{{entity._data.uuid}}</td>\n <td><a href="javaScript:void(0)" ng-click="entitySelected[$index] = !entitySelected[$index];selectEntity(entity._data.uuid)">{{entitySelected[$index] ? \'Hide\' : \'View\'}} Details</a></td>\n </tr>\n <tr ng-if="entitySelected[$index]">\n <td colspan="5">\n\n\n <h4 style="margin: 0 0 20px 0">Entity Detail</h4>\n\n
\n <ul class="formatted-json">\n <li ng-repeat="(k,v) in entity._data track by $index">\n <span class="key">{{k}} :</span>\n <!--todo - doing manual recursion to get this out the door for launch, please fix-->\n <span ng-switch on="isDeep(v)">\n <ul ng-switch-when="true">\n <li ng-repeat="(k2,v2) in v"><span class="key">{{k2}} :</span>\n\n <span ng-switch on="isDeep(v2)">\n <ul ng-switch-when="true">\n <li ng-repeat="(k3,v3) in v2"><span class="key">{{k3}} :</span><span class="value">{{v3}}</span></li>\n </ul>\n <span ng-switch-when="false">\n <span class="value">{{v2}}</span>\n </span>\n </span>\n </li>\n </ul>\n <span ng-switch-when="false">\n <span class="value">{{v}}</span>\n </span>\n </span>\n </li>\n <
/ul>\n\n <div class="control-group">\n <h4 style="margin: 20px 0 20px 0">Edit Entity</h4>\n <div class="controls">\n <textarea ng-model="entity._json" class="span12" rows="12"></textarea>\n <br>\n <a class="btn btn-primary toolbar pull-left" ng-click="validateJson();">Validate JSON</a><button type="button" class="btn btn-primary pull-right" id="button-query" ng-click="saveEntity(entity);">Save</button>\n </div>\n </div>\n </td>\n </tr>\n\n <tr ng-show="queryCollection._list.length == 0">\n <td colspan="4">No data found</td>\n </tr>\n </tbody>\n</table>\n<div style="padding: 10px 5px 10px 5px">\n <button class="btn btn-primary toolbar" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous</button>\n <button class="btn btn-primary toolbar" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n</div>\n\n'),$templateCache.put("data/display-groups.html",""),$templateCache.put("data/displ
ay-roles.html","roles---------------------------------"),$templateCache.put("data/display-users.html",'\n<table id="query-response-table" class="table">\n <tbody>\n <tr class="zebraRows users-row">\n <td class="checkboxo">\n <input type="checkbox" onclick="Usergrid.console.selectAllEntities(this);"></td>\n <td class="gravatar50-td"> </td>\n <td class="user-details bold-header">Username</td>\n <td class="user-details bold-header">Display Name</td>\n <td class="user-details bold-header">UUID</td>\n <td class="view-details"> </td>\n </tr>\n <tr class="zebraRows users-row">\n <td class="checkboxo">\n <input class="listItem" type="checkbox" name="/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7" value="bf9a95da-d508-11e2-bf44-236d2eee13a7">\n </td>\n <td class="gravatar50-td">\n <img src="http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e" class="gravatar50">\n </td>\n <td
class="details">\n <a onclick="Usergrid.console.getCollection(\'GET\', \'/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/\'+\'bf9a95da-d508-11e2-bf44-236d2eee13a7\'); $(\'#data-explorer\').show(); return false;" class="view-details">10</a>\n </td>\n <td class="details"> #"><img src=x onerror=prompt(1);> </td>\n <td class="details"> bf9a95da-d508-11e2-bf44-236d2eee13a7 </td>\n <td class="view-details">\n <a href="" onclick="$(\'#query-row-bf9a95da-d508-11e2-bf44-236d2eee13a7\').toggle(); $(\'#data-explorer\').show(); return false;" class="view-details">Details</a>\n </td>\n </tr>\n <tr id="query-row-bf9a95da-d508-11e2-bf44-236d2eee13a7" style="display:none">\n <td colspan="5">\n <div>\n <div style="padding-bottom: 10px;">\n <button type="button" class="btn btn-small query-button active" id="button-query-show-row-JSON" onclick="Usergrid.console.activateQueryRowJSONButton(); $(\'#query-row-JSON-bf9a95da-d50
8-11e2-bf44-236d2eee13a7\').show(); $(\'#query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7\').hide(); return false;">JSON</button>\n <button type="button" class="btn btn-small query-button disabled" id="button-query-show-row-content" onclick="Usergrid.console.activateQueryRowContentButton();$(\'#query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7\').show(); $(\'#query-row-JSON-bf9a95da-d508-11e2-bf44-236d2eee13a7\').hide(); return false;">Content</button>\n </div>\n <div id="query-row-JSON-bf9a95da-d508-11e2-bf44-236d2eee13a7">\n <pre>{\n "picture": "http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e",\n "uuid": "bf9a95da-d508-11e2-bf44-236d2eee13a7",\n "type": "user",\n "name": "#"><img src=x onerror=prompt(1);>",\n "created": 1371224432557,\n "modified": 1371851347024,\n "username": "10",\n "email": "fdsafdsa@ookfd.com",\n "activated": "true",\n "adr": {\n "addr1": "",\n "addr2": "",\n "city": "",
\n "state": "",\n "zip": "",\n "country": ""\n },\n "metadata": {\n "path": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7",\n "sets": {\n "rolenames": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/rolenames",\n "permissions": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/permissions"\n },\n "collections": {\n "activities": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/activities",\n "devices": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/devices",\n "feed": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/feed",\n "groups": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/groups",\n "roles": "/users/8bb9a3fa-d508-1
1e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/roles",\n "following": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/following",\n "followers": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/followers"\n }\n },\n "title": "#"><img src=x onerror=prompt(1);>"\n}</pre>\n </div>\n <div id="query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7" style="display:none">\n <table>\n <tbody>\n <tr>\n <td>picture</td>\n <td>http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e</td></tr><tr><td>uuid</td><td>bf9a95da-d508-11e2-bf44-236d2eee13a7</td></tr><tr><td>type</td><td>user</td></tr><tr><td>name</td><td>#&quot;&gt;&lt;img src=x onerror=prompt(1);&gt;</td></tr><tr><td>created</td><td>1371224432557</td></tr><tr><td>modified</td><td>1371851347024</td></tr><tr><td>u
sername</td><td>10</td></tr><tr><td>email</td><td>fdsafdsa@ookfd.com</td></tr><tr><td>activated</td><td>true</td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>addr1</td><td></td></tr><tr><td>addr2</td><td></td></tr><tr><td>city</td><td></td></tr><tr><td>state</td><td></td></tr><tr><td>zip</td><td></td></tr><tr><td>country</td><td></td></tr></tbody></table></td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>path</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7</td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>rolenames</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/rolenames</td></tr><tr><td>permissions</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/permissions</td></tr></tbody></table></td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr
><td>activities</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/activities</td></tr><tr><td>devices</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/devices</td></tr><tr><td>feed</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/feed</td></tr><tr><td>groups</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/groups</td></tr><tr><td>roles</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/roles</td></tr><tr><td>following</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/following</td></tr><tr><td>followers</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/followers</td></tr></tbody></table></td></tr></tbody></table></td></tr><tr><td>title</td><td>
#&quot;&gt;&lt;img src=x onerror=prompt(1);&gt;</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n</table>'),$templateCache.put("data/entity.html",'<div class="content-page">\n\n <h4>Entity Detail</h4>\n <div class="well">\n <a href="#!/data" class="outside-link"><< Back to collection</a>\n </div>\n <fieldset>\n <div class="control-group">\n <strong>Path </strong>\n <div class="controls">\n {{entityType}}/{{entityUUID}}\n </div>\n </div>\n\n <div class="control-group">\n <label class="control-label" for="query-source"><strong>JSON Body</strong></label>\n <div class="controls">\n <textarea ng-model="queryBody" class="span6 pull-left" rows="12">{{queryBody}}</textarea>\n <br>\n <a class="btn pull-left" ng-click="validateJson();">Validate JSON</a>\n </div>\n </div>\n <div style="clear: both; height: 10px;"></div>\
n <div class="control-group">\n <button type="button" class="btn btn-primary" id="button-query" ng-click="saveEntity();">Save</button>\n <!--button type="button" class="btn btn-primary" id="button-query" ng-click="run();">Delete</button-->\n </div>\n </fieldset>\n\n</div>\n\n'),$templateCache.put("data/shell.html",'<div class="content-page">\n <div class="well">\n <h2>Interactive Shell</h2>\n <div style="float:right"><a target="_blank" href="http://apigee.com/docs/usergrid/content/usergrid-admin-portal" class="notifications-links">Learn more in our docs</a></div>\n </div>\n\n <div class="console-section-contents">\n <div id="shell-input-div">\n <p> Type "help" to view a list of the available commands.</p><hr>\n <span> >> </span>\n <!--textarea id="shell-input" rows="2" autofocus="autofocus"></textarea-->\n </div>\n <pre id="shell-output" class="prettyprint lang-js" style="overflow-x: auto; height: 400px;"><span class="pl
n"> </span><p><span class="pln"> </span><span class="typ">Response</span><span class="pun">:</span></p><hr><span class="pln">\n </span></pre>\n </div>\n</div>'),$templateCache.put("dialogs/modal.html",' <div class="modal show fade" tabindex="-1" role="dialog" aria-hidden="true">\n <form ng-submit="extraDelegate(extrabutton)" name="dialogForm" novalidate>\n\n <div class="modal-header">\n <h1 class="title">{{title}}</h1>\n </div>\n\n <div class="modal-body" ng-transclude></div>\n <div class="modal-footer">\n {{footertext}}\n <input type="submit" class="btn" id="dialogButton-{{buttonId}}" ng-if="extrabutton" ng-disabled="!dialogForm.$valid" aria-hidden="true" ng-value="extrabuttonlabel"/>\n <button class="btn cancel pull-left" data-dismiss="modal" aria-hidden="true"\n ng-click="closeDelegate(close)">{{closelabel}}\n </button>\n </div>\n
</form> </div>\n'),$templateCache.put("global/appswitcher-template.html",'<li id="globalNav" class="dropdown dropdownContainingSubmenu active">\n <a class="dropdown-toggle" data-toggle="dropdown">API Platform<b class="caret"></b></a>\n <ul class="dropdown-menu pull-right">\n <li id="globalNavSubmenuContainer">\n <ul>\n <li data-globalNavDetail="globalNavDetailApigeeHome"><a target="_blank" href="http://apigee.com">Apigee Home</a></li>\n <li data-globalNavDetail="globalNavDetailAppServices" class="active"><a target="_blank" href="https://apigee.com/usergrid/">App Services</a></li>\n <li data-globalNavDetail="globalNavDetailApiPlatform" ><a target="_blank" href="https://enterprise.apigee.com">API Platform</a></li>\n <li data-globalNavDetail="globalNavDetailApiConsoles"><a target="_blank" href="http://apigee.com/providers">API Consoles</a></li>\n </ul>\n </li>\n <li id="globalNavDetail">\n <div id="globalNavDetailApigeeHome">\n
<div class="globalNavDetailApigeeLogo"></div>\n <div class="globalNavDetailDescription">You need apps and apps need APIs. Apigee is the leading API platform for enterprises and developers.</div>\n </div>\n <div id="globalNavDetailAppServices">\n <div class="globalNavDetailSubtitle">For App Developers</div>\n <div class="globalNavDetailTitle">App Services</div>\n <div class="globalNavDetailDescription">Build engaging applications, store data, manage application users, and more.</div>\n </div>\n <div id="globalNavDetailApiPlatform">\n <div class="globalNavDetailSubtitle">For API Developers</div>\n <div class="globalNavDetailTitle">API Platform</div>\n <div class="globalNavDetailDescription">Create, configure, manage and analyze your APIs and resources.</div>\n </div>\n <div id="globalNavDetailApiConsoles">\n <div class="globalNavDetailSubtitle">For API Developers</div>\n <div class="glo
balNavDetailTitle">API Consoles</div>\n <div class="globalNavDetailDescription">Explore over 100 APIs with the Apigee API Console, or create and embed your own API Console.</div>\n </div>\n </li>\n </ul>\n</li>'),$templateCache.put("global/insecure-banner.html",'<div ng-if="securityWarning" ng-cloak class="demo-holder">\n <div class="alert alert-demo alert-animate">\n <div class="alert-text">\n <i class="pictogram">⚠</i>Warning: This application has "sandbox" permissions and is not production ready. <a target="_blank" href="http://apigee.com/docs/app-services/content/securing-your-app">Please go to our security documentation to find out more.</a></span>\n </div>\n </div>\n</div>'),$templateCache.put("global/page-title.html",'<section class="row-fluid">\n <div class="span12">\n <div class="page-filters">\n <h1 class="title pull-left" id="pageTitle"><i class="pictogram title" style="padding-right: 5px;">{{icon}}
</i>{{title}} <a class="super-help" href="http://community.apigee.com/content/apigee-customer-support" target="_blank" >(need help?)</a></h1>\n </div>\n </div>\n <bsmodal id="need-help"\n title="Need Help?"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="sendHelp"\n extrabuttonlabel="Get Help"\n ng-cloak>\n <p>Do you want to contact support? Support will get in touch with you as soon as possible.</p>\n </bsmodal>\n</section>\n\n'),$templateCache.put("groups/groups-activities.html",'<div class="content-page" ng-controller="GroupsActivitiesCtrl">\n\n <br>\n <div>\n <table class="table table-striped">\n <tbody>\n <tr class="table-header">\n <td>Date</td>\n <td>Content</td>\n <td>Verb</td>\n <td>UUID</td>\n </tr>\n <tr class="zebraRows" ng-repeat="activity in selectedGroup.activities">\n <td>{{activity.createdDate}}</td>\n
<td>{{activity.content}}</td>\n <td>{{activity.verb}}</td>\n <td>{{activity.uuid}}</td>\n </tr>\n </tbody>\n </table>\n </div>\n\n\n</div>'),$templateCache.put("groups/groups-details.html",'<div class="content-page" ng-controller="GroupsDetailsCtrl">\n\n <div>\n <form name="updateGroupDetailForm" ng-submit="saveSelectedGroup()" novalidate>\n <div style="float: left; padding-right: 30px;">\n <h4 class="ui-dform-legend">Group Information</h4>\n <label for="group-title" class="ui-dform-label">Group Title</label>\n <input type="text" id="group-title" ng-pattern="titleRegex" ng-attr-title="{{titleRegexDescription}}" required class="ui-dform-text" ng-model="group.title" ug-validate>\n <br/>\n <label for="group-path" class="ui-dform-label">Group Path</label>\n <input type="text" id="group-path" required ng-attr-title="{{pathRegexDescription}}" placeholder="ex: /mydata"
ng-pattern="pathRegex" class="ui-dform-text" ng-model="group.path" ug-validate>\n <br/>\n </div>\n <br style="clear:both"/>\n\n <div style="width:100%;float:left;padding: 20px 0">\n <input type="submit" value="Save Group" style="margin-right: 15px;" ng-disabled="!updateGroupDetailForm.$valid" class="btn btn-primary" />\n </div>\n\n <div class="content-container">\n <h4>JSON Group Object</h4>\n <pre>{{json}}</pre>\n </div>\n </form>\n </div>\n\n\n</div>'),$templateCache.put("groups/groups-members.html",'<div class="content-page" ng-controller="GroupsMembersCtrl">\n\n\n <bsmodal id="removeFromGroup"\n title="Confirmation"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="removeUsersFromGroupDialog"\n extrabuttonlabel="Delete"\n ng-cloak>\n <p>Are you sure you want to remove the users from the seleted group
(s)?</p>\n </bsmodal>\n\n <bsmodal id="addGroupToUser"\n title="Add user to group"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="addGroupToUserDialog"\n extrabuttonlabel="Add"\n ng-cloak>\n <div class="btn-group">\n <a class="btn dropdown-toggle filter-selector" data-toggle="dropdown">\n <span class="filter-label">{{$parent.user != \'\' ? $parent.user.username : \'Select a user...\'}}</span>\n <span class="caret"></span>\n </a>\n <ul class="dropdown-menu">\n <li ng-repeat="user in $parent.usersTypeaheadValues" class="filterItem"><a ng-click="$parent.$parent.user = user">{{user.username}}</a></li>\n </ul>\n </div>\n </bsmodal>\n\n\n <div class="button-strip">\n <button class="btn btn-primary" ng-click="showModal(\'addGroupToUser\')">Add User to Group</button>\n <button class="btn btn-primary" ng-disabled="!hasMembers || !valueSelected(groupsCollection.users
._list)" ng-click="showModal(\'removeFromGroup\')">Remove User(s) from Group</button>\n </div>\n <table class="table table-striped">\n <tr class="table-header">\n <td style="width: 30px;"><input type="checkbox" ng-show="hasMembers" id="selectAllCheckbox" ng-model="groupMembersSelected" ng-click="selectAllEntities(groupsCollection.users._list,this,\'groupMembersSelected\')"></td>\n <td style="width: 50px;"></td>\n <td>Username</td>\n <td>Display Name</td>\n </tr>\n <tr class="zebraRows" ng-repeat="user in groupsCollection.users._list">\n <td>\n <input\n type="checkbox"\n ng-model="user.checked"\n >\n </td>\n <td><img style="width:30px;height:30px;" ng-src="{{user._portal_image_icon}}"></td>\n <td>{{user.get(\'username\')}}</td>\n <td>{{user.get(\'name\')}}</td>\n </tr>\n </table>\n <div style="padding: 10px 5px 10px 5px">\n <button class="btn btn-primary" ng-click="getPrevious()" style="
display:{{previous_display}}">< Previous</button>\n <button class="btn btn-primary" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n </div>\n</div>'),$templateCache.put("groups/groups-roles.html",'<div class="content-page" ng-controller="GroupsRolesCtrl">\n\n <bsmodal id="addGroupToRole"\n title="Add group to role"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="addGroupToRoleDialog"\n extrabuttonlabel="Add"\n ng-cloak>\n <div class="btn-group">\n <a class="btn dropdown-toggle filter-selector" data-toggle="dropdown">\n <span class="filter-label">{{$parent.name != \'\' ? $parent.name : \'Role name...\'}}</span>\n <span class="caret"></span>\n </a>\n <ul class="dropdown-menu">\n <li ng-repeat="role in $parent.rolesTypeaheadValues" class="filterItem"><a ng-click="$parent.$parent.name = role.name">{{role.name}}</a></li>\n </ul>\n <
/div>\n </bsmodal>\n\n <bsmodal id="leaveRoleFromGroup"\n title="Confirmation"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="leaveRoleDialog"\n extrabuttonlabel="Leave"\n ng-cloak>\n <p>Are you sure you want to remove the group from the role(s)?</p>\n </bsmodal>\n\n\n <div class="button-strip">\n <button class="btn btn-primary" ng-click="showModal(\'addGroupToRole\')">Add Role to Group</button>\n <button class="btn btn-primary" ng-disabled="!hasRoles || !valueSelected(groupsCollection.roles._list)" ng-click="showModal(\'leaveRoleFromGroup\')">Remove Role(s) from Group</button>\n </div>\n <h4>Roles</h4>\n <table class="table table-striped">\n <tbody>\n <tr class="table-header">\n <td style="width: 30px;"><input type="checkbox" ng-show="hasRoles" id="groupsSelectAllCheckBox" ng-model="groupRoleSelected" ng-click="selectAllEntities(groupsCollection.roles._list,this,\'groupRoleSelected\')"
></td>\n <td>Role Name</td>\n <td>Role title</td>\n </tr>\n <tr class="zebraRows" ng-repeat="role in groupsCollection.roles._list">\n <td>\n <input\n type="checkbox"\n ng-model="role.checked"\n >\n </td>\n <td>{{role._data.name}}</td>\n <td>{{role._data.title}}</td>\n </tr>\n </tbody>\n </table>\n <div style="padding: 10px 5px 10px 5px">\n <button class="btn btn-primary" ng-click="getPreviousRoles()" style="display:{{roles_previous_display}}">< Previous</button>\n <button class="btn btn-primary" ng-click="getNextRoles()" style="display:{{roles_next_display}};float:right;">Next ></button>\n </div>\n\n\n <bsmodal id="deletePermission"\n title="Confirmation"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="deleteGroupPermissionDialog"\n extrabuttonlabel="Delete"\n ng-cloak>\n <p>Are you sure you want to delete the permission(s)?</p
>\n </bsmodal>\n\n\n <bsmodal id="addPermission"\n title="New Permission"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="addGroupPermissionDialog"\n extrabuttonlabel="Add"\n ng-cloak>\n <p>Path: <input ng-model="$parent.permissions.path" placeholder="ex: /mydata" id="groupsrolespermissions" type="text" ng-pattern="pathRegex" ng-attr-title="{{pathRegexDescription}}" required ug-validate /></p>\n <div class="control-group">\n <input type="checkbox" ng-model="$parent.permissions.getPerm"> GET\n </div>\n <div class="control-group">\n <input type="checkbox" ng-model="$parent.permissions.postPerm"> POST\n </div>\n <div class="control-group">\n <input type="checkbox" ng-model="$parent.permissions.putPerm"> PUT\n </div>\n <div class="control-group">\n <input type="checkbox" ng-model="$parent.permissions.deletePerm"> DELETE\n </div>\n </bsmodal>\n\n\n <div class="button-s
trip">\n <button class="btn btn-primary" ng-click="showModal(\'addPermission\')">Add Permission</button>\n <button class="btn btn-primary" ng-disabled="!hasPermissions || !valueSelected(selectedGroup.permissions)" ng-click="showModal(\'deletePermission\')">Delete Permission(s)</button>\n </div>\n <h4>Permissions</h4>\n <table class="table table-striped">\n <tbody>\n <tr class="table-header">\n <td style="width: 30px;"><input ng-show="hasPermissions" type="checkbox" id="permissionsSelectAllCheckBox" ng-model="groupPermissionsSelected" ng-click="selectAllEntities(selectedGroup.permissions,this,\'groupPermissionsSelected\')" ></td>\n <td>Path</td>\n <td>GET</td>\n <td>POST</td>\n <td>PUT</td>\n <td>DELETE</td>\n </tr>\n <tr class="zebraRows" ng-repeat="permission in selectedGroup.permissions">\n <td>\n <input\n type="checkbox"\n ng-model="permission.checked"\n >\n </td>\n <td>{{permissi
on.path}}</td>\n <td>{{permission.operations.get}}</td>\n <td>{{permission.operations.post}}</td>\n <td>{{permission.operations.put}}</td>\n <td>{{permission.operations.delete}}</td>\n </tr>\n </tbody>\n </table>\n\n</div>'),$templateCache.put("groups/groups-tabs.html",'<div class="content-page">\n\n <section class="row-fluid">\n\n <div class="span12">\n <div class="page-filters">\n <h1 class="title" class="pull-left"><i class="pictogram title">👥</i> Groups</h1>\n </div>\n </div>\n\n </section>\n\n <div id="user-panel" class="panel-buffer">\n <ul id="user-panel-tab-bar" class="nav nav-tabs">\n <li><a href="javaScript:void(0);" ng-click="gotoPage(\'groups\')">Group List</a></li>\n <li ng-class="detailsSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/details\')">Details</a></li>\n <li ng-class="membersSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/members\')">Users</a
></li>\n <li ng-class="activitiesSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/activities\')">Activities</a></li>\n <li ng-class="rolesSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/roles\')">Roles & Permissions</a></li>\n </ul>\n </div>\n\n <div style="float: left; margin-right: 10px;">\n <div style="float: left;">\n <div class="user-header-title"><strong>Group Path: </strong>{{selectedGroup.get(\'path\')}}</div>\n <div class="user-header-title"><strong>Group Title: </strong>{{selectedGroup.get(\'title\')}}</div>\n </div>\n </div>\n</div>\n<br>\n<br>\n'),$templateCache.put("groups/groups.html",'<div class="content-page">\n\n <page-title title=" Groups" icon="👥"></page-title>\n <bsmodal id="newGroup"\n title="New Group"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="newGroupDialog"\n extrabuttonlabel="Add"\n ng-model="dialog"\
n ng-cloak>\n <fieldset>\n <div class="control-group">\n <label for="title">Title</label>\n <div class="controls">\n <input type="text" id="title" ng-pattern="titleRegex" ng-attr-title="{{titleRegexDescription}}" required ng-model="newGroup.title"class="input-xlarge" ug-validate/>\n </div>\n </div>\n <div class="control-group">\n <label for="path">Path</label>\n <div class="controls">\n <input id="path" type="text" ng-attr-title="{{pathRegexDescription}}" placeholder="ex: /mydata" ng-pattern="pathRegex" required ng-model="newGroup.path" class="input-xlarge" ug-validate/>\n </div>\n </div>\n </fieldset>\n </bsmodal>\n\n <bsmodal id="deleteGroup"\n title="Delete Group"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="deleteGroupsDialog"\n extrabuttonlabel="Delete"\n ng-cloak>\n <p>Are you sure you want to delete the gr
oup(s)?</p>\n </bsmodal>\n\n\n <section class="row-fluid">\n <div class="span3 user-col">\n\n <div class="button-toolbar span12">\n <a title="Select All" class="btn btn-primary select-all toolbar" ng-show="hasGroups" ng-click="selectAllEntities(groupsCollection._list,this,\'groupBoxesSelected\',true)"> <i class="pictogram">⊟</i></a>\n <button title="Delete" class="btn btn-primary toolbar" ng-disabled="!hasGroups || !valueSelected(groupsCollection._list)" ng-click="showModal(\'deleteGroup\')"><i class="pictogram">☕</i></button>\n <button title="Add" class="btn btn-primary toolbar" ng-click="showModal(\'newGroup\')"><i class="pictogram"></i></button>\n </div>\n <ul class="user-list">\n <li ng-class="selectedGroup._data.uuid === group._data.uuid ? \'selected\' : \'\'" ng-repeat="group in groupsCollection._list" ng-click="selectGroup(group._data.uuid)">\n <input\n type="checkbox"\n ng-
value="group._data.uuid"\n ng-checked="group.checked"\n ng-model="group.checked"\n >\n <a href="javaScript:void(0)" >{{group.get(\'title\')}}</a>\n <br/>\n <span ng-if="group.get(\'path\')" class="label">Path:</span>/{{group.get(\'path\')}}\n </li>\n </ul>\n\n\n <div style="padding: 10px 5px 10px 5px">\n <button class="btn btn-primary" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous</button>\n <button class="btn btn-primary" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n </div>\n\n </div>\n\n <div class="span9 tab-content" ng-show="selectedGroup.get" >\n <div class="menu-toolbar">\n <ul class="inline" >\n <li class="tab" ng-class="currentGroupsPage.route === \'/groups/details\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/details\')"><i class="p
ictogram"></i>Details</a></li>\n <li class="tab" ng-class="currentGroupsPage.route === \'/groups/members\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/members\')"><i class="pictogram">👥</i>Users</a></li>\n <li class="tab" ng-class="currentGroupsPage.route === \'/groups/activities\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/activities\')"><i class="pictogram"></i>Activities</a></li>\n <li class="tab" ng-class="currentGroupsPage.route === \'/groups/roles\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/roles\')"><i class="pictogram">🌎</i>Roles & Permissions</a></li>\n </ul>\n </div>\n <span ng-include="currentGroupsPage.template"></span>\n\n </section>\n</div>\n'),$templateCache.put("login/forgot-password.html",'<div class="login-content" ng-controller="Forgo
tPasswordCtrl">\n <iframe class="container" ng-src="{{forgotPWiframeURL}}" id="forgot-password-frame" border="0" style="border:0;width:600px;height:620px;">\n <p>Email Address: <input id="resetPasswordEmail" name="resetPasswordEmail" /></p>\n <button class="btn btn-primary" ng-click="">Reset Password</button>\n</div>\n'),$templateCache.put("login/loading.html","\n\n<h1>Loading...</h1>"),$templateCache.put("login/login.html",'<div class="login-content">\r\n <bsmodal id="sendActivationLink"\r\n title="Resend Activation Link"\r\n close="hideModal"\r\n closelabel="Cancel"\r\n extrabutton="resendActivationLink"\r\n extrabuttonlabel="Send Activation"\r\n ng-cloak>\r\n <fieldset>\r\n <p>Email to send to: <input type="email" required ng-model="$parent.activation.id" ng-pattern="emailRegex" ng-attr-title="{{emailRegexDescription}}" name="activationId" id="user-activationId" class="input-xlarge"/></p>\r\n </fieldset>\r\n
</bsmodal>\r\n <div class="login-holder">\r\n <form name="loginForm" id="login-form" ng-submit="login()" class="form-horizontal" novalidate>\r\n <h1 class="title">Enter your credentials</h1>\r\n <div class="alert-error" id="loginError" ng-if="loginMessage">{{loginMessage}}</div>\r\n <div class="control-group">\r\n <label class="control-label" for="login-username">Email or Username:</label>\r\n <div class="controls">\r\n <input type="text" ng-model="login.username" title="Please add a username or email." class="" id="login-username" required ng-value="login.username" size="20" ug-validate>\r\n </div>\r\n </div>\r\n <div class="control-group">\r\n <label class="control-label" for="login-password">Password:</label>\r\n <div class="controls">\r\n <input type="password" ng-model="login.password" required id="login-password" class="" ng-value="login.password" size="20" ug-validate>\r\n </div>\r\n </div>\r\n <div class
="control-group" ng-show="requiresDeveloperKey">\r\n <label class="control-label" for="login-developerkey">Developer Key:</label>\r\n <div class="controls">\r\n <input type="text" ng-model="login.developerkey" id="login-developerkey" class="" ng-value="login.developerkey" size="20" ug-validate>\r\n </div>\r\n </div>\r\n <div class="form-actions">\r\n <div class="submit">\r\n <input type="submit" name="button-login" id="button-login" ng-disabled="!loginForm.$valid || loading" value="{{loading ? loadingText : \'Log In\'}}" class="btn btn-primary pull-right">\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class="extra-actions">\r\n <div class="submit">\r\n <a ng-click="gotoSignUp()" name="button-signUp" id="button-signUp" value="Sign Up"\r\n class="btn btn-primary pull-left">Register</a>\r\n </div>\r\n <div class="submit">\r\n <a ng-click="gotoForgotPasswordPage()" name="button-forgot-password" id="b
utton-forgot-password"\r\n value="" class="btn btn-primary pull-left">Forgot Password?</a>\r\n </div>\r\n <a ng-click="showModal(\'sendActivationLink\')" name="button-resend-activation" id="button-resend-activation"\r\n value="" class="btn btn-primary pull-left">Resend Activation Link</a>\r\n </div>\r\n <div id="gtm" style="width: 450px;margin-top: 4em;" />\r\n</div>\r\n'),$templateCache.put("login/logout.html",'<div id="logut">Logging out...</div>'),$templateCache.put("login/register.html",'<div class="signUp-content">\n <div class="signUp-holder">\n <form name="signUpform" id="signUp-form" ng-submit="register()" class="form-horizontal" ng-show="!signUpSuccess" novalidate>\n <h1 class="title">Register</h1>\n\n <div class="alert" ng-if="loginMessage">{{loginMessage}}</div>\n <div class="control-group">\n <label class="control-label" for="register-orgName">Organization:</label>\n\n <div class="controls">\n <input type="
text" ng-model="registeredUser.orgName" id="register-orgName" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" ug-validate required class="" size="20">\n </div>\n </div>\n\n <div class="control-group">\n <label class="control-label" for="register-name">Name:</label>\n\n <div class="controls">\n <input type="text" ng-model="registeredUser.name" id="register-name" ng-pattern="nameRegex" ng-attr-title="{{nameRegexDescription}}" ug-validate required class="" size="20">\n </div>\n </div>\n\n <div class="control-group">\n <label class="control-label" for="register-userName">Username:</label>\n\n <div class="controls">\n <input type="text" ng-model="registeredUser.userName" id="register-userName" ng-pattern="usernameRegex" ng-attr-title="{{usernameRegexDescription}}" ug-validate required class="" size="20">\n </div>\n </div>\n\n <div class="control-group">\n <label
class="control-label" for="register-email">Email:</label>\n\n <div class="controls">\n <input type="email" ng-model="registeredUser.email" id="register-email" ng-pattern="emailRegex" ng-attr-title="{{emailRegexDescription}}" required class="" ug-validate size="20">\n </div>\n </div>\n\n\n <div class="control-group">\n <label class="control-label" for="register-password">Password:</label>\n\n <div class="controls">\n <input type="password" ng-pattern="passwordRegex" ng-attr-title="{{passwordRegexDescription}}" ug-validate ng-model="registeredUser.password" id="register-password" required class=""\n size="20">\n </div>\n </div>\n <div class="control-group">\n <label class="control-label" for="register-confirmPassword">Re-enter Password:</label>\n\n <div class="controls">\n <input type="password" ng-model="registeredUser.confirmPassword" required id="register-confirmPasswor
d" ug-validate class="" size="20">\n </div>\n </div>\n <div class="form-actions">\n <div class="submit">\n <input type="submit" name="button-login" ng-disabled="!signUpform.$valid" id="button-login" value="Register"\n class="btn btn-primary pull-right">\n </div>\n <div class="submit">\n <a ng-click="cancel()" type="submit" name="button-cancel" id="button-cancel"\n class="btn btn-primary pull-right">Cancel</a>\n </div>\n </div>\n </form>\n <div class="console-section well thingy" ng-show="signUpSuccess">\n <span class="title">We\'re holding a seat for you!</span>\n <br><br>\n\n <p>Thanks for signing up for a spot on our private beta. We will send you an email as soon as we\'re ready for\n you!</p>\n\n <p>In the mean time, you can stay up to date with App Services on our <a\n href="https://groups.google.com/forum/?fromgroups#!forum/usergrid">GoogleG
roup</a>.</p>\n\n <p> <a href="#!/login">Back to login</a></p>\n </div>\n </div>\n\n</div>\n'),$templateCache.put("menus/appMenu.html",'<ul id="app-menu" class="nav top-nav span12">\n <li class="span7">\n <bsmodal id="newApplication"\n title="Create New Application"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="newApplicationDialog"\n extrabuttonlabel="Create"\n buttonid="app"\n ng-cloak>\n <div ng-show="!hasApplications" class="modal-instructions" >You have no applications, please create one.</div>\n <div ng-show="hasCreateApplicationError" class="alert-error">Application already exists!</div>\n <p>New application name: <input ng-model="$parent.newApp.name" id="app-name-input" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" type="text" required ug-validate /></p>\n </bsmodal>\n <div class="btn-group">\
n <a class="btn dropdown-toggle top-selector app-selector" id="current-app-selector" data-toggle="dropdown">\n <i class="pictogram">⚙</i> {{myApp.currentApp}}\n <span class="caret"></span>\n </a>\n <ul class="dropdown-menu app-nav">\n <li name="app-selector" ng-repeat="app in applications">\n <a id="app-{{app.name}}-link-id" ng-click="appChange(app.name)">{{app.name}}</a>\n </li>\n </ul>\n </div>\n </li>\n <li class="span5">\n <a ng-if="activeUI"\n class="btn btn-create zero-out pull-right"\n ng-click="showModal(\'newApplication\')"\n analytics-on="click"\n analytics-category="App Services"\n analytics-label="Button"\n analytics-event="Add New App"\n >\n <i class="pictogram">⊞</i>\n Add New App\n </a>\n </li>\n</ul>'),$templateCache.put("menus/orgMenu.html"
,'<ul class="nav top-nav org-nav">\n <li>\n<div class="btn-group ">\n <a class="btn dropdown-toggle top-selector org-selector" id="current-org-selector" data-toggle="dropdown">\n <i class="pictogram">📁</i> {{currentOrg}}<span class="caret"></span>\n </a>\n <ul class="dropdown-menu org-nav">\n <li name="org-selector" ng-repeat="(k,v) in organizations">\n <a id="org-{{v.name}}-selector" class="org-overview" ng-click="orgChange(v.name)"> {{v.name}}</a>\n </li>\n </ul>\n </div>\n </li></ul>'),$templateCache.put("org-overview/org-overview.html",'<div class="org-overview-content" ng-show="activeUI">\n\n <page-title title=" Org Administration" icon="🕪"></page-title>\n\n <section class="row-fluid">\n\n <div class="span6">\n <bsmodal id="introjs"\n title="Welcome to the API BaaS Admin Portal"\n close="hideModal"\n closelabel="Skip"\n extrabutton="startFirstTim
eUser"\n extrabuttonlabel="Take the tour"\n ng-cloak>\n <p>To get started, click \'Take the tour\' for a full walkthrough of the admin portal, or click \'Skip\' to start working right away.</p>\n </bsmodal>\n <div id="intro-4-current-org"> \n <h2 class="title">Current Organization <a class="help_tooltip" ng-mouseover="help.sendTooltipGA(\'current org\')" ng-show="help.helpTooltipsEnabled" href="#" ng-attr-tooltip="{{tooltip_current_org}}" tooltip-placement="right">(?)</a></h2>\n <table class="table table-striped">\n <tr>\n <td id="org-overview-name">{{currentOrganization.name}}</td>\n <td style="text-align: right">{{currentOrganization.uuid}}</td>\n </tr>\n </table>\n </div>\n\n <bsmodal id="newApplication"\n title="Create New Application"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="newApplicationDialog"\n extrabuttonlabel="Create"\n
ng-cloak>\n <p>New application name: <input ng-model="$parent.newApp.name" ug-validate required type="text" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" /></p>\n </bsmodal>\n <div id="intro-5-applications"> \n <h2 class="title" > Applications <a class="help_tooltip" ng-show="help.helpTooltipsEnabled" ng-mouseover="help.sendTooltipGA(\'applications\')" href="#" ng-attr-tooltip="{{tooltip_applications}}" tooltip-placement="right">(?)</a>\n <div class="header-button btn-group pull-right">\n <a class="btn filter-selector" style="{{applicationsSize === 10 ? \'width:290px\':\'\'}}" ng-click="showModal(\'newApplication\')">\n <span class="filter-label">Add New App</span>\n </a>\n </div>\n </h2>\n \n <table class="table table-striped">\n <tr ng-repeat="application in applications">\n <td>{{application.name}}</td>\n <td style="text-align: right">{{application.uuid}}</td>\n
</tr>\n </table>\n </div>\n <bsmodal id="regenerateCredentials"\n title="Confirmation"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="regenerateCredentialsDialog"\n extrabuttonlabel="Yes"\n ng-cloak>\n Are you sure you want to regenerate the credentials?\n </bsmodal>\n <div id="intro-6-org-api-creds">\n <h2 class="title" >Organization API Credentials <a class="help_tooltip" ng-mouseover="help.sendTooltipGA(\'api org credentials\')" ng-show="help.helpTooltipsEnabled" href="#" ng-attr-tooltip="{{tooltip_org_api_creds}}" tooltip-placement="right">(?)</a>\n <div class="header-button btn-group pull-right">\n <a class="btn filter-selector" ng-click="showModal(\'regenerateCredentials\')">\n <span class="filter-label">Regenerate Org Credentials</span>\n </a>\n </div>\n </h2>\n \n <table class="table table-striped">\n <tr>\n
<td >Client ID</td>\n <td style="text-align: right" >{{orgAPICredentials.client_id}}</td>\n </tr>\n <tr>\n <td>Client Secret</td>\n <td style="text-align: right">{{orgAPICredentials.client_secret}}</td>\n </tr>\n </table>\n </div>\n <bsmodal id="newAdministrator"\n title="Create New Administrator"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="newAdministratorDialog"\n extrabuttonlabel="Create"\n ng-cloak>\n <p>New administrator email: <input id="newAdminInput" ug-validate ng-model="$parent.admin.email" pattern="emailRegex" ng-attr-title="{{emailRegexDescription}}" required type="email" /></p>\n </bsmodal>\n <div id="intro-7-org-admins">\n <h2 class="title" >Organization Administrators <a class="help_tooltip" ng-mouseover="help.sendTooltipGA(\'org admins\')" ng-show="help.helpTooltipsEnabled" href="#" ng-attr-tooltip="{{tooltip_org_admins}
}" tooltip-placement="right">(?)</a>\n <div class="header-button btn-group pull-right">\n <a class="btn filter-selector" ng-click="showModal(\'newAdministrator\')">\n <span class="filter-label">Add New Administrator</span>\n </a>\n </div>\n </h2>\n \n <table class="table table-striped">\n <tr ng-repeat="administrator in orgAdministrators">\n <td><img style="width:30px;height:30px;" ng-src="{{administrator.image}}"> {{administrator.name}}</td>\n <td style="text-align: right">{{administrator.email}}</td>\n </tr>\n </table>\n </div>\n </div>\n\n <div class="span6">\n <div id="intro-8-activities">\n <h2 class="title">Activities <a class="help_tooltip" ng-mouseover="help.sendTooltipGA(\'activities\')" ng-show="help.helpTooltipsEnabled" href="#" ng-attr-tooltip="{{tooltip_activities}}" tooltip-placement="right">(?)</a></h2>\n <table class="table table-striped">\n <tr ng-repeat="activity in ac
tivities">\n <td>{{activity.title}}</td>\n <td style="text-align: right">{{activity.date}}</td>\n </tr>\n </table>\n </div>\n </div>\n\n\n </section>\n</div>'),$templateCache.put("profile/account.html",'<page-title title=" Account Settings" icon=""></page-title>\n\n<section class="row-fluid">\n <div class="span12 tab-content">\n <div class="menu-toolbar">\n <ul class="inline">\n <li class="tab" ng-show="!use_sso" ng-class="currentAccountPage.route === \'/profile/profile\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" id="profile-link" ng-click="selectAccountPage(\'/profile/profile\')"><i class="pictogram"></i>Profile</a></li>\n <li class="tab" ng-class="currentAccountPage.route === \'/profile/organizations\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" id="account-link" ng-click="selectAccountPage(\'/profile/organizations\')"><i class="pictogram">👥</i>Organizations</a></li>\n </ul
>\n </div>\n <span ng-include="currentAccountPage.template"></span>\n </div>\n</section>'),$templateCache.put("profile/organizations.html",'<div class="content-page" ng-controller="OrgCtrl">\n\n\n\n <bsmodal id="newOrganization"\n title="Create New Organization"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="addOrganization"\n extrabuttonlabel="Create"\n ng-cloak>\n <fieldset>\n\n <div class="control-group">\n <label for="new-user-orgname">Organization Name</label>\n\n <div class="controls">\n <input type="text" required title="Name" ug-validate ng-pattern="nameRegex" ng-attr-title="{{nameRegexDescription}}" ng-model="$parent.org.name" name="name" id="new-user-orgname" class="input-xlarge"/>\n\n <p class="help-block hide"></p>\n </div>\n </div>\n\n </fieldset>\n </bsmodal>\n\n\n <div class="row-fluid" >\n <div class="span3 user-col ">\n\n
<div class="button-toolbar span12">\n\n <button class="btn btn-primary toolbar" ng-click="showModal(\'newOrganization\')" ng-show="true"><i class="pictogram"></i>\n </button>\n
<TRUNCATED>
[18/34] building changes updating bower
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/efe34294/portal/test/coverage/instrument/js/usergrid.min.js
----------------------------------------------------------------------
diff --git a/portal/test/coverage/instrument/js/usergrid.min.js b/portal/test/coverage/instrument/js/usergrid.min.js
index e1f62a2..e4030c5 100644
--- a/portal/test/coverage/instrument/js/usergrid.min.js
+++ b/portal/test/coverage/instrument/js/usergrid.min.js
@@ -1,3 +1,3 @@
-/*! usergrid@2.0.1 2014-03-27 */
+/*! usergrid@2.0.1 2014-03-28 */
angular.module("appservices").run(["$templateCache",function($templateCache){"use strict";$templateCache.put("activities/activities.html",'<section class="row-fluid">\n <div class="span12">\n <div class="page-filters">\n <h1 class="title" class="pull-left"><i class="pictogram title">📱</i> Activities</h1>\n </div>\n </div>\n\n</section>\n<section class="row-fluid">\n <div class="span12 tab-content">\n <table class="table table-striped">\n <tbody>\n <tr class="table-header">\n <td>Date</td>\n <td></td>\n <td>User</td>\n <td>Content</td>\n <td>Verb</td>\n <td>UUID</td>\n </tr>\n <tr class="zebraRows" ng-repeat="activity in activities">\n <td>{{formatDate(activity.created)}}</td>\n <td class="gravatar20"> <img ng-src="{{activity.actor.picture}}"/>\n </td>\n <td>{{activity.actor.displayName}}</td>\n <td>{{activity.content}}</td>\n <td>{{activity.verb}}</td>\n
<td>{{activity.uuid}}</td>\n </tr>\n </tbody>\n </table>\n </div>\n</section>'),$templateCache.put("app-overview/app-overview.html",'<div class="app-overview-content" >\n <section class="row-fluid">\n\n <page-title title=" Summary" icon="📱"></page-title>\n <section class="row-fluid">\n <h2 class="title" id="app-overview-title">{{currentApp}}</h2>\n </section>\n <section class="row-fluid">\n\n <div class="span6">\n <chart id="appOverview"\n chartdata="appOverview.chart"\n type="column"></chart>\n </div>\n\n <div class="span6">\n <table class="table table-striped">\n <tr class="table-header">\n <td>Path</td>\n <td>Title</td>\n </tr>\n <tr class="zebraRows" ng-repeat="(k,v) in collections">\n <td>{{v.title}}</td>\n <td>{{v.count}}</td>\n </tr>\n </table>\n </div>\n\n </section>\n</div>'),$templateCache.put("app-overview/doc-includ
es/android.html",'<h2>1. Integrate the SDK into your project</h2>\n<p>You can integrate Apigee features into your app by including the SDK in your project. You can do one of the following:</p>\n\n<ul class="nav nav-tabs" id="myTab">\n <li class="active"><a data-toggle="tab" href="#existing_project">Existing project</a></li>\n <li><a data-toggle="tab" href="#new_project">New project</a></li>\n</ul>\n\n<div class="tab-content">\n <div class="tab-pane active" id="existing_project">\n <a class="jumplink" name="add_the_sdk_to_an_existing_project"></a>\n <p>If you\'ve already got an Android project, you can integrate the Apigee SDK into your project as you normally would:</p>\n <div id="collapse">\n <a href="#jar_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a> \n </div>\n <div id="jar_collapse" class="collapse">\n <p>Add <code>apigee-android-<version>.jar</code> to your class path by doin
g the following:</p>\n \n <h3>Android 4.0 (or later) projects</h3>\n <p>Copy the jar file into the <code>/libs</code> folder in your project.</p>\n \n <h3>Android 3.0 (or earlier) projects</h3>\n <ol>\n <li>In the Eclipse <strong>Package Explorer</strong>, select your application\'s project folder.</li>\n <li>Click the <strong>File > Properties</strong> menu.</li>\n <li>In the <strong>Java Build Path</strong> section, click the <strong>Libraries</strong> tab, click <strong>Add External JARs</strong>.</li>\n <li>Browse to <code>apigee-android-<version>.jar</code>, then click <strong>Open</strong>.</li>\n <li>Order the <code>apigee-android-<version>.jar</code> at the top of the class path:\n <ol>\n <li>In the Eclipse <strong>Package Explorer</strong>, select your application\'s project folder.</li>\n <li>Click the <strong>File > Properties</strong> menu.</li>\n <li>In the properties dialog, in the&n
bsp;<strong>Java Build Path</strong> section, click the <strong>Order and Export</strong> tab.</li>\n <li>\n <p><strong>IMPORTANT:</strong> Select the checkbox for <code>apigee-android-<version>.jar</code>, then click the <strong>Top</strong> button.</p>\n </li>\n </ol>\n </li>\n </ol>\n <div class="warning">\n <h3>Applications using Ant</h3>\n <p>If you are using Ant to build your application, you must also copy <code>apigee-android-<version>.jar</code> to the <code>/libs</code> folder in your application.</p>\n </div>\n </div>\n </div>\n <div class="tab-pane" id="new_project">\n <a class="jumplink" name="create_a_new_project_based_on_the_SDK"></a>\n <p>If you don\'t have a project yet, you can begin by using the project template included with the SDK. The template includes support for SDK features.</p>\n <ul>\n <li>Locate the project template in the expanded SDK. It should be at the following location:\n
<pre><sdk_root>/new-project-template</pre>\n </li>\n </ul>\n </div>\n</div>\n<h2>2. Update permissions in AndroidManifest.xml</h2>\n<p>Add the following Internet permissions to your application\'s <code>AndroidManifest.xml</code> file if they have not already been added. Note that with the exception of INTERNET, enabling all other permissions are optional.</p>\n<pre>\n<uses-permission android:name="android.permission.INTERNET" />\n<uses-permission android:name="android.permission.READ_PHONE_STATE" />\n<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />\n<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />\n<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />\n</pre>\n<h2>3. Initialize the SDK</h2>\n<p>To initialize the App Services SDK, you must instantiate the <code>ApigeeClient</code> class. There are multiple ways to handle this step, but we recommend that you do the fo
llowing:</p>\n<ol>\n <li>Subclass the <code>Application</code> class, and add an instance variable for the <code>ApigeeClient</code> to it, along with getter and setter methods.\n <pre>\npublic class YourApplication extends Application\n{\n \n private ApigeeClient apigeeClient;\n \n public YourApplication()\n {\n this.apigeeClient = null;\n }\n \n public ApigeeClient getApigeeClient()\n {\n return this.apigeeClient;\n }\n \n public void setApigeeClient(ApigeeClient apigeeClient)\n {\n this.apigeeClient = apigeeClient;\n }\n} \n </pre>\n </li>\n <li>Declare the <code>Application</code> subclass in your <code>AndroidManifest.xml</code>. For example:\n <pre>\n<application>\n android:allowBackup="true"\n android:icon="@drawable/ic_launcher"\n android:label="@string/app_name"\n android:name=".YourApplication"\n …\n</app
lication> \n </pre>\n </li>\n <li>Instantiate the <code>ApigeeClient</code> class in the <code>onCreate</code> method of your first <code>Activity</code> class:\n <pre>\nimport com.apigee.sdk.ApigeeClient;\n\n@Override\nprotected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState); \n \n String ORGNAME = "{{currentOrg}}";\n String APPNAME = "{{currentApp}}";\n \n ApigeeClient apigeeClient = new ApigeeClient(ORGNAME,APPNAME,this.getBaseContext());\n\n // hold onto the ApigeeClient instance in our application object.\n yourApp = (YourApplication) getApplication;\n yourApp.setApigeeClient(apigeeClient); \n}\n </pre>\n <p>This will make the instance of <code>ApigeeClient</code> available to your <code>Application</code> class.</p>\n </li>\n</ol>\n<h2>4. Import additional SDK classes</h2>\n<p>The following classes will enable you to call common SDK methods:</p>\n<pre>\nimport com.apigee.sdk.data.client.DataClient; //App Services data methods\nim
port com.apigee.sdk.apm.android.MonitoringClient; //App Monitoring methods\nimport com.apigee.sdk.data.client.callbacks.ApiResponseCallback; //API response handling\nimport com.apigee.sdk.data.client.response.ApiResponse; //API response object\n</pre>\n \n<h2>5. Verify SDK installation</h2>\n\n<p>Once initialized, App Services will also automatically instantiate the <code>MonitoringClient</code> class and begin logging usage, crash and error metrics for your app.</p>\n<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n<p>To verify that the SDK has been properly initialized, run your app, then go to \'Monitoring\' > \'App Usage\' in the <a href="https://www.apigee.com/usergrid">App Services admin portal</a> to verify that data is being sent.</p>\n<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n\n<h2>Installation complete! Try these next steps</h2>\n<ul>\n <li>\n <h3><strong>Call addit
ional SDK methods in your code</strong></h3>\n <p>The <code>DataClient</code> and <code>MonitoringClient</code> classes are also automatically instantiated for you, and accessible with the following accessors:</p>\n <ul>\n <li>\n <pre>DataClient dataClient = apigeeClient.getDataClient();</pre>\n <p>Use this object to access the data methods of the App Services SDK, including those for push notifications, data store, and geolocation.</p>\n </li>\n <li>\n <pre>MonitoringClient monitoringClient = apigeeClient.getMonitoringClient();</pre>\n <p>Use this object to access the app configuration and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</p>\n </li>\n </ul>\n </li> \n <li> \n <h3><strong>Add App Services features to your app</strong></h3>\n <p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these links
to get started with a few of our most popular features:</p>\n <ul>\n <li><strong><a href="http://apigee.com/docs/node/8410">Push notifications</a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per month for free!</li>\n <li><strong>App Monitoring</strong>: When you initialize the App Services SDK, a suite of valuable, <a href="http://apigee.com/docs/node/13190">customizable</a> application monitoring features are automatically enabled that deliver the data you need to fine tune performance, analyze issues, and improve user experience.\n <ul>\n <li><strong><a href="http://apigee.com/docs/node/13176">App Usage Monitoring</a></strong>: Visit the <a href="https://apigee.com/usergrid">App Services admin portal</a> to view usage data for your app, including data on device models, platforms and OS versions running your app.</li> \n <li><strong><a
href="http://apigee.com/docs/node/12861">API Performance Monitoring</a></strong>: Network performance is key to a solid user experience. In the <a href="https://apigee.com/usergrid">App Services admin portal</a> you can view key metrics, including response time, number of requests and raw API request logs.</li> \n <li><strong><a href="http://apigee.com/docs/node/13177">Error & Crash Monitoring</a></strong>: Get alerted to any errors or crashes, then view them in the <a href="https://apigee.com/usergrid">App Services admin portal</a>, where you can also analyze raw error and crash logs.</li>\n </ul> \n </li>\n <li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Target users or return result sets based on user location to keep your app highly-relevant.</li>\n <li><strong><a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about deali
ng with a database ever again.</li>\n <li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement user registration, as well as OAuth 2.0-compliant login and authentication.</li>\n </ul>\n </li>\n <li> \n <h3><strong>Check out the sample apps</strong></h3>\n <p>The SDK includes samples that illustrate Apigee features. You\'ll find the samples in the following location in your SDK download:</p>\n <pre>\napigee-android-sdk-<version>\n ...\n /samples\n </pre>\n <div id="collapse">\n <a href="#samples_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n </div>\n <div id="samples_collapse" class="collapse">\n <p>The samples include the following:</p>\n <table class="table">\n <thead>\n <tr>\n <th scope="col">Sample</th>\n <th scope="col">Description</th>\n </tr>\n </thead>\n <tbody>\
n <tr>\n <td>books</td>\n <td>An app for storing a list of books that shows Apigee database operations such as reading, creating, and deleting.</td>\n </tr>\n <tr>\n <td>messagee</td>\n <td>An app for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n </tr>\n <tr>\n <td>push</td>\n <td>An app that uses the push feature to send notifications to the devices of users who have subscribed for them.</td>\n </tr>\n </tbody>\n </table>\n </div>\n </li>\n</ul>\n'),$templateCache.put("app-overview/doc-includes/ios.html",'<h2>1. Integrate ApigeeiOSSDK.framework</h2>\n<a class="jumplink" name="add_the_sdk_to_an_existing_project"></a>\n<ul class="nav nav-tabs" id="myTab">\n <li class="active"><a data-toggle="tab" href="#existing_project">Existing project</a></li>\n <li><a data-toggle="tab" href="#new_project">New project</a></li>\n</ul>\n<div class="tab-content">\n <div class="tab-pane activ
e" id="existing_project">\n <p>If you\'ve already got an Xcode iOS project, add it into your project as you normally would.</p>\n <div id="collapse"><a class="btn" data-toggle="collapse" href="#framework_collapse">Details</a></div>\n <div class="collapse" id="framework_collapse">\n <ol>\n <li>\n <p>Locate the SDK framework file so you can add it to your project. For example, you\'ll find the file at the following path:</p>\n <pre>\n<sdk_root>/bin/ApigeeiOSSDK.framework</pre>\n </li>\n <li>In the <strong>Project Navigator</strong>, click on your project file, and then the <strong>Build Phases</strong> tab. Expand <strong>Link Binary With Libraries</strong>.</li>\n <li>Link the Apigee iOS SDK into your project.\n <ul>\n <li>Drag ApigeeiOSSDK.framework into the Frameworks group created by Xcode.</li>\n </ul>\n <p>OR</p>\n <ol>\n <li>At the bottom of the <strong>Link Binary With Libraries</strong> group, click the <strong>+</
strong> button. Then click <strong>Add Other</strong>.</li>\n <li>Navigate to the directory that contains ApigeeiOSSDK.framework, and choose the ApigeeiOSSDK.framework folder.</li>\n </ol>\n </li>\n </ol>\n </div>\n </div>\n <div class="tab-pane" id="new_project"><a class="jumplink" name="create_a_new_project_based_on_the_SDK"></a>\n <p>If you\'re starting with a clean slate (you don\'t have a project yet), you can begin by using the project template included with the SDK. The template includes support for SDK features.</p>\n <ol>\n <li>\n <p>Locate the project template in the expanded SDK. It should be at the following location:</p>\n <pre>\n<sdk_root>/new-project-template</pre>\n </li>\n <li>In the project template directory, open the project file: Apigee App Services iOS Template.xcodeproj.</li>\n <li>Get acquainted with the template by looking at its readme file.</li>\n </ol>\n </div>\n</div>\n<h2>2. Add required iOS framework
s</h2>\n<p>Ensure that the following iOS frameworks are part of your project. To add them, under the <strong>Link Binary With Libraries</strong> group, click the <strong>+</strong> button, type the name of the framework you want to add, select the framework found by Xcode, then click <strong>Add</strong>.</p>\n<ul>\n <li>QuartzCore.framework</li>\n <li>CoreLocation.framework</li>\n <li>CoreTelephony.framework </li>\n <li>Security.framework</li>\n <li>SystemConfiguration.framework</li>\n <li>UIKit.framework</li>\n</ul>\n<h2>3. Update \'Other Linker Flags\'</h2>\n<p>In the <strong>Build Settings</strong> panel, add the following under <strong>Other Linker Flags</strong>:</p>\n<pre>\n-ObjC -all_load</pre>\n<p>Confirm that flags are set for both <strong>DEBUG</strong> and <strong>RELEASE</strong>.</p>\n<h2>4. Initialize the SDK</h2>\n<p>The <em>ApigeeClient</em> class initializes the App Services SDK. To do this you will need your organization name and application name, which are a
vailable in the <em>Getting Started</em> tab of the <a href="https://www.apigee.com/usergrid/">App Service admin portal</a>, under <strong>Mobile SDK Keys</strong>.</p>\n<ol>\n <li>Import the SDK\n <p>Add the following to your source code to import the SDK:</p>\n <pre>\n#import <ApigeeiOSSDK/Apigee.h></pre>\n </li>\n <li>\n <p>Declare the following properties in <code>AppDelegate.h</code>:</p>\n <pre>\n@property (strong, nonatomic) ApigeeClient *apigeeClient; \n@property (strong, nonatomic) ApigeeMonitoringClient *monitoringClient;\n@property (strong, nonatomic) ApigeeDataClient *dataClient; \n </pre>\n </li>\n <li>\n <p>Instantiate the <code>ApigeeClient</code> class inside the <code>didFinishLaunching</code> method of <code>AppDelegate.m</code>:</p>\n <pre>\n//Replace \'AppDelegate\' with the name of your app delegate class to instantiate it\nAppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];\n\n//Sepcify your App Services organiz
ation and application names\nNSString *orgName = @"{{currentOrg}}";\nNSString *appName = @"{{currentApp}}";\n\n//Instantiate ApigeeClient to initialize the SDK\nappDelegate.apigeeClient = [[ApigeeClient alloc]\n initWithOrganizationId:orgName\n applicationId:appName];\n \n//Retrieve instances of ApigeeClient.monitoringClient and ApigeeClient.dataClient\nself.monitoringClient = [appDelegate.apigeeClient monitoringClient]; \nself.dataClient = [appDelegate.apigeeClient dataClient]; \n </pre>\n </li>\n</ol>\n\n<h2>5. Verify SDK installation</h2>\n\n<p>Once initialized, App Services will also automatically instantiate the <code>ApigeeMonitoringClient</code> class and begin logging usage, crash and error metrics for your app.</p>\n\n<p>To verify that the SDK has been properly initialized, run your app, then go to <strong>\'Monitoring\' > \'App Usage\'</strong> in the <a href="https://www.apigee.com/usergrid"
>App Services admin portal</a> to verify that data is being sent.</p>\n<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n\n<h2>Installation complete! Try these next steps</h2>\n<ul> \n <li>\n <h3><strong>Call additional SDK methods in your code</strong></h3>\n <p>Create an instance of the AppDelegate class, then use <code>appDelegate.dataClient</code> or <code>appDelegate.monitoringClient</code> to call SDK methods:</p>\n <div id="collapse"><a class="btn" data-toggle="collapse" href="#client_collapse">Details</a></div>\n <div class="collapse" id="client_collapse">\n <ul>\n <li><code>appDelegate.dataClient</code>: Used to access the data methods of the App Services SDK, including those for push notifications, data store, and geolocation.</li>\n <li><code>appDelegate.monitoringClient</code>: Used to access the app configuration
and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</li>\n </ul>\n <h3>Example</h3>\n <p>For example, you could create a new entity with the following:</p>\n <pre>\nAppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];\nApigeeClientResponse *response = [appDelegate.dataClient createEntity:entity];\n </pre>\n </div>\n\n </li>\n <li>\n <h3><strong>Add App Services features to your app</strong></h3>\n <p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these links to get started with a few of our most popular features:</p>\n <ul>\n <li><strong><a href="http://apigee.com/docs/node/8410">Push notifications</a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per
month for free!</li>\n <li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Target users or return result sets based on user location to keep your app highly-relevant.</li>\n <li><strong><a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about dealing with a database ever again.</li>\n <li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement user registration, as well as OAuth 2.0-compliant login and authentication.</li>\n </ul>\n </li>\n <li>\n <h3><strong>Check out the sample apps</strong></h3>\n <p>The SDK includes samples that illustrate Apigee features. To look at them, open the .xcodeproj file for each in Xcode. To get a sample app running, open its project file, then follow the steps described in the section, <a target="_bla
nk" href="http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios">Add the SDK to an existing project</a>.</p>\n <p>You\'ll find the samples in the following location in your SDK download:</p>\n <pre>\napigee-ios-sdk-<version>\n ...\n /samples\n </pre>\n <div id="collapse"><a class="btn" data-toggle="collapse" href="#samples_collapse">Details</a></div>\n <div class="collapse" id="samples_collapse">\n <p>The samples include the following:</p>\n <table class="table">\n <thead>\n <tr>\n <th scope="col">Sample</th>\n <th scope="col">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>books</td>\n <td>An app for storing a list of books that shows Apigee database operations such as reading, creating, and deleting.</td>\n </tr>\n <tr>\n <td>messagee</td>\n <td>An app for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n </tr>\n <tr>\n
<td>push</td>\n <td>An app that uses the push feature to send notifications to the devices of users who have subscribed for them.</td>\n </tr>\n </tbody>\n </table>\n </div>\n <p> </p>\n </li>\n</ul>\n'),$templateCache.put("app-overview/doc-includes/javascript.html",'<h2>1. Import the SDK into your HTML</h2>\n<p>To enable support for Apigee-related functions in your HTML, you\'ll need to include <code>apigee.js</code> in your app. To do this, add the following to the <code>head</code> block of your HTML:</p>\n<pre>\n<script type="text/javascript" src="path/to/js/sdk/apigee.js"></script>\n</pre>\n<h2>2. Instantiate Apigee.Client</h2>\n<p>Apigee.Client initializes the App Services SDK, and gives you access to all of the App Services SDK methods.</p>\n<p>You will need to pass a JSON object with the UUID or name for your App Services organization and application when you instantiate it.</p>\n<pre>\n//Apigee account credentials, available in the
App Services admin portal \nvar client_creds = {\n orgName:\'{{currentOrg}}\',\n appName:\'{{currentApp}}\'\n }\n\n//Initializes the SDK. Also instantiates Apigee.MonitoringClient\nvar dataClient = new Apigee.Client(client_creds); \n</pre>\n\n<h2>3. Verify SDK installation</h2>\n\n<p>Once initialized, App Services will also automatically instantiate <code>Apigee.MonitoringClient</code> and begin logging usage, crash and error metrics for your app.</p>\n\n<p>To verify that the SDK has been properly initialized, run your app, then go to <strong>\'Monitoring\' > \'App Usage\'</strong> in the <a href="https://www.apigee.com/usergrid">App Services admin portal</a> to verify that data is being sent.</p>\n<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n\n<h2>Installation complete! Try these next steps</h2>\n<ul>\n <li> \n <
h3><strong>Call additional SDK methods in your code</strong></h3>\n <p>Use <code>dataClient</code> or <code>dataClient.monitor</code> to call SDK methods:</p>\n <div id="collapse">\n <a href="#client_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n </div>\n <div id="client_collapse" class="collapse">\n <ul>\n <li><code>dataClient</code>: Used to access the data methods of the App Services SDK, including those for push notifications, data store, and geolocation.</li>\n <li><code>dataClient.monitor</code>: Used to access the app configuration and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</li>\n </ul>\n </div>\n </li> \n <li>\n <h3><strong>Add App Services features to your app</strong></h3>\n <p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these li
nks to get started with a few of our most popular features:</p>\n <ul>\n <li><strong><a href="http://apigee.com/docs/node/8410">Push notifications</a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per month for free!</li>\n <li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Keep your app highly-relevant by targeting users or returning result sets based on user location.</li>\n <li><strong><a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about dealing with a database ever again.</li>\n <li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement registration, login and OAuth 2.0-compliant authentication.</li>\n </
ul>\n </li>\n <li>\n <h3><strong>Check out the sample apps</strong></h3>\n <p>The SDK includes samples that illustrate Apigee features. To look at them, open the .xcodeproj file for each in Xcode. You\'ll find the samples in the following location in your SDK download:</p>\n <pre>\napigee-javascript-sdk-master\n ...\n /samples \n </pre>\n <div id="collapse">\n <a href="#samples_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n </div>\n <div id="samples_collapse" class="collapse">\n <p>The samples include the following:</p>\n <table class="table">\n <thead>\n <tr>\n <th scope="col">Sample</th>\n <th scope="col">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>booksSample.html</td>\n <td>An app for storing a list of books that shows Apigee database operations such as reading, creating, and deleting.</td>\n </tr>\n <tr>\n <td>messagee</td>\n
<td>An app for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n </tr>\n <tr>\n <td>monitoringSample.html</td>\n <td>Shows basic configuration and initialization of the HTML5 app monitoring functionality. Works in browser, PhoneGap, Appcelerator, and Trigger.io.</td>\n </tr>\n <tr>\n <td>readmeSample.html</td>\n <td>A simple app for reading data from an Apigee database.</td>\n </tr>\n </tbody>\n </table>\n </div> \n </li> \n</ul>\n'),$templateCache.put("app-overview/doc-includes/net.html",""),$templateCache.put("app-overview/doc-includes/node.html",""),$templateCache.put("app-overview/doc-includes/ruby.html",""),$templateCache.put("app-overview/getting-started.html",'<div class="setup-sdk-content" >\n\n <bsmodal id="regenerateCredentials"\n title="Confirmation"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="regenerateCredentialsDialog"\
n extrabuttonlabel="Yes"\n ng-cloak>\n Are you sure you want to regenerate the credentials?\n </bsmodal>\n\n <page-title icon="🚀" title="Getting Started"></page-title>\n\n <section class="row-fluid">\n\n\n\n\n <div class="span8">\n\n <h2 class="title">Install the SDK for app {{currentApp}}</h2>\n <p>Click on a platform icon below to view SDK installation instructions for that platform.</p>\n <ul class="inline unstyled">\n <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#ios"><i class="sdk-icon-large-ios"></i></a></li>-->\n <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#android"><i class="sdk-icon-large-android"></i></a></li>-->\n <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#javascript"><i class="sdk-icon-large-js"></i></a></li>-->\n\n\n <li ng-click="showSDKDetail(\'ios\')
"\n analytics-on="click"\n analytics-label="App Services"\n analytics-category="Getting Started"\n analytics-event="iOS SDK"><i class="sdk-icon-large-ios"></i></li>\n <li ng-click="showSDKDetail(\'android\')"\n analytics-on="click"\n analytics-label="App Services"\n analytics-category="Getting Started"\n analytics-event="Android SDK"><i class="sdk-icon-large-android"></i></li>\n <li ng-click="showSDKDetail(\'javascript\')"\n analytics-on="click"\n analytics-label="App Services"\n analytics-category="Getting Started"\n analytics-event="JS SDK"><i class="sdk-icon-large-js"></i></li>\n <li><a target="_blank"\n ng-click="showSDKDetail(\'nocontent\')"\n href="http://apigee.com/docs/usergrid/content/sdks-and-examples#nodejs"\n analytics-on="click"\n analytics-label="App Services"\n
analytics-category="Getting Started"\n analytics-event="Node SDK"><i class="sdk-icon-large-node"></i></a></li>\n <li><a target="_blank"\n ng-click="showSDKDetail(\'nocontent\')"\n href="http://apigee.com/docs/usergrid/content/sdks-and-examples#ruby"\n analytics-on="click"\n analytics-label="App Services"\n analytics-category="Getting Started"\n analytics-event="Ruby SDK"><i class="sdk-icon-large-ruby"></i></a></li>\n <li><a target="_blank"\n ng-click="showSDKDetail(\'nocontent\')"\n href="http://apigee.com/docs/usergrid/content/sdks-and-examples#c"\n analytics-on="click"\n analytics-label="App Services"\n analytics-category="Getting Started"\n analytics-event="DotNet SDK"><i class="sdk-icon-large-net"></i></a></li>\n </ul>\n\n <section id="intro-container" class="row
-fluid intro-container">\n\n <div class="sdk-intro">\n </div>\n\n <div class="sdk-intro-content">\n\n <a class="btn normal white pull-right" ng-href="{{sdkLink}}" target="_blank">\n Download SDK\n </a>\n <a class="btn normal white pull-right" ng-href="{{docsLink}}" target="_blank">\n More Docs\n </a>\n <h3 class="title"><i class="pictogram">📕</i>{{contentTitle}}</h3>\n\n <div ng-include="getIncludeURL()"></div>\n </div>\n\n </section>\n </div>\n\n <div class="span4 keys-creds">\n <h2 class="title">Mobile sdk keys</h2>\n <p>For mobile SDK initialization.</p>\n <dl class="app-creds">\n <dt>Org Name</dt>\n <dd>{{currentOrg}}</dd>\n <dt>App Name</dt>\n <dd>{{currentApp}}</dd>\n </dl>\n <h2 class="title">Server app credentials</h2>\n <p>For authenticating from a server side app (i.e. Ruby, .NET, etc.)</p>\n
<dl class="app-creds">\n <dt>Client ID</dt>\n <dd>{{clientID}}</dd>\n <dt>Client Secret</dt>\n <dd>{{clientSecret}}</dd>\n <dt>\n \n </dt>\n <dd> </dd>\n\n <dt>\n <a class="btn filter-selector" ng-click="showModal(\'regenerateCredentials\')">Regenerate</a>\n </dt>\n <dd></dd>\n </dl>\n\n </div>\n\n </section>\n</div>'),$templateCache.put("data/data.html",'<div class="content-page">\n\n <bsmodal id="newCollection"\n title="Create new collection"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="newCollectionDialog"\n extrabuttonlabel="Create"\n buttonid="collection"\n ng-cloak>\n <fieldset>\n <div class="control-group">\n <label for="new-collection-name">Collection Name:</label>\n <div class="controls">\n <input type="text" ug-validate required ng-pattern="collection
NameRegex" ng-attr-title="{{collectionNameRegexDescription}}" ng-model="$parent.newCollection.name" name="collection" id="new-collection-name" class="input-xlarge"/>\n <p class="help-block hide"></p>\n </div>\n </div>\n </fieldset>\n </bsmodal>\n\n <page-title title=" Collections" icon="📾"></page-title>\n\n <section class="row-fluid">\n <div class="span3 user-col">\n <a class="btn btn-primary" id="new-collection-link" ng-click="showModal(\'newCollection\')">New Collection</a>\n <ul class="user-list">\n <li ng-class="queryCollection._type === entity.name ? \'selected\' : \'\'" ng-repeat="entity in collectionList" ng-click="loadCollection(\'/\'+entity.name);">\n <a id="collection-{{entity.name}}-link" href="javaScript:void(0)">/{{entity.name}} </a>\n </li>\n </ul>\n\n </div>\n\n <div class="span9 tab-content">\n <div class="content-page">\n <form name="dataForm" ng-submit="run();">\n
<fieldset>\n <div class="control-group">\n <div class="" data-toggle="buttons-radio">\n <!--a class="btn" id="button-query-back">◀ Back</a-->\n <!--Added disabled class to change the way button looks but their functionality is as usual -->\n <label class="control-label" style="display:none"><strong>Method</strong> <a id="query-method-help" href="#" class="help-link">get help</a></label>\n <input type="radio" id="create-rb" name="query-action" style="margin-top: -2px;" ng-click="selectPOST();" ng-checked="verb==\'POST\'"> CREATE \n <input type="radio" id="read-rb" name="query-action" style="margin-top: -2px;" ng-click="selectGET();" ng-checked="verb==\'GET\'"> READ \n <input type="radio" id="update-rb" name="query-action" style="margin-top: -2px;" ng-click="selectPUT();" ng-checked="verb==\'PUT\'"> UPDATE \n <input type="r
adio" id="delete-rb" name="query-action" style="margin-top: -2px;" ng-click="selectDELETE();" ng-checked="verb==\'DELETE\'"> DELETE\n </div>\n </div>\n\n <div class="control-group">\n <strong>Path </strong>\n <div class="controls">\n <input ng-model="data.queryPath" type="text" ug-validate id="pathDataQuery" ng-attr-title="{{pathRegexDescription}}" ng-pattern="pathRegex" class="span6" autocomplete="off" placeholder="ex: /users" required/>\n </div>\n </div>\n <div class="control-group">\n <a id="back-to-collection" class="outside-link" style="display:none">Back to collection</a>\n </div>\n <div class="control-group">\n <strong>Query</strong>\n <div class="controls">\n <input ng-model="data.searchString" type="text" class="span6" autocomplete="off" placeholder="ex: select * where name=\'fred\'"/>\n <div style="display
:none">\n <a class="btn dropdown-toggle " data-toggle="dropdown">\n <span id="query-collections-caret" class="caret"></span>\n </a>\n <ul id="query-collections-indexes-list" class="dropdown-menu ">\n </ul>\n </div>\n </div>\n </div>\n\n\n <div class="control-group" ng-show="verb==\'GET\' || verb==\'DELETE\'">\n <label class="control-label" for="query-limit"><strong>Limit</strong> <a id="query-limit-help" href="#" ng-show="false" class="help-link">get help</a></label>\n <div class="controls">\n <div class="input-append">\n <input ng-model="data.queryLimit" type="text" class="span5" id="query-limit" placeholder="ex: 10">\n </div>\n </div>\n </div>\n\n <div class="control-group" style="display:{{queryBodyDisplay}}">\n <label class="control-label" for="query-source"><s
trong>JSON Body</strong> <a id="query-json-help" href="#" ng-show="false" class="help-link">get help</a></label>\n <div class="controls">\n <textarea ng-model="data.queryBody" id="query-source" class="span6 pull-left" rows="4">\n { "name":"value" }\n </textarea>\n <br>\n <a class="btn pull-left" ng-click="validateJson();">Validate JSON</a>\n </div>\n </div>\n <div style="clear: both; height: 10px;"></div>\n <div class="control-group">\n <input type="submit" ng-disabled="!dataForm.$valid || loading" class="btn btn-primary" id="button-query" value="{{loading ? loadingText : \'Run Query\'}}"/>\n </div>\n </fieldset>\n </form>\n'+" <div ng-include=\"display=='generic' ? 'data/display-generic.html' : ''\"></div>\n <div ng-include=\"display=='users' ? 'data/display-users.html' : ''\"></div>\n <div ng-include=\"display=='groups' ? 'data/
display-groups.html' : ''\"></div>\n <div ng-include=\"display=='roles' ? 'data/display-roles.html' : ''\"></div>\n\n </div>\n\n </div>\n </section>\n\n\n\n\n</div>\n\n"),$templateCache.put("data/display-generic.html",'\n\n<bsmodal id="deleteEntities"\n title="Are you sure you want to delete the entities(s)?"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="deleteEntitiesDialog"\n extrabuttonlabel="Delete"\n buttonid="del-entity"\n ng-cloak>\n <fieldset>\n <div class="control-group">\n </div>\n </fieldset>\n</bsmodal>\n\n<span class="button-strip">\n <button class="btn btn-primary" ng-disabled="!valueSelected(queryCollection._list) || deleteLoading" ng-click="deleteEntitiesDialog()">{{deleteLoading ? loadingText : \'Delete Entity(s)\'}}</button>\n</span>\n<table class="table table-striped collection-list">\n <thead>\n <tr class="table-header">\n <th><input type="checkbox" n
g-show="queryCollection._list.length > 0" id="selectAllCheckbox" ng-model="queryBoxesSelected" ng-click="selectAllEntities(queryCollection._list,$parent,\'queryBoxesSelected\',true)"></th>\n <th ng-if="hasProperty(\'name\')">Name</th>\n <th>UUID</th>\n <th></th>\n </tr>\n </thead>\n <tbody ng-repeat="entity in queryCollection._list">\n <tr class="zebraRows" >\n <td>\n <input\n type="checkbox"\n id="entity-{{entity._data.name}}-cb"\n ng-value="entity._data.uuid"\n ng-model="entity.checked"\n >\n </td>\n <td ng-if="hasProperty(\'name\')">{{entity._data.name}}</td>\n <td>{{entity._data.uuid}}</td>\n <td><a href="javaScript:void(0)" ng-click="entitySelected[$index] = !entitySelected[$index];selectEntity(entity._data.uuid)">{{entitySelected[$index] ? \'Hide\' : \'View\'}} Details</a></td>\n </tr>\n <tr ng-if="entitySelected[$index]">\n <td colspan="5">\n\n\n <h4 style="margin: 0 0 20px 0">Entity Detail</h4>\n\n
\n <ul class="formatted-json">\n <li ng-repeat="(k,v) in entity._data track by $index">\n <span class="key">{{k}} :</span>\n <!--todo - doing manual recursion to get this out the door for launch, please fix-->\n <span ng-switch on="isDeep(v)">\n <ul ng-switch-when="true">\n <li ng-repeat="(k2,v2) in v"><span class="key">{{k2}} :</span>\n\n <span ng-switch on="isDeep(v2)">\n <ul ng-switch-when="true">\n <li ng-repeat="(k3,v3) in v2"><span class="key">{{k3}} :</span><span class="value">{{v3}}</span></li>\n </ul>\n <span ng-switch-when="false">\n <span class="value">{{v2}}</span>\n </span>\n </span>\n </li>\n </ul>\n <span ng-switch-when="false">\n <span class="value">{{v}}</span>\n </span>\n </span>\n </li>\n <
/ul>\n\n <div class="control-group">\n <h4 style="margin: 20px 0 20px 0">Edit Entity</h4>\n <div class="controls">\n <textarea ng-model="entity._json" class="span12" rows="12"></textarea>\n <br>\n <a class="btn btn-primary toolbar pull-left" ng-click="validateJson();">Validate JSON</a><button type="button" class="btn btn-primary pull-right" id="button-query" ng-click="saveEntity(entity);">Save</button>\n </div>\n </div>\n </td>\n </tr>\n\n <tr ng-show="queryCollection._list.length == 0">\n <td colspan="4">No data found</td>\n </tr>\n </tbody>\n</table>\n<div style="padding: 10px 5px 10px 5px">\n <button class="btn btn-primary toolbar" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous</button>\n <button class="btn btn-primary toolbar" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n</div>\n\n'),$templateCache.put("data/display-groups.html",""),$templateCache.put("data/displ
ay-roles.html","roles---------------------------------"),$templateCache.put("data/display-users.html",'\n<table id="query-response-table" class="table">\n <tbody>\n <tr class="zebraRows users-row">\n <td class="checkboxo">\n <input type="checkbox" onclick="Usergrid.console.selectAllEntities(this);"></td>\n <td class="gravatar50-td"> </td>\n <td class="user-details bold-header">Username</td>\n <td class="user-details bold-header">Display Name</td>\n <td class="user-details bold-header">UUID</td>\n <td class="view-details"> </td>\n </tr>\n <tr class="zebraRows users-row">\n <td class="checkboxo">\n <input class="listItem" type="checkbox" name="/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7" value="bf9a95da-d508-11e2-bf44-236d2eee13a7">\n </td>\n <td class="gravatar50-td">\n <img src="http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e" class="gravatar50">\n </td>\n <td
class="details">\n <a onclick="Usergrid.console.getCollection(\'GET\', \'/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/\'+\'bf9a95da-d508-11e2-bf44-236d2eee13a7\'); $(\'#data-explorer\').show(); return false;" class="view-details">10</a>\n </td>\n <td class="details"> #"><img src=x onerror=prompt(1);> </td>\n <td class="details"> bf9a95da-d508-11e2-bf44-236d2eee13a7 </td>\n <td class="view-details">\n <a href="" onclick="$(\'#query-row-bf9a95da-d508-11e2-bf44-236d2eee13a7\').toggle(); $(\'#data-explorer\').show(); return false;" class="view-details">Details</a>\n </td>\n </tr>\n <tr id="query-row-bf9a95da-d508-11e2-bf44-236d2eee13a7" style="display:none">\n <td colspan="5">\n <div>\n <div style="padding-bottom: 10px;">\n <button type="button" class="btn btn-small query-button active" id="button-query-show-row-JSON" onclick="Usergrid.console.activateQueryRowJSONButton(); $(\'#query-row-JSON-bf9a95da-d50
8-11e2-bf44-236d2eee13a7\').show(); $(\'#query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7\').hide(); return false;">JSON</button>\n <button type="button" class="btn btn-small query-button disabled" id="button-query-show-row-content" onclick="Usergrid.console.activateQueryRowContentButton();$(\'#query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7\').show(); $(\'#query-row-JSON-bf9a95da-d508-11e2-bf44-236d2eee13a7\').hide(); return false;">Content</button>\n </div>\n <div id="query-row-JSON-bf9a95da-d508-11e2-bf44-236d2eee13a7">\n <pre>{\n "picture": "http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e",\n "uuid": "bf9a95da-d508-11e2-bf44-236d2eee13a7",\n "type": "user",\n "name": "#"><img src=x onerror=prompt(1);>",\n "created": 1371224432557,\n "modified": 1371851347024,\n "username": "10",\n "email": "fdsafdsa@ookfd.com",\n "activated": "true",\n "adr": {\n "addr1": "",\n "addr2": "",\n "city": "",
\n "state": "",\n "zip": "",\n "country": ""\n },\n "metadata": {\n "path": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7",\n "sets": {\n "rolenames": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/rolenames",\n "permissions": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/permissions"\n },\n "collections": {\n "activities": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/activities",\n "devices": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/devices",\n "feed": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/feed",\n "groups": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/groups",\n "roles": "/users/8bb9a3fa-d508-1
1e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/roles",\n "following": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/following",\n "followers": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/followers"\n }\n },\n "title": "#"><img src=x onerror=prompt(1);>"\n}</pre>\n </div>\n <div id="query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7" style="display:none">\n <table>\n <tbody>\n <tr>\n <td>picture</td>\n <td>http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e</td></tr><tr><td>uuid</td><td>bf9a95da-d508-11e2-bf44-236d2eee13a7</td></tr><tr><td>type</td><td>user</td></tr><tr><td>name</td><td>#&quot;&gt;&lt;img src=x onerror=prompt(1);&gt;</td></tr><tr><td>created</td><td>1371224432557</td></tr><tr><td>modified</td><td>1371851347024</td></tr><tr><td>u
sername</td><td>10</td></tr><tr><td>email</td><td>fdsafdsa@ookfd.com</td></tr><tr><td>activated</td><td>true</td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>addr1</td><td></td></tr><tr><td>addr2</td><td></td></tr><tr><td>city</td><td></td></tr><tr><td>state</td><td></td></tr><tr><td>zip</td><td></td></tr><tr><td>country</td><td></td></tr></tbody></table></td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>path</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7</td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>rolenames</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/rolenames</td></tr><tr><td>permissions</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/permissions</td></tr></tbody></table></td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr
><td>activities</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/activities</td></tr><tr><td>devices</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/devices</td></tr><tr><td>feed</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/feed</td></tr><tr><td>groups</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/groups</td></tr><tr><td>roles</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/roles</td></tr><tr><td>following</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/following</td></tr><tr><td>followers</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/followers</td></tr></tbody></table></td></tr></tbody></table></td></tr><tr><td>title</td><td>
#&quot;&gt;&lt;img src=x onerror=prompt(1);&gt;</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n</table>'),$templateCache.put("data/entity.html",'<div class="content-page">\n\n <h4>Entity Detail</h4>\n <div class="well">\n <a href="#!/data" class="outside-link"><< Back to collection</a>\n </div>\n <fieldset>\n <div class="control-group">\n <strong>Path </strong>\n <div class="controls">\n {{entityType}}/{{entityUUID}}\n </div>\n </div>\n\n <div class="control-group">\n <label class="control-label" for="query-source"><strong>JSON Body</strong></label>\n <div class="controls">\n <textarea ng-model="queryBody" class="span6 pull-left" rows="12">{{queryBody}}</textarea>\n <br>\n <a class="btn pull-left" ng-click="validateJson();">Validate JSON</a>\n </div>\n </div>\n <div style="clear: both; height: 10px;"></div>\
n <div class="control-group">\n <button type="button" class="btn btn-primary" id="button-query" ng-click="saveEntity();">Save</button>\n <!--button type="button" class="btn btn-primary" id="button-query" ng-click="run();">Delete</button-->\n </div>\n </fieldset>\n\n</div>\n\n'),$templateCache.put("data/shell.html",'<div class="content-page">\n <div class="well">\n <h2>Interactive Shell</h2>\n <div style="float:right"><a target="_blank" href="http://apigee.com/docs/usergrid/content/usergrid-admin-portal" class="notifications-links">Learn more in our docs</a></div>\n </div>\n\n <div class="console-section-contents">\n <div id="shell-input-div">\n <p> Type "help" to view a list of the available commands.</p><hr>\n <span> >> </span>\n <!--textarea id="shell-input" rows="2" autofocus="autofocus"></textarea-->\n </div>\n <pre id="shell-output" class="prettyprint lang-js" style="overflow-x: auto; height: 400px;"><span class="pl
n"> </span><p><span class="pln"> </span><span class="typ">Response</span><span class="pun">:</span></p><hr><span class="pln">\n </span></pre>\n </div>\n</div>'),$templateCache.put("dialogs/modal.html",' <div class="modal show fade" tabindex="-1" role="dialog" aria-hidden="true">\n <form ng-submit="extraDelegate(extrabutton)" name="dialogForm" novalidate>\n\n <div class="modal-header">\n <h1 class="title">{{title}}</h1>\n </div>\n\n <div class="modal-body" ng-transclude></div>\n <div class="modal-footer">\n {{footertext}}\n <input type="submit" class="btn" id="dialogButton-{{buttonId}}" ng-if="extrabutton" ng-disabled="!dialogForm.$valid" aria-hidden="true" ng-value="extrabuttonlabel"/>\n <button class="btn cancel pull-left" data-dismiss="modal" aria-hidden="true"\n ng-click="closeDelegate(close)">{{closelabel}}\n </button>\n </div>\n
</form> </div>\n'),$templateCache.put("global/appswitcher-template.html",'<li id="globalNav" class="dropdown dropdownContainingSubmenu active">\n <a class="dropdown-toggle" data-toggle="dropdown">API Platform<b class="caret"></b></a>\n <ul class="dropdown-menu pull-right">\n <li id="globalNavSubmenuContainer">\n <ul>\n <li data-globalNavDetail="globalNavDetailApigeeHome"><a target="_blank" href="http://apigee.com">Apigee Home</a></li>\n <li data-globalNavDetail="globalNavDetailAppServices" class="active"><a target="_blank" href="https://apigee.com/usergrid/">App Services</a></li>\n <li data-globalNavDetail="globalNavDetailApiPlatform" ><a target="_blank" href="https://enterprise.apigee.com">API Platform</a></li>\n <li data-globalNavDetail="globalNavDetailApiConsoles"><a target="_blank" href="http://apigee.com/providers">API Consoles</a></li>\n </ul>\n </li>\n <li id="globalNavDetail">\n <div id="globalNavDetailApigeeHome">\n
<div class="globalNavDetailApigeeLogo"></div>\n <div class="globalNavDetailDescription">You need apps and apps need APIs. Apigee is the leading API platform for enterprises and developers.</div>\n </div>\n <div id="globalNavDetailAppServices">\n <div class="globalNavDetailSubtitle">For App Developers</div>\n <div class="globalNavDetailTitle">App Services</div>\n <div class="globalNavDetailDescription">Build engaging applications, store data, manage application users, and more.</div>\n </div>\n <div id="globalNavDetailApiPlatform">\n <div class="globalNavDetailSubtitle">For API Developers</div>\n <div class="globalNavDetailTitle">API Platform</div>\n <div class="globalNavDetailDescription">Create, configure, manage and analyze your APIs and resources.</div>\n </div>\n <div id="globalNavDetailApiConsoles">\n <div class="globalNavDetailSubtitle">For API Developers</div>\n <div class="glo
balNavDetailTitle">API Consoles</div>\n <div class="globalNavDetailDescription">Explore over 100 APIs with the Apigee API Console, or create and embed your own API Console.</div>\n </div>\n </li>\n </ul>\n</li>'),$templateCache.put("global/insecure-banner.html",'<div ng-if="securityWarning" ng-cloak class="demo-holder">\n <div class="alert alert-demo alert-animate">\n <div class="alert-text">\n <i class="pictogram">⚠</i>Warning: This application has "sandbox" permissions and is not production ready. <a target="_blank" href="http://apigee.com/docs/app-services/content/securing-your-app">Please go to our security documentation to find out more.</a></span>\n </div>\n </div>\n</div>'),$templateCache.put("global/page-title.html",'<section class="row-fluid">\n <div class="span12">\n <div class="page-filters">\n <h1 class="title pull-left" id="pageTitle"><i class="pictogram title" style="padding-right: 5px;">{{icon}}
</i>{{title}} <a class="super-help" href="http://community.apigee.com/content/apigee-customer-support" target="_blank" >(need help?)</a></h1>\n </div>\n </div>\n <bsmodal id="need-help"\n title="Need Help?"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="sendHelp"\n extrabuttonlabel="Get Help"\n ng-cloak>\n <p>Do you want to contact support? Support will get in touch with you as soon as possible.</p>\n </bsmodal>\n</section>\n\n'),$templateCache.put("groups/groups-activities.html",'<div class="content-page" ng-controller="GroupsActivitiesCtrl">\n\n <br>\n <div>\n <table class="table table-striped">\n <tbody>\n <tr class="table-header">\n <td>Date</td>\n <td>Content</td>\n <td>Verb</td>\n <td>UUID</td>\n </tr>\n <tr class="zebraRows" ng-repeat="activity in selectedGroup.activities">\n <td>{{activity.createdDate}}</td>\n
<td>{{activity.content}}</td>\n <td>{{activity.verb}}</td>\n <td>{{activity.uuid}}</td>\n </tr>\n </tbody>\n </table>\n </div>\n\n\n</div>'),$templateCache.put("groups/groups-details.html",'<div class="content-page" ng-controller="GroupsDetailsCtrl">\n\n <div>\n <form name="updateGroupDetailForm" ng-submit="saveSelectedGroup()" novalidate>\n <div style="float: left; padding-right: 30px;">\n <h4 class="ui-dform-legend">Group Information</h4>\n <label for="group-title" class="ui-dform-label">Group Title</label>\n <input type="text" id="group-title" ng-pattern="titleRegex" ng-attr-title="{{titleRegexDescription}}" required class="ui-dform-text" ng-model="group.title" ug-validate>\n <br/>\n <label for="group-path" class="ui-dform-label">Group Path</label>\n <input type="text" id="group-path" required ng-attr-title="{{pathRegexDescription}}" placeholder="ex: /mydata"
ng-pattern="pathRegex" class="ui-dform-text" ng-model="group.path" ug-validate>\n <br/>\n </div>\n <br style="clear:both"/>\n\n <div style="width:100%;float:left;padding: 20px 0">\n <input type="submit" value="Save Group" style="margin-right: 15px;" ng-disabled="!updateGroupDetailForm.$valid" class="btn btn-primary" />\n </div>\n\n <div class="content-container">\n <h4>JSON Group Object</h4>\n <pre>{{json}}</pre>\n </div>\n </form>\n </div>\n\n\n</div>'),$templateCache.put("groups/groups-members.html",'<div class="content-page" ng-controller="GroupsMembersCtrl">\n\n\n <bsmodal id="removeFromGroup"\n title="Confirmation"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="removeUsersFromGroupDialog"\n extrabuttonlabel="Delete"\n ng-cloak>\n <p>Are you sure you want to remove the users from the seleted group
(s)?</p>\n </bsmodal>\n\n <bsmodal id="addGroupToUser"\n title="Add user to group"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="addGroupToUserDialog"\n extrabuttonlabel="Add"\n ng-cloak>\n <div class="btn-group">\n <a class="btn dropdown-toggle filter-selector" data-toggle="dropdown">\n <span class="filter-label">{{$parent.user != \'\' ? $parent.user.username : \'Select a user...\'}}</span>\n <span class="caret"></span>\n </a>\n <ul class="dropdown-menu">\n <li ng-repeat="user in $parent.usersTypeaheadValues" class="filterItem"><a ng-click="$parent.$parent.user = user">{{user.username}}</a></li>\n </ul>\n </div>\n </bsmodal>\n\n\n <div class="button-strip">\n <button class="btn btn-primary" ng-click="showModal(\'addGroupToUser\')">Add User to Group</button>\n <button class="btn btn-primary" ng-disabled="!hasMembers || !valueSelected(groupsCollection.users
._list)" ng-click="showModal(\'removeFromGroup\')">Remove User(s) from Group</button>\n </div>\n <table class="table table-striped">\n <tr class="table-header">\n <td style="width: 30px;"><input type="checkbox" ng-show="hasMembers" id="selectAllCheckbox" ng-model="groupMembersSelected" ng-click="selectAllEntities(groupsCollection.users._list,this,\'groupMembersSelected\')"></td>\n <td style="width: 50px;"></td>\n <td>Username</td>\n <td>Display Name</td>\n </tr>\n <tr class="zebraRows" ng-repeat="user in groupsCollection.users._list">\n <td>\n <input\n type="checkbox"\n ng-model="user.checked"\n >\n </td>\n <td><img style="width:30px;height:30px;" ng-src="{{user._portal_image_icon}}"></td>\n <td>{{user.get(\'username\')}}</td>\n <td>{{user.get(\'name\')}}</td>\n </tr>\n </table>\n <div style="padding: 10px 5px 10px 5px">\n <button class="btn btn-primary" ng-click="getPrevious()" style="
display:{{previous_display}}">< Previous</button>\n <button class="btn btn-primary" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n </div>\n</div>'),$templateCache.put("groups/groups-roles.html",'<div class="content-page" ng-controller="GroupsRolesCtrl">\n\n <bsmodal id="addGroupToRole"\n title="Add group to role"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="addGroupToRoleDialog"\n extrabuttonlabel="Add"\n ng-cloak>\n <div class="btn-group">\n <a class="btn dropdown-toggle filter-selector" data-toggle="dropdown">\n <span class="filter-label">{{$parent.name != \'\' ? $parent.name : \'Role name...\'}}</span>\n <span class="caret"></span>\n </a>\n <ul class="dropdown-menu">\n <li ng-repeat="role in $parent.rolesTypeaheadValues" class="filterItem"><a ng-click="$parent.$parent.name = role.name">{{role.name}}</a></li>\n </ul>\n <
/div>\n </bsmodal>\n\n <bsmodal id="leaveRoleFromGroup"\n title="Confirmation"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="leaveRoleDialog"\n extrabuttonlabel="Leave"\n ng-cloak>\n <p>Are you sure you want to remove the group from the role(s)?</p>\n </bsmodal>\n\n\n <div class="button-strip">\n <button class="btn btn-primary" ng-click="showModal(\'addGroupToRole\')">Add Role to Group</button>\n <button class="btn btn-primary" ng-disabled="!hasRoles || !valueSelected(groupsCollection.roles._list)" ng-click="showModal(\'leaveRoleFromGroup\')">Remove Role(s) from Group</button>\n </div>\n <h4>Roles</h4>\n <table class="table table-striped">\n <tbody>\n <tr class="table-header">\n <td style="width: 30px;"><input type="checkbox" ng-show="hasRoles" id="groupsSelectAllCheckBox" ng-model="groupRoleSelected" ng-click="selectAllEntities(groupsCollection.roles._list,this,\'groupRoleSelected\')"
></td>\n <td>Role Name</td>\n <td>Role title</td>\n </tr>\n <tr class="zebraRows" ng-repeat="role in groupsCollection.roles._list">\n <td>\n <input\n type="checkbox"\n ng-model="role.checked"\n >\n </td>\n <td>{{role._data.name}}</td>\n <td>{{role._data.title}}</td>\n </tr>\n </tbody>\n </table>\n <div style="padding: 10px 5px 10px 5px">\n <button class="btn btn-primary" ng-click="getPreviousRoles()" style="display:{{roles_previous_display}}">< Previous</button>\n <button class="btn btn-primary" ng-click="getNextRoles()" style="display:{{roles_next_display}};float:right;">Next ></button>\n </div>\n\n\n <bsmodal id="deletePermission"\n title="Confirmation"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="deleteGroupPermissionDialog"\n extrabuttonlabel="Delete"\n ng-cloak>\n <p>Are you sure you want to delete the permission(s)?</p
>\n </bsmodal>\n\n\n <bsmodal id="addPermission"\n title="New Permission"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="addGroupPermissionDialog"\n extrabuttonlabel="Add"\n ng-cloak>\n <p>Path: <input ng-model="$parent.permissions.path" placeholder="ex: /mydata" id="groupsrolespermissions" type="text" ng-pattern="pathRegex" ng-attr-title="{{pathRegexDescription}}" required ug-validate /></p>\n <div class="control-group">\n <input type="checkbox" ng-model="$parent.permissions.getPerm"> GET\n </div>\n <div class="control-group">\n <input type="checkbox" ng-model="$parent.permissions.postPerm"> POST\n </div>\n <div class="control-group">\n <input type="checkbox" ng-model="$parent.permissions.putPerm"> PUT\n </div>\n <div class="control-group">\n <input type="checkbox" ng-model="$parent.permissions.deletePerm"> DELETE\n </div>\n </bsmodal>\n\n\n <div class="button-s
trip">\n <button class="btn btn-primary" ng-click="showModal(\'addPermission\')">Add Permission</button>\n <button class="btn btn-primary" ng-disabled="!hasPermissions || !valueSelected(selectedGroup.permissions)" ng-click="showModal(\'deletePermission\')">Delete Permission(s)</button>\n </div>\n <h4>Permissions</h4>\n <table class="table table-striped">\n <tbody>\n <tr class="table-header">\n <td style="width: 30px;"><input ng-show="hasPermissions" type="checkbox" id="permissionsSelectAllCheckBox" ng-model="groupPermissionsSelected" ng-click="selectAllEntities(selectedGroup.permissions,this,\'groupPermissionsSelected\')" ></td>\n <td>Path</td>\n <td>GET</td>\n <td>POST</td>\n <td>PUT</td>\n <td>DELETE</td>\n </tr>\n <tr class="zebraRows" ng-repeat="permission in selectedGroup.permissions">\n <td>\n <input\n type="checkbox"\n ng-model="permission.checked"\n >\n </td>\n <td>{{permissi
on.path}}</td>\n <td>{{permission.operations.get}}</td>\n <td>{{permission.operations.post}}</td>\n <td>{{permission.operations.put}}</td>\n <td>{{permission.operations.delete}}</td>\n </tr>\n </tbody>\n </table>\n\n</div>'),$templateCache.put("groups/groups-tabs.html",'<div class="content-page">\n\n <section class="row-fluid">\n\n <div class="span12">\n <div class="page-filters">\n <h1 class="title" class="pull-left"><i class="pictogram title">👥</i> Groups</h1>\n </div>\n </div>\n\n </section>\n\n <div id="user-panel" class="panel-buffer">\n <ul id="user-panel-tab-bar" class="nav nav-tabs">\n <li><a href="javaScript:void(0);" ng-click="gotoPage(\'groups\')">Group List</a></li>\n <li ng-class="detailsSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/details\')">Details</a></li>\n <li ng-class="membersSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/members\')">Users</a
></li>\n <li ng-class="activitiesSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/activities\')">Activities</a></li>\n <li ng-class="rolesSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/roles\')">Roles & Permissions</a></li>\n </ul>\n </div>\n\n <div style="float: left; margin-right: 10px;">\n <div style="float: left;">\n <div class="user-header-title"><strong>Group Path: </strong>{{selectedGroup.get(\'path\')}}</div>\n <div class="user-header-title"><strong>Group Title: </strong>{{selectedGroup.get(\'title\')}}</div>\n </div>\n </div>\n</div>\n<br>\n<br>\n'),$templateCache.put("groups/groups.html",'<div class="content-page">\n\n <page-title title=" Groups" icon="👥"></page-title>\n <bsmodal id="newGroup"\n title="New Group"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="newGroupDialog"\n extrabuttonlabel="Add"\n ng-model="dialog"\
n ng-cloak>\n <fieldset>\n <div class="control-group">\n <label for="title">Title</label>\n <div class="controls">\n <input type="text" id="title" ng-pattern="titleRegex" ng-attr-title="{{titleRegexDescription}}" required ng-model="newGroup.title"class="input-xlarge" ug-validate/>\n </div>\n </div>\n <div class="control-group">\n <label for="path">Path</label>\n <div class="controls">\n <input id="path" type="text" ng-attr-title="{{pathRegexDescription}}" placeholder="ex: /mydata" ng-pattern="pathRegex" required ng-model="newGroup.path" class="input-xlarge" ug-validate/>\n </div>\n </div>\n </fieldset>\n </bsmodal>\n\n <bsmodal id="deleteGroup"\n title="Delete Group"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="deleteGroupsDialog"\n extrabuttonlabel="Delete"\n ng-cloak>\n <p>Are you sure you want to delete the gr
oup(s)?</p>\n </bsmodal>\n\n\n <section class="row-fluid">\n <div class="span3 user-col">\n\n <div class="button-toolbar span12">\n <a title="Select All" class="btn btn-primary select-all toolbar" ng-show="hasGroups" ng-click="selectAllEntities(groupsCollection._list,this,\'groupBoxesSelected\',true)"> <i class="pictogram">⊟</i></a>\n <button title="Delete" class="btn btn-primary toolbar" ng-disabled="!hasGroups || !valueSelected(groupsCollection._list)" ng-click="showModal(\'deleteGroup\')"><i class="pictogram">☕</i></button>\n <button title="Add" class="btn btn-primary toolbar" ng-click="showModal(\'newGroup\')"><i class="pictogram"></i></button>\n </div>\n <ul class="user-list">\n <li ng-class="selectedGroup._data.uuid === group._data.uuid ? \'selected\' : \'\'" ng-repeat="group in groupsCollection._list" ng-click="selectGroup(group._data.uuid)">\n <input\n type="checkbox"\n ng-
value="group._data.uuid"\n ng-checked="group.checked"\n ng-model="group.checked"\n >\n <a href="javaScript:void(0)" >{{group.get(\'title\')}}</a>\n <br/>\n <span ng-if="group.get(\'path\')" class="label">Path:</span>/{{group.get(\'path\')}}\n </li>\n </ul>\n\n\n <div style="padding: 10px 5px 10px 5px">\n <button class="btn btn-primary" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous</button>\n <button class="btn btn-primary" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n </div>\n\n </div>\n\n <div class="span9 tab-content" ng-show="selectedGroup.get" >\n <div class="menu-toolbar">\n <ul class="inline" >\n <li class="tab" ng-class="currentGroupsPage.route === \'/groups/details\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/details\')"><i class="p
ictogram"></i>Details</a></li>\n <li class="tab" ng-class="currentGroupsPage.route === \'/groups/members\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/members\')"><i class="pictogram">👥</i>Users</a></li>\n <li class="tab" ng-class="currentGroupsPage.route === \'/groups/activities\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/activities\')"><i class="pictogram"></i>Activities</a></li>\n <li class="tab" ng-class="currentGroupsPage.route === \'/groups/roles\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/roles\')"><i class="pictogram">🌎</i>Roles & Permissions</a></li>\n </ul>\n </div>\n <span ng-include="currentGroupsPage.template"></span>\n\n </section>\n</div>\n'),$templateCache.put("login/forgot-password.html",'<div class="login-content" ng-controller="Forgo
tPasswordCtrl">\n <iframe class="container" ng-src="{{forgotPWiframeURL}}" id="forgot-password-frame" border="0" style="border:0;width:600px;height:620px;">\n <p>Email Address: <input id="resetPasswordEmail" name="resetPasswordEmail" /></p>\n <button class="btn btn-primary" ng-click="">Reset Password</button>\n</div>\n'),$templateCache.put("login/loading.html","\n\n<h1>Loading...</h1>"),$templateCache.put("login/login.html",'<div class="login-content">\r\n <bsmodal id="sendActivationLink"\r\n title="Resend Activation Link"\r\n close="hideModal"\r\n closelabel="Cancel"\r\n extrabutton="resendActivationLink"\r\n extrabuttonlabel="Send Activation"\r\n ng-cloak>\r\n <fieldset>\r\n <p>Email to send to: <input type="email" required ng-model="$parent.activation.id" ng-pattern="emailRegex" ng-attr-title="{{emailRegexDescription}}" name="activationId" id="user-activationId" class="input-xlarge"/></p>\r\n </fieldset>\r\n
</bsmodal>\r\n <div class="login-holder">\r\n <form name="loginForm" id="login-form" ng-submit="login()" class="form-horizontal" novalidate>\r\n <h1 class="title">Enter your credentials</h1>\r\n <div class="alert-error" id="loginError" ng-if="loginMessage">{{loginMessage}}</div>\r\n <div class="control-group">\r\n <label class="control-label" for="login-username">Email or Username:</label>\r\n <div class="controls">\r\n <input type="text" ng-model="login.username" title="Please add a username or email." class="" id="login-username" required ng-value="login.username" size="20" ug-validate>\r\n </div>\r\n </div>\r\n <div class="control-group">\r\n <label class="control-label" for="login-password">Password:</label>\r\n <div class="controls">\r\n <input type="password" ng-model="login.password" required id="login-password" class="" ng-value="login.password" size="20" ug-validate>\r\n </div>\r\n </div>\r\n <div class
="control-group" ng-show="requiresDeveloperKey">\r\n <label class="control-label" for="login-developerkey">Developer Key:</label>\r\n <div class="controls">\r\n <input type="text" ng-model="login.developerkey" id="login-developerkey" class="" ng-value="login.developerkey" size="20" ug-validate>\r\n </div>\r\n </div>\r\n <div class="form-actions">\r\n <div class="submit">\r\n <input type="submit" name="button-login" id="button-login" ng-disabled="!loginForm.$valid || loading" value="{{loading ? loadingText : \'Log In\'}}" class="btn btn-primary pull-right">\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class="extra-actions">\r\n <div class="submit">\r\n <a ng-click="gotoSignUp()" name="button-signUp" id="button-signUp" value="Sign Up"\r\n class="btn btn-primary pull-left">Register</a>\r\n </div>\r\n <div class="submit">\r\n <a ng-click="gotoForgotPasswordPage()" name="button-forgot-password" id="b
utton-forgot-password"\r\n value="" class="btn btn-primary pull-left">Forgot Password?</a>\r\n </div>\r\n <a ng-click="showModal(\'sendActivationLink\')" name="button-resend-activation" id="button-resend-activation"\r\n value="" class="btn btn-primary pull-left">Resend Activation Link</a>\r\n </div>\r\n <div id="gtm" style="width: 450px;margin-top: 4em;" />\r\n</div>\r\n'),$templateCache.put("login/logout.html",'<div id="logut">Logging out...</div>'),$templateCache.put("login/register.html",'<div class="signUp-content">\n <div class="signUp-holder">\n <form name="signUpform" id="signUp-form" ng-submit="register()" class="form-horizontal" ng-show="!signUpSuccess" novalidate>\n <h1 class="title">Register</h1>\n\n <div class="alert" ng-if="loginMessage">{{loginMessage}}</div>\n <div class="control-group">\n <label class="control-label" for="register-orgName">Organization:</label>\n\n <div class="controls">\n <input type="
text" ng-model="registeredUser.orgName" id="register-orgName" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" ug-validate required class="" size="20">\n </div>\n </div>\n\n <div class="control-group">\n <label class="control-label" for="register-name">Name:</label>\n\n <div class="controls">\n <input type="text" ng-model="registeredUser.name" id="register-name" ng-pattern="nameRegex" ng-attr-title="{{nameRegexDescription}}" ug-validate required class="" size="20">\n </div>\n </div>\n\n <div class="control-group">\n <label class="control-label" for="register-userName">Username:</label>\n\n <div class="controls">\n <input type="text" ng-model="registeredUser.userName" id="register-userName" ng-pattern="usernameRegex" ng-attr-title="{{usernameRegexDescription}}" ug-validate required class="" size="20">\n </div>\n </div>\n\n <div class="control-group">\n <label
class="control-label" for="register-email">Email:</label>\n\n <div class="controls">\n <input type="email" ng-model="registeredUser.email" id="register-email" ng-pattern="emailRegex" ng-attr-title="{{emailRegexDescription}}" required class="" ug-validate size="20">\n </div>\n </div>\n\n\n <div class="control-group">\n <label class="control-label" for="register-password">Password:</label>\n\n <div class="controls">\n <input type="password" ng-pattern="passwordRegex" ng-attr-title="{{passwordRegexDescription}}" ug-validate ng-model="registeredUser.password" id="register-password" required class=""\n size="20">\n </div>\n </div>\n <div class="control-group">\n <label class="control-label" for="register-confirmPassword">Re-enter Password:</label>\n\n <div class="controls">\n <input type="password" ng-model="registeredUser.confirmPassword" required id="register-confirmPasswor
d" ug-validate class="" size="20">\n </div>\n </div>\n <div class="form-actions">\n <div class="submit">\n <input type="submit" name="button-login" ng-disabled="!signUpform.$valid" id="button-login" value="Register"\n class="btn btn-primary pull-right">\n </div>\n <div class="submit">\n <a ng-click="cancel()" type="submit" name="button-cancel" id="button-cancel"\n class="btn btn-primary pull-right">Cancel</a>\n </div>\n </div>\n </form>\n <div class="console-section well thingy" ng-show="signUpSuccess">\n <span class="title">We\'re holding a seat for you!</span>\n <br><br>\n\n <p>Thanks for signing up for a spot on our private beta. We will send you an email as soon as we\'re ready for\n you!</p>\n\n <p>In the mean time, you can stay up to date with App Services on our <a\n href="https://groups.google.com/forum/?fromgroups#!forum/usergrid">GoogleG
roup</a>.</p>\n\n <p> <a href="#!/login">Back to login</a></p>\n </div>\n </div>\n\n</div>\n'),$templateCache.put("menus/appMenu.html",'<ul id="app-menu" class="nav top-nav span12">\n <li class="span7">\n <bsmodal id="newApplication"\n title="Create New Application"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="newApplicationDialog"\n extrabuttonlabel="Create"\n buttonid="app"\n ng-cloak>\n <div ng-show="!hasApplications" class="modal-instructions" >You have no applications, please create one.</div>\n <div ng-show="hasCreateApplicationError" class="alert-error">Application already exists!</div>\n <p>New application name: <input ng-model="$parent.newApp.name" id="app-name-input" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" type="text" required ug-validate /></p>\n </bsmodal>\n <div class="btn-group">\
n <a class="btn dropdown-toggle top-selector app-selector" id="current-app-selector" data-toggle="dropdown">\n <i class="pictogram">⚙</i> {{myApp.currentApp}}\n <span class="caret"></span>\n </a>\n <ul class="dropdown-menu app-nav">\n <li name="app-selector" ng-repeat="app in applications">\n <a id="app-{{app.name}}-link-id" ng-click="appChange(app.name)">{{app.name}}</a>\n </li>\n </ul>\n </div>\n </li>\n <li class="span5">\n <a ng-if="activeUI"\n class="btn btn-create zero-out pull-right"\n ng-click="showModal(\'newApplication\')"\n analytics-on="click"\n analytics-category="App Services"\n analytics-label="Button"\n analytics-event="Add New App"\n >\n <i class="pictogram">⊞</i>\n Add New App\n </a>\n </li>\n</ul>'),$templateCache.put("menus/orgMenu.html"
,'<ul class="nav top-nav org-nav">\n <li>\n<div class="btn-group ">\n <a class="btn dropdown-toggle top-selector org-selector" id="current-org-selector" data-toggle="dropdown">\n <i class="pictogram">📁</i> {{currentOrg}}<span class="caret"></span>\n </a>\n <ul class="dropdown-menu org-nav">\n <li name="org-selector" ng-repeat="(k,v) in organizations">\n <a id="org-{{v.name}}-selector" class="org-overview" ng-click="orgChange(v.name)"> {{v.name}}</a>\n </li>\n </ul>\n </div>\n </li></ul>'),$templateCache.put("org-overview/org-overview.html",'<div class="org-overview-content" ng-show="activeUI">\n\n <page-title title=" Org Administration" icon="🕪"></page-title>\n\n <section class="row-fluid">\n\n <div class="span6">\n <bsmodal id="introjs"\n title="Welcome to the API BaaS Admin Portal"\n close="hideModal"\n closelabel="Skip"\n extrabutton="startFirstTim
eUser"\n extrabuttonlabel="Take the tour"\n ng-cloak>\n <p>To get started, click \'Take the tour\' for a full walkthrough of the admin portal, or click \'Skip\' to start working right away.</p>\n </bsmodal>\n <div id="intro-4-current-org"> \n <h2 class="title">Current Organization <a class="help_tooltip" ng-mouseover="help.sendTooltipGA(\'current org\')" ng-show="help.helpTooltipsEnabled" href="#" ng-attr-tooltip="{{tooltip_current_org}}" tooltip-placement="right">(?)</a></h2>\n <table class="table table-striped">\n <tr>\n <td id="org-overview-name">{{currentOrganization.name}}</td>\n <td style="text-align: right">{{currentOrganization.uuid}}</td>\n </tr>\n </table>\n </div>\n\n <bsmodal id="newApplication"\n title="Create New Application"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="newApplicationDialog"\n extrabuttonlabel="Create"\n
ng-cloak>\n <p>New application name: <input ng-model="$parent.newApp.name" ug-validate required type="text" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" /></p>\n </bsmodal>\n <div id="intro-5-applications"> \n <h2 class="title" > Applications <a class="help_tooltip" ng-show="help.helpTooltipsEnabled" ng-mouseover="help.sendTooltipGA(\'applications\')" href="#" ng-attr-tooltip="{{tooltip_applications}}" tooltip-placement="right">(?)</a>\n <div class="header-button btn-group pull-right">\n <a class="btn filter-selector" style="{{applicationsSize === 10 ? \'width:290px\':\'\'}}" ng-click="showModal(\'newApplication\')">\n <span class="filter-label">Add New App</span>\n </a>\n </div>\n </h2>\n \n <table class="table table-striped">\n <tr ng-repeat="application in applications">\n <td>{{application.name}}</td>\n <td style="text-align: right">{{application.uuid}}</td>\n
</tr>\n </table>\n </div>\n <bsmodal id="regenerateCredentials"\n title="Confirmation"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="regenerateCredentialsDialog"\n extrabuttonlabel="Yes"\n ng-cloak>\n Are you sure you want to regenerate the credentials?\n </bsmodal>\n <div id="intro-6-org-api-creds">\n <h2 class="title" >Organization API Credentials <a class="help_tooltip" ng-mouseover="help.sendTooltipGA(\'api org credentials\')" ng-show="help.helpTooltipsEnabled" href="#" ng-attr-tooltip="{{tooltip_org_api_creds}}" tooltip-placement="right">(?)</a>\n <div class="header-button btn-group pull-right">\n <a class="btn filter-selector" ng-click="showModal(\'regenerateCredentials\')">\n <span class="filter-label">Regenerate Org Credentials</span>\n </a>\n </div>\n </h2>\n \n <table class="table table-striped">\n <tr>\n
<td >Client ID</td>\n <td style="text-align: right" >{{orgAPICredentials.client_id}}</td>\n </tr>\n <tr>\n <td>Client Secret</td>\n <td style="text-align: right">{{orgAPICredentials.client_secret}}</td>\n </tr>\n </table>\n </div>\n <bsmodal id="newAdministrator"\n title="Create New Administrator"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="newAdministratorDialog"\n extrabuttonlabel="Create"\n ng-cloak>\n <p>New administrator email: <input id="newAdminInput" ug-validate ng-model="$parent.admin.email" pattern="emailRegex" ng-attr-title="{{emailRegexDescription}}" required type="email" /></p>\n </bsmodal>\n <div id="intro-7-org-admins">\n <h2 class="title" >Organization Administrators <a class="help_tooltip" ng-mouseover="help.sendTooltipGA(\'org admins\')" ng-show="help.helpTooltipsEnabled" href="#" ng-attr-tooltip="{{tooltip_org_admins}
}" tooltip-placement="right">(?)</a>\n <div class="header-button btn-group pull-right">\n <a class="btn filter-selector" ng-click="showModal(\'newAdministrator\')">\n <span class="filter-label">Add New Administrator</span>\n </a>\n </div>\n </h2>\n \n <table class="table table-striped">\n <tr ng-repeat="administrator in orgAdministrators">\n <td><img style="width:30px;height:30px;" ng-src="{{administrator.image}}"> {{administrator.name}}</td>\n <td style="text-align: right">{{administrator.email}}</td>\n </tr>\n </table>\n </div>\n </div>\n\n <div class="span6">\n <div id="intro-8-activities">\n <h2 class="title">Activities <a class="help_tooltip" ng-mouseover="help.sendTooltipGA(\'activities\')" ng-show="help.helpTooltipsEnabled" href="#" ng-attr-tooltip="{{tooltip_activities}}" tooltip-placement="right">(?)</a></h2>\n <table class="table table-striped">\n <tr ng-repeat="activity in ac
tivities">\n <td>{{activity.title}}</td>\n <td style="text-align: right">{{activity.date}}</td>\n </tr>\n </table>\n </div>\n </div>\n\n\n </section>\n</div>'),$templateCache.put("profile/account.html",'<page-title title=" Account Settings" icon=""></page-title>\n\n<section class="row-fluid">\n <div class="span12 tab-content">\n <div class="menu-toolbar">\n <ul class="inline">\n <li class="tab" ng-show="!use_sso" ng-class="currentAccountPage.route === \'/profile/profile\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" id="profile-link" ng-click="selectAccountPage(\'/profile/profile\')"><i class="pictogram"></i>Profile</a></li>\n <li class="tab" ng-class="currentAccountPage.route === \'/profile/organizations\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" id="account-link" ng-click="selectAccountPage(\'/profile/organizations\')"><i class="pictogram">👥</i>Organizations</a></li>\n </ul
>\n </div>\n <span ng-include="currentAccountPage.template"></span>\n </div>\n</section>'),$templateCache.put("profile/organizations.html",'<div class="content-page" ng-controller="OrgCtrl">\n\n\n\n <bsmodal id="newOrganization"\n title="Create New Organization"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="addOrganization"\n extrabuttonlabel="Create"\n ng-cloak>\n <fieldset>\n\n <div class="control-group">\n <label for="new-user-orgname">Organization Name</label>\n\n <div class="controls">\n <input type="text" required title="Name" ug-validate ng-pattern="nameRegex" ng-attr-title="{{nameRegexDescription}}" ng-model="$parent.org.name" name="name" id="new-user-orgname" class="input-xlarge"/>\n\n <p class="help-block hide"></p>\n </div>\n </div>\n\n </fieldset>\n </bsmodal>\n\n\n <div class="row-fluid" >\n <div class="span3 user-col ">\n\n
<div class="button-toolbar span12">\n\n <button class="btn btn-primary toolbar" ng-click="showModal(\'newOrganization\')" ng-show="true"><i class="pictogram"></i>\n </button>\n
<TRUNCATED>
[09/34] git commit: removing dynamic menus
Posted by sn...@apache.org.
removing dynamic menus
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/9e435235
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/9e435235
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/9e435235
Branch: refs/pull/86/head
Commit: 9e435235be1e16c3fdb378987a4d57365cf76761
Parents: 082530e
Author: Shawn Feldman <sh...@gmail.com>
Authored: Fri Mar 28 14:55:24 2014 -0600
Committer: Shawn Feldman <sh...@gmail.com>
Committed: Fri Mar 28 14:55:24 2014 -0600
----------------------------------------------------------------------
portal/Gruntfile.js | 61 +++++++++--------------------------------
portal/bower.json | 25 +++++++++++++++--
portal/config.js | 45 ++----------------------------
portal/index-template.html | 39 ++++++++++++++++++++++++--
4 files changed, 73 insertions(+), 97 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9e435235/portal/Gruntfile.js
----------------------------------------------------------------------
diff --git a/portal/Gruntfile.js b/portal/Gruntfile.js
index 0bc29b7..5d71cfc 100644
--- a/portal/Gruntfile.js
+++ b/portal/Gruntfile.js
@@ -1,50 +1,20 @@
var packageJson = require('./package.json');
-var userGrid = require('./config.js');
-var versionPath = packageJson.version;
-var menu = '<ul class="nav nav-list" menu="sideMenu">';
-userGrid.options.menuItems.forEach(function(menuItem){
- menu += '<li class="option '+ (menuItem.active ? 'active' : '') + '" ng-cloak>';
- menu += '<a data-ng-href="'+menuItem.path+'"><i class="pictogram">'+menuItem.pic+'</i>'+menuItem.title+'</a>';
- menuItem.items && menuItem.items.forEach(function(subItem){
- menu += '<ul class="nav nav-list">';
- menu += '<li>';
- menu += '<a data-ng-href="'+subItem.path+'"><i class="pictogram sub">'+subItem.pic+'</i>'+subItem.title+'</a>'
- menu += '</li>';
- menu += '</ul>';
- });
- menu += '</li>';
-});
-menu += '</ul>';
-
-var mainRefs = "",
- devRefs = ""
- ;
-userGrid.options.scriptReferences.main.forEach(function (current) {
- mainRefs += "<script src='" + versionPath+'/'+ current + "'></script>";
-});
-userGrid.options.scriptReferences.dev.forEach(function (current) {
- devRefs += "<script src='" + versionPath+'/'+ current + "'></script>";
-});
-
-var cssRefs = "";
-userGrid.options.cssRefs.forEach(function(css){
- cssRefs += '<link href="'+versionPath+'/'+css.src+'" rel="stylesheet" id="'+css.id+'"/>';
-});
-
+var versionPath = packageJson.version;
+var distPath = 'dist/'+packageJson.packageName,
+ coveragePath = 'dist-cov/'+packageJson.packageName,
+ libsFile = 'js/libs/usergrid-libs.min.js',
+ devFile = 'js/usergrid-dev.min.js',
+ devFileIncludes= ['js/**/*.js','!js/libs/**/*.js', '!js/**/*.min.js'],
+ coverageDir = 'test/coverage/instrument/',
+ coverageFile = 'test/coverage/instrument/js/usergrid-coverage.min.js',
+ mainFile = 'js/usergrid.min.js',
+ templateFile = 'js/templates.js',
+ distName = packageJson.packageName
+ ;
console.warn('to run e2e tests you need to have a running instance of webdriver, 1) npm install protractor -g -> 2) webdriver-manager start --standalone');
module.exports = function (grunt) {
- var distPath = 'dist/'+packageJson.packageName,
- coveragePath = 'dist-cov/'+packageJson.packageName,
- libsFile = 'js/libs/usergrid-libs.min.js',
- devFile = 'js/usergrid-dev.min.js',
- devFileIncludes= ['js/**/*.js','!js/libs/**/*.js', '!js/**/*.min.js'],
- coverageDir = 'test/coverage/instrument/',
- coverageFile = 'test/coverage/instrument/js/usergrid-coverage.min.js',
- mainFile = 'js/usergrid.min.js',
- templateFile = 'js/templates.js',
- distName = packageJson.packageName
- ;
+
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
@@ -337,7 +307,6 @@ module.exports = function (grunt) {
dom_munger: {
main: {
options: {
- append:{selector:'body',html:mainRefs},
update: {selector:'#main-script',attribute:'src',value:versionPath+'/'+mainFile}
},
@@ -347,7 +316,6 @@ module.exports = function (grunt) {
},
dev: {
options: {
- append:{selector:'body',html:devRefs},
update: {selector:'#main-script',attribute:'src',value:versionPath+'/'+devFile}
},
src: 'index-template.html', //update the dist/index.html (the src index.html is copied there)
@@ -355,7 +323,6 @@ module.exports = function (grunt) {
},
coverage: {
options: {
- append:{selector:'body',html:devRefs},
update: {selector:'#main-script',attribute:'src',value:'js/usergrid-coverage.min.js'}
},
src: 'index-template.html', //update the dist/index.html (the src index.html is copied there)
@@ -364,8 +331,6 @@ module.exports = function (grunt) {
menu: {
options: {
callback:function($){
- $('#sideMenu').append(menu);
- $('head').append(cssRefs);
var libs = $('#libScript');
for(var key in libs){
var elem = libs[key];
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9e435235/portal/bower.json
----------------------------------------------------------------------
diff --git a/portal/bower.json b/portal/bower.json
index dc639af..85c9d35 100644
--- a/portal/bower.json
+++ b/portal/bower.json
@@ -1,7 +1,25 @@
{
- "name": "usergrid-portal",
- "version": "2.0.1",
- "ignore": [],
+ "name": "usergrid-portal-nomax",
+ "version": "2.0.42",
+ "ignore": [
+ ".jshintrc",
+ "**/*.txt",
+ "js/",
+ "css/",
+ "img/",
+ "archive/",
+ "dist/archive",
+ "bower_components/",
+ "scripts/",
+ "sdk/",
+ "tests/",
+ "Gruntfile.js",
+ "*.md",
+ "config.js",
+ "package.json",
+ "LICENSE",
+ ".gitignore"
+ ],
"dependencies": {
"angularitics": "~0.8.7",
"apigee-sdk": "~2.0.8",
@@ -9,6 +27,7 @@
},
"devDependencies": {},
"keywords": [
+ "apigee",
"usergrid"
]
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9e435235/portal/config.js
----------------------------------------------------------------------
diff --git a/portal/config.js b/portal/config.js
index a8a77a0..a92690a 100644
--- a/portal/config.js
+++ b/portal/config.js
@@ -2,7 +2,7 @@ var Usergrid = Usergrid || {};
//Google Analytics
var _gaq = _gaq || [];
-//_gaq.push(['_setAccount', 'yourkey']);
+_gaq.push(['_setAccount', 'UA-4084158-4']);
try{
(function(document) {
if(!document){
@@ -27,39 +27,7 @@ Usergrid.options = {
// apiKey:'123456'
},
showAutoRefresh:true,
- autoUpdateTimer:61,//seconds
- cssRefs:[],
- "scriptReferences":{
- "dev":[],
- "main": []
- },
- menuItems:[
- {path:'#!/org-overview', active:true,pic:'🕪',title:'Org Administration'},
- {path:'#!/getting-started/setup',pic:'🚀',title:'Getting Started'},
- {path:'#!/app-overview/summary',pic:'',title:'App Overview',
- items:[
- {path:'#!/app-overview/summary',pic:'📱',title:'Summary'}
- ]
- },
- {
- path:'#!/users',pic:'👤',title:'Users',
- items:[
- {path:'#!/users',pic:'👤',title:'Users'},
- {path:'#!/groups',pic:'👥',title:'Groups'},
- {path:'#!/roles',pic:'',title:'Roles'}
- ]
- },
- {
- path:'#!/data',pic:'📸',title:'Data',
- items:[
- {path:'#!/data',pic:'📾',title:'Collections'}
- ]
- },
- {
- path:'#!/activities',pic:'',title:'Activities'
- },
- {path:'#!/shell',pic:'⌨',title:'Shell'}
- ]
+ autoUpdateTimer:61//seconds
};
Usergrid.regex = {
@@ -90,12 +58,3 @@ Usergrid.regex = {
stateRegexDescription: "Sorry only alphabetical characters or spaces are allowed. Must be between 2-100 characters.",
collectionNameRegexDescription: "Collection name only allows : a-z A-Z 0-9. Must be between 3-25 characters."
};
-
-try{
- if (typeof module !== 'undefined'){
-
- if(module && module.exports){
- module.exports = Usergrid;
- }
- }
-}catch(e){}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9e435235/portal/index-template.html
----------------------------------------------------------------------
diff --git a/portal/index-template.html b/portal/index-template.html
index 4a8c103..acf04fc 100644
--- a/portal/index-template.html
+++ b/portal/index-template.html
@@ -62,9 +62,42 @@
</div>
<div id="intro-3-side-menu">
- <div class="nav-collapse collapse" id="sideMenu">
- </div>
- </div>
+ <div class="nav-collapse collapse" id="sideMenu">
+ <ul class="nav nav-list" menu="sideMenu">
+ <li class="option active" ng-cloak=""><a data-ng-href="#!/org-overview"><i class="pictogram">
+ 🕪</i>Org Administration</a></li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/getting-started/setup"><i class="pictogram">
+ 🚀</i>Getting Started</a></li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/app-overview/summary"><i class="pictogram">
+ </i>App Overview</a>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/app-overview/summary"><i class="pictogram sub">📱</i>Summary</a>
+ </li>
+ </ul>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/users"><i class="pictogram">👤</i>Users</a>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/users"><i class="pictogram sub">👤</i>Users</a></li>
+ </ul>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/groups"><i class="pictogram sub">👥</i>Groups</a></li>
+ </ul>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/roles"><i class="pictogram sub"></i>Roles</a></li>
+ </ul>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/data"><i class="pictogram">📸</i>Data</a>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/data"><i class="pictogram sub">📾</i>Collections</a></li>
+ </ul>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/activities"><i class="pictogram"></i>Activities</a>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/shell"><i class="pictogram">⌨</i>Shell</a>
+ </li>
+ </ul>
+ </div>
+ </div>
</div>
</section>
[28/34] merge
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/abe152f3/portal/js/libs/usergrid-libs.min.js
----------------------------------------------------------------------
diff --cc portal/js/libs/usergrid-libs.min.js
index 0899b2b,b69da61..ef49eff
--- a/portal/js/libs/usergrid-libs.min.js
+++ b/portal/js/libs/usergrid-libs.min.js
@@@ -19,4 -19,4 +19,4 @@@ a.effects.animateClass=function(b,c,d,e
},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),"source"===b&&this._initSource(),"appendTo"===b&&this.menu.element.appendTo(a(c||"body",this.element[0].ownerDocument)[0]),"disabled"===b&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var d,e,b=this;a.isArray(this.options.source)?(d=this.options.source,this.source=function(b,c){c(a.ui.autocomplete.filter(d,b.term))}):"string"==typeof this.options.source?(e=this.options.source,this.source=function(d,f){b.xhr&&b.xhr.abort(),b.xhr=a.ajax({url:e,data:d,dataType:"json",context:{autocompleteRequest:++c},success:function(a){this.autocompleteRequest===c&&f(a)},error:function(){this.autocompleteRequest===c&&f([])}})}):this.source=this.options.source},search:function(a,b){return a=null!=a?a:this.element.val(),this.term=this.element.val(),a.length<this.options.minLength?this.close(b):(clearTimeout(this.closing),this._trigger("search",b)!==!1?this._search(a):void 0)},_search:function(a){this.pending++,this.
element.addClass("ui-autocomplete-loading"),this.source({term:a},this.response)},_response:function(a){!this.options.disabled&&a&&a.length?(a=this._normalize(a),this._suggest(a),this._trigger("open")):this.close(),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.deactivate(),this._trigger("close",a))},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(b){return b.length&&b[0].label&&b[0].value?b:a.map(b,function(b){return"string"==typeof b?{label:b,value:b}:a.extend({label:b.label||b.value,value:b.value||b.label},b)})},_suggest:function(b){var c=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(c,b),this.menu.deactivate(),this.menu.refresh(),c.show(),this._resizeMenu(),c.position(a.extend({of:this.element},this.options.position)),this.op
tions.autoFocus&&this.menu.next(new a.Event("mouseover"))},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(b,c){var d=this;a.each(c,function(a,c){d._renderItem(b,c)})},_renderItem:function(b,c){return a("<li></li>").data("item.autocomplete",c).append(a("<a></a>").text(c.label)).appendTo(b)},_move:function(a,b){if(this.menu.element.is(":visible")){if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a))return this.element.val(this.term),void this.menu.deactivate();this.menu[a](b)}else this.search(null,b)},widget:function(){return this.menu.element}}),a.extend(a.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(b,c){var d=new RegExp(a.ui.autocomplete.escapeRegex(c),"i");return a.grep(b,function(a){return d.test(a.label||a.value||a)})}})}(jQuery),function(a){a.widget("ui.menu",{_create:function(){var b=this;th
is.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){!a(c.target).closest(".ui-menu-item a").length||(c.preventDefault(),b.select(c))}),this.refresh()},refresh:function(){var b=this,c=this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem");c.children("a").addClass("ui-corner-all").attr("tabindex",-1).mouseenter(function(c){b.activate(c,a(this).parent())}).mouseleave(function(){b.deactivate()})},activate:function(a,b){if(this.deactivate(),this.hasScroll()){var c=b.offset().top-this.element.offset().top,d=this.element.scrollTop(),e=this.element.height();0>c?this.element.scrollTop(d+c):c>=e&&this.element.scrollTop(d+c-e+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end(),this._trigger("focus",a,{item:b})},deactivate:function(){!this.active||(this.active.children("a").removeClas
s("ui-state-hover").removeAttr("id"),this._trigger("blur"),this.active=null)},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,c){if(this.active){var d=this.active[a+"All"](".ui-menu-item").eq(0);d.length?this.activate(c,d):this.activate(c,this.element.children(b))}else this.activate(c,this.element.children(b))},nextPage:function(b){if(this.hasScroll()){if(!this.active||this.last())return void this.activate(b,this.element.children(".ui-menu-item:first"));var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c-d+a(this).height();return 10>b&&b>-10});e.length||(e=this.element.children(".ui-menu-item:last")),this.activate(b,e)}else this.activate(b,
this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(b){if(this.hasScroll()){if(!this.active||this.first())return void this.activate(b,this.element.children(".ui-menu-item:last"));var c=this.active.offset().top,d=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c+d-a(this).height();return 10>b&&b>-10}),result.length||(result=this.element.children(".ui-menu-item:first")),this.activate(b,result)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element[a.fn.prop?"prop":"attr"]("scrollHeight")},select:function(a){this._trigger("selected",a,{item:this.active})}})}(jQuery),function(a){var c,d,e,f,g="ui-button ui-widget ui-state-default ui-corner-all",h="ui-state-hover ui-state-active ",i="ui-button-icons-only ui-button-icon-only ui-button-text-icon
s ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",j=function(){var b=a(this).find(":ui-button");setTimeout(function(){b.button("refresh")},1)},k=function(b){var c=b.name,d=b.form,e=a([]);return c&&(e=d?a(d).find("[name='"+c+"']"):a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form})),e};a.widget("ui.button",{options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",j),"boolean"!=typeof this.options.disabled?this.options.disabled=!!this.element.propAttr("disabled"):this.element.propAttr("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var b=this,h=this.options,i="checkbox"===this.type||"radio"===this.type,l="ui-state-hover"+(i?"":" ui-state-active"),m="ui-state-focus";null===h.label&&(h.label=this.buttonElement.html()),this.buttonElement.addClass(g).attr("role","b
utton").bind("mouseenter.button",function(){h.disabled||(a(this).addClass("ui-state-hover"),this===c&&a(this).addClass("ui-state-active"))}).bind("mouseleave.button",function(){h.disabled||a(this).removeClass(l)}).bind("click.button",function(a){h.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}),this.element.bind("focus.button",function(){b.buttonElement.addClass(m)}).bind("blur.button",function(){b.buttonElement.removeClass(m)}),i&&(this.element.bind("change.button",function(){f||b.refresh()}),this.buttonElement.bind("mousedown.button",function(a){h.disabled||(f=!1,d=a.pageX,e=a.pageY)}).bind("mouseup.button",function(a){!h.disabled&&(d!==a.pageX||e!==a.pageY)&&(f=!0)})),"checkbox"===this.type?this.buttonElement.bind("click.button",function(){return h.disabled||f?!1:(a(this).toggleClass("ui-state-active"),void b.buttonElement.attr("aria-pressed",b.element[0].checked))}):"radio"===this.type?this.buttonElement.bind("click.button",function(){if(h.disabled||f)return!1;a(th
is).addClass("ui-state-active"),b.buttonElement.attr("aria-pressed","true");var c=b.element[0];k(c).not(c).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown.button",function(){return h.disabled?!1:(a(this).addClass("ui-state-active"),c=this,a(document).one("mouseup",function(){c=null}),void 0)}).bind("mouseup.button",function(){return h.disabled?!1:void a(this).removeClass("ui-state-active")}).bind("keydown.button",function(b){return h.disabled?!1:void((b.keyCode==a.ui.keyCode.SPACE||b.keyCode==a.ui.keyCode.ENTER)&&a(this).addClass("ui-state-active"))}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(b){b.keyCode===a.ui.keyCode.SPACE&&a(this).click()})),this._setOption("disabled",h.disabled),this._resetButton()},_determineButtonType:function(){if(this.type=this.element.is(":checkbox")?"checkbox":this
.element.is(":radio")?"radio":this.element.is("input")?"input":"button","checkbox"===this.type||"radio"===this.type){var a=this.element.parents().filter(":last"),b="label[for='"+this.element.attr("id")+"']";this.buttonElement=a.find(b),this.buttonElement.length||(a=a.length?a.siblings():this.element.siblings(),this.buttonElement=a.filter(b),this.buttonElement.length||(this.buttonElement=a.find(b))),this.element.addClass("ui-helper-hidden-accessible");var c=this.element.is(":checked");c&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.attr("aria-pressed",c)}else this.buttonElement=this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(g+" "+h+" "+i).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title"),a.Widget.prototype.destroy.call(this)},_setOption:functi
on(b,c){a.Widget.prototype._setOption.apply(this,arguments),"disabled"===b?c?this.element.propAttr("disabled",!0):this.element.propAttr("disabled",!1):this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b),"radio"===this.type?k(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):"checkbox"===this.type&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if("input"===this.type)this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass(i),c=a("<span></span>",this.element[0].ownerDocument).addClass("ui-button-text").html(this.options.label).appendT
o(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary,f=[];d.primary||d.secondary?(this.options.text&&f.push("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary")),d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>"),d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>"),this.options.text||(f.push(e?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||b.attr("title",c))):f.push("ui-button-text-only"),b.addClass(f.join(" "))}}}),a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){"disabled"===b&&this.buttons.button("option",b,c),a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var b="rtl"===this.element.css("direction");this.buttons=this.element.find(this.options.items).filter(":ui-button
").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(b?"ui-corner-left":"ui-corner-right").end().end()},destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"),a.Widget.prototype.destroy.call(this)}})}(jQuery),function($,undefined){function isArray(a){return a&&($.browser.safari&&"object"==typeof a&&a.length||a.constructor&&a.constructor.toString().match(/\Array\(\)/))}function extendRemove(a,b){$.extend(a,b);for(var c in b)(null==b[c]||b[c]==undefined)&&(a[c]=b[c]);return a}function bindHover(a){var b="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return a.bind("mouseout",function(a){var c=$(a.target).
closest(b);!c.length||c.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(c){var d=$(c.target).closest(b);!$.datepicker._isDisabledDatepicker(instActive.inline?a.parent()[0]:instActive.input[0])&&!!d.length&&(d.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),d.addClass("ui-state-hover"),d.hasClass("ui-datepicker-prev")&&d.addClass("ui-datepicker-prev-hover"),d.hasClass("ui-datepicker-next")&&d.addClass("ui-datepicker-next-hover"))})}function Datepicker(){this.debug=!1,this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-
current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso
8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},$.extend(this._defaults,this.regional[""]),this.dpDiv=bindHover($('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}$.extend($.ui,{datepicker:{version:"1.8.18"}});var PROP_NAME="datepicker",dpuuid=(new Date).getTime(),instActive;$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){return extendRemove(this._defaults,a||{}),this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAt
tribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline="div"==nodeName||"span"==nodeName;target.id||(this.uuid+=1,target.id="dp"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),"input"==nodeName?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(a,b){var c=a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");return{id:c,input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:b?bindHover($('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')):this.dpDiv}},_connectDatepicker:function(a,b){var c=$(a);b.append=$([]),b.trigger=$([]),c.hasClass(this.markerClassName)||(this._attachments(c,b),c.addClass(this.markerClassName).key
down(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),this._autoSize(b),$.data(a,PROP_NAME,b),b.settings.disabled&&this._disableDatepicker(a))},_attachments:function(a,b){var c=this._get(b,"appendText"),d=this._get(b,"isRTL");b.append&&b.append.remove(),c&&(b.append=$('<span class="'+this._appendClass+'">'+c+"</span>"),a[d?"before":"after"](b.append)),a.unbind("focus",this._showDatepicker),b.trigger&&b.trigger.remove();var e=this._get(b,"showOn");if(("focus"==e||"both"==e)&&a.focus(this._showDatepicker),"button"==e||"both"==e){var f=this._get(b,"buttonText"),g=this._get(b,"buttonImage");b.trigger=$(this._get(b,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:g,alt:f,title:f}):$('<button type="button"></button>').addClass(this._triggerClass).html(""==g?f:$("<img/>").attr({src:g,alt:f,title:f}))),a[d?"before":"after"](b.trigge
r),b.trigger.click(function(){return $.datepicker._datepickerShowing&&$.datepicker._lastInput==a[0]?$.datepicker._hideDatepicker():$.datepicker._datepickerShowing&&$.datepicker._lastInput!=a[0]?($.datepicker._hideDatepicker(),$.datepicker._showDatepicker(a[0])):$.datepicker._showDatepicker(a[0]),!1})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var d=function(a){for(var b=0,c=0,d=0;d<a.length;d++)a[d].length>b&&(b=a[d].length,c=d);return c};b.setMonth(d(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort"))),b.setDate(d(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=$(a);c.hasClass(this.markerClassName)||(c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),$
.data(a,PROP_NAME,b),this._setDate(b,this._getDefaultDate(b),!0),this._updateDatepicker(b),this._updateAlternate(b),b.settings.disabled&&this._disableDatepicker(a),b.dpDiv.css("display","block"))},_dialogDatepicker:function(a,b,c,d,e){var f=this._dialogInst;if(!f){this.uuid+=1;var g="dp"+this.uuid;this._dialogInput=$('<input type="text" id="'+g+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>'),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),f=this._dialogInst=this._newInst(this._dialogInput,!1),f.settings={},$.data(this._dialogInput[0],PROP_NAME,f)}if(extendRemove(f.settings,d||{}),b=b&&b.constructor==Date?this._formatDate(f,b):b,this._dialogInput.val(b),this._pos=e?e.length?e:[e.pageX,e.pageY]:null,!this._pos){var h=document.documentElement.clientWidth,i=document.documentElement.clientHeight,j=document.documentElement.scrollLeft||document.body.scrollLeft,k=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[h
/2-100+j,i/2-150+k]}return this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),f.settings.onSelect=c,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,f),this},_destroyDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();$.removeData(a,PROP_NAME),"input"==d?(c.append.remove(),c.trigger.remove(),b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"==d||"span"==d)&&b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();if("input"==d)a.disabled=!1,c.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img
").css({opacity:"1.0",cursor:""});else if("div"==d||"span"==d){var e=b.children("."+this._inlineClass);e.children().removeClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b})}},_disableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();if("input"==d)a.disabled=!0,c.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"});else if("div"==d||"span"==d){var e=b.children("."+this._inlineClass);e.children().addClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b}),this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return!1;for(var b=
0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return!0;return!1},_getInst:function(a){try{return $.data(a,PROP_NAME)}catch(b){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(a,b,c){var d=this._getInst(a);if(2==arguments.length&&"string"==typeof b)return"defaults"==b?$.extend({},$.datepicker._defaults):d?"all"==b?$.extend({},d.settings):this._get(d,b):null;var e=b||{};if("string"==typeof b&&(e={},e[b]=c),d){this._curInst==d&&this._hideDatepicker();var f=this._getDateDatepicker(a,!0),g=this._getMinMaxDate(d,"min"),h=this._getMinMaxDate(d,"max");extendRemove(d.settings,e),null!==g&&e.dateFormat!==undefined&&e.minDate===undefined&&(d.settings.minDate=this._formatDate(d,g)),null!==h&&e.dateFormat!==undefined&&e.maxDate===undefined&&(d.settings.maxDate=this._formatDate(d,h)),this._attachments($(a),d),this._autoSize(d),this._setDate(d,f),this._updateAlternate(d),this._updateDatepicker(d)}},_changeDatepicker:function(a,b,c){this._optionDatep
icker(a,b,c)},_refreshDatepicker:function(a){var b=this._getInst(a);b&&this._updateDatepicker(b)},_setDateDatepicker:function(a,b){var c=this._getInst(a);c&&(this._setDate(c,b),this._updateDatepicker(c),this._updateAlternate(c))},_getDateDatepicker:function(a,b){var c=this._getInst(a);return c&&!c.inline&&this._setDateFromField(c,b),c?this._getDate(c):null},_doKeyDown:function(a){var b=$.datepicker._getInst(a.target),c=!0,d=b.dpDiv.is(".ui-datepicker-rtl");if(b._keyEvent=!0,$.datepicker._datepickerShowing)switch(a.keyCode){case 9:$.datepicker._hideDatepicker(),c=!1;break;case 13:var e=$("td."+$.datepicker._dayOverClass+":not(."+$.datepicker._currentClass+")",b.dpDiv);e[0]&&$.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,e[0]);var f=$.datepicker._get(b,"onSelect");if(f){var g=$.datepicker._formatDate(b);f.apply(b.input?b.input[0]:null,[g,b])}else $.datepicker._hideDatepicker();return!1;case 27:$.datepicker._hideDatepicker();break;case 33:$.datepicker._adjustDate(a.tar
get,a.ctrlKey?-$.datepicker._get(b,"stepBigMonths"):-$.datepicker._get(b,"stepMonths"),"M");break;case 34:$.datepicker._adjustDate(a.target,a.ctrlKey?+$.datepicker._get(b,"stepBigMonths"):+$.datepicker._get(b,"stepMonths"),"M");break;case 35:(a.ctrlKey||a.metaKey)&&$.datepicker._clearDate(a.target),c=a.ctrlKey||a.metaKey;break;case 36:(a.ctrlKey||a.metaKey)&&$.datepicker._gotoToday(a.target),c=a.ctrlKey||a.metaKey;break;case 37:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,d?1:-1,"D"),c=a.ctrlKey||a.metaKey,a.originalEvent.altKey&&$.datepicker._adjustDate(a.target,a.ctrlKey?-$.datepicker._get(b,"stepBigMonths"):-$.datepicker._get(b,"stepMonths"),"M");break;case 38:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,-7,"D"),c=a.ctrlKey||a.metaKey;break;case 39:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,d?-1:1,"D"),c=a.ctrlKey||a.metaKey,a.originalEvent.altKey&&$.datepicker._adjustDate(a.target,a.ctrlKey?+$.datepicker._get(b,"stepBigMonths"):+$.datepic
ker._get(b,"stepMonths"),"M");break;case 40:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,7,"D"),c=a.ctrlKey||a.metaKey;break;default:c=!1}else 36==a.keyCode&&a.ctrlKey?$.datepicker._showDatepicker(this):c=!1;c&&(a.preventDefault(),a.stopPropagation())},_doKeyPress:function(a){var b=$.datepicker._getInst(a.target);if($.datepicker._get(b,"constrainInput")){var c=$.datepicker._possibleChars($.datepicker._get(b,"dateFormat")),d=String.fromCharCode(a.charCode==undefined?a.keyCode:a.charCode);return a.ctrlKey||a.metaKey||" ">d||!c||c.indexOf(d)>-1}},_doKeyUp:function(a){var b=$.datepicker._getInst(a.target);if(b.input.val()!=b.lastVal)try{var c=$.datepicker.parseDate($.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,$.datepicker._getFormatConfig(b));c&&($.datepicker._setDateFromField(b),$.datepicker._updateAlternate(b),$.datepicker._updateDatepicker(b))}catch(a){$.datepicker.log(a)}return!0},_showDatepicker:function(a){if(a=a.target||a,"input"!=a.nodeName.toLowerCa
se()&&(a=$("input",a.parentNode)[0]),!$.datepicker._isDisabledDatepicker(a)&&$.datepicker._lastInput!=a){var b=$.datepicker._getInst(a);$.datepicker._curInst&&$.datepicker._curInst!=b&&($.datepicker._curInst.dpDiv.stop(!0,!0),b&&$.datepicker._datepickerShowing&&$.datepicker._hideDatepicker($.datepicker._curInst.input[0]));var c=$.datepicker._get(b,"beforeShow"),d=c?c.apply(a,[a,b]):{};if(d===!1)return;extendRemove(b.settings,d),b.lastVal=null,$.datepicker._lastInput=a,$.datepicker._setDateFromField(b),$.datepicker._inDialog&&(a.value=""),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(a),$.datepicker._pos[1]+=a.offsetHeight);var e=!1;$(a).parents().each(function(){return e|="fixed"==$(this).css("position"),!e}),e&&$.browser.opera&&($.datepicker._pos[0]-=document.documentElement.scrollLeft,$.datepicker._pos[1]-=document.documentElement.scrollTop);var f={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};if($.datepicker._pos=null,b.dpDiv.empty(),b.dpDiv.css({position:"abs
olute",display:"block",top:"-1000px"}),$.datepicker._updateDatepicker(b),f=$.datepicker._checkOffset(b,f,e),b.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":e?"fixed":"absolute",display:"none",left:f.left+"px",top:f.top+"px"}),!b.inline){var g=$.datepicker._get(b,"showAnim"),h=$.datepicker._get(b,"duration"),i=function(){var a=b.dpDiv.find("iframe.ui-datepicker-cover");if(a.length){var c=$.datepicker._getBorders(b.dpDiv);a.css({left:-c[0],top:-c[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex($(a).zIndex()+1),$.datepicker._datepickerShowing=!0,$.effects&&$.effects[g]?b.dpDiv.show(g,$.datepicker._get(b,"showOptions"),h,i):b.dpDiv[g||"show"](g?h:null,i),(!g||!h)&&i(),b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus(),$.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=this;b.maxRows=4;var c=$.datepicker._getBorders(a.dpDiv);instActive=a,a.dpDiv.empty().append(this._generateHTML(a));var d=a.dpDiv.find("iframe.ui-da
tepicker-cover");!d.length||d.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}),a.dpDiv.find("."+this._dayOverClass+" a").mouseover();var e=this._getNumberOfMonths(a),f=e[1],g=17;if(a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),f>1&&a.dpDiv.addClass("ui-datepicker-multi-"+f).css("width",g*f+"em"),a.dpDiv[(1!=e[0]||1!=e[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),a==$.datepicker._curInst&&$.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus(),a.yearshtml){var h=a.yearshtml;setTimeout(function(){h===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml),h=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseFloat(b(a.css("bor
der-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var d=a.dpDiv.outerWidth(),e=a.dpDiv.outerHeight(),f=a.input?a.input.outerWidth():0,g=a.input?a.input.outerHeight():0,h=document.documentElement.clientWidth+$(document).scrollLeft(),i=document.documentElement.clientHeight+$(document).scrollTop();return b.left-=this._get(a,"isRTL")?d-f:0,b.left-=c&&b.left==a.input.offset().left?$(document).scrollLeft():0,b.top-=c&&b.top==a.input.offset().top+g?$(document).scrollTop():0,b.left-=Math.min(b.left,b.left+d>h&&h>d?Math.abs(b.left+d-h):0),b.top-=Math.min(b.top,b.top+e>i&&i>e?Math.abs(e+g):0),b},_findPos:function(a){for(var b=this._getInst(a),c=this._get(b,"isRTL");a&&("hidden"==a.type||1!=a.nodeType||$.expr.filters.hidden(a));)a=a[c?"previousSibling":"nextSibling"];var d=$(a).offset();return[d.left,d.top]},_hideDatepicker:function(a){var b=this._curInst;if(b&&(!a||b==$.data(a,PROP_NAME))&&this._datepickerShowing){var c=this._get(b,"showAnim"),d=this._
get(b,"duration"),e=this,f=function(){$.datepicker._tidyDialog(b),e._curInst=null};$.effects&&$.effects[c]?b.dpDiv.hide(c,$.datepicker._get(b,"showOptions"),d,f):b.dpDiv["slideDown"==c?"slideUp":"fadeIn"==c?"fadeOut":"hide"](c?d:null,f),c||f(),this._datepickerShowing=!1;var g=this._get(b,"onClose");g&&g.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.dpDiv))),this._inDialog=!1}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if($.datepicker._curInst){var b=$(a.target),c=$.datepicker._getInst(b[0]);(b[0].id!=$.datepicker._mainDivId&&0==b.parents("#"+$.datepicker._mainDivId).length&&!b.hasClass($.datepicker.markerClassName)&&!b.closest("."+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&(!$.datepicker._inDialog||!$.block
UI)||b.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!=c)&&$.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){var d=$(a),e=this._getInst(d[0]);this._isDisabledDatepicker(d[0])||(this._adjustInstDate(e,b+("M"==c?this._get(e,"showCurrentAtPos"):0),c),this._updateDatepicker(e))},_gotoToday:function(a){var b=$(a),c=this._getInst(b[0]);if(this._get(c,"gotoCurrent")&&c.currentDay)c.selectedDay=c.currentDay,c.drawMonth=c.selectedMonth=c.currentMonth,c.drawYear=c.selectedYear=c.currentYear;else{var d=new Date;c.selectedDay=d.getDate(),c.drawMonth=c.selectedMonth=d.getMonth(),c.drawYear=c.selectedYear=d.getFullYear()}this._notifyChange(c),this._adjustDate(b)},_selectMonthYear:function(a,b,c){var d=$(a),e=this._getInst(d[0]);e["selected"+("M"==c?"Month":"Year")]=e["draw"+("M"==c?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10),this._notifyChange(e),this._adjustDate(d)},_selectDay:function(a,b,c,d){var e=$(a);if(!$(d).hasClass(this._unselectableClass)&&!t
his._isDisabledDatepicker(e[0])){var f=this._getInst(e[0]);f.selectedDay=f.currentDay=$("a",d).html(),f.selectedMonth=f.currentMonth=b,f.selectedYear=f.currentYear=c,this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))
}},_clearDate:function(a){{var b=$(a);this._getInst(b[0])}this._selectDate(b,"")},_selectDate:function(a,b){var c=$(a),d=this._getInst(c[0]);b=null!=b?b:this._formatDate(d),d.input&&d.input.val(b),this._updateAlternate(d);var e=this._get(d,"onSelect");e?e.apply(d.input?d.input[0]:null,[b,d]):d.input&&d.input.trigger("change"),d.inline?this._updateDatepicker(d):(this._hideDatepicker(),this._lastInput=d.input[0],"object"!=typeof d.input[0]&&d.input.focus(),this._lastInput=null)},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),d=this._getDate(a),e=this.formatDate(c,d,this._getFormatConfig(a));$(b).each(function(){$(this).val(e)})}},noWeekends:function(a){var b=a.getDay();return[b>0&&6>b,""]},iso8601Week:function(a){var b=new Date(a.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1},parseDate:function(a,b,c){if(null==a|
|null==b)throw"Invalid arguments";if(b="object"==typeof b?b.toString():b+"",""==b)return null;var d=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;d="string"!=typeof d?d:(new Date).getFullYear()%100+parseInt(d,10);for(var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=-1,j=-1,k=-1,l=-1,m=!1,n=function(b){var c=s+1<a.length&&a.charAt(s+1)==b;return c&&s++,c},o=function(a){var c=n(a),d="@"==a?14:"!"==a?20:"y"==a&&c?4:"o"==a?3:2,e=new RegExp("^\\d{1,"+d+"}"),f=b.substring(r).match(e);if(!f)throw"Missing number at position "+r;return r+=f[0].length,parseInt(f[0],10)},p=function(a,c,d){var e=$.map(n(a)?d:c,function(a,b){return[[b,a]]}).sort(function(a,b){return-(a[1].length-b[1].length)}),f=-1;if($.each(e,function(a,c){var d=c[1];return b.substr(r,d.length).toLowerCase()==d.toLowerCase()?(f=c[0],r+=d.length,
!1):void 0}),-1!=f)return f+1;throw"Unknown name at position "+r},q=function(){if(b.charAt(r)!=a.charAt(s))throw"Unexpected literal at position "+r;r++},r=0,s=0;s<a.length;s++)if(m)"'"!=a.charAt(s)||n("'")?q():m=!1;else switch(a.charAt(s)){case"d":k=o("d");break;case"D":p("D",e,f);break;case"o":l=o("o");break;case"m":j=o("m");break;case"M":j=p("M",g,h);break;case"y":i=o("y");break;case"@":var t=new Date(o("@"));i=t.getFullYear(),j=t.getMonth()+1,k=t.getDate();break;case"!":var t=new Date((o("!")-this._ticksTo1970)/1e4);i=t.getFullYear(),j=t.getMonth()+1,k=t.getDate();break;case"'":n("'")?q():m=!0;break;default:q()}if(r<b.length)throw"Extra/unparsed characters found in date: "+b.substring(r);if(-1==i?i=(new Date).getFullYear():100>i&&(i+=(new Date).getFullYear()-(new Date).getFullYear()%100+(d>=i?0:-100)),l>-1)for(j=1,k=l;;){var u=this._getDaysInMonth(i,j-1);if(u>=k)break;j++,k-=u}var t=this._daylightSavingAdjust(new Date(i,j-1,k));if(t.getFullYear()!=i||t.getMonth()+1!=j||t.getDate(
)!=k)throw"Invalid date";return t},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7,formatDate:function(a,b,c){if(!b)return"";var d=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,e=(c?c.dayNames:null)||this._defaults.dayNames,f=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,h=function(b){var c=m+1<a.length&&a.charAt(m+1)==b;return c&&m++,c},i=function(a,b,c){var d=""+b;if(h(a))for(;d.length<c;)d="0"+d;return d},j=function(a,b,c,d){return h(a)?d[b]:c[b]},k="",l=!1;if(b)for(var m=0;m<a.length;m++)if(l)"'"!=a.charAt(m)||h("'")?k+=a.charAt(m):l=!1;else switch(a.charAt(m)){case"d":k+=i("d",b.getDate(),2);break;case"D":k+=j("D",b.getDay(),d,e);break;case"o":k+=i("o",Math.r
ound((new Date(b.getFullYear(),b.getMonth(),b.getDate()).getTime()-new Date(b.getFullYear(),0,0).getTime())/864e5),3);break;case"m":k+=i("m",b.getMonth()+1,2);break;case"M":k+=j("M",b.getMonth(),f,g);break;case"y":k+=h("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case"@":k+=b.getTime();break;case"!":k+=1e4*b.getTime()+this._ticksTo1970;break;case"'":h("'")?k+="'":l=!0;break;default:k+=a.charAt(m)}return k},_possibleChars:function(a){for(var b="",c=!1,d=function(b){var c=e+1<a.length&&a.charAt(e+1)==b;return c&&e++,c},e=0;e<a.length;e++)if(c)"'"!=a.charAt(e)||d("'")?b+=a.charAt(e):c=!1;else switch(a.charAt(e)){case"d":case"m":case"y":case"@":b+="0123456789";break;case"D":case"M":return null;case"'":d("'")?b+="'":c=!0;break;default:b+=a.charAt(e)}return b},_get:function(a,b){return a.settings[b]!==undefined?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var e,f,c=this._get(a,"dateFormat"),d=a.lastVal=a.input?a.in
put.val():null;e=f=this._getDefaultDate(a);var g=this._getFormatConfig(a);try{e=this.parseDate(c,d,g)||f}catch(h){this.log(h),d=b?"":d}a.selectedDay=e.getDate(),a.drawMonth=a.selectedMonth=e.getMonth(),a.drawYear=a.selectedYear=e.getFullYear(),a.currentDay=d?e.getDate():0,a.currentMonth=d?e.getMonth():0,a.currentYear=d?e.getFullYear():0,this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var d=function(a){var b=new Date;return b.setDate(b.getDate()+a),b},e=function(b){try{return $.datepicker.parseDate($.datepicker._get(a,"dateFormat"),b,$.datepicker._getFormatConfig(a))}catch(c){}for(var d=(b.toLowerCase().match(/^c/)?$.datepicker._getDate(a):null)||new Date,e=d.getFullYear(),f=d.getMonth(),g=d.getDate(),h=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,i=h.exec(b);i;){switch(i[2]||"d"){case"d":case"D":g+=parseInt(i[1],10);break;case"w":case"W":g+=7*parseInt(i[1],10);bre
ak;case"m":case"M":f+=parseInt(i[1],10),g=Math.min(g,$.datepicker._getDaysInMonth(e,f));break;case"y":case"Y":e+=parseInt(i[1],10),g=Math.min(g,$.datepicker._getDaysInMonth(e,f))}i=h.exec(b)}return new Date(e,f,g)},f=null==b||""===b?c:"string"==typeof b?e(b):"number"==typeof b?isNaN(b)?c:d(b):new Date(b.getTime());return f=f&&"Invalid Date"==f.toString()?c:f,f&&(f.setHours(0),f.setMinutes(0),f.setSeconds(0),f.setMilliseconds(0)),this._daylightSavingAdjust(f)},_daylightSavingAdjust:function(a){return a?(a.setHours(a.getHours()>12?a.getHours()+2:0),a):null},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),(e!=a.selectedMonth||f!=a.selectedYear)&&!c&&this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?"":this._formatDate(a))},_getDate:functio
n(a){var b=!a.currentYear||a.input&&""==a.input.val()?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),d=this._get(a,"showButtonPanel"),e=this._get(a,"hideIfNoPrevNext"),f=this._get(a,"navigationAsDateFormat"),g=this._getNumberOfMonths(a),h=this._get(a,"showCurrentAtPos"),i=this._get(a,"stepMonths"),j=1!=g[0]||1!=g[1],k=this._daylightSavingAdjust(a.currentDay?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),l=this._getMinMaxDate(a,"min"),m=this._getMinMaxDate(a,"max"),n=a.drawMonth-h,o=a.drawYear;if(0>n&&(n+=12,o--),m){var p=this._daylightSavingAdjust(new Date(m.getFullYear(),m.getMonth()-g[0]*g[1]+1,m.getDate()));for(p=l&&l>p?l:p;this._daylightSavingAdjust(new Date(o,n,1))>p;)n--,0>n&&(n=11,o--)}a.drawMonth=n,a.drawYear=o;var q=this._get(a,"prevText");q=f?this.formatD
ate(q,this._daylightSavingAdjust(new Date(o,n-i,1)),this._getFormatConfig(a)):q;var r=this._canAdjustMonth(a,-1,o,n)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._adjustDate('#"+a.id+"', -"+i+", 'M');\" title=\""+q+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+q+"</span></a>":e?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+q+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+q+"</span></a>",s=this._get(a,"nextText");s=f?this.formatDate(s,this._daylightSavingAdjust(new Date(o,n+i,1)),this._getFormatConfig(a)):s;var t=this._canAdjustMonth(a,1,o,n)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._adjustDate('#"+a.id+"', +"+i+", 'M');\" title=\""+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>":e?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+s+'"><span class="ui-icon ui-icon-circl
e-triangle-'+(c?"w":"e")+'">'+s+"</span></a>",u=this._get(a,"currentText"),v=this._get(a,"gotoCurrent")&&a.currentDay?k:b;u=f?this.formatDate(u,v,this._getFormatConfig(a)):u;var w=a.inline?"":'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+dpuuid+'.datepicker._hideDatepicker();">'+this._get(a,"closeText")+"</button>",x=d?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?w:"")+(this._isInRange(a,v)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._gotoToday('#"+a.id+"');\">"+u+"</button>":"")+(c?"":w)+"</div>":"",y=parseInt(this._get(a,"firstDay"),10);y=isNaN(y)?0:y;for(var z=this._get(a,"showWeek"),A=this._get(a,"dayNames"),C=(this._get(a,"dayNamesShort"),this._get(a,"dayNamesMin")),D=this._get(a,"monthNames"),E=this._get(a,"monthNamesShort"),F=this._get(a,"beforeShowDay"),G=this._get(a,"showOtherMont
hs"),H=this._get(a,"selectOtherMonths"),J=(this._get(a,"calculateWeek")||this.iso8601Week,this._getDefaultDate(a)),K="",L=0;L<g[0];L++){var M="";this.maxRows=4;for(var N=0;N<g[1];N++){var O=this._daylightSavingAdjust(new Date(o,n,a.selectedDay)),P=" ui-corner-all",Q="";if(j){if(Q+='<div class="ui-datepicker-group',g[1]>1)switch(N){case 0:Q+=" ui-datepicker-group-first",P=" ui-corner-"+(c?"right":"left");break;case g[1]-1:Q+=" ui-datepicker-group-last",P=" ui-corner-"+(c?"left":"right");break;default:Q+=" ui-datepicker-group-middle",P=""}Q+='">'}Q+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+P+'">'+(/all|left/.test(P)&&0==L?c?t:r:"")+(/all|right/.test(P)&&0==L?c?r:t:"")+this._generateMonthYearHeader(a,n,o,l,m,L>0||N>0,D,E)+'</div><table class="ui-datepicker-calendar"><thead><tr>';for(var R=z?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"",S=0;7>S;S++){var T=(S+y)%7;R+="<th"+((S+y+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><sp
an title="'+A[T]+'">'+C[T]+"</span></th>"}Q+=R+"</tr></thead><tbody>";var U=this._getDaysInMonth(o,n);o==a.selectedYear&&n==a.selectedMonth&&(a.selectedDay=Math.min(a.selectedDay,U));var V=(this._getFirstDayOfMonth(o,n)-y+7)%7,W=Math.ceil((V+U)/7),X=j&&this.maxRows>W?this.maxRows:W;this.maxRows=X;for(var Y=this._daylightSavingAdjust(new Date(o,n,1-V)),Z=0;X>Z;Z++){Q+="<tr>";for(var _=z?'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(Y)+"</td>":"",S=0;7>S;S++){var ba=F?F.apply(a.input?a.input[0]:null,[Y]):[!0,""],bb=Y.getMonth()!=n,bc=bb&&!H||!ba[0]||l&&l>Y||m&&Y>m;_+='<td class="'+((S+y+6)%7>=5?" ui-datepicker-week-end":"")+(bb?" ui-datepicker-other-month":"")+(Y.getTime()==O.getTime()&&n==a.selectedMonth&&a._keyEvent||J.getTime()==Y.getTime()&&J.getTime()==O.getTime()?" "+this._dayOverClass:"")+(bc?" "+this._unselectableClass+" ui-state-disabled":"")+(bb&&!G?"":" "+ba[1]+(Y.getTime()==k.getTime()?" "+this._currentClass:"")+(Y.getTime()==b.getTime()?" ui-datepicke
r-today":""))+'"'+(bb&&!G||!ba[2]?"":' title="'+ba[2]+'"')+(bc?"":' onclick="DP_jQuery_'+dpuuid+".datepicker._selectDay('#"+a.id+"',"+Y.getMonth()+","+Y.getFullYear()+', this);return false;"')+">"+(bb&&!G?" ":bc?'<span class="ui-state-default">'+Y.getDate()+"</span>":'<a class="ui-state-default'+(Y.getTime()==b.getTime()?" ui-state-highlight":"")+(Y.getTime()==k.getTime()?" ui-state-active":"")+(bb?" ui-priority-secondary":"")+'" href="#">'+Y.getDate()+"</a>")+"</td>",Y.setDate(Y.getDate()+1),Y=this._daylightSavingAdjust(Y)}Q+=_+"</tr>"}n++,n>11&&(n=0,o++),Q+="</tbody></table>"+(j?"</div>"+(g[0]>0&&N==g[1]-1?'<div class="ui-datepicker-row-break"></div>':""):""),M+=Q}K+=M}return K+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':""),a._keyEvent=!1,K},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i=this._get(a,"changeMonth"),j=this._get(a,"changeYear"),k=this._get(a,"sh
owMonthAfterYear"),l='<div class="ui-datepicker-title">',m="";if(f||!i)m+='<span class="ui-datepicker-month">'+g[b]+"</span>";else{var n=d&&d.getFullYear()==c,o=e&&e.getFullYear()==c;m+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+dpuuid+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" >";for(var p=0;12>p;p++)(!n||p>=d.getMonth())&&(!o||p<=e.getMonth())&&(m+='<option value="'+p+'"'+(p==b?' selected="selected"':"")+">"+h[p]+"</option>");m+="</select>"}if(k||(l+=m+(!f&&i&&j?"":" ")),!a.yearshtml)if(a.yearshtml="",f||!j)l+='<span class="ui-datepicker-year">'+c+"</span>";else{var q=this._get(a,"yearRange").split(":"),r=(new Date).getFullYear(),s=function(a){var b=a.match(/c[+-].*/)?c+parseInt(a.substring(1),10):a.match(/[+-].*/)?r+parseInt(a,10):parseInt(a,10);return isNaN(b)?r:b},t=s(q[0]),u=Math.max(t,s(q[1]||""));for(t=d?Math.max(t,d.getFullYear()):t,u=e?Math.min(u,e.getFullYear()):u,a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+dpu
uid+".datepicker._selectMonthYear('#"+a.id+"', this, 'Y');\" >";u>=t;t++)a.yearshtml+='<option value="'+t+'"'+(t==c?' selected="selected"':"")+">"+t+"</option>";a.yearshtml+="</select>",l+=a.yearshtml,a.yearshtml=null}return l+=this._get(a,"yearSuffix"),k&&(l+=(!f&&i&&j?"":" ")+m),l+="</div>",l},_adjustInstDate:function(a,b,c){var d=a.drawYear+("Y"==c?b:0),e=a.drawMonth+("M"==c?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+("D"==c?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),("M"==c||"Y"==c)&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&c>b?c:b;return e=d&&e>d?d:e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,"nu
mberOfMonths");return null==b?[1,1]:"number"==typeof b?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return new Date(a,b,1).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(0>b?b:e[0]*e[1]),1));return 0>b&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth())),this._isInRange(a,f)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!d||b.getTime()<=d.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");return b="string"!=typeof b?b:(new Date).getFullYear()%100+parseInt(b,10),{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:th
is._get(a,"monthNames")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth,a.currentYear=a.selectedYear);var e=b?"object"==typeof b?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),$.fn.datepicker=function(a){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);return"string"!=typeof a||"isDisabled"!=a&&"getDate"!=a&&"widget"!=a?"option"==a&&2==arguments.length&&"string"==typeof arguments[1]?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b)):this.each(function(){"string"==typeof a?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this].concat(b)):$.datepicker._attachDatepicker(this,a)}):$.dat
epicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.8.18",window["DP_jQuery_"+dpuuid]=$}(jQuery),function(a,b){var c="ui-dialog ui-widget ui-widget-content ui-corner-all ",d={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},e={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},f=a.attrFn||{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0,click:!0};a.widget("ui.dialog",{options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",collision:"fit",using:function(b){var c=a(this).css(b).offset().top;0>c&&a(this).css("top",b.top-c)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("tit
le"),"string"!=typeof this.originalTitle&&(this.originalTitle=""),this.options.title=this.options.title||this.originalTitle;{var b=this,d=b.options,e=d.title||" ",f=a.ui.dialog.getTitleId(b.element),g=(b.uiDialog=a("<div></div>")).appendTo(document.body).hide().addClass(c+d.dialogClass).css({zIndex:d.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(c){d.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}).attr({role:"dialog","aria-labelledby":f}).mousedown(function(a){b.moveToTop(!1,a)}),i=(b.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g),(b.uiDialogTitlebar=a("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g)),j=a('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){j.addClass("ui-state-hover")},function(){j.removeClass("ui-state-hover")}
).focus(function(){j.addClass("ui-state-focus")}).blur(function(){j.removeClass("ui-state-focus")}).click(function(a){return b.close(a),!1}).appendTo(i);(b.uiDialogTitlebarCloseText=a("<span></span>")).addClass("ui-icon ui-icon-closethick").text(d.closeText).appendTo(j),a("<span></span>").addClass("ui-dialog-title").attr("id",f).html(e).prependTo(i)}a.isFunction(d.beforeclose)&&!a.isFunction(d.beforeClose)&&(d.beforeClose=d.beforeclose),i.find("*").add(i).disableSelection(),d.draggable&&a.fn.draggable&&b._makeDraggable(),d.resizable&&a.fn.resizable&&b._makeResizable(),b._createButtons(d.buttons),b._isOpen=!1,a.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;return a.overlay&&a.overlay.destroy(),a.uiDialog.hide(),a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),a.uiDialog.remove(),a.originalTitle&&a.element.attr("title",a.originalTitle),a},widget:fu
nction(){return this.uiDialog},close:function(b){var d,e,c=this;return!1!==c._trigger("beforeClose",b)?(c.overlay&&c.overlay.destroy(),c.uiDialog.unbind("keypress.ui-dialog"),c._isOpen=!1,c.options.hide?c.uiDialog.hide(c.options.hide,function(){c._trigger("close",b)}):(c.uiDialog.hide(),c._trigger("close",b)),a.ui.dialog.overlay.resize(),c.options.modal&&(d=0,a(".ui-dialog").each(function(){this!==c.uiDialog[0]&&(e=a(this).css("z-index"),isNaN(e)||(d=Math.max(d,e)))}),a.ui.dialog.maxZ=d),c):void 0},isOpen:function(){return this._isOpen},moveToTop:function(b,c){var f,d=this,e=d.options;return e.modal&&!b||!e.stack&&!e.modal?d._trigger("focus",c):(e.zIndex>a.ui.dialog.maxZ&&(a.ui.dialog.maxZ=e.zIndex),d.overlay&&(a.ui.dialog.maxZ+=1,d.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ)),f={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()},a.ui.dialog.maxZ+=1,d.uiDialog.css("z-index",a.ui.dialog.maxZ),d.element.attr(f),d._trigger("focus",c),d)},open:fu
nction(){if(!this._isOpen){var b=this,c=b.options,d=b.uiDialog;return b.overlay=c.modal?new a.ui.dialog.overlay(b):null,b._size(),b._position(c.position),d.show(c.show),b.moveToTop(!0),c.modal&&d.bind("keydown.ui-dialog",function(b){if(b.keyCode===a.ui.keyCode.TAB){var c=a(":tabbable",this),d=c.filter(":first"),e=c.filter(":last");if(b.target===e[0]&&!b.shiftKey)return d.focus(1),!1;if(b.target===d[0]&&b.shiftKey)return e.focus(1),!1}}),a(b.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus(),b._isOpen=!0,b._trigger("open"),b}},_createButtons:function(b){var c=this,d=!1,e=a("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=a("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);c.uiDialog.find(".ui-dialog-buttonpane").remove(),"object"==typeof b&&null!==b&&a.each(b,function(){return!(d=!0)}),d&&(a.each(b,function(b,d){d=a.isFunction(d)?{click:d,text:b}:d;var e=a('<button type=
"button"></button>').click(function(){d.click.apply(c.element[0],arguments)}).appendTo(g);a.each(d,function(a,b){"click"!==a&&(a in f?e[a](b):e.attr(a,b))}),a.fn.button&&e.button()}),e.appendTo(c.uiDialog))},_makeDraggable:function(){function f(a){return{position:a.position,offset:a.offset}}var e,b=this,c=b.options,d=a(document);b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(d,g){e="auto"===c.height?"auto":a(this).height(),a(this).height(a(this).height()).addClass("ui-dialog-dragging"),b._trigger("dragStart",d,f(g))},drag:function(a,c){b._trigger("drag",a,f(c))},stop:function(g,h){c.position=[h.position.left-d.scrollLeft(),h.position.top-d.scrollTop()],a(this).removeClass("ui-dialog-dragging").height(e),b._trigger("dragStop",g,f(h)),a.ui.dialog.overlay.resize()}})},_makeResizable:function(c){function h(a){return{originalPosition:a.originalPosition,originalSize:a.originalSize,position:a.p
osition,size:a.size}}c=c===b?this.options.resizable:c;var d=this,e=d.options,f=d.uiDialog.css("position"),g="string"==typeof c?c:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:g,start:function(b,c){a(this).addClass("ui-dialog-resizing"),d._trigger("resizeStart",b,h(c))},resize:function(a,b){d._trigger("resize",a,h(b))},stop:function(b,c){a(this).removeClass("ui-dialog-resizing"),e.height=a(this).height(),e.width=a(this).width(),d._trigger("resizeStop",b,h(c)),a.ui.dialog.overlay.resize()}}).css("position",f).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return"auto"===a.height?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(b){var e,c=[],d=[0,0];b?(("string"==typeof b||"object"==typeof b&&"0"in b)&&(c=b.split?b.split(" "):[b[0],b[1]],1===c.le
ngth&&(c[1]=c[0]),a.each(["left","top"],function(a,b){+c[a]===c[a]&&(d[a]=c[a],c[a]=b)}),b={my:c.join(" "),at:c.join(" "),offset:d.join(" ")}),b=a.extend({},a.ui.dialog.prototype.options.position,b)):b=a.ui.dialog.prototype.options.position,e=this.uiDialog.is(":visible"),e||this.uiDialog.show(),this.uiDialog.css({top:0,left:0}).position(a.extend({of:window},b)),e||this.uiDialog.hide()},_setOptions:function(b){var c=this,f={},g=!1;a.each(b,function(a,b){c._setOption(a,b),a in d&&(g=!0),a in e&&(f[a]=b)}),g&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",f)},_setOption:function(b,d){var e=this,f=e.uiDialog;switch(b){case"beforeclose":b="beforeClose";break;case"buttons":e._createButtons(d);break;case"closeText":e.uiDialogTitlebarCloseText.text(""+d);break;case"dialogClass":f.removeClass(e.options.dialogClass).addClass(c+d);break;case"disabled":d?f.addClass("ui-dialog-disabled"):f.removeClass("ui-dialog-disabled");break;case"draggable":var g=f.is(":d
ata(draggable)");g&&!d&&f.draggable("destroy"),!g&&d&&e._makeDraggable();break;case"position":e._position(d);break;case"resizable":var h=f.is(":data(resizable)");h&&!d&&f.resizable("destroy"),h&&"string"==typeof d&&f.resizable("option","handles",d),!h&&d!==!1&&e._makeResizable(d);break;case"title":a(".ui-dialog-title",e.uiDialogTitlebar).html(""+(d||" "))}a.Widget.prototype._setOption.apply(e,arguments)},_size:function(){var c,d,b=this.options,e=this.uiDialog.is(":visible");if(this.element.show().css({width:"auto",minHeight:0,height:0}),b.minWidth>b.width&&(b.width=b.minWidth),c=this.uiDialog.css({height:"auto",width:b.width}).height(),d=Math.max(0,b.minHeight-c),"auto"===b.height)if(a.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();var f=this.element.css("height","auto").height();e||this.uiDialog.hide(),this.element.height(Math.max(f,d))}else this.element.height(Math.max(b.height-c,0));this.uiDialog.is(":data(resizable)")&&this.uiDialo
g.resizable("option","minHeight",this._minHeight())}}),a.extend(a.ui.dialog,{version:"1.8.18",uuid:0,maxZ:0,getTitleId:function(a){var b=a.attr("id");return b||(this.uuid+=1,b=this.uuid),"ui-dialog-title-"+b},overlay:function(b){this.$el=a.ui.dialog.overlay.create(b)}}),a.extend(a.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(b){0===this.instances.length&&(setTimeout(function(){a.ui.dialog.overlay.instances.length&&a(document).bind(a.ui.dialog.overlay.events,function(b){return a(b.target).zIndex()<a.ui.dialog.overlay.maxZ?!1:void 0})},1),a(document).bind("keydown.dialog-overlay",function(c){b.options.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}),a(window).bind("resize.dialog-overlay",a.ui.dialog.overlay.resize));var c=(this.oldInstances.pop()||a("<div></div>").addCl
ass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});return a.fn.bgiframe&&c.bgiframe(),this.instances.push(c),c},destroy:function(b){var c=a.inArray(b,this.instances);-1!=c&&this.oldInstances.push(this.instances.splice(c,1)[0]),0===this.instances.length&&a([document,window]).unbind(".dialog-overlay"),b.remove();var d=0;a.each(this.instances,function(){d=Math.max(d,this.css("z-index"))}),this.maxZ=d},height:function(){var b,c;return a.browser.msie&&a.browser.version<7?(b=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),c=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight),c>b?a(window).height()+"px":b+"px"):a(document).height()+"px"},width:function(){var b,c;return a.browser.msie?(b=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth),c=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth),c>b?a(window).width()+"px":b+"px"):a(document).width()+"px"},res
ize:function(){var b=a([]);a.each(a.ui.dialog.overlay.instances,function(){b=b.add(this)}),b.css({width:0,height:0}).css({width:a.ui.dialog.overlay.width(),height:a.ui.dialog.overlay.height()})}}),a.extend(a.ui.dialog.overlay.prototype,{destroy:function(){a.ui.dialog.overlay.destroy(this.$el)}})}(jQuery),function(a){a.ui=a.ui||{};var c=/left|center|right/,d=/top|center|bottom/,e="center",f={},g=a.fn.position,h=a.fn.offset;a.fn.position=function(b){if(!b||!b.of)return g.apply(this,arguments);b=a.extend({},b);var l,m,n,h=a(b.of),i=h[0],j=(b.collision||"flip").split(" "),k=b.offset?b.offset.split(" "):[0,0];return 9===i.nodeType?(l=h.width(),m=h.height(),n={top:0,left:0}):i.setTimeout?(l=h.width(),m=h.height(),n={top:h.scrollTop(),left:h.scrollLeft()}):i.preventDefault?(b.at="left top",l=m=0,n={top:b.of.pageY,left:b.of.pageX}):(l=h.outerWidth(),m=h.outerHeight(),n=h.offset()),a.each(["my","at"],function(){var a=(b[this]||"").split(" ");1===a.length&&(a=c.test(a[0])?a.concat([e]):d.test
(a[0])?[e].concat(a):[e,e]),a[0]=c.test(a[0])?a[0]:e,a[1]=d.test(a[1])?a[1]:e,b[this]=a}),1===j.length&&(j[1]=j[0]),k[0]=parseInt(k[0],10)||0,1===k.length&&(k[1]=k[0]),k[1]=parseInt(k[1],10)||0,"right"===b.at[0]?n.left+=l:b.at[0]===e&&(n.left+=l/2),"bottom"===b.at[1]?n.top+=m:b.at[1]===e&&(n.top+=m/2),n.left+=k[0],n.top+=k[1],this.each(function(){var r,c=a(this),d=c.outerWidth(),g=c.outerHeight(),h=parseInt(a.curCSS(this,"marginLeft",!0))||0,i=parseInt(a.curCSS(this,"marginTop",!0))||0,o=d+h+(parseInt(a.curCSS(this,"marginRight",!0))||0),p=g+i+(parseInt(a.curCSS(this,"marginBottom",!0))||0),q=a.extend({},n);"right"===b.my[0]?q.left-=d:b.my[0]===e&&(q.left-=d/2),"bottom"===b.my[1]?q.top-=g:b.my[1]===e&&(q.top-=g/2),f.fractions||(q.left=Math.round(q.left),q.top=Math.round(q.top)),r={left:q.left-h,top:q.top-i},a.each(["left","top"],function(c,e){a.ui.position[j[c]]&&a.ui.position[j[c]][e](q,{targetWidth:l,targetHeight:m,elemWidth:d,elemHeight:g,collisionPosition:r,collisionWidth:o,coll
isionHeight:p,offset:k,my:b.my,at:b.at})}),a.fn.bgiframe&&c.bgiframe(),c.offset(a.extend(q,{using:b.using}))})},a.ui.position={fit:{left:function(b,c){var d=a(window),e=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft();b.left=e>0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]!==e){var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g="left"===c.my[0]?-c.elemWidth:"right"===c.my[0]?c.elemWidth:0,h="left"===c.at[0]?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0}},top:function(b,c){if(c.at[1]!==e){var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g="top"===c.my[1]?-c.elemHeight:"bottom"===c.my[1]?c.elemHeight:0,h="top"===c.at[1]?c.targetH
eight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,"position"))&&(b.style.position="relative");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,"top",!0),10)||0,g=parseInt(a.curCSS(b,"left",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};"using"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];return c&&c.ownerDocument?b?this.each(function(){a.offset.setOffset(this,b)}):h.call(this):null}),function(){var d,e,g,h,i,b=document.getElementsByTagName("body")[0],c=document.createElement("div");d=document.createElement(b?"div":"body"),g={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},b&&a.extend(g,{position:"absolute",left:"-1000px",top:"-1000px"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText="position: absolute; left: 10.7432222px; top: 10.
432325px; height: 30px; width: 201px;",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML="",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&22>i
}()}(jQuery),function(a,b){a.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()}),this.valueDiv=a("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove(),a.Widget.prototype.destroy.apply(this,arguments)},value:function(a){return a===b?this._value():(this._setOption("value",a),this)},_setOption:function(b,c){"value"===b&&(this.options.value=c,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),a.Widget.prototype._setOpti
on.apply(this,arguments)},_value:function(){var a=this.options.value;return"number"!=typeof a&&(a=0),Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var a=this.value(),b=this._percentage();this.oldValue!==a&&(this.oldValue=a,this._trigger("change")),this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(b.toFixed(0)+"%"),this.element.attr("aria-valuenow",a)}}),a.extend(a.ui.progressbar,{version:"1.8.18"})}(jQuery),function(a){var c=5;a.widget("ui.slider",a.ui.mouse,{widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var b=this,d=this.options,e=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f="<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",g=d.values&&d.values.length||1,h=[];this._keySliding=!1,thi
s._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all"+(d.disabled?" ui-slider-disabled ui-disabled":"")),this.range=a([]),d.range&&(d.range===!0&&(d.values||(d.values=[this._valueMin(),this._valueMin()]),d.values.length&&2!==d.values.length&&(d.values=[d.values[0],d.values[0]])),this.range=a("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+("min"===d.range||"max"===d.range?" ui-slider-range-"+d.range:"")));for(var i=e.length;g>i;i+=1)h.push(f);this.handles=e.add(a(h.join("")).appendTo(b.element)),this.handle=this.handles.eq(0),this.handles.add(this.range).filter("a").click(function(a){a.preventDefault()}).hover(function(){d.disabled||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}).focus(function(){d.disabled?a(this).blur():(a(".ui-slider .ui-state-focus").
removeClass("ui-state-focus"),a(this).addClass("ui-state-focus"))}).blur(function(){a(this).removeClass("ui-state-focus")}),this.handles.each(function(b){a(this).data("index.ui-slider-handle",b)}),this.handles.keydown(function(d){var f,g,h,i,e=a(this).data("index.ui-slider-handle");if(!b.options.disabled){switch(d.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.PAGE_UP:case a.ui.keyCode.PAGE_DOWN:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(d.preventDefault(),!b._keySliding&&(b._keySliding=!0,a(this).addClass("ui-state-active"),f=b._start(d,e),f===!1))return}switch(i=b.options.step,g=h=b.options.values&&b.options.values.length?b.values(e):b.value(),d.keyCode){case a.ui.keyCode.HOME:h=b._valueMin();break;case a.ui.keyCode.END:h=b._valueMax();break;case a.ui.keyCode.PAGE_UP:h=b._trimAlignValue(g+(b._valueMax()-b._valueMin())/c);break;case a.ui.keyCode.PAGE_DOWN:h=b._trimAlignValue(g-(b._valueMax()-b._valueMin())/
c);break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g===b._valueMax())return;h=b._trimAlignValue(g+i);break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g===b._valueMin())return;h=b._trimAlignValue(g-i)}b._slide(d,e,h)}}).keyup(function(c){var d=a(this).data("index.ui-slider-handle");b._keySliding&&(b._keySliding=!1,b._stop(c,d),b._change(c,d),a(this).removeClass("ui-state-active"))}),this._refreshValue(),this._animateOff=!1},destroy:function(){return this.handles.remove(),this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"),this._mouseDestroy(),this},_mouseCapture:function(b){var d,e,f,g,h,i,j,k,l,c=this.options;return c.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),d={x:b.pageX,y:b.pageY},e=this._normValueFromMouse(d),f=this._valueMax()-t
his._valueMin()+1,h=this,this.handles.each(function(b){var c=Math.abs(e-h.values(b));f>c&&(f=c,g=a(this),i=b)}),c.range===!0&&this.values(1)===c.min&&(i+=1,g=a(this.handles[i])),j=this._start(b,i),j===!1?!1:(this._mouseSliding=!0,h._handleIndex=i,g.addClass("ui-state-active").focus(),k=g.offset(),l=!a(b.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:b.pageX-k.left-g.width()/2,top:b.pageY-k.top-g.height()/2-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(b,i,e),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);return this._slide(a,this._handleIndex,c),!1},_mouseStop:function(a){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._ha
ndleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(a){var b,c,d,e,f;return"horizontal"===this.orientation?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),0>d&&(d=0),"vertical"===this.orientation&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e,this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};return this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("start",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),2===this.options.values.length&&this.options.range===!0&&(0===b&&c>d||1===b&&d>c)
&&(c=d),c!==this.values(b)&&(e=this.values(),e[b]=c,f=this._trigger("slide",a,{handle:this.handles[b],value:c,values:e}),d=this.values(b?0:1),f!==!1&&this.values(b,c,!0))):c!==this.value()&&(f=this._trigger("slide",a,{handle:this.handles[b],value:c}),f!==!1&&this.value(c))},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("change",a,c)}},value:function(a){return arguments.length?(this.options.value=this._trimAlignValue(a),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(b,c){var d,e,f;if(arguments.length>1)this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),this._change(n
ull,b);else{if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();for(d=this.options.values,e=arguments[0],f=0;f<d.length;f+=1)d[f]=this._trimAlignValue(e[f]),this._change(null,f);this._refreshValue()}},_setOption:function(b,c){var d,e=0;switch(a.isArray(this.options.values)&&(e=this.options.values.length),a.Widget.prototype._setOption.apply(this,arguments),b){case"disabled":c?(this.handles.filter(".ui-state-focus").blur(),this.handles.removeClass("ui-state-hover"),this.handles.propAttr("disabled",!0),this.element.addClass("ui-disabled")):(this.handles.propAttr("disabled",!1),this.element.removeClass("ui-disabled"));break;case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue();break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animate
Off=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),d=0;e>d;d+=1)this._change(null,d);this._animateOff=!1}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c,d;if(arguments.length)return b=this.options.values[a],b=this._trimAlignValue(b);for(c=this.options.values.slice(),d=0;d<c.length;d+=1)c[d]=this._trimAlignValue(c[d]);return c},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;return 2*Math.abs(c)>=b&&(d+=c>0?b:-b),parseFloat(d.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var f,h,i,j,k,b=this.options.range,c=this.options,d=this,e=this._animateOff?!1:c.animate,g={};this.options.values&&this.options.values.length?this.handles.each(function(b){f=(d.values(b)-d._valueMin())/(d._va
lueMax()-d._valueMin())*100,g["horizontal"===d.orientation?"left":"bottom"]=f+"%",a(this).stop(1,1)[e?"animate":"css"](g,c.animate),d.options.range===!0&&("horizontal"===d.orientation?(0===b&&d.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},c.animate),1===b&&d.range[e?"animate":"css"]({width:f-h+"%"},{queue:!1,duration:c.animate})):(0===b&&d.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},c.animate),1===b&&d.range[e?"animate":"css"]({height:f-h+"%"},{queue:!1,duration:c.animate}))),h=f}):(i=this.value(),j=this._valueMin(),k=this._valueMax(),f=k!==j?(i-j)/(k-j)*100:0,g["horizontal"===d.orientation?"left":"bottom"]=f+"%",this.handle.stop(1,1)[e?"animate":"css"](g,c.animate),"min"===b&&"horizontal"===this.orientation&&this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},c.animate),"max"===b&&"horizontal"===this.orientation&&this.range[e?"animate":"css"]({width:100-f+"%"},{queue:!1,duration:c.animate}),"min"===b&&"vertical"===this.orientation&&this.range.stop(1,1)[e?"animate":"css"]
({height:f+"%"},c.animate),"max"===b&&"vertical"===this.orientation&&this.range[e?"animate":"css"]({height:100-f+"%"},{queue:!1,duration:c.animate}))}}),a.extend(a.ui.slider,{version:"1.8.18"})}(jQuery),function(a,b){function f(){return++d}function e(){return++c}var c=0,d=0;a.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:!1,cookie:null,collapsible:!1,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading…</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(!0)},_setOption:function(a,b){if("selected"==a){if(this.options.collapsible&&b==this.options.selected)return;this.select(b)}else this.options[a]=b,this._tabify()},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+e()},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")
},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+f());return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(a,b){return{tab:a,panel:b,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function m(b,c){b.css("display",""),!a.support.opacity&&c.opacity&&b[0].style.removeAttribute("filter")}var d=this,e=this.options,f=/^#.+/;this.list=this.element.find("ol,ul").eq(0),this.lis=a(" > li:has(a[href])",this.list),this.anchors=this.lis.map(function(){return a("a",this)[0]}),this.panels=a([]),this.anchors.each(function(b,c){var i,g=a(c).attr("href"),h=g.split("#")[0];if(h&&(h===location.toString().split("#")[0]||(i=a("base")[0])&&h===i.href)&&(g=c.hash,c.href=g),f.test(g))d.panels=d.panels.add(d.element.find(d._sanitizeSe
lector(g)));else if(g&&"#"!==g){a.data(c,"href.tabs",g),a.data(c,"load.tabs",g.replace(/#.*$/,""));var j=d._tabId(c);c.href="#"+j;var k=d.element.find("#"+j);k.length||(k=a(e.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(d.panels[b-1]||d.list),k.data("destroy.tabs",!0)),d.panels=d.panels.add(k)}else e.disabled.push(b)}),c?(this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"),this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.lis.addClass("ui-state-default ui-corner-top"),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"),e.selected===b?(location.hash&&this.anchors.each(function(a,b){return b.hash==location.hash?(e.selected=a,!1):void 0}),"number"!=typeof e.selected&&e.cookie&&(e.selected=parseInt(d._cookie(),10)),"number"!=typeof e.selected&&this.lis.filter(".ui-tabs-selected").length&&(e.selected=this.lis.index(this.lis.filter(".ui
-tabs-selected"))),e.selected=e.selected||(this.lis.length?0:-1)):null===e.selected&&(e.selected=-1),e.selected=e.selected>=0&&this.anchors[e.selected]||e.selected<0?e.selected:0,e.disabled=a.unique(e.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(a){return d.lis.index(a)}))).sort(),-1!=a.inArray(e.selected,e.disabled)&&e.disabled.splice(a.inArray(e.selected,e.disabled),1),this.panels.addClass("ui-tabs-hide"),this.lis.removeClass("ui-tabs-selected ui-state-active"),e.selected>=0&&this.anchors.length&&(d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash)).removeClass("ui-tabs-hide"),this.lis.eq(e.selected).addClass("ui-tabs-selected ui-state-active"),d.element.queue("tabs",function(){d._trigger("show",null,d._ui(d.anchors[e.selected],d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash))[0]))}),this.load(e.selected)),a(window).bind("unload",function(){d.lis.add(d.anchors).unbind(".tabs"),d.lis=d.anchors=d.panels=null})):e.selected=this.lis.ind
ex(this.lis.filter(".ui-tabs-selected")),this.element[e.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible"),e.cookie&&this._cookie(e.selected,e.cookie);for(var h,g=0;h=this.lis[g];g++)a(h)[-1==a.inArray(g,e.disabled)||a(h).hasClass("ui-tabs-selected")?"removeClass":"addClass"]("ui-state-disabled");if(e.cache===!1&&this.anchors.removeData("cache.tabs"),this.lis.add(this.anchors).unbind(".tabs"),"mouseover"!==e.event){var i=function(a,b){b.is(":not(.ui-state-disabled)")&&b.addClass("ui-state-"+a)},j=function(a,b){b.removeClass("ui-state-"+a)};this.lis.bind("mouseover.tabs",function(){i("hover",a(this))}),this.lis.bind("mouseout.tabs",function(){j("hover",a(this))}),this.anchors.bind("focus.tabs",function(){i("focus",a(this).closest("li"))}),this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var k,l;e.fx&&(a.isArray(e.fx)?(k=e.fx[0],l=e.fx[1]):k=l=e.fx);var n=l?function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.hide().remov
eClass("ui-tabs-hide").animate(l,l.duration||"normal",function(){m(c,l),d._trigger("show",null,d._ui(b,c[0]))})}:function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.removeClass("ui-tabs-hide"),d._trigger("show",null,d._ui(b,c[0]))},o=k?function(a,b){b.animate(k,k.duration||"normal",function(){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),m(b,k),d.element.dequeue("tabs")})}:function(a,b){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),d.element.dequeue("tabs")};this.anchors.bind(e.event+".tabs",function(){var b=this,c=a(b).closest("li"),f=d.panels.filter(":not(.ui-tabs-hide)"),g=d.element.find(d._sanitizeSelector(b.hash));if(c.hasClass("ui-tabs-selected")&&!e.collapsible||c.hasClass("ui-state-disabled")||c.hasClass("ui-state-processing")||d.panels.filter(":animated").length||d._trigger("select",null,d._ui(this,g[0]))===!1)return this.blur(),!1;if(e.selected=d.anchors.index(this),d.abort(),
e.collapsible){if(c.hasClass("ui-tabs-selected"))return e.selected=-1,e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){o(b,f)}).dequeue("tabs"),this.blur(),!1;if(!f.length)return e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),this.blur(),!1}if(e.cookie&&d._cookie(e.selected,e.cookie),!g.length)throw"jQuery UI Tabs: Mismatching fragment identifier.";f.length&&d.element.queue("tabs",function(){o(b,f)}),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),a.browser.msie&&this.blur()}),this.anchors.bind("click.tabs",function(){return!1})},_getIndex:function(a){return"string"==typeof a&&(a=this.anchors.index(this.anchors.filter("[href$="+a+"]"))),a},destroy:function(){var b=this.options;return this.abort(),this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"),this.list.removeClass("ui-tabs-nav ui-he
lper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.anchors.each(function(){var b=a.data(this,"href.tabs");b&&(this.href=b);var c=a(this).unbind(".tabs");a.each(["href","load","cache"],function(a,b){c.removeData(b+".tabs")})}),this.lis.unbind(".tabs").add(this.panels).each(function(){a.data(this,"destroy.tabs")?a(this).remove():a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}),b.cookie&&this._cookie(null,b.cookie),this},add:function(c,d,e){e===b&&(e=this.anchors.length);var f=this,g=this.options,h=a(g.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,d)),i=c.indexOf("#")?this._tabId(a("a",h)[0]):c.replace("#","");h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",!0);var j=f.element.find("#"+i);return j.length||(j=a(g.panelTemplate).attr("id",i).data("destroy.tabs",!0
)),j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"),e>=this.lis.length?(h.appendTo(this.list),j.appendTo(this.list[0].parentNode)):(h.insertBefore(this.lis[e]),j.insertBefore(this.panels[e])),g.disabled=a.map(g.disabled,function(a){return a>=e?++a:a}),this._tabify(),1==this.anchors.length&&(g.selected=0,h.addClass("ui-tabs-selected ui-state-active"),j.removeClass("ui-tabs-hide"),this.element.queue("tabs",function(){f._trigger("show",null,f._ui(f.anchors[0],f.panels[0]))}),this.load(0)),this._trigger("add",null,this._ui(this.anchors[e],this.panels[e])),this},remove:function(b){b=this._getIndex(b);var c=this.options,d=this.lis.eq(b).remove(),e=this.panels.eq(b).remove();return d.hasClass("ui-tabs-selected")&&this.anchors.length>1&&this.select(b+(b+1<this.anchors.length?1:-1)),c.disabled=a.map(a.grep(c.disabled,function(a){return a!=b}),function(a){return a>=b?--a:a}),this._tabify(),this._trigger("remove",null,this._ui(d.find("a")[0],e[0])),this},enable:funct
ion(b){b=this._getIndex(b);var c=this.options;return-1!=a.inArray(b,c.disabled)?(this.lis.eq(b).removeClass("ui-state-disabled"),c.disabled=a.grep(c.disabled,function(a){return a!=b}),this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b])),this):void 0},disable:function(a){a=this._getIndex(a);var c=this.options;return a!=c.selected&&(this.lis.eq(a).addClass("ui-state-disabled"),c.disabled.push(a),c.disabled.sort(),this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a]))),this},select:function(a){if(a=this._getIndex(a),-1==a){if(!this.options.collapsible||-1==this.options.selected)return this;a=this.options.selected}return this.anchors.eq(a).trigger(this.options.event+".tabs"),this},load:function(b){b=this._getIndex(b);var c=this,d=this.options,e=this.anchors.eq(b)[0],f=a.data(e,"load.tabs");if(this.abort(),f&&(0===this.element.queue("tabs").length||!a.data(e,"cache.tabs"))){if(this.lis.eq(b).addClass("ui-state-processing"),d.spinner){var g=a("span",e);g.d
ata("label.tabs",g.html()).html(d.spinner)}return this.xhr=a.ajax(a.extend({},d.ajaxOptions,{url:f,success:function(f,g){c.element.find(c._sanitizeSelector(e.hash)).html(f),c._cleanup(),d.cache&&a.data(e,"cache.tabs",!0),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.success(f,g)}catch(h){}},error:function(a,f){c._cleanup(),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.error(a,f,b,e)}catch(g){}}})),c.element.dequeue("tabs"),this}this.element.dequeue("tabs")},abort:function(){return this.element.queue([]),this.panels.stop(!1,!0),this.element.queue("tabs",this.element.queue("tabs").splice(-2,2)),this.xhr&&(this.xhr.abort(),delete this.xhr),this._cleanup(),this},url:function(a,b){return this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",b),this},length:function(){return this.anchors.length}}),a.extend(a.ui.tabs,{version:"1.8.18"}),a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(a,b){var c=this,d=this.options,e
=c._rotate||(c._rotate=function(b){clearTimeout(c.rotation),c.rotation=setTimeout(function(){var a=d.selected;c.select(++a<c.anchors.length?a:0)},a),b&&b.stopPropagation()}),f=c._unrotate||(c._unrotate=b?function(){t=d.selected,e()}:function(a){a.clientX&&c.rotate(null)});return a?(this.element.bind("tabsshow",e),this.anchors.bind(d.event+".tabs",f),e()):(clearTimeout(c.rotation),this.element.unbind("tabsshow",e),this.anchors.unbind(d.event+".tabs",f),delete this._rotate,delete this._unrotate),this}})}(jQuery),Date.CultureInfo={name:"en-US",englishName:"English (United States)",nativeName:"English (United States)",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],abbreviatedDayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],shortestDayNames:["Su","Mo","Tu","We","Th","Fr","Sa"],firstLetterDayNames:["S","M","T","W","T","F","S"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],ab
breviatedMonthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],amDesignator:"AM",pmDesignator:"PM",firstDayOfWeek:0,twoDigitYearMax:2029,dateElementOrder:"mdy",formatPatterns:{shortDate:"M/d/yyyy",longDate:"dddd, MMMM dd, yyyy",shortTime:"h:mm tt",longTime:"h:mm:ss tt",fullDateTime:"dddd, MMMM dd, yyyy h:mm:ss tt",sortableDateTime:"yyyy-MM-ddTHH:mm:ss",universalSortableDateTime:"yyyy-MM-dd HH:mm:ssZ",rfc1123:"ddd, dd MMM yyyy HH:mm:ss GMT",monthDay:"MMMM dd",yearMonth:"MMMM, yyyy"},regexPatterns:{jan:/^jan(uary)?/i,feb:/^feb(ruary)?/i,mar:/^mar(ch)?/i,apr:/^apr(il)?/i,may:/^may/i,jun:/^jun(e)?/i,jul:/^jul(y)?/i,aug:/^aug(ust)?/i,sep:/^sep(t(ember)?)?/i,oct:/^oct(ober)?/i,nov:/^nov(ember)?/i,dec:/^dec(ember)?/i,sun:/^su(n(day)?)?/i,mon:/^mo(n(day)?)?/i,tue:/^tu(e(s(day)?)?)?/i,wed:/^we(d(nesday)?)?/i,thu:/^th(u(r(s(day)?)?)?)?/i,fri:/^fr(i(day)?)?/i,sat:/^sa(t(urday)?)?/i,future:/^next/i,past:/^last|past|prev(ious)?/i,add:/^(\+|aft(er)?|from|hence)/i,su
btract:/^(\-|bef(ore)?|ago)/i,yesterday:/^yes(terday)?/i,today:/^t(od(ay)?)?/i,tomorrow:/^tom(orrow)?/i,now:/^n(ow)?/i,millisecond:/^ms|milli(second)?s?/i,second:/^sec(ond)?s?/i,minute:/^mn|min(ute)?s?/i,hour:/^h(our)?s?/i,week:/^w(eek)?s?/i,month:/^m(onth)?s?/i,day:/^d(ay)?s?/i,year:/^y(ear)?s?/i,shortMeridian:/^(a|p)/i,longMeridian:/^(a\.?m?\.?|p\.?m?\.?)/i,timezone:/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt|utc)/i,ordinalSuffix:/^\s*(st|nd|rd|th)/i,timeContext:/^\s*(\:|a(?!u|p)|p)/i},timezones:[{name:"UTC",offset:"-000"},{name:"GMT",offset:"-000"},{name:"EST",offset:"-0500"},{name:"EDT",offset:"-0400"},{name:"CST",offset:"-0600"},{name:"CDT",offset:"-0500"},{name:"MST",offset:"-0700"},{name:"MDT",offset:"-0600"},{name:"PST",offset:"-0800"},{name:"PDT",offset:"-0700"}]},function(){var a=Date,b=a.prototype,c=a.CultureInfo,d=function(a,b){return b||(b=2),("000"+a).slice(-1*b)};b.clearTi
<TRUNCATED>
[27/34] git commit: merge
Posted by sn...@apache.org.
merge
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/abe152f3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/abe152f3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/abe152f3
Branch: refs/pull/86/head
Commit: abe152f36c90bdaecbfa62d38211fa2b5453f287
Parents: 48fd11f d1ee5ec
Author: Shawn Feldman <sh...@gmail.com>
Authored: Fri Mar 28 17:17:36 2014 -0600
Committer: Shawn Feldman <sh...@gmail.com>
Committed: Fri Mar 28 17:17:36 2014 -0600
----------------------------------------------------------------------
portal/css/dash.min.css | 2 +-
portal/css/main.css | 56 +++++++++++---------
portal/js/global/help-service.js | 6 +--
.../js/libs/bootstrap/custom/css/bootstrap.css | 15 +++---
.../libs/bootstrap/custom/css/bootstrap.min.css | 2 +-
portal/js/libs/usergrid-libs.min.js | 2 +-
portal/js/usergrid-dev.min.js | 6 +--
portal/js/usergrid.min.js | 2 +-
8 files changed, 50 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
[34/34] git commit: Merge b753f4610b36a27d1aa9ff5974cace6191d665b9
into d1ee5ec850a366c2bcd55ca8f877936587282850
Posted by sn...@apache.org.
Merge b753f4610b36a27d1aa9ff5974cace6191d665b9 into d1ee5ec850a366c2bcd55ca8f877936587282850
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/af5fa63d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/af5fa63d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/af5fa63d
Branch: refs/pull/86/merge
Commit: af5fa63dec3004bd42642ddd454b6c7912ff4e0f
Parents: d1ee5ec b753f46
Author: Shawn Feldman <sh...@gmail.com>
Authored: Fri Mar 28 23:18:27 2014 +0000
Committer: Shawn Feldman <sh...@gmail.com>
Committed: Fri Mar 28 23:18:27 2014 +0000
----------------------------------------------------------------------
portal/Gruntfile.js | 61 +++++++------------------------
portal/bower.json | 24 +++++++++++-
portal/config.js | 45 +----------------------
portal/dist/appsvc-ui.2.0.1.zip | Bin 16937328 -> 17166698 bytes
portal/index-debug.html | 39 ++++++++++++++++++--
portal/index-template.html | 39 ++++++++++++++++++--
portal/index.html | 39 ++++++++++++++++++--
portal/js/libs/usergrid-libs.min.js | 2 +-
8 files changed, 146 insertions(+), 103 deletions(-)
----------------------------------------------------------------------
[04/34] minor css tweaks to embedded help and fix for if 25948route
is null
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d3017f28/portal/js/usergrid-dev.min.js
----------------------------------------------------------------------
diff --git a/portal/js/usergrid-dev.min.js b/portal/js/usergrid-dev.min.js
index f79f9dc..6611d35 100644
--- a/portal/js/usergrid-dev.min.js
+++ b/portal/js/usergrid-dev.min.js
@@ -1,4 +1,4 @@
-/*! usergrid@2.0.1 2014-03-27 */
+/*! usergrid@2.0.1 2014-03-28 */
(function(exports, global) {
global["true"] = exports;
"use strict";
@@ -1188,11 +1188,11 @@
exitOnEsc: true,
nextLabel: "Next",
prevLabel: "Back",
- skipLabel: "Got It",
- doneLabel: "Got it"
+ skipLabel: "Exit",
+ doneLabel: "Done"
};
$rootScope.$on("$routeChangeSuccess", function(event, current) {
- var path = current.$$route.originalPath;
+ var path = current.$$route ? current.$$route.originalPath : null;
if (path == "/org-overview") {
$rootScope.help.showHelpButtons = true;
getHelpJson(path).success(function(json) {
[08/34] git commit: removing dynamic menus
Posted by sn...@apache.org.
removing dynamic menus
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/9e435235
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/9e435235
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/9e435235
Branch: refs/pull/86/merge
Commit: 9e435235be1e16c3fdb378987a4d57365cf76761
Parents: 082530e
Author: Shawn Feldman <sh...@gmail.com>
Authored: Fri Mar 28 14:55:24 2014 -0600
Committer: Shawn Feldman <sh...@gmail.com>
Committed: Fri Mar 28 14:55:24 2014 -0600
----------------------------------------------------------------------
portal/Gruntfile.js | 61 +++++++++--------------------------------
portal/bower.json | 25 +++++++++++++++--
portal/config.js | 45 ++----------------------------
portal/index-template.html | 39 ++++++++++++++++++++++++--
4 files changed, 73 insertions(+), 97 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9e435235/portal/Gruntfile.js
----------------------------------------------------------------------
diff --git a/portal/Gruntfile.js b/portal/Gruntfile.js
index 0bc29b7..5d71cfc 100644
--- a/portal/Gruntfile.js
+++ b/portal/Gruntfile.js
@@ -1,50 +1,20 @@
var packageJson = require('./package.json');
-var userGrid = require('./config.js');
-var versionPath = packageJson.version;
-var menu = '<ul class="nav nav-list" menu="sideMenu">';
-userGrid.options.menuItems.forEach(function(menuItem){
- menu += '<li class="option '+ (menuItem.active ? 'active' : '') + '" ng-cloak>';
- menu += '<a data-ng-href="'+menuItem.path+'"><i class="pictogram">'+menuItem.pic+'</i>'+menuItem.title+'</a>';
- menuItem.items && menuItem.items.forEach(function(subItem){
- menu += '<ul class="nav nav-list">';
- menu += '<li>';
- menu += '<a data-ng-href="'+subItem.path+'"><i class="pictogram sub">'+subItem.pic+'</i>'+subItem.title+'</a>'
- menu += '</li>';
- menu += '</ul>';
- });
- menu += '</li>';
-});
-menu += '</ul>';
-
-var mainRefs = "",
- devRefs = ""
- ;
-userGrid.options.scriptReferences.main.forEach(function (current) {
- mainRefs += "<script src='" + versionPath+'/'+ current + "'></script>";
-});
-userGrid.options.scriptReferences.dev.forEach(function (current) {
- devRefs += "<script src='" + versionPath+'/'+ current + "'></script>";
-});
-
-var cssRefs = "";
-userGrid.options.cssRefs.forEach(function(css){
- cssRefs += '<link href="'+versionPath+'/'+css.src+'" rel="stylesheet" id="'+css.id+'"/>';
-});
-
+var versionPath = packageJson.version;
+var distPath = 'dist/'+packageJson.packageName,
+ coveragePath = 'dist-cov/'+packageJson.packageName,
+ libsFile = 'js/libs/usergrid-libs.min.js',
+ devFile = 'js/usergrid-dev.min.js',
+ devFileIncludes= ['js/**/*.js','!js/libs/**/*.js', '!js/**/*.min.js'],
+ coverageDir = 'test/coverage/instrument/',
+ coverageFile = 'test/coverage/instrument/js/usergrid-coverage.min.js',
+ mainFile = 'js/usergrid.min.js',
+ templateFile = 'js/templates.js',
+ distName = packageJson.packageName
+ ;
console.warn('to run e2e tests you need to have a running instance of webdriver, 1) npm install protractor -g -> 2) webdriver-manager start --standalone');
module.exports = function (grunt) {
- var distPath = 'dist/'+packageJson.packageName,
- coveragePath = 'dist-cov/'+packageJson.packageName,
- libsFile = 'js/libs/usergrid-libs.min.js',
- devFile = 'js/usergrid-dev.min.js',
- devFileIncludes= ['js/**/*.js','!js/libs/**/*.js', '!js/**/*.min.js'],
- coverageDir = 'test/coverage/instrument/',
- coverageFile = 'test/coverage/instrument/js/usergrid-coverage.min.js',
- mainFile = 'js/usergrid.min.js',
- templateFile = 'js/templates.js',
- distName = packageJson.packageName
- ;
+
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
@@ -337,7 +307,6 @@ module.exports = function (grunt) {
dom_munger: {
main: {
options: {
- append:{selector:'body',html:mainRefs},
update: {selector:'#main-script',attribute:'src',value:versionPath+'/'+mainFile}
},
@@ -347,7 +316,6 @@ module.exports = function (grunt) {
},
dev: {
options: {
- append:{selector:'body',html:devRefs},
update: {selector:'#main-script',attribute:'src',value:versionPath+'/'+devFile}
},
src: 'index-template.html', //update the dist/index.html (the src index.html is copied there)
@@ -355,7 +323,6 @@ module.exports = function (grunt) {
},
coverage: {
options: {
- append:{selector:'body',html:devRefs},
update: {selector:'#main-script',attribute:'src',value:'js/usergrid-coverage.min.js'}
},
src: 'index-template.html', //update the dist/index.html (the src index.html is copied there)
@@ -364,8 +331,6 @@ module.exports = function (grunt) {
menu: {
options: {
callback:function($){
- $('#sideMenu').append(menu);
- $('head').append(cssRefs);
var libs = $('#libScript');
for(var key in libs){
var elem = libs[key];
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9e435235/portal/bower.json
----------------------------------------------------------------------
diff --git a/portal/bower.json b/portal/bower.json
index dc639af..85c9d35 100644
--- a/portal/bower.json
+++ b/portal/bower.json
@@ -1,7 +1,25 @@
{
- "name": "usergrid-portal",
- "version": "2.0.1",
- "ignore": [],
+ "name": "usergrid-portal-nomax",
+ "version": "2.0.42",
+ "ignore": [
+ ".jshintrc",
+ "**/*.txt",
+ "js/",
+ "css/",
+ "img/",
+ "archive/",
+ "dist/archive",
+ "bower_components/",
+ "scripts/",
+ "sdk/",
+ "tests/",
+ "Gruntfile.js",
+ "*.md",
+ "config.js",
+ "package.json",
+ "LICENSE",
+ ".gitignore"
+ ],
"dependencies": {
"angularitics": "~0.8.7",
"apigee-sdk": "~2.0.8",
@@ -9,6 +27,7 @@
},
"devDependencies": {},
"keywords": [
+ "apigee",
"usergrid"
]
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9e435235/portal/config.js
----------------------------------------------------------------------
diff --git a/portal/config.js b/portal/config.js
index a8a77a0..a92690a 100644
--- a/portal/config.js
+++ b/portal/config.js
@@ -2,7 +2,7 @@ var Usergrid = Usergrid || {};
//Google Analytics
var _gaq = _gaq || [];
-//_gaq.push(['_setAccount', 'yourkey']);
+_gaq.push(['_setAccount', 'UA-4084158-4']);
try{
(function(document) {
if(!document){
@@ -27,39 +27,7 @@ Usergrid.options = {
// apiKey:'123456'
},
showAutoRefresh:true,
- autoUpdateTimer:61,//seconds
- cssRefs:[],
- "scriptReferences":{
- "dev":[],
- "main": []
- },
- menuItems:[
- {path:'#!/org-overview', active:true,pic:'🕪',title:'Org Administration'},
- {path:'#!/getting-started/setup',pic:'🚀',title:'Getting Started'},
- {path:'#!/app-overview/summary',pic:'',title:'App Overview',
- items:[
- {path:'#!/app-overview/summary',pic:'📱',title:'Summary'}
- ]
- },
- {
- path:'#!/users',pic:'👤',title:'Users',
- items:[
- {path:'#!/users',pic:'👤',title:'Users'},
- {path:'#!/groups',pic:'👥',title:'Groups'},
- {path:'#!/roles',pic:'',title:'Roles'}
- ]
- },
- {
- path:'#!/data',pic:'📸',title:'Data',
- items:[
- {path:'#!/data',pic:'📾',title:'Collections'}
- ]
- },
- {
- path:'#!/activities',pic:'',title:'Activities'
- },
- {path:'#!/shell',pic:'⌨',title:'Shell'}
- ]
+ autoUpdateTimer:61//seconds
};
Usergrid.regex = {
@@ -90,12 +58,3 @@ Usergrid.regex = {
stateRegexDescription: "Sorry only alphabetical characters or spaces are allowed. Must be between 2-100 characters.",
collectionNameRegexDescription: "Collection name only allows : a-z A-Z 0-9. Must be between 3-25 characters."
};
-
-try{
- if (typeof module !== 'undefined'){
-
- if(module && module.exports){
- module.exports = Usergrid;
- }
- }
-}catch(e){}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9e435235/portal/index-template.html
----------------------------------------------------------------------
diff --git a/portal/index-template.html b/portal/index-template.html
index 4a8c103..acf04fc 100644
--- a/portal/index-template.html
+++ b/portal/index-template.html
@@ -62,9 +62,42 @@
</div>
<div id="intro-3-side-menu">
- <div class="nav-collapse collapse" id="sideMenu">
- </div>
- </div>
+ <div class="nav-collapse collapse" id="sideMenu">
+ <ul class="nav nav-list" menu="sideMenu">
+ <li class="option active" ng-cloak=""><a data-ng-href="#!/org-overview"><i class="pictogram">
+ 🕪</i>Org Administration</a></li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/getting-started/setup"><i class="pictogram">
+ 🚀</i>Getting Started</a></li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/app-overview/summary"><i class="pictogram">
+ </i>App Overview</a>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/app-overview/summary"><i class="pictogram sub">📱</i>Summary</a>
+ </li>
+ </ul>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/users"><i class="pictogram">👤</i>Users</a>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/users"><i class="pictogram sub">👤</i>Users</a></li>
+ </ul>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/groups"><i class="pictogram sub">👥</i>Groups</a></li>
+ </ul>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/roles"><i class="pictogram sub"></i>Roles</a></li>
+ </ul>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/data"><i class="pictogram">📸</i>Data</a>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/data"><i class="pictogram sub">📾</i>Collections</a></li>
+ </ul>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/activities"><i class="pictogram"></i>Activities</a>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/shell"><i class="pictogram">⌨</i>Shell</a>
+ </li>
+ </ul>
+ </div>
+ </div>
</div>
</section>
[25/34] git commit: add sizzle
Posted by sn...@apache.org.
add sizzle
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/48fd11fc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/48fd11fc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/48fd11fc
Branch: refs/pull/86/head
Commit: 48fd11fc2daef3e9392840779259ea2789c31fee
Parents: efe3429
Author: Shawn Feldman <sh...@gmail.com>
Authored: Fri Mar 28 17:15:17 2014 -0600
Committer: Shawn Feldman <sh...@gmail.com>
Committed: Fri Mar 28 17:15:17 2014 -0600
----------------------------------------------------------------------
portal/bower.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/48fd11fc/portal/bower.json
----------------------------------------------------------------------
diff --git a/portal/bower.json b/portal/bower.json
index ac827be..d7a6dce 100644
--- a/portal/bower.json
+++ b/portal/bower.json
@@ -23,7 +23,8 @@
"dependencies": {
"angularitics": "~0.8.7",
"apigee-sdk": "~2.0.8",
- "angular-intro.js": "*"
+ "angular-intro.js": "*",
+ "sizzle":"1.10.16"
},
"devDependencies": {},
"keywords": [
[22/34] building changes updating bower
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/efe34294/portal/js/libs/usergrid-libs.min.js
----------------------------------------------------------------------
diff --git a/portal/js/libs/usergrid-libs.min.js b/portal/js/libs/usergrid-libs.min.js
index b8bb360..0899b2b 100644
--- a/portal/js/libs/usergrid-libs.min.js
+++ b/portal/js/libs/usergrid-libs.min.js
@@ -1,4 +1,4 @@
-/*! usergrid@2.0.1 2014-03-27 */
+/*! usergrid@2.0.1 2014-03-28 */
!function(e,t){function M(e){var t=e.length,n=b.type(e);return b.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}function F(e){var t=_[e]={};return b.each(e.match(w)||[],function(e,n){t[n]=!0}),t}function P(e,n,r,i){if(b.acceptData(e)){var o,a,s=b.expando,u="string"==typeof n,l=e.nodeType,p=l?b.cache:e,f=l?e[s]:e[s]&&s;if(f&&p[f]&&(i||p[f].data)||!u||r!==t)return f||(l?e[s]=f=c.pop()||b.guid++:f=s),p[f]||(p[f]={},l||(p[f].toJSON=b.noop)),("object"==typeof n||"function"==typeof n)&&(i?p[f]=b.extend(p[f],n):p[f].data=b.extend(p[f].data,n)),o=p[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[b.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[b.camelCase(n)])):a=o,a}}function R(e,t,n){if(b.acceptData(e)){var r,i,o,a=e.nodeType,s=a?b.cache:e,u=a?e[b.expando]:b.expando;if(s[u]){if(t&&(o=n?s[u]:s[u].data)){b.isArray(t)?t=t.concat(b.map(t,b.camelCase)):t in o?t=[t]:(t=b.camelCase(t),t=t in o?[t]:t.split(" "));for(r=0,i=t.length;i>r;r++)dele
te o[t[r]];if(!(n?$:b.isEmptyObject)(o))return}(n||(delete s[u].data,$(s[u])))&&(a?b.cleanData([e],!0):b.support.deleteExpando||s!=s.window?delete s[u]:s[u]=null)}}}function W(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(B,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:O.test(r)?b.parseJSON(r):r}catch(o){}b.data(e,n,r)}else r=t}return r}function $(e){var t;for(t in e)if(("data"!==t||!b.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function it(){return!0}function ot(){return!1}function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function ft(e,t,n){if(t=t||0,b.isFunction(t))return b.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return b.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=b.grep(e,function(e){return 1===e.nodeType});if(ut.test(t))return b.filter(t,r,!n);t=b.filter(t,r)}return b.grep(e,function(e){return b.inArray(e,t)>=0==
=n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function Ht(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Mt(e,t){for(var n,r=0;null!=(n=e[r]);r++)b._data(n,"globalEval",!t||b._data(t[r],"globalEval"))}function _t(e,t){if(1===t.nodeType&&b.hasData(e)){var n,r,i,o=b._data(e),a=b._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)b.event.add(t,n,s[n][r])}a.data&&(a.data=b.extend({},a.data))}}function Ft(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!b.support.noCloneEvent&&t[b.expando]){i=b._data(t);for(r in i.events)b.removeEvent(t,r,i.handle);t.removeAttribute(b.expando)}"script"===n&&t.text!==e.text?(Ht(t
).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),b.support.html5Clone&&e.innerHTML&&!b.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Nt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function Ot(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||b.nodeName(o,n)?s.push(o):b.merge(s,Ot(o,n));return n===t||n&&b.nodeName(e,n)?b.merge([e],s):s}function Bt(e){Nt.test(e.type)&&(e.defaultChecked=e.checked)}function tn(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;i--;)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function
rn(e,t){for(var n,r,i,o=[],a=0,s=e.length;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(
e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(Pt||b("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=ln(e,t),Pt.detach()),Gt[e]=n),n}function ln(e,t){var n=b(t.createElement(e)).appendTo(t.body),r=b.css(n[0],"display");return n.remove(),r}function gn(e,t,n,r){var i;if(b.isArray(t))b.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==b.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(w)||[];if(
b.isFunction(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){function s(u){var l;return o[u]=!0,b.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||a||o[c]?a?!(l=c):t:(n.dataTypes.unshift(c),s(c),!1)}),l}var o={},a=e===jn;return s(n.dataTypes[0])||!o["*"]&&s("*")}function Mn(e,n){var r,i,o=b.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&b.extend(!0,e,r),e}function _n(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(s in c)s in r&&(n[c[s]]=r[s]);for(;"*"===l[0];)l.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in u)if(u[s]&&u[s].test(o)){l.unshift(s);break}if(l[0]in r)a=l[0];else{for(s in r){if(!l[0]||e.converters[s+" "+l[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function Fn(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataT
ype)),u[1])for(i in e.converters)a[i.toLowerCase()]=e.converters[i];for(;r=u[++s];)if("*"!==r){if("*"!==l&&l!==r){if(i=a[l+" "+r]||a["* "+r],!i)for(n in a)if(o=n.split(" "),o[1]===r&&(i=a[l+" "+o[0]]||a["* "+o[0]])){i===!0?i=a[n]:a[n]!==!0&&(r=o[0],u.splice(s--,0,r));break}if(i!==!0)if(i&&e["throws"])t=i(t);else try{t=i(t)}catch(c){return{state:"parsererror",error:i?c:"No conversion from "+l+" to "+r}}}l=r}return{state:"success",data:t}}function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function Kn(){return setTimeout(function(){Xn=t}),Xn=b.now()}function Zn(e,t){b.each(t,function(t,n){for(var r=(Qn[t]||[]).concat(Qn["*"]),i=0,o=r.length;o>i;i++)if(r[i].call(e,t,n))return})}function er(e,t,n){var r,i,o=0,a=Gn.length,s=b.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=Xn||Kn(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;u>a;a++)
l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:b.extend({},t),opts:b.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=b.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(tr(c,l.opts.specialEasing);a>o;o++)if(r=Gn[o].call(l,e,c,l.opts))return r;return Zn(l,c),b.isFunction(l.opts.start)&&l.opts.start.call(e,l),b.fx.timer(b.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function tr(e,t){var n,r,i,o,a;for(i in e)if(r=b.camelCase(i),o=t[r],n=e[i],b.isArray(n)&&(o=n[1],n=e[i]=n[0]),i!==r&&(e[r]=n,delete e[i]),a=b.css
Hooks[r],a&&"expand"in a){n=a.expand(n),delete e[r];for(i in n)i in e||(e[i]=n[i],t[i]=o)}else t[r]=o}function nr(e,t,n){var r,i,o,a,s,u,l,c,p,f=this,d=e.style,h={},g=[],m=e.nodeType&&nn(e);n.queue||(c=b._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,f.always(function(){f.always(function(){c.unqueued--,b.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===b.css(e,"display")&&"none"===b.css(e,"float")&&(b.support.inlineBlockNeedsLayout&&"inline"!==un(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",b.support.shrinkWrapBlocks||f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(i in t)if(a=t[i],Vn.exec(a)){if(delete t[i],u=u||"toggle"===a,a===(m?"hide":"show"))continue;g.push(i)}if(o=g.length){s=b._data(e,"fxshow")||b._data(e,"fxshow",
{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?b(e).show():f.done(function(){b(e).hide()}),f.done(function(){var t;b._removeData(e,"fxshow");for(t in h)b.style(e,t,h[t])});for(i=0;o>i;i++)r=g[i],l=f.createTween(r,m?s[r]:0),h[r]=s[r]||b.style(e,r),r in s||(s[r]=l.start,m&&(l.end=l.start,l.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function or(e){return b.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}var n,r,i=typeof t,o=e.document,a=e.location,s=e.jQuery,u=e.$,l={},c=[],p="1.9.1",f=c.concat,d=c.push,h=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,b=function(e,t){return new b.fn.init(e,t,r)},x=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^[\],
:{}\s]*$/,E=/(?:^|:|,)(?:\s*\[)+/g,S=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,j=/^-ms-/,D=/-([\da-z])/gi,L=function(e,t){return t.toUpperCase()},H=function(e){(o.addEventListener||"load"===e.type||"complete"===o.readyState)&&(q(),b.ready())},q=function(){o.addEventListener?(o.removeEventListener("DOMContentLoaded",H,!1),e.removeEventListener("load",H,!1)):(o.detachEvent("onreadystatechange",H),e.detachEvent("onload",H))};b.fn=b.prototype={jquery:p,constructor:b,init:function(e,n,r){var i,a;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof b?n[0]:n,b.merge(this,b.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,!0)),C.test(i[1])&&b.isPlainObject(n))for(i in n)b.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(a=o.getElementB
yId(i[2]),a&&a.parentNode){if(a.id!==i[2])return r.find(e);this.length=1,this[0]=a}return this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):b.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),b.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return h.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return b.each(this,e,t)},ready:function(e){return b.ready.promise().done(e),this},slice:function(){return this.pushStack(h.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(b.map(this,function(t,n){return e.cal
l(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:d,sort:[].sort,splice:[].splice},b.fn.init.prototype=b.fn,b.extend=b.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||b.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(o=arguments[u]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(b.isPlainObject(r)||(n=b.isArray(r)))?(n?(n=!1,a=e&&b.isArray(e)?e:[]):a=e&&b.isPlainObject(e)?e:{},s[i]=b.extend(c,a,r)):r!==t&&(s[i]=r));return s},b.extend({noConflict:function(t){return e.$===b&&(e.$=u),t&&e.jQuery===b&&(e.jQuery=s),b},isReady:!1,readyWait:1,holdReady:function(e){e?b.readyWait++:b.ready(!0)},ready:function(e){if(e===!0?!--b.readyWait:!b.isReady){if(!o.body)return setTimeout(b.ready);b.isReady=!0,e!==!0&&--b.readyWait>0||(n.resolveWith(o,[b]),b.fn.trigger&&b(o).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===b.type(e)},
isArray:Array.isArray||function(e){return"array"===b.type(e)},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(!e||"object"!==b.type(e)||e.nodeType||b.isWindow(e))return!1;try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||y.call(e,r)},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=b.buildFragment([e],t,i),i&&b(i).remove(),b.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.
replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&b.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(j,"ms-").replace(D,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a)for(;o>i&&(r=t.apply(e[i],n),r!==!1);i++);else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a)for(;o>i&&(r=t.call(e[i],i,e[i]),r!==!1);i++);else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:v&&!v.call(" ")?function(e){return
null==e?"":v.call(e)}:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?b.merge(n,"string"==typeof e?[e]:e):d.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(g)return g.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else for(;n[o]!==t;)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>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,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return f.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),b.isFunction(e)?(r=h.call(arguments,2),i=function(){return e.apply(n||this,r.concat(h.call(arguments)))},i.guid=e.guid=e.guid
||b.guid++,i):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===b.type(r)){o=!0;for(u in r)b.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,b.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(b(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),b.ready.promise=function(t){if(!n)if(n=b.Deferred(),"complete"===o.readyState)setTimeout(b.ready);else if(o.addEventListener)o.addEventListener("DOMContentLoaded",H,!1),e.addEventListener("load",H,!1);else{o.attachEvent("onreadystatechange",H),e.attachEvent("onload",H);var r=!1;try{r=null==e.frameElement&&o.documentElement}catch(i){}r&&r.doScroll&&function a(){if(!b.isReady){try{r.doScroll("left")}catch(e){return setTimeout(a,50)}q(),b.ready()}}()}return n.promise(t)},b.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.to
LowerCase()}),r=b(o);var _={};b.Callbacks=function(e){e="string"==typeof e?_[e]||F(e):b.extend({},e);var n,r,i,o,a,s,u=[],l=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=u.length,n=!0;u&&o>a;a++)if(u[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,u&&(l?l.length&&c(l.shift()):r?u=[]:p.disable())},p={add:function(){if(u){var t=u.length;!function i(t){b.each(t,function(t,n){var r=b.type(n);"function"===r?e.unique&&p.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})}(arguments),n?o=u.length:r&&(s=t,c(r))}return this},remove:function(){return u&&b.each(arguments,function(e,t){for(var r;(r=b.inArray(t,u,r))>-1;)u.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?b.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],this},disable:function(){return u=l=r=t,this},disabled:function(){return!u},lock:function(){return l=t,r||p.disable(),this},locked:function(){return!l},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u|
|i&&!l||(n?l.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},b.extend({Deferred:function(e){var t=[["resolve","done",b.Callbacks("once memory"),"resolved"],["reject","fail",b.Callbacks("once memory"),"rejected"],["notify","progress",b.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return b.Deferred(function(n){b.each(t,function(t,o){var a=o[0],s=b.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&b.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?b.extend(e,r):r}},i={};return r.pipe=r.then,b.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},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"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var s,u,l,t=0,n=h.call(arguments),r=n.length,i=1!==r||e&&b.isFunction(e.promise)?r:0,o=1===i?e:b.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?h.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}};if(r>1)for(s=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&b.isFunction(n[t].promise)?n[t].promise().done(a(t,l,n)).fail(o.reject).progress(a(t,u,s)):--i;return i||o.resolveWith(l,n),o.promise()}}),b.support=function(){var t,n,r,a,s,u,l,c,p,f,d=o.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{};s=o.createElement("select"),l=s.appendChild(o.createElement("option")),a=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t
={getSetAttribute:"t"!==d.className,leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:!!a.value,optSelected:l.selected,enctype:!!o.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==o.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===o.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!l.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}a=o.createElement("input"),a.setAttribute("value",""),t.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","t
"),a.setAttribute("name","t"),u=o.createDocumentFragment(),u.appendChild(a),t.appendChecked=a.checked,t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;return d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip,b(function(){var n,r,a,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",u=o.getElementsByTagName("body")[0];u&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",u.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",a=d.getElementsByTagName("td"),a[0].style.cssText="padding:0;margin:0;bo
rder:0;display:none",p=0===a[0].offsetHeight,a[0].style.display="",a[1].style.display="none",t.reliableHiddenOffsets=p&&0===a[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===d.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==u.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(o.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.fir
stChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(u.style.zoom=1)),u.removeChild(n),n=d=a=r=null)}),n=s=u=l=r=a=null,t}();var O=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,B=/([A-Z])/g;b.extend({cache:{},expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?b.cache[e[b.expando]]:e[b.expando],!!e&&!$(e)},data:function(e,t,n){return P(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return P(e,t,n,!0)},_removeData:function(e,t){return R(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&b.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),b.fn.extend({data:function(e,n){var r,i,o=this[0],a=0,s=null;if(e===t){if(this.length&&(s=b.data(o),1===o.nodeType&&!b._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>a;a++)i=r[a].name,i.indexOf(
"data-")||(i=b.camelCase(i.slice(5)),W(o,i,s[i]));b._data(o,"parsedAttrs",!0)}return s}return"object"==typeof e?this.each(function(){b.data(this,e)}):b.access(this,function(n){return n===t?o?W(o,e,b.data(o,e)):null:(this.each(function(){b.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}}),b.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=b._data(e,n),r&&(!i||b.isArray(r)?i=b._data(e,n,b.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=b.queue(e,t),r=n.length,i=n.shift(),o=b._queueHooks(e,t),a=function(){b.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return b._data(e,n)||b._data(e,n,{empty:b.Callbacks("once memory").add(function(){b._removeData(e,t+"queue"),b._removeData(e,n)})})}}),b.fn.extend({queue:function(e
,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?b.queue(this[0],e):n===t?this:this.each(function(){var t=b.queue(this,e,n);b._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&b.dequeue(this,e)})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(e,t){return e=b.fx?b.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,n){var r,i=1,o=b.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};for("string"!=typeof e&&(n=e,e=t),e=e||"fx";s--;)r=b._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var I,z,X=/[\t\r\n]/g,U=/\r/g,V=/^(?:input|select|textarea|button|object)$/i,Y=/^(?:a|area)$/i,J=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,G=/^(?:checked|selected)$/i,Q
=b.support.getSetAttribute,K=b.support.input;b.fn.extend({attr:function(e,t){return b.access(this,b.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,t){return b.access(this,b.prop,e,t,arguments.length>1)},removeProp:function(e){return e=b.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):" ")){for(o=0;i=t[o++];)0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=b.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||
"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):"")){for(o=0;i=t[o++];)for(;r.indexOf(" "+i+" ")>=0;)r=r.replace(" "+i+" "," ");n.className=e?b.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return this.each(b.isFunction(e)?function(n){b(this).toggleClass(e.call(this,n,this.className,t),t)}:function(){if("string"===n)for(var o,a=0,s=b(this),u=t,l=e.match(w)||[];o=l[a++];)u=r?u:!s.hasClass(o),s[u?"addClass":"removeClass"](o);else(n===i||"boolean"===n)&&(this.className&&b._data(this,"__className__",this.className),this.className=this.className||e===!1?"":b._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(X," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];return arguments.length?(i=b.isFunction(e),this.each(function(n){var o,a=b(this);1===this.nodeType
&&(o=i?e.call(this,n,a.val()):e,null==o?o="":"number"==typeof o?o+="":b.isArray(o)&&(o=b.map(o,function(e){return null==e?"":e+""})),r=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))})):o?(r=b.valHooks[o.type]||b.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(U,""):null==n?"":n)):void 0}}),b.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(b.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&b.nodeName(n.parentNode,"optgroup"))){if(t=b(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=b.makeArray(t);return b(e).find("option").each(function(){this.selected=b.inA
rray(b(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var o,a,s,u=e.nodeType;return e&&3!==u&&8!==u&&2!==u?typeof e.getAttribute===i?b.prop(e,n,r):(a=1!==u||!b.isXMLDoc(e),a&&(n=n.toLowerCase(),o=b.attrHooks[n]||(J.test(n)?z:I)),r===t?o&&a&&"get"in o&&null!==(s=o.get(e,n))?s:(typeof e.getAttribute!==i&&(s=e.getAttribute(n)),null==s?t:s):null!==r?o&&a&&"set"in o&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r):(b.removeAttr(e,n),t)):void 0},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)for(;n=o[i++];)r=b.propFix[n]||n,J.test(n)?!Q&&G.test(n)?e[b.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:b.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!b.support.radioValue&&"radio"===t&&b.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpad
ding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;return e&&3!==s&&8!==s&&2!==s?(a=1!==s||!b.isXMLDoc(e),a&&(n=b.propFix[n]||n,o=b.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]):void 0},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):V.test(e.nodeName)||Y.test(e.nodeName)&&e.href?0:t}}}}),z={get:function(e,n){var r=b.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?K&&Q?null!=i:G.test(n)?e[b.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?b.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&b.propFix[n]||n,n):e[b.camelCase("default-"+n)]=e[n]=!0,n}},K&&Q||(b.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return b.
nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t},set:function(e,n,r){return b.nodeName(e,"input")?(e.defaultValue=n,t):I&&I.set(e,n,r)
}}),Q||(I=b.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},b.attrHooks.contenteditable={get:I.get,set:function(e,t,n){I.set(e,""===t?!1:t,n)}},b.each(["width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),b.support.hrefNormalized||(b.each(["href","src","width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),b.each(["href","src"],function(e,t){b.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),b.support.style||(b.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),b.support.optSelected|
|(b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),b.support.enctype||(b.propFix.enctype="encoding"),b.support.checkOn||b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,n){return b.isArray(n)?e.checked=b.inArray(b(e).val(),n)>=0:t}})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;b.event={global:{},add:function(e,n,r,o,a){var s,u,l,c,p,f,d,h,g,m,y,v=b._data(e);if(v){for(r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=b.guid++),(u=v.events)||(u=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof b===i||e&&b.event.triggered===e.type?t:b.event.dispatch.apply(f.elem,arguments)},f
.elem=e),n=(n||"").match(w)||[""],l=n.length;l--;)s=rt.exec(n[l])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),p=b.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=b.event.special[g]||{},d=b.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&b.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=u[g])||(h=u[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),b.event.global[g]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,p,f,d,h,g,m=b.hasData(e)&&b._data(e);if(m&&(c=m.events)){for(t=(t||"").match(w)||[""],l=t.length;l--;)if(s=rt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){for(p=b.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=f.l
ength;o--;)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||b.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)b.event.remove(e,d+t[l],n,r,!0);b.isEmptyObject(c)&&(delete m.handle,b._removeData(e,"events"))}},trigger:function(n,r,i,a){var s,u,l,c,p,f,d,h=[i||o],g=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];if(l=f=i=i||o,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+b.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),u=0>g.indexOf(":")&&"on"+g,n=n[b.expando]?n:new b.Event(g,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:b.makeArray(r,[n]),p=b.event.special[g]||{},a||!p.trigger||
p.trigger.apply(i,r)!==!1)){if(!a&&!p.noBubble&&!b.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(l=l.parentNode);l;l=l.parentNode)h.push(l),f=l;f===(i.ownerDocument||o)&&h.push(f.defaultView||f.parentWindow||e)}for(d=0;(l=h[d++])&&!n.isPropagationStopped();)n.type=d>1?c:p.bindType||g,s=(b._data(l,"events")||{})[n.type]&&b._data(l,"handle"),s&&s.apply(l,r),s=u&&l[u],s&&b.acceptData(l)&&s.apply&&s.apply(l,r)===!1&&n.preventDefault();if(n.type=g,!(a||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===g&&b.nodeName(i,"a")||!b.acceptData(i)||!u||!i[g]||b.isWindow(i))){f=i[u],f&&(i[u]=null),b.event.triggered=g;try{i[g]()}catch(v){}b.event.triggered=t,f&&(i[u]=f)}return n.result}},dispatch:function(e){e=b.event.fix(e);var n,r,i,o,a,s=[],u=h.call(arguments),l=(b._data(this,"events")||{})[e.type]||[],c=b.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){for(s=b.event.handlers.call(this,e,l),n=
0;(o=s[n++])&&!e.isPropagationStopped();)for(e.currentTarget=o.elem,a=0;(i=o.handlers[a++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((b.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,u),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(o=[],a=0;u>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?b(r,this).index(l)>=0:b.find(r,this,null,[l]).length),o[r]&&o.push(i);o.length&&s.push({elem:l,handlers:o})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[b.expando])return e;var t,n,r,i=e.type,a=e,s=this.fixHooks[i];for(s||(this.fixHooks[i]=s=tt.test(i)?this.mouse
Hooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new b.Event(a),t=r.length;t--;)n=r[t],e[n]=a[n];return e.target||(e.target=a.srcElement||o),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,a):e},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 fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,a,s=n.button,u=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||o,a=i.documentElement,r=i.body,e.pageX=n.clientX+(a&&a.scrollLeft||r&&r.scrollLeft||0)-(a&&a.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(a&&a.scrollTop||r&&r.sc
rollTop||0)-(a&&a.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&u&&(e.relatedTarget=u===e.target?n.toElement:u),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return b.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==o.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===o.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=b.extend(new b.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?b.event.trigger(i,null,t):b.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},b.removeEvent=o.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof
e[r]===i&&(e[r]=null),e.detachEvent(r,n))},b.Event=function(e,n){return this instanceof b.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&b.extend(this,n),this.timeStamp=e&&e.timeStamp||b.now(),this[b.expando]=!0,t):new b.Event(e,n)},b.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){b.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i
=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&b.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return b.nodeName(this,"form")?!1:(b.event.remove(this,"._submit"),t)}}),b.support.changeBubbles||(b.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(b.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this.
_just_changed=!0)}),b.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),b.event.simulate("change",this,e,!0)})),!1):(b.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!b._data(t,"changeBubbles")&&(b.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||b.event.simulate("change",this.parentNode,e,!0)}),b._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return b.event.remove(this,"._change"),!Z.test(this.nodeName)}}),b.support.focusinBubbles||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){b.event.simulate(t,e.target,b.event.fix(e),!0)};b.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}})
,b.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return b().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=b.guid++)),this.each(function(){b.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,b(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){b.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undeleg
ate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?b.event.trigger(e,n,r,!0):t}}),function(e,t){function rt(e){return Y.test(e+"")}function it(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>i.cacheLength&&delete e[t.shift()],e[n]=r}}function ot(e){return e[x]=!0,e}function at(e){var t=p.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function st(e,t,n,r){var i,o,a,s,u,l,f,g,m,v;if((t?t.ownerDocument||t:w)!==p&&c(t),t=t||p,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!d&&!r){if(i=J.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&y(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return H.apply(n,q.call(t.getElementsByTagName(e
),0)),n;if((a=i[3])&&T.getByClassName&&t.getElementsByClassName)return H.apply(n,q.call(t.getElementsByClassName(a),0)),n}if(T.qsa&&!h.test(e)){if(f=!0,g=x,m=t,v=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(l=ft(e),(f=t.getAttribute("id"))?g=f.replace(K,"\\$&"):t.setAttribute("id",g),g="[id='"+g+"'] ",u=l.length;u--;)l[u]=g+dt(l[u]);m=V.test(e)&&t.parentNode||t,v=l.join(",")}if(v)try{return H.apply(n,q.call(m.querySelectorAll(v),0)),n}catch(b){}finally{f||t.removeAttribute("id")}}}return wt(e.replace(W,"$1"),t,n,r)}function ut(e,t){var n=t&&e,r=n&&(~t.sourceIndex||j)-(~e.sourceIndex||j);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ct(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pt(e){return ot(function(t){return t=+t,ot(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;
)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ft(e,t){var n,r,o,a,s,u,l,c=E[e+" "];if(c)return t?0:c.slice(0);for(s=e,u=[],l=i.preFilter;s;){(!n||(r=$.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(o=[])),n=!1,(r=I.exec(s))&&(n=r.shift(),o.push({value:n,type:r[0].replace(W," ")}),s=s.slice(n.length));for(a in i.filter)!(r=U[a].exec(s))||l[a]&&!(r=l[a](r))||(n=r.shift(),o.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?st.error(e):E(e,u).slice(0)}function dt(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function ht(e,t,n){var i=t.dir,o=n&&"parentNode"===i,a=C++;return t.first?function(t,n,r){for(;t=t[i];)if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,s){var u,l,c,p=N+" "+a;if(s){for(;t=t[i];)if((1===t.nodeType||o)&&e(t,n,s))return!0}else for(;t=t[i];)if(1===t.nodeType||o)if(c=t[x]||(t[x]={}),(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,s)||r,l[1]===!0)return!0}}function gt(e){return
e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function mt(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function yt(e,t,n,r,i,o){return r&&!r[x]&&(r=yt(r)),i&&!i[x]&&(i=yt(i,o)),ot(function(o,a,s,u){var l,c,p,f=[],d=[],h=a.length,g=o||xt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:mt(g,f,e,s,u),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,u),r)for(l=mt(y,d),r(l,[],s,u),c=l.length;c--;)(p=l[c])&&(y[d[c]]=!(m[d[c]]=p));if(o){if(i||e){if(i){for(l=[],c=y.length;c--;)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}for(c=y.length;c--;)(p=y[c])&&(l=i?M.call(o,p):f[c])>-1&&(o[l]=!(a[l]=p))}}else y=mt(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)})}function vt(e){for(var t,n,r,o=e.length,a=i.relative[e[0].type],s=a||i.relative[" "],u=a?1:0,c=ht(function(e){return e===t},s,!0),p=ht(function(e){return M.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==l)||((t=n).nodeTyp
e?c(e,n,r):p(e,n,r))}];o>u;u++)if(n=i.relative[e[u].type])f=[ht(gt(f),n)];else{if(n=i.filter[e[u].type].apply(null,e[u].matches),n[x]){for(r=++u;o>r&&!i.relative[e[r].type];r++);return yt(u>1&>(f),u>1&&dt(e.slice(0,u-1)).replace(W,"$1"),n,r>u&&vt(e.slice(u,r)),o>r&&vt(e=e.slice(r)),o>r&&dt(e))}f.push(n)}return gt(f)}function bt(e,t){var n=0,o=t.length>0,a=e.length>0,s=function(s,u,c,f,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,T=l,C=s||a&&i.find.TAG("*",d&&u.parentNode||u),k=N+=null==T?1:Math.random()||.1;for(w&&(l=u!==p&&u,r=n);null!=(h=C[b]);b++){if(a&&h){for(g=0;m=e[g++];)if(m(h,u,c)){f.push(h);break}w&&(N=k,r=++n)}o&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,o&&b!==v){for(g=0;m=t[g++];)m(x,y,u,c);if(s){if(v>0)for(;b--;)x[b]||y[b]||(y[b]=L.call(f));y=mt(y)}H.apply(f,y),w&&!s&&y.length>0&&v+t.length>1&&st.uniqueSort(f)}return w&&(N=k,l=T),x};return o?ot(s):s}function xt(e,t,n){for(var r=0,i=t.length;i>r;r++)st(e,t[r],n);return n}function wt(e,t,n,r){var o,a,u,l,c,p=ft(e);if(!r&&1
===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(u=a[0]).type&&9===t.nodeType&&!d&&i.relative[a[1].type]){if(t=i.find.ID(u.matches[0].replace(et,tt),t)[0],!t)return n;e=e.slice(a.shift().value.length)}for(o=U.needsContext.test(e)?0:a.length;o--&&(u=a[o],!i.relative[l=u.type]);)if((c=i.find[l])&&(r=c(u.matches[0].replace(et,tt),V.test(a[0].type)&&t.parentNode||t))){if(a.splice(o,1),e=r.length&&dt(a),!e)return H.apply(n,q.call(r,0)),n;break}}return s(e,p)(r,t,d,n,V.test(e)),n}function Tt(){}var n,r,i,o,a,s,u,l,c,p,f,d,h,g,m,y,v,x="sizzle"+-new Date,w=e.document,T={},N=0,C=0,k=it(),E=it(),S=it(),A=typeof t,j=1<<31,D=[],L=D.pop,H=D.push,q=D.slice,M=D.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},_="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=F.replace("w","w#"),B="([*^$|!~]?=)",P="\\["+_+"*("+F+")"+_+"*(?:"+B+_+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+O+")|)|)"+_+"*\\]",R=":("+F+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((
?:\\\\.|[^\\\\()[\\]]|"+P.replace(3,8)+")*)|.*)\\)|)",W=RegExp("^"+_+"+|((?:^|[^\\\\])(?:\\\\.)*)"+_+"+$","g"),$=RegExp("^"+_+"*,"+_+"*"),I=RegExp("^"+_+"*([\\x20\\t\\r\\n\\f>+~])"+_+"*"),z=RegExp(R),X=RegExp("^"+O+"$"),U={ID:RegExp("^#("+F+")"),CLASS:RegExp("^\\.("+F+")"),NAME:RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:RegExp("^("+F.replace("w","w*")+")"),ATTR:RegExp("^"+P),PSEUDO:RegExp("^"+R),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+_+"*(even|odd|(([+-]|)(\\d*)n|)"+_+"*(?:([+-]|)"+_+"*(\\d+)|))"+_+"*\\)|)","i"),needsContext:RegExp("^"+_+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+_+"*((?:-\\d)?\\d*)"+_+"*\\)|)(?=[^-]|$)","i")},V=/[\x20\t\r\n\f]*[+~]/,Y=/^[^{]+\{\s*\[native code/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/'|\\/g,Z=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,et=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n
+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{q.call(w.documentElement.childNodes,0)[0].nodeType}catch(nt){q=function(e){for(var t,n=[];t=this[e++];)n.push(t);return n}}a=st.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},c=st.setDocument=function(e){var n=e?e.ownerDocument||e:w;return n!==p&&9===n.nodeType&&n.documentElement?(p=n,f=n.documentElement,d=a(n),T.tagNameNoComments=at(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),T.attributes=at(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),T.getByClassName=at(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),T.getByName=at(function(e){e.id=x+0,e.innerHTML="<a name='"+x+"'></a>
<div name='"+x+"'></div>",f.insertBefore(e,f.firstChild);var t=n.getElementsByName&&n.getElementsByName(x).length===2+n.getElementsByName(x+0).length;return T.getIdNotName=!n.getElementById(x),f.removeChild(e),t}),i.attrHandle=at(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==A&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},T.getIdNotName?(i.find.ID=function(e,t){if(typeof t.getElementById!==A&&!d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(i.find.ID=function(e,n){if(typeof n.getElementById!==A&&!d){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==A&&r.getAttributeNode("id").value===e?[r]:t:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!==A&
&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=T.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==A?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},i.find.NAME=T.getByName&&function(e,n){return typeof n.getElementsByName!==A?n.getElementsByName(name):t},i.find.CLASS=T.getByClassName&&function(e,n){return typeof n.getElementsByClassName===A||d?t:n.getElementsByClassName(e)},g=[],h=[":focus"],(T.qsa=rt(n.querySelectorAll))&&(at(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||h.push("\\["+_+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||h.push(":checked")}),at(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&h.push("[*^$]="+_+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length|
|h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(T.matchesSelector=rt(m=f.matchesSelector||f.mozMatchesSelector||f.webkitMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&at(function(e){T.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",R)}),h=RegExp(h.join("|")),g=RegExp(g.join("|")),y=rt(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)for(;t=t.parentNode;)if(t===e)return!0;return!1},v=f.compareDocumentPosition?function(e,t){var r;return e===t?(u=!0,0):(r=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&r||e.parentNode&&11===e.parentNode.nodeType?e===n||y(w,e)?-1:t===n||y(w,t)?1:0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t
];if(e===t)return u=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:0;if(o===a)return ut(e,t);for(r=e;r=r.parentNode;)s.unshift(r);for(r=t;r=r.parentNode;)l.unshift(r);for(;s[i]===l[i];)i++;return i?ut(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},u=!1,[0,0].sort(v),T.detectDuplicates=u,p):p},st.matches=function(e,t){return st(e,null,null,t)},st.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Z,"='$1']"),!(!T.matchesSelector||d||g&&g.test(t)||h.test(t)))try{var n=m.call(e,t);if(n||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return st(t,p,null,[e]).length>0},st.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},st.attr=function(e,t){var n;return(e.ownerDocument||e)!==p&&c(e),d||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):d||T.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},st.error=function(e){throw Error("Syntax error, unrecognized expression: "
+e)},st.uniqueSort=function(e){var t,n=[],r=1,i=0;if(u=!T.detectDuplicates,e.sort(v),u){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));for(;i--;)e.splice(n[i],1)}return e},o=st.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=st.selectors={cacheLength:50,createPseudo:ot,match:U,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),"~="===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]||st.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]&&st.error(e[0]),e},PSEUDO:function(e
){var t,n=!e[5]&&e[2];return U.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&z.test(n)&&(t=ft(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){return"*"===e?function(){return!0}:(e=e.replace(et,tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[e+" "];return t||(t=RegExp("(^|"+_+")"+e+"("+_+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=st.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),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u
){var l,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){for(;g;){for(p=t;p=p[g];)if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){for(c=m[x]||(m[x]={}),l=c[e]||[],d=l[0]===N&&l[1],f=l[0]===N&&l[2],p=d&&m.childNodes[d];p=++d&&p&&p[g]||(f=d=0)||h.pop();)if(1===p.nodeType&&++f&&p===t){c[e]=[N,d,f];break}}else if(v&&(l=(t[x]||(t[x]={}))[e])&&l[0]===N)f=l[1];else for(;(p=++d&&p&&p[g]||(f=d=0)||h.pop())&&((s?p.nodeName.toLowerCase()!==y:1!==p.nodeType)||!++f||(v&&((p[x]||(p[x]={}))[e]=[N,f]),p!==t)););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()]||st.error("unsupported pseudo: "+e);return r[x]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ot(function(e,n){for(var i,o=r(e,t),a=o.length;a--;)i=M.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){r
eturn r(e,0,n)}):r}},pseudos:{not:ot(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[x]?ot(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ot(function(e){return function(t){return st(e,t).length>0}}),contains:ot(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ot(function(e){return X.test(e||"")||st.error("unsupported lang: "+e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=d?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.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 Q.test(e.nodeName)},input:function(e){return G.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:pt(function(){return[0]}),last:pt(function(e,t){return[t-1]}),eq:pt(function(e,t,n){return[0>n?n+t:n]}),even:pt(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:pt(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:pt(function(e,t,n){for(var r
=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:pt(function(e,t,n){for(var r=0>n?n+t:n;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[n]=lt(n);for(n in{submit:!0,reset:!0})i.pseudos[n]=ct(n);s=st.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){for(t||(t=ft(e)),n=t.length;n--;)o=vt(t[n]),o[x]?r.push(o):i.push(o);o=S(e,bt(i,r))}return o},i.pseudos.nth=i.pseudos.eq,i.filters=Tt.prototype=i.pseudos,i.setFilters=new Tt,c(),st.attr=b.attr,b.find=st,b.expr=st.selectors,b.expr[":"]=b.expr.pseudos,b.unique=st.uniqueSort,b.text=st.getText,b.isXMLDoc=st.isXML,b.contains=st.contains}(e);var at=/Until$/,st=/^(?:parents|prev(?:Until|All))/,ut=/^.[^:#\[\.,]*$/,lt=b.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};b.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return r=this,this.pushStack(b(e).filter(function(){for(t=0;i>t;t++)if(b.contains(r[t],this))return!0}));for(n=[],t=0;i>t;t++)b.find(e,th
is[t],n);return n=this.pushStack(i>1?b.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=b(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(b.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1))},filter:function(e){return this.pushStack(ft(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?lt.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=lt.test(e)||"string"!=typeof e?b(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n.ownerDocument&&n!==t&&11!==n.nodeType;){if(a?a.index(n)>-1:b.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}return this.pushStack(o.length>1?b.unique(o):o)},index:function(e){return e?"string"==typeof e?b.inArray(this[0],b(e)):b.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==type
of e?b(e,t):b.makeArray(e&&e.nodeType?[e]:e),r=b.merge(this.get(),n);return this.pushStack(b.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),b.fn.andSelf=b.fn.addBack,b.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(e,t,n){return b.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(e,t,n){return b.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return b.dir(e,"previousSibling",n)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.merge([],e.childNodes)}},function(e,t){b.
fn[e]=function(n,r){var i=b.map(this,t,n);return at.test(e)||(r=n),r&&"string"==typeof r&&(i=b.filter(r,i)),i=this.length>1&&!ct[e]?b.unique(i):i,this.length>1&&st.test(e)&&(i=i.reverse()),this.pushStack(i)
}}),b.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?b.find.matchesSelector(t[0],e)?[t[0]]:[]:b.find.matches(e,t)},dir:function(e,n,r){for(var i=[],o=e[n];o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!b(o).is(r));)1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Nt=/^(?:checkbox|radio)$/i,Ct=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,
"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:b.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(o),Dt=jt.appendChild(o.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,b.fn.extend({text:function(e){return b.access(this,function(e){return e===t?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e))return this.each(function(t){b(this).wrapAll(e.call(this,t))});if(this[0]){var t=b(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return t
his},wrapInner:function(e){return this.each(b.isFunction(e)?function(t){b(this).wrapInner(e.call(this,t))}:function(){var t=b(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=b.isFunction(e);return this.each(function(n){b(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){b.nodeName(this,"body")||b(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function
(e,t){for(var n,r=0;null!=(n=this[r]);r++)(!e||b.filter(e,[n]).length>0)&&(t||1!==n.nodeType||b.cleanData(Ot(n)),n.parentNode&&(t&&b.contains(n.ownerDocument,n)&&Mt(Ot(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&b.cleanData(Ot(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&b.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return b.clone(this,e,t)})},html:function(e){return b.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!b.support.htmlSerialize&&mt.test(e)||!b.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(b.cleanData(Ot(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)}
,null,e,arguments.length)},replaceWith:function(e){var t=b.isFunction(e);return t||"string"==typeof e||(e=b(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;n&&(b(this).remove(),n.insertBefore(e,t))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=f.apply([],e);var i,o,a,s,u,l,c=0,p=this.length,d=this,h=p-1,g=e[0],m=b.isFunction(g);if(m||!(1>=p||"string"!=typeof g||b.support.checkClone)&&Ct.test(g))return this.each(function(i){var o=d.eq(i);m&&(e[0]=g.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(p&&(l=b.buildFragment(e,this[0].ownerDocument,!1,this),i=l.firstChild,1===l.childNodes.length&&(l=i),i)){for(n=n&&b.nodeName(i,"tr"),s=b.map(Ot(l,"script"),Ht),a=s.length;p>c;c++)o=l,c!==h&&(o=b.clone(o,!0,!0),a&&b.merge(s,Ot(o,"script"))),r.call(n&&b.nodeName(this[c],"table")?Lt(this[c],"tbody"):this[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,b.map(s,qt),c=0;a>c;c++)o=s[c],kt.test(o.type||"")&&!b._data(o,"glo
balEval")&&b.contains(u,o)&&(o.src?b.ajax({url:o.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):b.globalEval((o.text||o.textContent||o.innerHTML||"").replace(St,"")));l=i=null}return this}}),b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){b.fn[e]=function(e){for(var n,r=0,i=[],o=b(e),a=o.length-1;a>=r;r++)n=r===a?this:this.clone(!0),b(o[r])[t](n),d.apply(i,n.get());return this.pushStack(i)}}),b.extend({clone:function(e,t,n){var r,i,o,a,s,u=b.contains(e.ownerDocument,e);if(b.support.html5Clone||b.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(b.support.noCloneEvent&&b.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||b.isXMLDoc(e)))for(r=Ot(o),s=Ot(e),a=0;null!=(i=s[a]);++a)r[a]&&Ft(i,r[a]);if(t)if(n)for(s=s||Ot(e),r=r||Ot(o),a=0;null!=(i=s[a]);a++)_t(i,r[a]);else _t(e,o);return r=Ot(o,"script"),r.length>0&
&Mt(r,!u&&Ot(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){for(var i,o,a,s,u,l,c,p=e.length,f=dt(t),d=[],h=0;p>h;h++)if(o=e[h],o||0===o)if("object"===b.type(o))b.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){for(s=s||f.appendChild(t.createElement("div")),u=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[u]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];i--;)s=s.lastChild;if(!b.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!b.support.tbody)for(o="table"!==u||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;i--;)b.nodeName(l=o.childNodes[i],"tbody")&&!l.childNodes.length&&o.removeChild(l);for(b.merge(d,s.childNodes),s.textContent="";s.firstChild;)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));for(s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;o=d[h++];)if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),
"script"),a&&Mt(s),n))for(i=0;o=s[i++];)kt.test(o.type||"")&&n.push(o);return s=null,f},cleanData:function(e,t){for(var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n.length;
i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px"),b.sup
port.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=fu
nction(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u}),b.each(["height","width"],function(e,n){b.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(b.css(e,"display"))?b.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,i),i):0)}}}),b.support.opacity||(b.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=b.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===b.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),
""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),b(function(){b.support.reliableMarginRight||(b.cssHooks.marginRight={get:function(e,n){return n?b.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!b.support.pixelPosition&&b.fn.position&&b.each(["top","left"],function(e,n){b.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?b(e).position()[n]+"px":r):t}}})}),b.expr&&b.expr.filters&&(b.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!b.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||b.css(e,"display"))},b.expr.filters.visible=function(e){return!b.expr.filters.hidden(e)}),b.each({margin:"",padding:"",border:"Width"},function(e,t){b.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(b.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:i
nput|select|textarea|keygen)/i;b.fn.extend({serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=b.prop(this,"elements");return e?b.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!b(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Nt.test(e))}).map(function(e,t){var n=b(this).val();return null==n?null:b.isArray(n)?b.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),b.param=function(e,n){var r,i=[],o=function(e,t){t=b.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=b.ajaxSettings&&b.ajaxSettings.traditional),b.isArray(e)||e.jquery&&!b.isPlainObject(e))b.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")},b.each("blur focus focusin focusout load resize scroll unload click dblclick moused
own mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){b.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),b.fn.hover=function(e,t){return this.mouseenter(e).mouseleave(t||e)};var mn,yn,vn=b.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Nn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Cn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=b.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=a.href}catch(Ln){yn=o.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[],b.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),b.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&b.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o
=arguments,s.html(i?b("<div>").append(b.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},b.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){b.fn[t]=function(e){return this.on(t,e)}}),b.each(["get","post"],function(e,n){b[n]=function(e,r,i,o){return b.isFunction(r)&&(o=o||i,i=r,r=t),b.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),b.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Nn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t
){return t?Mn(Mn(e,b.ajaxSettings),t):Mn(b.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){function k(e,n,r,i){var c,y,v,w,T,C=n;2!==x&&(x=2,s&&clearTimeout(s),l=t,a=i||"",N.readyState=e>0?4:0,r&&(w=_n(p,N,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=N.getResponseHeader("Last-Modified"),T&&(b.lastModified[o]=T),T=N.getResponseHeader("etag"),T&&(b.etag[o]=T)),204===e?(c=!0,C="nocontent"):304===e?(c=!0,C="notmodified"):(c=Fn(p,w),C=c.state,y=c.data,v=c.error,c=!v)):(v=C,(e||!C)&&(C="error",0>e&&(e=0))),N.status=e,N.statusText=(n||C)+"",c?h.resolveWith(f,[y,C,N]):h.rejectWith(f,[N,C,v]),N.statusCode(m),m=t,u&&d.trigger(c?"ajaxSuccess":"ajaxError",[N,p,c?y:v]),g.fireWith(f,[N,C]),u&&(d.trigger("ajaxComplete",[N,p]),--b.active||b.event.trigger("ajaxStop")))}"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,u,l,c,p=b.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?b(f):b.event,h=b.Deferred(),g=b.Callbacks("once memory"),m=p.statusCode||{}
,y={},v={},x=0,T="canceled",N={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!c)for(c={};t=Tn.exec(a);)c[t[1].toLowerCase()]=t[2];t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)m[t]=[m[t],e[t]];else N.always(e[N.status]);return this},abort:function(e){var t=e||T;return l&&l.abort(t),k(0,t),this}};if(h.promise(N).complete=g.add,N.success=N.done,N.error=N.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=b.trim(p.dataType||"*").toLowerCase().match(w)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?80:443))==(mn[3]||("http:"===mn[1]?80:443)))),p.data&&p.processData&&
"string"!=typeof p.data&&(p.data=b.param(p.data,p.traditional)),qn(An,p,n,N),2===x)return N;u=p.global,u&&0===b.active++&&b.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Cn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(b.lastModified[o]&&N.setRequestHeader("If-Modified-Since",b.lastModified[o]),b.etag[o]&&N.setRequestHeader("If-None-Match",b.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&N.setRequestHeader("Content-Type",p.contentType),N.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)N.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,N,p)===!1||2===x))return N.abort();T="abort";for(i in{success:1,error:1,complete:1})N[i](p[i]);if(l=qn(j
n,p,n,N)){N.readyState=1,u&&d.trigger("ajaxSend",[N,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){N.abort("timeout")},p.timeout));try{x=1,l.send(y,k)}catch(C){if(!(2>x))throw C;k(-1,C)}}else k(-1,"No Transport");return N},getScript:function(e,n){return b.get(e,t,n,"script")},getJSON:function(e,t,n){return b.get(e,t,n,"json")}}),b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return b.globalEval(e),e}}}),b.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),b.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=o.head||b("head")[0]||o.documentElement;return{send:function(t,i){n=o.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&
&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var On=[],Bn=/(=)\?(?=&|$)|\?\?/;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=On.pop()||b.expando+"_"+vn++;return this[e]=!0,e}}),b.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=b.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||b.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,On.push(o)),s&&b.isFunction(a)&&a(s[0]),s=
a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};b.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=b.ajaxSettings.xhr(),b.support.cors=!!Rn&&"withCredentials"in Rn,Rn=b.support.ajax=!!Rn,Rn&&b.ajaxTransport(function(n){if(!n.crossDomain||b.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=b.noop,$n&&delete Pn[a]),i)4!==u.readyState&&u.abort();else{p={},s=u.status,l=u.getAllResponseHeaders(),"string"==typeof u.responseText&&(p.te
xt=u.responseText);try{c=u.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,l)},n.async?4===u.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},b(e).unload($n)),Pn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+x+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yn.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(b.cssNumber[e]?"":"px"),"px"!==r&&s){s=b.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,b.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};b.Animation=b.extend(er,{tweener:function(e,t){b.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}}),b.Tween=rr,rr.prototype={constructor:rr,init
:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(b.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?b.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=b.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){b.fx.step[e.prop]?b.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[b.cssProps[e.prop]]||b.cssHooks[e.prop])?b.style(e.elem,e.prop,e.now+e.unit):e.el
em[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},b.each(["toggle","show","hide"],function(e,t){var n=b.fn[t];b.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),b.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=b.isEmptyObject(e),o=b.speed(t,n,r),a=function(){var t=er(this,b.extend({},e),o);a.finish=function(){t.stop(!0)},(i||b._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=b.timers,a=b._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n
)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&b.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=b._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=b.timers,a=r?r.length:0;for(n.finish=!0,b.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),b.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){b.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),b.speed=function(e,t,n){var r=e&&"object"==typeof e?b.extend({},e):{complete:n||!n&&t||b.isFunction(e)&&e,duration:e,easing:n&&t||t&&!b.isFunction(t)&&t};return r.duration
<TRUNCATED>
[30/34] build
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/b753f461/portal/js/libs/usergrid-libs.min.js
----------------------------------------------------------------------
diff --git a/portal/js/libs/usergrid-libs.min.js b/portal/js/libs/usergrid-libs.min.js
index ef49eff..0899b2b 100644
--- a/portal/js/libs/usergrid-libs.min.js
+++ b/portal/js/libs/usergrid-libs.min.js
@@ -19,4 +19,4 @@ a.effects.animateClass=function(b,c,d,e){return a.isFunction(d)&&(e=d,d=null),th
},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),"source"===b&&this._initSource(),"appendTo"===b&&this.menu.element.appendTo(a(c||"body",this.element[0].ownerDocument)[0]),"disabled"===b&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var d,e,b=this;a.isArray(this.options.source)?(d=this.options.source,this.source=function(b,c){c(a.ui.autocomplete.filter(d,b.term))}):"string"==typeof this.options.source?(e=this.options.source,this.source=function(d,f){b.xhr&&b.xhr.abort(),b.xhr=a.ajax({url:e,data:d,dataType:"json",context:{autocompleteRequest:++c},success:function(a){this.autocompleteRequest===c&&f(a)},error:function(){this.autocompleteRequest===c&&f([])}})}):this.source=this.options.source},search:function(a,b){return a=null!=a?a:this.element.val(),this.term=this.element.val(),a.length<this.options.minLength?this.close(b):(clearTimeout(this.closing),this._trigger("search",b)!==!1?this._search(a):void 0)},_search:function(a){this.pending++,this.e
lement.addClass("ui-autocomplete-loading"),this.source({term:a},this.response)},_response:function(a){!this.options.disabled&&a&&a.length?(a=this._normalize(a),this._suggest(a),this._trigger("open")):this.close(),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.deactivate(),this._trigger("close",a))},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(b){return b.length&&b[0].label&&b[0].value?b:a.map(b,function(b){return"string"==typeof b?{label:b,value:b}:a.extend({label:b.label||b.value,value:b.value||b.label},b)})},_suggest:function(b){var c=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(c,b),this.menu.deactivate(),this.menu.refresh(),c.show(),this._resizeMenu(),c.position(a.extend({of:this.element},this.options.position)),this.opt
ions.autoFocus&&this.menu.next(new a.Event("mouseover"))},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(b,c){var d=this;a.each(c,function(a,c){d._renderItem(b,c)})},_renderItem:function(b,c){return a("<li></li>").data("item.autocomplete",c).append(a("<a></a>").text(c.label)).appendTo(b)},_move:function(a,b){if(this.menu.element.is(":visible")){if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a))return this.element.val(this.term),void this.menu.deactivate();this.menu[a](b)}else this.search(null,b)},widget:function(){return this.menu.element}}),a.extend(a.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(b,c){var d=new RegExp(a.ui.autocomplete.escapeRegex(c),"i");return a.grep(b,function(a){return d.test(a.label||a.value||a)})}})}(jQuery),function(a){a.widget("ui.menu",{_create:function(){var b=this;thi
s.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){!a(c.target).closest(".ui-menu-item a").length||(c.preventDefault(),b.select(c))}),this.refresh()},refresh:function(){var b=this,c=this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem");c.children("a").addClass("ui-corner-all").attr("tabindex",-1).mouseenter(function(c){b.activate(c,a(this).parent())}).mouseleave(function(){b.deactivate()})},activate:function(a,b){if(this.deactivate(),this.hasScroll()){var c=b.offset().top-this.element.offset().top,d=this.element.scrollTop(),e=this.element.height();0>c?this.element.scrollTop(d+c):c>=e&&this.element.scrollTop(d+c-e+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end(),this._trigger("focus",a,{item:b})},deactivate:function(){!this.active||(this.active.children("a").removeClass
("ui-state-hover").removeAttr("id"),this._trigger("blur"),this.active=null)},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,c){if(this.active){var d=this.active[a+"All"](".ui-menu-item").eq(0);d.length?this.activate(c,d):this.activate(c,this.element.children(b))}else this.activate(c,this.element.children(b))},nextPage:function(b){if(this.hasScroll()){if(!this.active||this.last())return void this.activate(b,this.element.children(".ui-menu-item:first"));var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c-d+a(this).height();return 10>b&&b>-10});e.length||(e=this.element.children(".ui-menu-item:last")),this.activate(b,e)}else this.activate(b,t
his.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(b){if(this.hasScroll()){if(!this.active||this.first())return void this.activate(b,this.element.children(".ui-menu-item:last"));var c=this.active.offset().top,d=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c+d-a(this).height();return 10>b&&b>-10}),result.length||(result=this.element.children(".ui-menu-item:first")),this.activate(b,result)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element[a.fn.prop?"prop":"attr"]("scrollHeight")},select:function(a){this._trigger("selected",a,{item:this.active})}})}(jQuery),function(a){var c,d,e,f,g="ui-button ui-widget ui-state-default ui-corner-all",h="ui-state-hover ui-state-active ",i="ui-button-icons-only ui-button-icon-only ui-button-text-icons
ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",j=function(){var b=a(this).find(":ui-button");setTimeout(function(){b.button("refresh")},1)},k=function(b){var c=b.name,d=b.form,e=a([]);return c&&(e=d?a(d).find("[name='"+c+"']"):a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form})),e};a.widget("ui.button",{options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",j),"boolean"!=typeof this.options.disabled?this.options.disabled=!!this.element.propAttr("disabled"):this.element.propAttr("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var b=this,h=this.options,i="checkbox"===this.type||"radio"===this.type,l="ui-state-hover"+(i?"":" ui-state-active"),m="ui-state-focus";null===h.label&&(h.label=this.buttonElement.html()),this.buttonElement.addClass(g).attr("role","bu
tton").bind("mouseenter.button",function(){h.disabled||(a(this).addClass("ui-state-hover"),this===c&&a(this).addClass("ui-state-active"))}).bind("mouseleave.button",function(){h.disabled||a(this).removeClass(l)}).bind("click.button",function(a){h.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}),this.element.bind("focus.button",function(){b.buttonElement.addClass(m)}).bind("blur.button",function(){b.buttonElement.removeClass(m)}),i&&(this.element.bind("change.button",function(){f||b.refresh()}),this.buttonElement.bind("mousedown.button",function(a){h.disabled||(f=!1,d=a.pageX,e=a.pageY)}).bind("mouseup.button",function(a){!h.disabled&&(d!==a.pageX||e!==a.pageY)&&(f=!0)})),"checkbox"===this.type?this.buttonElement.bind("click.button",function(){return h.disabled||f?!1:(a(this).toggleClass("ui-state-active"),void b.buttonElement.attr("aria-pressed",b.element[0].checked))}):"radio"===this.type?this.buttonElement.bind("click.button",function(){if(h.disabled||f)return!1;a(thi
s).addClass("ui-state-active"),b.buttonElement.attr("aria-pressed","true");var c=b.element[0];k(c).not(c).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown.button",function(){return h.disabled?!1:(a(this).addClass("ui-state-active"),c=this,a(document).one("mouseup",function(){c=null}),void 0)}).bind("mouseup.button",function(){return h.disabled?!1:void a(this).removeClass("ui-state-active")}).bind("keydown.button",function(b){return h.disabled?!1:void((b.keyCode==a.ui.keyCode.SPACE||b.keyCode==a.ui.keyCode.ENTER)&&a(this).addClass("ui-state-active"))}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(b){b.keyCode===a.ui.keyCode.SPACE&&a(this).click()})),this._setOption("disabled",h.disabled),this._resetButton()},_determineButtonType:function(){if(this.type=this.element.is(":checkbox")?"checkbox":this.
element.is(":radio")?"radio":this.element.is("input")?"input":"button","checkbox"===this.type||"radio"===this.type){var a=this.element.parents().filter(":last"),b="label[for='"+this.element.attr("id")+"']";this.buttonElement=a.find(b),this.buttonElement.length||(a=a.length?a.siblings():this.element.siblings(),this.buttonElement=a.filter(b),this.buttonElement.length||(this.buttonElement=a.find(b))),this.element.addClass("ui-helper-hidden-accessible");var c=this.element.is(":checked");c&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.attr("aria-pressed",c)}else this.buttonElement=this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(g+" "+h+" "+i).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title"),a.Widget.prototype.destroy.call(this)},_setOption:functio
n(b,c){a.Widget.prototype._setOption.apply(this,arguments),"disabled"===b?c?this.element.propAttr("disabled",!0):this.element.propAttr("disabled",!1):this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b),"radio"===this.type?k(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):"checkbox"===this.type&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if("input"===this.type)this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass(i),c=a("<span></span>",this.element[0].ownerDocument).addClass("ui-button-text").html(this.options.label).appendTo
(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary,f=[];d.primary||d.secondary?(this.options.text&&f.push("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary")),d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>"),d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>"),this.options.text||(f.push(e?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||b.attr("title",c))):f.push("ui-button-text-only"),b.addClass(f.join(" "))}}}),a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){"disabled"===b&&this.buttons.button("option",b,c),a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var b="rtl"===this.element.css("direction");this.buttons=this.element.find(this.options.items).filter(":ui-button"
).button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(b?"ui-corner-left":"ui-corner-right").end().end()},destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"),a.Widget.prototype.destroy.call(this)}})}(jQuery),function($,undefined){function isArray(a){return a&&($.browser.safari&&"object"==typeof a&&a.length||a.constructor&&a.constructor.toString().match(/\Array\(\)/))}function extendRemove(a,b){$.extend(a,b);for(var c in b)(null==b[c]||b[c]==undefined)&&(a[c]=b[c]);return a}function bindHover(a){var b="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return a.bind("mouseout",function(a){var c=$(a.target).c
losest(b);!c.length||c.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(c){var d=$(c.target).closest(b);!$.datepicker._isDisabledDatepicker(instActive.inline?a.parent()[0]:instActive.input[0])&&!!d.length&&(d.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),d.addClass("ui-state-hover"),d.hasClass("ui-datepicker-prev")&&d.addClass("ui-datepicker-prev-hover"),d.hasClass("ui-datepicker-next")&&d.addClass("ui-datepicker-next-hover"))})}function Datepicker(){this.debug=!1,this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-c
urrent-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8
601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},$.extend(this._defaults,this.regional[""]),this.dpDiv=bindHover($('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}$.extend($.ui,{datepicker:{version:"1.8.18"}});var PROP_NAME="datepicker",dpuuid=(new Date).getTime(),instActive;$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){return extendRemove(this._defaults,a||{}),this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAtt
ribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline="div"==nodeName||"span"==nodeName;target.id||(this.uuid+=1,target.id="dp"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),"input"==nodeName?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(a,b){var c=a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");return{id:c,input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:b?bindHover($('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')):this.dpDiv}},_connectDatepicker:function(a,b){var c=$(a);b.append=$([]),b.trigger=$([]),c.hasClass(this.markerClassName)||(this._attachments(c,b),c.addClass(this.markerClassName).keyd
own(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),this._autoSize(b),$.data(a,PROP_NAME,b),b.settings.disabled&&this._disableDatepicker(a))},_attachments:function(a,b){var c=this._get(b,"appendText"),d=this._get(b,"isRTL");b.append&&b.append.remove(),c&&(b.append=$('<span class="'+this._appendClass+'">'+c+"</span>"),a[d?"before":"after"](b.append)),a.unbind("focus",this._showDatepicker),b.trigger&&b.trigger.remove();var e=this._get(b,"showOn");if(("focus"==e||"both"==e)&&a.focus(this._showDatepicker),"button"==e||"both"==e){var f=this._get(b,"buttonText"),g=this._get(b,"buttonImage");b.trigger=$(this._get(b,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:g,alt:f,title:f}):$('<button type="button"></button>').addClass(this._triggerClass).html(""==g?f:$("<img/>").attr({src:g,alt:f,title:f}))),a[d?"before":"after"](b.trigger
),b.trigger.click(function(){return $.datepicker._datepickerShowing&&$.datepicker._lastInput==a[0]?$.datepicker._hideDatepicker():$.datepicker._datepickerShowing&&$.datepicker._lastInput!=a[0]?($.datepicker._hideDatepicker(),$.datepicker._showDatepicker(a[0])):$.datepicker._showDatepicker(a[0]),!1})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var d=function(a){for(var b=0,c=0,d=0;d<a.length;d++)a[d].length>b&&(b=a[d].length,c=d);return c};b.setMonth(d(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort"))),b.setDate(d(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=$(a);c.hasClass(this.markerClassName)||(c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),$.
data(a,PROP_NAME,b),this._setDate(b,this._getDefaultDate(b),!0),this._updateDatepicker(b),this._updateAlternate(b),b.settings.disabled&&this._disableDatepicker(a),b.dpDiv.css("display","block"))},_dialogDatepicker:function(a,b,c,d,e){var f=this._dialogInst;if(!f){this.uuid+=1;var g="dp"+this.uuid;this._dialogInput=$('<input type="text" id="'+g+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>'),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),f=this._dialogInst=this._newInst(this._dialogInput,!1),f.settings={},$.data(this._dialogInput[0],PROP_NAME,f)}if(extendRemove(f.settings,d||{}),b=b&&b.constructor==Date?this._formatDate(f,b):b,this._dialogInput.val(b),this._pos=e?e.length?e:[e.pageX,e.pageY]:null,!this._pos){var h=document.documentElement.clientWidth,i=document.documentElement.clientHeight,j=document.documentElement.scrollLeft||document.body.scrollLeft,k=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[h/
2-100+j,i/2-150+k]}return this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),f.settings.onSelect=c,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,f),this},_destroyDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();$.removeData(a,PROP_NAME),"input"==d?(c.append.remove(),c.trigger.remove(),b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"==d||"span"==d)&&b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();if("input"==d)a.disabled=!1,c.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img"
).css({opacity:"1.0",cursor:""});else if("div"==d||"span"==d){var e=b.children("."+this._inlineClass);e.children().removeClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b})}},_disableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();if("input"==d)a.disabled=!0,c.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"});else if("div"==d||"span"==d){var e=b.children("."+this._inlineClass);e.children().addClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b}),this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return!1;for(var b=0
;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return!0;return!1},_getInst:function(a){try{return $.data(a,PROP_NAME)}catch(b){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(a,b,c){var d=this._getInst(a);if(2==arguments.length&&"string"==typeof b)return"defaults"==b?$.extend({},$.datepicker._defaults):d?"all"==b?$.extend({},d.settings):this._get(d,b):null;var e=b||{};if("string"==typeof b&&(e={},e[b]=c),d){this._curInst==d&&this._hideDatepicker();var f=this._getDateDatepicker(a,!0),g=this._getMinMaxDate(d,"min"),h=this._getMinMaxDate(d,"max");extendRemove(d.settings,e),null!==g&&e.dateFormat!==undefined&&e.minDate===undefined&&(d.settings.minDate=this._formatDate(d,g)),null!==h&&e.dateFormat!==undefined&&e.maxDate===undefined&&(d.settings.maxDate=this._formatDate(d,h)),this._attachments($(a),d),this._autoSize(d),this._setDate(d,f),this._updateAlternate(d),this._updateDatepicker(d)}},_changeDatepicker:function(a,b,c){this._optionDatepi
cker(a,b,c)},_refreshDatepicker:function(a){var b=this._getInst(a);b&&this._updateDatepicker(b)},_setDateDatepicker:function(a,b){var c=this._getInst(a);c&&(this._setDate(c,b),this._updateDatepicker(c),this._updateAlternate(c))},_getDateDatepicker:function(a,b){var c=this._getInst(a);return c&&!c.inline&&this._setDateFromField(c,b),c?this._getDate(c):null},_doKeyDown:function(a){var b=$.datepicker._getInst(a.target),c=!0,d=b.dpDiv.is(".ui-datepicker-rtl");if(b._keyEvent=!0,$.datepicker._datepickerShowing)switch(a.keyCode){case 9:$.datepicker._hideDatepicker(),c=!1;break;case 13:var e=$("td."+$.datepicker._dayOverClass+":not(."+$.datepicker._currentClass+")",b.dpDiv);e[0]&&$.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,e[0]);var f=$.datepicker._get(b,"onSelect");if(f){var g=$.datepicker._formatDate(b);f.apply(b.input?b.input[0]:null,[g,b])}else $.datepicker._hideDatepicker();return!1;case 27:$.datepicker._hideDatepicker();break;case 33:$.datepicker._adjustDate(a.targ
et,a.ctrlKey?-$.datepicker._get(b,"stepBigMonths"):-$.datepicker._get(b,"stepMonths"),"M");break;case 34:$.datepicker._adjustDate(a.target,a.ctrlKey?+$.datepicker._get(b,"stepBigMonths"):+$.datepicker._get(b,"stepMonths"),"M");break;case 35:(a.ctrlKey||a.metaKey)&&$.datepicker._clearDate(a.target),c=a.ctrlKey||a.metaKey;break;case 36:(a.ctrlKey||a.metaKey)&&$.datepicker._gotoToday(a.target),c=a.ctrlKey||a.metaKey;break;case 37:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,d?1:-1,"D"),c=a.ctrlKey||a.metaKey,a.originalEvent.altKey&&$.datepicker._adjustDate(a.target,a.ctrlKey?-$.datepicker._get(b,"stepBigMonths"):-$.datepicker._get(b,"stepMonths"),"M");break;case 38:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,-7,"D"),c=a.ctrlKey||a.metaKey;break;case 39:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,d?-1:1,"D"),c=a.ctrlKey||a.metaKey,a.originalEvent.altKey&&$.datepicker._adjustDate(a.target,a.ctrlKey?+$.datepicker._get(b,"stepBigMonths"):+$.datepick
er._get(b,"stepMonths"),"M");break;case 40:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,7,"D"),c=a.ctrlKey||a.metaKey;break;default:c=!1}else 36==a.keyCode&&a.ctrlKey?$.datepicker._showDatepicker(this):c=!1;c&&(a.preventDefault(),a.stopPropagation())},_doKeyPress:function(a){var b=$.datepicker._getInst(a.target);if($.datepicker._get(b,"constrainInput")){var c=$.datepicker._possibleChars($.datepicker._get(b,"dateFormat")),d=String.fromCharCode(a.charCode==undefined?a.keyCode:a.charCode);return a.ctrlKey||a.metaKey||" ">d||!c||c.indexOf(d)>-1}},_doKeyUp:function(a){var b=$.datepicker._getInst(a.target);if(b.input.val()!=b.lastVal)try{var c=$.datepicker.parseDate($.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,$.datepicker._getFormatConfig(b));c&&($.datepicker._setDateFromField(b),$.datepicker._updateAlternate(b),$.datepicker._updateDatepicker(b))}catch(a){$.datepicker.log(a)}return!0},_showDatepicker:function(a){if(a=a.target||a,"input"!=a.nodeName.toLowerCas
e()&&(a=$("input",a.parentNode)[0]),!$.datepicker._isDisabledDatepicker(a)&&$.datepicker._lastInput!=a){var b=$.datepicker._getInst(a);$.datepicker._curInst&&$.datepicker._curInst!=b&&($.datepicker._curInst.dpDiv.stop(!0,!0),b&&$.datepicker._datepickerShowing&&$.datepicker._hideDatepicker($.datepicker._curInst.input[0]));var c=$.datepicker._get(b,"beforeShow"),d=c?c.apply(a,[a,b]):{};if(d===!1)return;extendRemove(b.settings,d),b.lastVal=null,$.datepicker._lastInput=a,$.datepicker._setDateFromField(b),$.datepicker._inDialog&&(a.value=""),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(a),$.datepicker._pos[1]+=a.offsetHeight);var e=!1;$(a).parents().each(function(){return e|="fixed"==$(this).css("position"),!e}),e&&$.browser.opera&&($.datepicker._pos[0]-=document.documentElement.scrollLeft,$.datepicker._pos[1]-=document.documentElement.scrollTop);var f={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};if($.datepicker._pos=null,b.dpDiv.empty(),b.dpDiv.css({position:"abso
lute",display:"block",top:"-1000px"}),$.datepicker._updateDatepicker(b),f=$.datepicker._checkOffset(b,f,e),b.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":e?"fixed":"absolute",display:"none",left:f.left+"px",top:f.top+"px"}),!b.inline){var g=$.datepicker._get(b,"showAnim"),h=$.datepicker._get(b,"duration"),i=function(){var a=b.dpDiv.find("iframe.ui-datepicker-cover");if(a.length){var c=$.datepicker._getBorders(b.dpDiv);a.css({left:-c[0],top:-c[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex($(a).zIndex()+1),$.datepicker._datepickerShowing=!0,$.effects&&$.effects[g]?b.dpDiv.show(g,$.datepicker._get(b,"showOptions"),h,i):b.dpDiv[g||"show"](g?h:null,i),(!g||!h)&&i(),b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus(),$.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=this;b.maxRows=4;var c=$.datepicker._getBorders(a.dpDiv);instActive=a,a.dpDiv.empty().append(this._generateHTML(a));var d=a.dpDiv.find("iframe.ui-dat
epicker-cover");!d.length||d.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}),a.dpDiv.find("."+this._dayOverClass+" a").mouseover();var e=this._getNumberOfMonths(a),f=e[1],g=17;if(a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),f>1&&a.dpDiv.addClass("ui-datepicker-multi-"+f).css("width",g*f+"em"),a.dpDiv[(1!=e[0]||1!=e[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),a==$.datepicker._curInst&&$.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus(),a.yearshtml){var h=a.yearshtml;setTimeout(function(){h===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml),h=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseFloat(b(a.css("bord
er-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var d=a.dpDiv.outerWidth(),e=a.dpDiv.outerHeight(),f=a.input?a.input.outerWidth():0,g=a.input?a.input.outerHeight():0,h=document.documentElement.clientWidth+$(document).scrollLeft(),i=document.documentElement.clientHeight+$(document).scrollTop();return b.left-=this._get(a,"isRTL")?d-f:0,b.left-=c&&b.left==a.input.offset().left?$(document).scrollLeft():0,b.top-=c&&b.top==a.input.offset().top+g?$(document).scrollTop():0,b.left-=Math.min(b.left,b.left+d>h&&h>d?Math.abs(b.left+d-h):0),b.top-=Math.min(b.top,b.top+e>i&&i>e?Math.abs(e+g):0),b},_findPos:function(a){for(var b=this._getInst(a),c=this._get(b,"isRTL");a&&("hidden"==a.type||1!=a.nodeType||$.expr.filters.hidden(a));)a=a[c?"previousSibling":"nextSibling"];var d=$(a).offset();return[d.left,d.top]},_hideDatepicker:function(a){var b=this._curInst;if(b&&(!a||b==$.data(a,PROP_NAME))&&this._datepickerShowing){var c=this._get(b,"showAnim"),d=this._g
et(b,"duration"),e=this,f=function(){$.datepicker._tidyDialog(b),e._curInst=null};$.effects&&$.effects[c]?b.dpDiv.hide(c,$.datepicker._get(b,"showOptions"),d,f):b.dpDiv["slideDown"==c?"slideUp":"fadeIn"==c?"fadeOut":"hide"](c?d:null,f),c||f(),this._datepickerShowing=!1;var g=this._get(b,"onClose");g&&g.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.dpDiv))),this._inDialog=!1}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if($.datepicker._curInst){var b=$(a.target),c=$.datepicker._getInst(b[0]);(b[0].id!=$.datepicker._mainDivId&&0==b.parents("#"+$.datepicker._mainDivId).length&&!b.hasClass($.datepicker.markerClassName)&&!b.closest("."+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&(!$.datepicker._inDialog||!$.blockU
I)||b.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!=c)&&$.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){var d=$(a),e=this._getInst(d[0]);this._isDisabledDatepicker(d[0])||(this._adjustInstDate(e,b+("M"==c?this._get(e,"showCurrentAtPos"):0),c),this._updateDatepicker(e))},_gotoToday:function(a){var b=$(a),c=this._getInst(b[0]);if(this._get(c,"gotoCurrent")&&c.currentDay)c.selectedDay=c.currentDay,c.drawMonth=c.selectedMonth=c.currentMonth,c.drawYear=c.selectedYear=c.currentYear;else{var d=new Date;c.selectedDay=d.getDate(),c.drawMonth=c.selectedMonth=d.getMonth(),c.drawYear=c.selectedYear=d.getFullYear()}this._notifyChange(c),this._adjustDate(b)},_selectMonthYear:function(a,b,c){var d=$(a),e=this._getInst(d[0]);e["selected"+("M"==c?"Month":"Year")]=e["draw"+("M"==c?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10),this._notifyChange(e),this._adjustDate(d)},_selectDay:function(a,b,c,d){var e=$(a);if(!$(d).hasClass(this._unselectableClass)&&!th
is._isDisabledDatepicker(e[0])){var f=this._getInst(e[0]);f.selectedDay=f.currentDay=$("a",d).html(),f.selectedMonth=f.currentMonth=b,f.selectedYear=f.currentYear=c,this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))
}},_clearDate:function(a){{var b=$(a);this._getInst(b[0])}this._selectDate(b,"")},_selectDate:function(a,b){var c=$(a),d=this._getInst(c[0]);b=null!=b?b:this._formatDate(d),d.input&&d.input.val(b),this._updateAlternate(d);var e=this._get(d,"onSelect");e?e.apply(d.input?d.input[0]:null,[b,d]):d.input&&d.input.trigger("change"),d.inline?this._updateDatepicker(d):(this._hideDatepicker(),this._lastInput=d.input[0],"object"!=typeof d.input[0]&&d.input.focus(),this._lastInput=null)},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),d=this._getDate(a),e=this.formatDate(c,d,this._getFormatConfig(a));$(b).each(function(){$(this).val(e)})}},noWeekends:function(a){var b=a.getDay();return[b>0&&6>b,""]},iso8601Week:function(a){var b=new Date(a.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1},parseDate:function(a,b,c){if(null==a||
null==b)throw"Invalid arguments";if(b="object"==typeof b?b.toString():b+"",""==b)return null;var d=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;d="string"!=typeof d?d:(new Date).getFullYear()%100+parseInt(d,10);for(var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=-1,j=-1,k=-1,l=-1,m=!1,n=function(b){var c=s+1<a.length&&a.charAt(s+1)==b;return c&&s++,c},o=function(a){var c=n(a),d="@"==a?14:"!"==a?20:"y"==a&&c?4:"o"==a?3:2,e=new RegExp("^\\d{1,"+d+"}"),f=b.substring(r).match(e);if(!f)throw"Missing number at position "+r;return r+=f[0].length,parseInt(f[0],10)},p=function(a,c,d){var e=$.map(n(a)?d:c,function(a,b){return[[b,a]]}).sort(function(a,b){return-(a[1].length-b[1].length)}),f=-1;if($.each(e,function(a,c){var d=c[1];return b.substr(r,d.length).toLowerCase()==d.toLowerCase()?(f=c[0],r+=d.length,!
1):void 0}),-1!=f)return f+1;throw"Unknown name at position "+r},q=function(){if(b.charAt(r)!=a.charAt(s))throw"Unexpected literal at position "+r;r++},r=0,s=0;s<a.length;s++)if(m)"'"!=a.charAt(s)||n("'")?q():m=!1;else switch(a.charAt(s)){case"d":k=o("d");break;case"D":p("D",e,f);break;case"o":l=o("o");break;case"m":j=o("m");break;case"M":j=p("M",g,h);break;case"y":i=o("y");break;case"@":var t=new Date(o("@"));i=t.getFullYear(),j=t.getMonth()+1,k=t.getDate();break;case"!":var t=new Date((o("!")-this._ticksTo1970)/1e4);i=t.getFullYear(),j=t.getMonth()+1,k=t.getDate();break;case"'":n("'")?q():m=!0;break;default:q()}if(r<b.length)throw"Extra/unparsed characters found in date: "+b.substring(r);if(-1==i?i=(new Date).getFullYear():100>i&&(i+=(new Date).getFullYear()-(new Date).getFullYear()%100+(d>=i?0:-100)),l>-1)for(j=1,k=l;;){var u=this._getDaysInMonth(i,j-1);if(u>=k)break;j++,k-=u}var t=this._daylightSavingAdjust(new Date(i,j-1,k));if(t.getFullYear()!=i||t.getMonth()+1!=j||t.getDate()
!=k)throw"Invalid date";return t},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7,formatDate:function(a,b,c){if(!b)return"";var d=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,e=(c?c.dayNames:null)||this._defaults.dayNames,f=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,h=function(b){var c=m+1<a.length&&a.charAt(m+1)==b;return c&&m++,c},i=function(a,b,c){var d=""+b;if(h(a))for(;d.length<c;)d="0"+d;return d},j=function(a,b,c,d){return h(a)?d[b]:c[b]},k="",l=!1;if(b)for(var m=0;m<a.length;m++)if(l)"'"!=a.charAt(m)||h("'")?k+=a.charAt(m):l=!1;else switch(a.charAt(m)){case"d":k+=i("d",b.getDate(),2);break;case"D":k+=j("D",b.getDay(),d,e);break;case"o":k+=i("o",Math.ro
und((new Date(b.getFullYear(),b.getMonth(),b.getDate()).getTime()-new Date(b.getFullYear(),0,0).getTime())/864e5),3);break;case"m":k+=i("m",b.getMonth()+1,2);break;case"M":k+=j("M",b.getMonth(),f,g);break;case"y":k+=h("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case"@":k+=b.getTime();break;case"!":k+=1e4*b.getTime()+this._ticksTo1970;break;case"'":h("'")?k+="'":l=!0;break;default:k+=a.charAt(m)}return k},_possibleChars:function(a){for(var b="",c=!1,d=function(b){var c=e+1<a.length&&a.charAt(e+1)==b;return c&&e++,c},e=0;e<a.length;e++)if(c)"'"!=a.charAt(e)||d("'")?b+=a.charAt(e):c=!1;else switch(a.charAt(e)){case"d":case"m":case"y":case"@":b+="0123456789";break;case"D":case"M":return null;case"'":d("'")?b+="'":c=!0;break;default:b+=a.charAt(e)}return b},_get:function(a,b){return a.settings[b]!==undefined?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var e,f,c=this._get(a,"dateFormat"),d=a.lastVal=a.input?a.inp
ut.val():null;e=f=this._getDefaultDate(a);var g=this._getFormatConfig(a);try{e=this.parseDate(c,d,g)||f}catch(h){this.log(h),d=b?"":d}a.selectedDay=e.getDate(),a.drawMonth=a.selectedMonth=e.getMonth(),a.drawYear=a.selectedYear=e.getFullYear(),a.currentDay=d?e.getDate():0,a.currentMonth=d?e.getMonth():0,a.currentYear=d?e.getFullYear():0,this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var d=function(a){var b=new Date;return b.setDate(b.getDate()+a),b},e=function(b){try{return $.datepicker.parseDate($.datepicker._get(a,"dateFormat"),b,$.datepicker._getFormatConfig(a))}catch(c){}for(var d=(b.toLowerCase().match(/^c/)?$.datepicker._getDate(a):null)||new Date,e=d.getFullYear(),f=d.getMonth(),g=d.getDate(),h=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,i=h.exec(b);i;){switch(i[2]||"d"){case"d":case"D":g+=parseInt(i[1],10);break;case"w":case"W":g+=7*parseInt(i[1],10);brea
k;case"m":case"M":f+=parseInt(i[1],10),g=Math.min(g,$.datepicker._getDaysInMonth(e,f));break;case"y":case"Y":e+=parseInt(i[1],10),g=Math.min(g,$.datepicker._getDaysInMonth(e,f))}i=h.exec(b)}return new Date(e,f,g)},f=null==b||""===b?c:"string"==typeof b?e(b):"number"==typeof b?isNaN(b)?c:d(b):new Date(b.getTime());return f=f&&"Invalid Date"==f.toString()?c:f,f&&(f.setHours(0),f.setMinutes(0),f.setSeconds(0),f.setMilliseconds(0)),this._daylightSavingAdjust(f)},_daylightSavingAdjust:function(a){return a?(a.setHours(a.getHours()>12?a.getHours()+2:0),a):null},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),(e!=a.selectedMonth||f!=a.selectedYear)&&!c&&this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?"":this._formatDate(a))},_getDate:function
(a){var b=!a.currentYear||a.input&&""==a.input.val()?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),d=this._get(a,"showButtonPanel"),e=this._get(a,"hideIfNoPrevNext"),f=this._get(a,"navigationAsDateFormat"),g=this._getNumberOfMonths(a),h=this._get(a,"showCurrentAtPos"),i=this._get(a,"stepMonths"),j=1!=g[0]||1!=g[1],k=this._daylightSavingAdjust(a.currentDay?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),l=this._getMinMaxDate(a,"min"),m=this._getMinMaxDate(a,"max"),n=a.drawMonth-h,o=a.drawYear;if(0>n&&(n+=12,o--),m){var p=this._daylightSavingAdjust(new Date(m.getFullYear(),m.getMonth()-g[0]*g[1]+1,m.getDate()));for(p=l&&l>p?l:p;this._daylightSavingAdjust(new Date(o,n,1))>p;)n--,0>n&&(n=11,o--)}a.drawMonth=n,a.drawYear=o;var q=this._get(a,"prevText");q=f?this.formatDa
te(q,this._daylightSavingAdjust(new Date(o,n-i,1)),this._getFormatConfig(a)):q;var r=this._canAdjustMonth(a,-1,o,n)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._adjustDate('#"+a.id+"', -"+i+", 'M');\" title=\""+q+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+q+"</span></a>":e?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+q+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+q+"</span></a>",s=this._get(a,"nextText");s=f?this.formatDate(s,this._daylightSavingAdjust(new Date(o,n+i,1)),this._getFormatConfig(a)):s;var t=this._canAdjustMonth(a,1,o,n)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._adjustDate('#"+a.id+"', +"+i+", 'M');\" title=\""+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>":e?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+s+'"><span class="ui-icon ui-icon-circle
-triangle-'+(c?"w":"e")+'">'+s+"</span></a>",u=this._get(a,"currentText"),v=this._get(a,"gotoCurrent")&&a.currentDay?k:b;u=f?this.formatDate(u,v,this._getFormatConfig(a)):u;var w=a.inline?"":'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+dpuuid+'.datepicker._hideDatepicker();">'+this._get(a,"closeText")+"</button>",x=d?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?w:"")+(this._isInRange(a,v)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._gotoToday('#"+a.id+"');\">"+u+"</button>":"")+(c?"":w)+"</div>":"",y=parseInt(this._get(a,"firstDay"),10);y=isNaN(y)?0:y;for(var z=this._get(a,"showWeek"),A=this._get(a,"dayNames"),C=(this._get(a,"dayNamesShort"),this._get(a,"dayNamesMin")),D=this._get(a,"monthNames"),E=this._get(a,"monthNamesShort"),F=this._get(a,"beforeShowDay"),G=this._get(a,"showOtherMonth
s"),H=this._get(a,"selectOtherMonths"),J=(this._get(a,"calculateWeek")||this.iso8601Week,this._getDefaultDate(a)),K="",L=0;L<g[0];L++){var M="";this.maxRows=4;for(var N=0;N<g[1];N++){var O=this._daylightSavingAdjust(new Date(o,n,a.selectedDay)),P=" ui-corner-all",Q="";if(j){if(Q+='<div class="ui-datepicker-group',g[1]>1)switch(N){case 0:Q+=" ui-datepicker-group-first",P=" ui-corner-"+(c?"right":"left");break;case g[1]-1:Q+=" ui-datepicker-group-last",P=" ui-corner-"+(c?"left":"right");break;default:Q+=" ui-datepicker-group-middle",P=""}Q+='">'}Q+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+P+'">'+(/all|left/.test(P)&&0==L?c?t:r:"")+(/all|right/.test(P)&&0==L?c?r:t:"")+this._generateMonthYearHeader(a,n,o,l,m,L>0||N>0,D,E)+'</div><table class="ui-datepicker-calendar"><thead><tr>';for(var R=z?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"",S=0;7>S;S++){var T=(S+y)%7;R+="<th"+((S+y+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><spa
n title="'+A[T]+'">'+C[T]+"</span></th>"}Q+=R+"</tr></thead><tbody>";var U=this._getDaysInMonth(o,n);o==a.selectedYear&&n==a.selectedMonth&&(a.selectedDay=Math.min(a.selectedDay,U));var V=(this._getFirstDayOfMonth(o,n)-y+7)%7,W=Math.ceil((V+U)/7),X=j&&this.maxRows>W?this.maxRows:W;this.maxRows=X;for(var Y=this._daylightSavingAdjust(new Date(o,n,1-V)),Z=0;X>Z;Z++){Q+="<tr>";for(var _=z?'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(Y)+"</td>":"",S=0;7>S;S++){var ba=F?F.apply(a.input?a.input[0]:null,[Y]):[!0,""],bb=Y.getMonth()!=n,bc=bb&&!H||!ba[0]||l&&l>Y||m&&Y>m;_+='<td class="'+((S+y+6)%7>=5?" ui-datepicker-week-end":"")+(bb?" ui-datepicker-other-month":"")+(Y.getTime()==O.getTime()&&n==a.selectedMonth&&a._keyEvent||J.getTime()==Y.getTime()&&J.getTime()==O.getTime()?" "+this._dayOverClass:"")+(bc?" "+this._unselectableClass+" ui-state-disabled":"")+(bb&&!G?"":" "+ba[1]+(Y.getTime()==k.getTime()?" "+this._currentClass:"")+(Y.getTime()==b.getTime()?" ui-datepicker
-today":""))+'"'+(bb&&!G||!ba[2]?"":' title="'+ba[2]+'"')+(bc?"":' onclick="DP_jQuery_'+dpuuid+".datepicker._selectDay('#"+a.id+"',"+Y.getMonth()+","+Y.getFullYear()+', this);return false;"')+">"+(bb&&!G?" ":bc?'<span class="ui-state-default">'+Y.getDate()+"</span>":'<a class="ui-state-default'+(Y.getTime()==b.getTime()?" ui-state-highlight":"")+(Y.getTime()==k.getTime()?" ui-state-active":"")+(bb?" ui-priority-secondary":"")+'" href="#">'+Y.getDate()+"</a>")+"</td>",Y.setDate(Y.getDate()+1),Y=this._daylightSavingAdjust(Y)}Q+=_+"</tr>"}n++,n>11&&(n=0,o++),Q+="</tbody></table>"+(j?"</div>"+(g[0]>0&&N==g[1]-1?'<div class="ui-datepicker-row-break"></div>':""):""),M+=Q}K+=M}return K+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':""),a._keyEvent=!1,K},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i=this._get(a,"changeMonth"),j=this._get(a,"changeYear"),k=this._get(a,"sho
wMonthAfterYear"),l='<div class="ui-datepicker-title">',m="";if(f||!i)m+='<span class="ui-datepicker-month">'+g[b]+"</span>";else{var n=d&&d.getFullYear()==c,o=e&&e.getFullYear()==c;m+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+dpuuid+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" >";for(var p=0;12>p;p++)(!n||p>=d.getMonth())&&(!o||p<=e.getMonth())&&(m+='<option value="'+p+'"'+(p==b?' selected="selected"':"")+">"+h[p]+"</option>");m+="</select>"}if(k||(l+=m+(!f&&i&&j?"":" ")),!a.yearshtml)if(a.yearshtml="",f||!j)l+='<span class="ui-datepicker-year">'+c+"</span>";else{var q=this._get(a,"yearRange").split(":"),r=(new Date).getFullYear(),s=function(a){var b=a.match(/c[+-].*/)?c+parseInt(a.substring(1),10):a.match(/[+-].*/)?r+parseInt(a,10):parseInt(a,10);return isNaN(b)?r:b},t=s(q[0]),u=Math.max(t,s(q[1]||""));for(t=d?Math.max(t,d.getFullYear()):t,u=e?Math.min(u,e.getFullYear()):u,a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+dpuu
id+".datepicker._selectMonthYear('#"+a.id+"', this, 'Y');\" >";u>=t;t++)a.yearshtml+='<option value="'+t+'"'+(t==c?' selected="selected"':"")+">"+t+"</option>";a.yearshtml+="</select>",l+=a.yearshtml,a.yearshtml=null}return l+=this._get(a,"yearSuffix"),k&&(l+=(!f&&i&&j?"":" ")+m),l+="</div>",l},_adjustInstDate:function(a,b,c){var d=a.drawYear+("Y"==c?b:0),e=a.drawMonth+("M"==c?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+("D"==c?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),("M"==c||"Y"==c)&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&c>b?c:b;return e=d&&e>d?d:e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,"num
berOfMonths");return null==b?[1,1]:"number"==typeof b?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return new Date(a,b,1).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(0>b?b:e[0]*e[1]),1));return 0>b&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth())),this._isInRange(a,f)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!d||b.getTime()<=d.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");return b="string"!=typeof b?b:(new Date).getFullYear()%100+parseInt(b,10),{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:thi
s._get(a,"monthNames")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth,a.currentYear=a.selectedYear);var e=b?"object"==typeof b?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),$.fn.datepicker=function(a){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);return"string"!=typeof a||"isDisabled"!=a&&"getDate"!=a&&"widget"!=a?"option"==a&&2==arguments.length&&"string"==typeof arguments[1]?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b)):this.each(function(){"string"==typeof a?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this].concat(b)):$.datepicker._attachDatepicker(this,a)}):$.date
picker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.8.18",window["DP_jQuery_"+dpuuid]=$}(jQuery),function(a,b){var c="ui-dialog ui-widget ui-widget-content ui-corner-all ",d={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},e={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},f=a.attrFn||{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0,click:!0};a.widget("ui.dialog",{options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",collision:"fit",using:function(b){var c=a(this).css(b).offset().top;0>c&&a(this).css("top",b.top-c)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("titl
e"),"string"!=typeof this.originalTitle&&(this.originalTitle=""),this.options.title=this.options.title||this.originalTitle;{var b=this,d=b.options,e=d.title||" ",f=a.ui.dialog.getTitleId(b.element),g=(b.uiDialog=a("<div></div>")).appendTo(document.body).hide().addClass(c+d.dialogClass).css({zIndex:d.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(c){d.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}).attr({role:"dialog","aria-labelledby":f}).mousedown(function(a){b.moveToTop(!1,a)}),i=(b.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g),(b.uiDialogTitlebar=a("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g)),j=a('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){j.addClass("ui-state-hover")},function(){j.removeClass("ui-state-hover")})
.focus(function(){j.addClass("ui-state-focus")}).blur(function(){j.removeClass("ui-state-focus")}).click(function(a){return b.close(a),!1}).appendTo(i);(b.uiDialogTitlebarCloseText=a("<span></span>")).addClass("ui-icon ui-icon-closethick").text(d.closeText).appendTo(j),a("<span></span>").addClass("ui-dialog-title").attr("id",f).html(e).prependTo(i)}a.isFunction(d.beforeclose)&&!a.isFunction(d.beforeClose)&&(d.beforeClose=d.beforeclose),i.find("*").add(i).disableSelection(),d.draggable&&a.fn.draggable&&b._makeDraggable(),d.resizable&&a.fn.resizable&&b._makeResizable(),b._createButtons(d.buttons),b._isOpen=!1,a.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;return a.overlay&&a.overlay.destroy(),a.uiDialog.hide(),a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),a.uiDialog.remove(),a.originalTitle&&a.element.attr("title",a.originalTitle),a},widget:fun
ction(){return this.uiDialog},close:function(b){var d,e,c=this;return!1!==c._trigger("beforeClose",b)?(c.overlay&&c.overlay.destroy(),c.uiDialog.unbind("keypress.ui-dialog"),c._isOpen=!1,c.options.hide?c.uiDialog.hide(c.options.hide,function(){c._trigger("close",b)}):(c.uiDialog.hide(),c._trigger("close",b)),a.ui.dialog.overlay.resize(),c.options.modal&&(d=0,a(".ui-dialog").each(function(){this!==c.uiDialog[0]&&(e=a(this).css("z-index"),isNaN(e)||(d=Math.max(d,e)))}),a.ui.dialog.maxZ=d),c):void 0},isOpen:function(){return this._isOpen},moveToTop:function(b,c){var f,d=this,e=d.options;return e.modal&&!b||!e.stack&&!e.modal?d._trigger("focus",c):(e.zIndex>a.ui.dialog.maxZ&&(a.ui.dialog.maxZ=e.zIndex),d.overlay&&(a.ui.dialog.maxZ+=1,d.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ)),f={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()},a.ui.dialog.maxZ+=1,d.uiDialog.css("z-index",a.ui.dialog.maxZ),d.element.attr(f),d._trigger("focus",c),d)},open:fun
ction(){if(!this._isOpen){var b=this,c=b.options,d=b.uiDialog;return b.overlay=c.modal?new a.ui.dialog.overlay(b):null,b._size(),b._position(c.position),d.show(c.show),b.moveToTop(!0),c.modal&&d.bind("keydown.ui-dialog",function(b){if(b.keyCode===a.ui.keyCode.TAB){var c=a(":tabbable",this),d=c.filter(":first"),e=c.filter(":last");if(b.target===e[0]&&!b.shiftKey)return d.focus(1),!1;if(b.target===d[0]&&b.shiftKey)return e.focus(1),!1}}),a(b.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus(),b._isOpen=!0,b._trigger("open"),b}},_createButtons:function(b){var c=this,d=!1,e=a("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=a("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);c.uiDialog.find(".ui-dialog-buttonpane").remove(),"object"==typeof b&&null!==b&&a.each(b,function(){return!(d=!0)}),d&&(a.each(b,function(b,d){d=a.isFunction(d)?{click:d,text:b}:d;var e=a('<button type="
button"></button>').click(function(){d.click.apply(c.element[0],arguments)}).appendTo(g);a.each(d,function(a,b){"click"!==a&&(a in f?e[a](b):e.attr(a,b))}),a.fn.button&&e.button()}),e.appendTo(c.uiDialog))},_makeDraggable:function(){function f(a){return{position:a.position,offset:a.offset}}var e,b=this,c=b.options,d=a(document);b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(d,g){e="auto"===c.height?"auto":a(this).height(),a(this).height(a(this).height()).addClass("ui-dialog-dragging"),b._trigger("dragStart",d,f(g))},drag:function(a,c){b._trigger("drag",a,f(c))},stop:function(g,h){c.position=[h.position.left-d.scrollLeft(),h.position.top-d.scrollTop()],a(this).removeClass("ui-dialog-dragging").height(e),b._trigger("dragStop",g,f(h)),a.ui.dialog.overlay.resize()}})},_makeResizable:function(c){function h(a){return{originalPosition:a.originalPosition,originalSize:a.originalSize,position:a.po
sition,size:a.size}}c=c===b?this.options.resizable:c;var d=this,e=d.options,f=d.uiDialog.css("position"),g="string"==typeof c?c:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:g,start:function(b,c){a(this).addClass("ui-dialog-resizing"),d._trigger("resizeStart",b,h(c))},resize:function(a,b){d._trigger("resize",a,h(b))},stop:function(b,c){a(this).removeClass("ui-dialog-resizing"),e.height=a(this).height(),e.width=a(this).width(),d._trigger("resizeStop",b,h(c)),a.ui.dialog.overlay.resize()}}).css("position",f).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return"auto"===a.height?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(b){var e,c=[],d=[0,0];b?(("string"==typeof b||"object"==typeof b&&"0"in b)&&(c=b.split?b.split(" "):[b[0],b[1]],1===c.len
gth&&(c[1]=c[0]),a.each(["left","top"],function(a,b){+c[a]===c[a]&&(d[a]=c[a],c[a]=b)}),b={my:c.join(" "),at:c.join(" "),offset:d.join(" ")}),b=a.extend({},a.ui.dialog.prototype.options.position,b)):b=a.ui.dialog.prototype.options.position,e=this.uiDialog.is(":visible"),e||this.uiDialog.show(),this.uiDialog.css({top:0,left:0}).position(a.extend({of:window},b)),e||this.uiDialog.hide()},_setOptions:function(b){var c=this,f={},g=!1;a.each(b,function(a,b){c._setOption(a,b),a in d&&(g=!0),a in e&&(f[a]=b)}),g&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",f)},_setOption:function(b,d){var e=this,f=e.uiDialog;switch(b){case"beforeclose":b="beforeClose";break;case"buttons":e._createButtons(d);break;case"closeText":e.uiDialogTitlebarCloseText.text(""+d);break;case"dialogClass":f.removeClass(e.options.dialogClass).addClass(c+d);break;case"disabled":d?f.addClass("ui-dialog-disabled"):f.removeClass("ui-dialog-disabled");break;case"draggable":var g=f.is(":da
ta(draggable)");g&&!d&&f.draggable("destroy"),!g&&d&&e._makeDraggable();break;case"position":e._position(d);break;case"resizable":var h=f.is(":data(resizable)");h&&!d&&f.resizable("destroy"),h&&"string"==typeof d&&f.resizable("option","handles",d),!h&&d!==!1&&e._makeResizable(d);break;case"title":a(".ui-dialog-title",e.uiDialogTitlebar).html(""+(d||" "))}a.Widget.prototype._setOption.apply(e,arguments)},_size:function(){var c,d,b=this.options,e=this.uiDialog.is(":visible");if(this.element.show().css({width:"auto",minHeight:0,height:0}),b.minWidth>b.width&&(b.width=b.minWidth),c=this.uiDialog.css({height:"auto",width:b.width}).height(),d=Math.max(0,b.minHeight-c),"auto"===b.height)if(a.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();var f=this.element.css("height","auto").height();e||this.uiDialog.hide(),this.element.height(Math.max(f,d))}else this.element.height(Math.max(b.height-c,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog
.resizable("option","minHeight",this._minHeight())}}),a.extend(a.ui.dialog,{version:"1.8.18",uuid:0,maxZ:0,getTitleId:function(a){var b=a.attr("id");return b||(this.uuid+=1,b=this.uuid),"ui-dialog-title-"+b},overlay:function(b){this.$el=a.ui.dialog.overlay.create(b)}}),a.extend(a.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(b){0===this.instances.length&&(setTimeout(function(){a.ui.dialog.overlay.instances.length&&a(document).bind(a.ui.dialog.overlay.events,function(b){return a(b.target).zIndex()<a.ui.dialog.overlay.maxZ?!1:void 0})},1),a(document).bind("keydown.dialog-overlay",function(c){b.options.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}),a(window).bind("resize.dialog-overlay",a.ui.dialog.overlay.resize));var c=(this.oldInstances.pop()||a("<div></div>").addCla
ss("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});return a.fn.bgiframe&&c.bgiframe(),this.instances.push(c),c},destroy:function(b){var c=a.inArray(b,this.instances);-1!=c&&this.oldInstances.push(this.instances.splice(c,1)[0]),0===this.instances.length&&a([document,window]).unbind(".dialog-overlay"),b.remove();var d=0;a.each(this.instances,function(){d=Math.max(d,this.css("z-index"))}),this.maxZ=d},height:function(){var b,c;return a.browser.msie&&a.browser.version<7?(b=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),c=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight),c>b?a(window).height()+"px":b+"px"):a(document).height()+"px"},width:function(){var b,c;return a.browser.msie?(b=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth),c=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth),c>b?a(window).width()+"px":b+"px"):a(document).width()+"px"},resi
ze:function(){var b=a([]);a.each(a.ui.dialog.overlay.instances,function(){b=b.add(this)}),b.css({width:0,height:0}).css({width:a.ui.dialog.overlay.width(),height:a.ui.dialog.overlay.height()})}}),a.extend(a.ui.dialog.overlay.prototype,{destroy:function(){a.ui.dialog.overlay.destroy(this.$el)}})}(jQuery),function(a){a.ui=a.ui||{};var c=/left|center|right/,d=/top|center|bottom/,e="center",f={},g=a.fn.position,h=a.fn.offset;a.fn.position=function(b){if(!b||!b.of)return g.apply(this,arguments);b=a.extend({},b);var l,m,n,h=a(b.of),i=h[0],j=(b.collision||"flip").split(" "),k=b.offset?b.offset.split(" "):[0,0];return 9===i.nodeType?(l=h.width(),m=h.height(),n={top:0,left:0}):i.setTimeout?(l=h.width(),m=h.height(),n={top:h.scrollTop(),left:h.scrollLeft()}):i.preventDefault?(b.at="left top",l=m=0,n={top:b.of.pageY,left:b.of.pageX}):(l=h.outerWidth(),m=h.outerHeight(),n=h.offset()),a.each(["my","at"],function(){var a=(b[this]||"").split(" ");1===a.length&&(a=c.test(a[0])?a.concat([e]):d.test(
a[0])?[e].concat(a):[e,e]),a[0]=c.test(a[0])?a[0]:e,a[1]=d.test(a[1])?a[1]:e,b[this]=a}),1===j.length&&(j[1]=j[0]),k[0]=parseInt(k[0],10)||0,1===k.length&&(k[1]=k[0]),k[1]=parseInt(k[1],10)||0,"right"===b.at[0]?n.left+=l:b.at[0]===e&&(n.left+=l/2),"bottom"===b.at[1]?n.top+=m:b.at[1]===e&&(n.top+=m/2),n.left+=k[0],n.top+=k[1],this.each(function(){var r,c=a(this),d=c.outerWidth(),g=c.outerHeight(),h=parseInt(a.curCSS(this,"marginLeft",!0))||0,i=parseInt(a.curCSS(this,"marginTop",!0))||0,o=d+h+(parseInt(a.curCSS(this,"marginRight",!0))||0),p=g+i+(parseInt(a.curCSS(this,"marginBottom",!0))||0),q=a.extend({},n);"right"===b.my[0]?q.left-=d:b.my[0]===e&&(q.left-=d/2),"bottom"===b.my[1]?q.top-=g:b.my[1]===e&&(q.top-=g/2),f.fractions||(q.left=Math.round(q.left),q.top=Math.round(q.top)),r={left:q.left-h,top:q.top-i},a.each(["left","top"],function(c,e){a.ui.position[j[c]]&&a.ui.position[j[c]][e](q,{targetWidth:l,targetHeight:m,elemWidth:d,elemHeight:g,collisionPosition:r,collisionWidth:o,colli
sionHeight:p,offset:k,my:b.my,at:b.at})}),a.fn.bgiframe&&c.bgiframe(),c.offset(a.extend(q,{using:b.using}))})},a.ui.position={fit:{left:function(b,c){var d=a(window),e=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft();b.left=e>0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]!==e){var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g="left"===c.my[0]?-c.elemWidth:"right"===c.my[0]?c.elemWidth:0,h="left"===c.at[0]?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0}},top:function(b,c){if(c.at[1]!==e){var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g="top"===c.my[1]?-c.elemHeight:"bottom"===c.my[1]?c.elemHeight:0,h="top"===c.at[1]?c.targetHe
ight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,"position"))&&(b.style.position="relative");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,"top",!0),10)||0,g=parseInt(a.curCSS(b,"left",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};"using"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];return c&&c.ownerDocument?b?this.each(function(){a.offset.setOffset(this,b)}):h.call(this):null}),function(){var d,e,g,h,i,b=document.getElementsByTagName("body")[0],c=document.createElement("div");d=document.createElement(b?"div":"body"),g={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},b&&a.extend(g,{position:"absolute",left:"-1000px",top:"-1000px"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText="position: absolute; left: 10.7432222px; top: 10.4
32325px; height: 30px; width: 201px;",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML="",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&22>i
}()}(jQuery),function(a,b){a.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()}),this.valueDiv=a("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove(),a.Widget.prototype.destroy.apply(this,arguments)},value:function(a){return a===b?this._value():(this._setOption("value",a),this)},_setOption:function(b,c){"value"===b&&(this.options.value=c,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),a.Widget.prototype._setOptio
n.apply(this,arguments)},_value:function(){var a=this.options.value;return"number"!=typeof a&&(a=0),Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var a=this.value(),b=this._percentage();this.oldValue!==a&&(this.oldValue=a,this._trigger("change")),this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(b.toFixed(0)+"%"),this.element.attr("aria-valuenow",a)}}),a.extend(a.ui.progressbar,{version:"1.8.18"})}(jQuery),function(a){var c=5;a.widget("ui.slider",a.ui.mouse,{widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var b=this,d=this.options,e=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f="<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",g=d.values&&d.values.length||1,h=[];this._keySliding=!1,this
._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all"+(d.disabled?" ui-slider-disabled ui-disabled":"")),this.range=a([]),d.range&&(d.range===!0&&(d.values||(d.values=[this._valueMin(),this._valueMin()]),d.values.length&&2!==d.values.length&&(d.values=[d.values[0],d.values[0]])),this.range=a("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+("min"===d.range||"max"===d.range?" ui-slider-range-"+d.range:"")));for(var i=e.length;g>i;i+=1)h.push(f);this.handles=e.add(a(h.join("")).appendTo(b.element)),this.handle=this.handles.eq(0),this.handles.add(this.range).filter("a").click(function(a){a.preventDefault()}).hover(function(){d.disabled||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}).focus(function(){d.disabled?a(this).blur():(a(".ui-slider .ui-state-focus").r
emoveClass("ui-state-focus"),a(this).addClass("ui-state-focus"))}).blur(function(){a(this).removeClass("ui-state-focus")}),this.handles.each(function(b){a(this).data("index.ui-slider-handle",b)}),this.handles.keydown(function(d){var f,g,h,i,e=a(this).data("index.ui-slider-handle");if(!b.options.disabled){switch(d.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.PAGE_UP:case a.ui.keyCode.PAGE_DOWN:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(d.preventDefault(),!b._keySliding&&(b._keySliding=!0,a(this).addClass("ui-state-active"),f=b._start(d,e),f===!1))return}switch(i=b.options.step,g=h=b.options.values&&b.options.values.length?b.values(e):b.value(),d.keyCode){case a.ui.keyCode.HOME:h=b._valueMin();break;case a.ui.keyCode.END:h=b._valueMax();break;case a.ui.keyCode.PAGE_UP:h=b._trimAlignValue(g+(b._valueMax()-b._valueMin())/c);break;case a.ui.keyCode.PAGE_DOWN:h=b._trimAlignValue(g-(b._valueMax()-b._valueMin())/c
);break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g===b._valueMax())return;h=b._trimAlignValue(g+i);break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g===b._valueMin())return;h=b._trimAlignValue(g-i)}b._slide(d,e,h)}}).keyup(function(c){var d=a(this).data("index.ui-slider-handle");b._keySliding&&(b._keySliding=!1,b._stop(c,d),b._change(c,d),a(this).removeClass("ui-state-active"))}),this._refreshValue(),this._animateOff=!1},destroy:function(){return this.handles.remove(),this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"),this._mouseDestroy(),this},_mouseCapture:function(b){var d,e,f,g,h,i,j,k,l,c=this.options;return c.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),d={x:b.pageX,y:b.pageY},e=this._normValueFromMouse(d),f=this._valueMax()-th
is._valueMin()+1,h=this,this.handles.each(function(b){var c=Math.abs(e-h.values(b));f>c&&(f=c,g=a(this),i=b)}),c.range===!0&&this.values(1)===c.min&&(i+=1,g=a(this.handles[i])),j=this._start(b,i),j===!1?!1:(this._mouseSliding=!0,h._handleIndex=i,g.addClass("ui-state-active").focus(),k=g.offset(),l=!a(b.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:b.pageX-k.left-g.width()/2,top:b.pageY-k.top-g.height()/2-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(b,i,e),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);return this._slide(a,this._handleIndex,c),!1},_mouseStop:function(a){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._han
dleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(a){var b,c,d,e,f;return"horizontal"===this.orientation?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),0>d&&(d=0),"vertical"===this.orientation&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e,this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};return this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("start",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),2===this.options.values.length&&this.options.range===!0&&(0===b&&c>d||1===b&&d>c)&
&(c=d),c!==this.values(b)&&(e=this.values(),e[b]=c,f=this._trigger("slide",a,{handle:this.handles[b],value:c,values:e}),d=this.values(b?0:1),f!==!1&&this.values(b,c,!0))):c!==this.value()&&(f=this._trigger("slide",a,{handle:this.handles[b],value:c}),f!==!1&&this.value(c))},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("change",a,c)}},value:function(a){return arguments.length?(this.options.value=this._trimAlignValue(a),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(b,c){var d,e,f;if(arguments.length>1)this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),this._change(nu
ll,b);else{if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();for(d=this.options.values,e=arguments[0],f=0;f<d.length;f+=1)d[f]=this._trimAlignValue(e[f]),this._change(null,f);this._refreshValue()}},_setOption:function(b,c){var d,e=0;switch(a.isArray(this.options.values)&&(e=this.options.values.length),a.Widget.prototype._setOption.apply(this,arguments),b){case"disabled":c?(this.handles.filter(".ui-state-focus").blur(),this.handles.removeClass("ui-state-hover"),this.handles.propAttr("disabled",!0),this.element.addClass("ui-disabled")):(this.handles.propAttr("disabled",!1),this.element.removeClass("ui-disabled"));break;case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue();break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateO
ff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),d=0;e>d;d+=1)this._change(null,d);this._animateOff=!1}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c,d;if(arguments.length)return b=this.options.values[a],b=this._trimAlignValue(b);for(c=this.options.values.slice(),d=0;d<c.length;d+=1)c[d]=this._trimAlignValue(c[d]);return c},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;return 2*Math.abs(c)>=b&&(d+=c>0?b:-b),parseFloat(d.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var f,h,i,j,k,b=this.options.range,c=this.options,d=this,e=this._animateOff?!1:c.animate,g={};this.options.values&&this.options.values.length?this.handles.each(function(b){f=(d.values(b)-d._valueMin())/(d._val
ueMax()-d._valueMin())*100,g["horizontal"===d.orientation?"left":"bottom"]=f+"%",a(this).stop(1,1)[e?"animate":"css"](g,c.animate),d.options.range===!0&&("horizontal"===d.orientation?(0===b&&d.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},c.animate),1===b&&d.range[e?"animate":"css"]({width:f-h+"%"},{queue:!1,duration:c.animate})):(0===b&&d.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},c.animate),1===b&&d.range[e?"animate":"css"]({height:f-h+"%"},{queue:!1,duration:c.animate}))),h=f}):(i=this.value(),j=this._valueMin(),k=this._valueMax(),f=k!==j?(i-j)/(k-j)*100:0,g["horizontal"===d.orientation?"left":"bottom"]=f+"%",this.handle.stop(1,1)[e?"animate":"css"](g,c.animate),"min"===b&&"horizontal"===this.orientation&&this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},c.animate),"max"===b&&"horizontal"===this.orientation&&this.range[e?"animate":"css"]({width:100-f+"%"},{queue:!1,duration:c.animate}),"min"===b&&"vertical"===this.orientation&&this.range.stop(1,1)[e?"animate":"css"](
{height:f+"%"},c.animate),"max"===b&&"vertical"===this.orientation&&this.range[e?"animate":"css"]({height:100-f+"%"},{queue:!1,duration:c.animate}))}}),a.extend(a.ui.slider,{version:"1.8.18"})}(jQuery),function(a,b){function f(){return++d}function e(){return++c}var c=0,d=0;a.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:!1,cookie:null,collapsible:!1,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading…</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(!0)},_setOption:function(a,b){if("selected"==a){if(this.options.collapsible&&b==this.options.selected)return;this.select(b)}else this.options[a]=b,this._tabify()},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+e()},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")}
,_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+f());return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(a,b){return{tab:a,panel:b,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function m(b,c){b.css("display",""),!a.support.opacity&&c.opacity&&b[0].style.removeAttribute("filter")}var d=this,e=this.options,f=/^#.+/;this.list=this.element.find("ol,ul").eq(0),this.lis=a(" > li:has(a[href])",this.list),this.anchors=this.lis.map(function(){return a("a",this)[0]}),this.panels=a([]),this.anchors.each(function(b,c){var i,g=a(c).attr("href"),h=g.split("#")[0];if(h&&(h===location.toString().split("#")[0]||(i=a("base")[0])&&h===i.href)&&(g=c.hash,c.href=g),f.test(g))d.panels=d.panels.add(d.element.find(d._sanitizeSel
ector(g)));else if(g&&"#"!==g){a.data(c,"href.tabs",g),a.data(c,"load.tabs",g.replace(/#.*$/,""));var j=d._tabId(c);c.href="#"+j;var k=d.element.find("#"+j);k.length||(k=a(e.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(d.panels[b-1]||d.list),k.data("destroy.tabs",!0)),d.panels=d.panels.add(k)}else e.disabled.push(b)}),c?(this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"),this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.lis.addClass("ui-state-default ui-corner-top"),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"),e.selected===b?(location.hash&&this.anchors.each(function(a,b){return b.hash==location.hash?(e.selected=a,!1):void 0}),"number"!=typeof e.selected&&e.cookie&&(e.selected=parseInt(d._cookie(),10)),"number"!=typeof e.selected&&this.lis.filter(".ui-tabs-selected").length&&(e.selected=this.lis.index(this.lis.filter(".ui-
tabs-selected"))),e.selected=e.selected||(this.lis.length?0:-1)):null===e.selected&&(e.selected=-1),e.selected=e.selected>=0&&this.anchors[e.selected]||e.selected<0?e.selected:0,e.disabled=a.unique(e.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(a){return d.lis.index(a)}))).sort(),-1!=a.inArray(e.selected,e.disabled)&&e.disabled.splice(a.inArray(e.selected,e.disabled),1),this.panels.addClass("ui-tabs-hide"),this.lis.removeClass("ui-tabs-selected ui-state-active"),e.selected>=0&&this.anchors.length&&(d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash)).removeClass("ui-tabs-hide"),this.lis.eq(e.selected).addClass("ui-tabs-selected ui-state-active"),d.element.queue("tabs",function(){d._trigger("show",null,d._ui(d.anchors[e.selected],d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash))[0]))}),this.load(e.selected)),a(window).bind("unload",function(){d.lis.add(d.anchors).unbind(".tabs"),d.lis=d.anchors=d.panels=null})):e.selected=this.lis.inde
x(this.lis.filter(".ui-tabs-selected")),this.element[e.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible"),e.cookie&&this._cookie(e.selected,e.cookie);for(var h,g=0;h=this.lis[g];g++)a(h)[-1==a.inArray(g,e.disabled)||a(h).hasClass("ui-tabs-selected")?"removeClass":"addClass"]("ui-state-disabled");if(e.cache===!1&&this.anchors.removeData("cache.tabs"),this.lis.add(this.anchors).unbind(".tabs"),"mouseover"!==e.event){var i=function(a,b){b.is(":not(.ui-state-disabled)")&&b.addClass("ui-state-"+a)},j=function(a,b){b.removeClass("ui-state-"+a)};this.lis.bind("mouseover.tabs",function(){i("hover",a(this))}),this.lis.bind("mouseout.tabs",function(){j("hover",a(this))}),this.anchors.bind("focus.tabs",function(){i("focus",a(this).closest("li"))}),this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var k,l;e.fx&&(a.isArray(e.fx)?(k=e.fx[0],l=e.fx[1]):k=l=e.fx);var n=l?function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.hide().remove
Class("ui-tabs-hide").animate(l,l.duration||"normal",function(){m(c,l),d._trigger("show",null,d._ui(b,c[0]))})}:function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.removeClass("ui-tabs-hide"),d._trigger("show",null,d._ui(b,c[0]))},o=k?function(a,b){b.animate(k,k.duration||"normal",function(){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),m(b,k),d.element.dequeue("tabs")})}:function(a,b){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),d.element.dequeue("tabs")};this.anchors.bind(e.event+".tabs",function(){var b=this,c=a(b).closest("li"),f=d.panels.filter(":not(.ui-tabs-hide)"),g=d.element.find(d._sanitizeSelector(b.hash));if(c.hasClass("ui-tabs-selected")&&!e.collapsible||c.hasClass("ui-state-disabled")||c.hasClass("ui-state-processing")||d.panels.filter(":animated").length||d._trigger("select",null,d._ui(this,g[0]))===!1)return this.blur(),!1;if(e.selected=d.anchors.index(this),d.abort(),e
.collapsible){if(c.hasClass("ui-tabs-selected"))return e.selected=-1,e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){o(b,f)}).dequeue("tabs"),this.blur(),!1;if(!f.length)return e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),this.blur(),!1}if(e.cookie&&d._cookie(e.selected,e.cookie),!g.length)throw"jQuery UI Tabs: Mismatching fragment identifier.";f.length&&d.element.queue("tabs",function(){o(b,f)}),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),a.browser.msie&&this.blur()}),this.anchors.bind("click.tabs",function(){return!1})},_getIndex:function(a){return"string"==typeof a&&(a=this.anchors.index(this.anchors.filter("[href$="+a+"]"))),a},destroy:function(){var b=this.options;return this.abort(),this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"),this.list.removeClass("ui-tabs-nav ui-hel
per-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.anchors.each(function(){var b=a.data(this,"href.tabs");b&&(this.href=b);var c=a(this).unbind(".tabs");a.each(["href","load","cache"],function(a,b){c.removeData(b+".tabs")})}),this.lis.unbind(".tabs").add(this.panels).each(function(){a.data(this,"destroy.tabs")?a(this).remove():a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}),b.cookie&&this._cookie(null,b.cookie),this},add:function(c,d,e){e===b&&(e=this.anchors.length);var f=this,g=this.options,h=a(g.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,d)),i=c.indexOf("#")?this._tabId(a("a",h)[0]):c.replace("#","");h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",!0);var j=f.element.find("#"+i);return j.length||(j=a(g.panelTemplate).attr("id",i).data("destroy.tabs",!0)
),j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"),e>=this.lis.length?(h.appendTo(this.list),j.appendTo(this.list[0].parentNode)):(h.insertBefore(this.lis[e]),j.insertBefore(this.panels[e])),g.disabled=a.map(g.disabled,function(a){return a>=e?++a:a}),this._tabify(),1==this.anchors.length&&(g.selected=0,h.addClass("ui-tabs-selected ui-state-active"),j.removeClass("ui-tabs-hide"),this.element.queue("tabs",function(){f._trigger("show",null,f._ui(f.anchors[0],f.panels[0]))}),this.load(0)),this._trigger("add",null,this._ui(this.anchors[e],this.panels[e])),this},remove:function(b){b=this._getIndex(b);var c=this.options,d=this.lis.eq(b).remove(),e=this.panels.eq(b).remove();return d.hasClass("ui-tabs-selected")&&this.anchors.length>1&&this.select(b+(b+1<this.anchors.length?1:-1)),c.disabled=a.map(a.grep(c.disabled,function(a){return a!=b}),function(a){return a>=b?--a:a}),this._tabify(),this._trigger("remove",null,this._ui(d.find("a")[0],e[0])),this},enable:functi
on(b){b=this._getIndex(b);var c=this.options;return-1!=a.inArray(b,c.disabled)?(this.lis.eq(b).removeClass("ui-state-disabled"),c.disabled=a.grep(c.disabled,function(a){return a!=b}),this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b])),this):void 0},disable:function(a){a=this._getIndex(a);var c=this.options;return a!=c.selected&&(this.lis.eq(a).addClass("ui-state-disabled"),c.disabled.push(a),c.disabled.sort(),this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a]))),this},select:function(a){if(a=this._getIndex(a),-1==a){if(!this.options.collapsible||-1==this.options.selected)return this;a=this.options.selected}return this.anchors.eq(a).trigger(this.options.event+".tabs"),this},load:function(b){b=this._getIndex(b);var c=this,d=this.options,e=this.anchors.eq(b)[0],f=a.data(e,"load.tabs");if(this.abort(),f&&(0===this.element.queue("tabs").length||!a.data(e,"cache.tabs"))){if(this.lis.eq(b).addClass("ui-state-processing"),d.spinner){var g=a("span",e);g.da
ta("label.tabs",g.html()).html(d.spinner)}return this.xhr=a.ajax(a.extend({},d.ajaxOptions,{url:f,success:function(f,g){c.element.find(c._sanitizeSelector(e.hash)).html(f),c._cleanup(),d.cache&&a.data(e,"cache.tabs",!0),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.success(f,g)}catch(h){}},error:function(a,f){c._cleanup(),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.error(a,f,b,e)}catch(g){}}})),c.element.dequeue("tabs"),this}this.element.dequeue("tabs")},abort:function(){return this.element.queue([]),this.panels.stop(!1,!0),this.element.queue("tabs",this.element.queue("tabs").splice(-2,2)),this.xhr&&(this.xhr.abort(),delete this.xhr),this._cleanup(),this},url:function(a,b){return this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",b),this},length:function(){return this.anchors.length}}),a.extend(a.ui.tabs,{version:"1.8.18"}),a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(a,b){var c=this,d=this.options,e=
c._rotate||(c._rotate=function(b){clearTimeout(c.rotation),c.rotation=setTimeout(function(){var a=d.selected;c.select(++a<c.anchors.length?a:0)},a),b&&b.stopPropagation()}),f=c._unrotate||(c._unrotate=b?function(){t=d.selected,e()}:function(a){a.clientX&&c.rotate(null)});return a?(this.element.bind("tabsshow",e),this.anchors.bind(d.event+".tabs",f),e()):(clearTimeout(c.rotation),this.element.unbind("tabsshow",e),this.anchors.unbind(d.event+".tabs",f),delete this._rotate,delete this._unrotate),this}})}(jQuery),Date.CultureInfo={name:"en-US",englishName:"English (United States)",nativeName:"English (United States)",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],abbreviatedDayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],shortestDayNames:["Su","Mo","Tu","We","Th","Fr","Sa"],firstLetterDayNames:["S","M","T","W","T","F","S"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],abb
reviatedMonthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],amDesignator:"AM",pmDesignator:"PM",firstDayOfWeek:0,twoDigitYearMax:2029,dateElementOrder:"mdy",formatPatterns:{shortDate:"M/d/yyyy",longDate:"dddd, MMMM dd, yyyy",shortTime:"h:mm tt",longTime:"h:mm:ss tt",fullDateTime:"dddd, MMMM dd, yyyy h:mm:ss tt",sortableDateTime:"yyyy-MM-ddTHH:mm:ss",universalSortableDateTime:"yyyy-MM-dd HH:mm:ssZ",rfc1123:"ddd, dd MMM yyyy HH:mm:ss GMT",monthDay:"MMMM dd",yearMonth:"MMMM, yyyy"},regexPatterns:{jan:/^jan(uary)?/i,feb:/^feb(ruary)?/i,mar:/^mar(ch)?/i,apr:/^apr(il)?/i,may:/^may/i,jun:/^jun(e)?/i,jul:/^jul(y)?/i,aug:/^aug(ust)?/i,sep:/^sep(t(ember)?)?/i,oct:/^oct(ober)?/i,nov:/^nov(ember)?/i,dec:/^dec(ember)?/i,sun:/^su(n(day)?)?/i,mon:/^mo(n(day)?)?/i,tue:/^tu(e(s(day)?)?)?/i,wed:/^we(d(nesday)?)?/i,thu:/^th(u(r(s(day)?)?)?)?/i,fri:/^fr(i(day)?)?/i,sat:/^sa(t(urday)?)?/i,future:/^next/i,past:/^last|past|prev(ious)?/i,add:/^(\+|aft(er)?|from|hence)/i,sub
tract:/^(\-|bef(ore)?|ago)/i,yesterday:/^yes(terday)?/i,today:/^t(od(ay)?)?/i,tomorrow:/^tom(orrow)?/i,now:/^n(ow)?/i,millisecond:/^ms|milli(second)?s?/i,second:/^sec(ond)?s?/i,minute:/^mn|min(ute)?s?/i,hour:/^h(our)?s?/i,week:/^w(eek)?s?/i,month:/^m(onth)?s?/i,day:/^d(ay)?s?/i,year:/^y(ear)?s?/i,shortMeridian:/^(a|p)/i,longMeridian:/^(a\.?m?\.?|p\.?m?\.?)/i,timezone:/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt|utc)/i,ordinalSuffix:/^\s*(st|nd|rd|th)/i,timeContext:/^\s*(\:|a(?!u|p)|p)/i},timezones:[{name:"UTC",offset:"-000"},{name:"GMT",offset:"-000"},{name:"EST",offset:"-0500"},{name:"EDT",offset:"-0400"},{name:"CST",offset:"-0600"},{name:"CDT",offset:"-0500"},{name:"MST",offset:"-0700"},{name:"MDT",offset:"-0600"},{name:"PST",offset:"-0800"},{name:"PDT",offset:"-0700"}]},function(){var a=Date,b=a.prototype,c=a.Cultur
<TRUNCATED>
[12/34] building changes updating bower
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/efe34294/portal/test/coverage/instrument/js/usergrid.min.js
----------------------------------------------------------------------
diff --git a/portal/test/coverage/instrument/js/usergrid.min.js b/portal/test/coverage/instrument/js/usergrid.min.js
index e1f62a2..e4030c5 100644
--- a/portal/test/coverage/instrument/js/usergrid.min.js
+++ b/portal/test/coverage/instrument/js/usergrid.min.js
@@ -1,3 +1,3 @@
-/*! usergrid@2.0.1 2014-03-27 */
+/*! usergrid@2.0.1 2014-03-28 */
angular.module("appservices").run(["$templateCache",function($templateCache){"use strict";$templateCache.put("activities/activities.html",'<section class="row-fluid">\n <div class="span12">\n <div class="page-filters">\n <h1 class="title" class="pull-left"><i class="pictogram title">📱</i> Activities</h1>\n </div>\n </div>\n\n</section>\n<section class="row-fluid">\n <div class="span12 tab-content">\n <table class="table table-striped">\n <tbody>\n <tr class="table-header">\n <td>Date</td>\n <td></td>\n <td>User</td>\n <td>Content</td>\n <td>Verb</td>\n <td>UUID</td>\n </tr>\n <tr class="zebraRows" ng-repeat="activity in activities">\n <td>{{formatDate(activity.created)}}</td>\n <td class="gravatar20"> <img ng-src="{{activity.actor.picture}}"/>\n </td>\n <td>{{activity.actor.displayName}}</td>\n <td>{{activity.content}}</td>\n <td>{{activity.verb}}</td>\n
<td>{{activity.uuid}}</td>\n </tr>\n </tbody>\n </table>\n </div>\n</section>'),$templateCache.put("app-overview/app-overview.html",'<div class="app-overview-content" >\n <section class="row-fluid">\n\n <page-title title=" Summary" icon="📱"></page-title>\n <section class="row-fluid">\n <h2 class="title" id="app-overview-title">{{currentApp}}</h2>\n </section>\n <section class="row-fluid">\n\n <div class="span6">\n <chart id="appOverview"\n chartdata="appOverview.chart"\n type="column"></chart>\n </div>\n\n <div class="span6">\n <table class="table table-striped">\n <tr class="table-header">\n <td>Path</td>\n <td>Title</td>\n </tr>\n <tr class="zebraRows" ng-repeat="(k,v) in collections">\n <td>{{v.title}}</td>\n <td>{{v.count}}</td>\n </tr>\n </table>\n </div>\n\n </section>\n</div>'),$templateCache.put("app-overview/doc-includ
es/android.html",'<h2>1. Integrate the SDK into your project</h2>\n<p>You can integrate Apigee features into your app by including the SDK in your project. You can do one of the following:</p>\n\n<ul class="nav nav-tabs" id="myTab">\n <li class="active"><a data-toggle="tab" href="#existing_project">Existing project</a></li>\n <li><a data-toggle="tab" href="#new_project">New project</a></li>\n</ul>\n\n<div class="tab-content">\n <div class="tab-pane active" id="existing_project">\n <a class="jumplink" name="add_the_sdk_to_an_existing_project"></a>\n <p>If you\'ve already got an Android project, you can integrate the Apigee SDK into your project as you normally would:</p>\n <div id="collapse">\n <a href="#jar_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a> \n </div>\n <div id="jar_collapse" class="collapse">\n <p>Add <code>apigee-android-<version>.jar</code> to your class path by doin
g the following:</p>\n \n <h3>Android 4.0 (or later) projects</h3>\n <p>Copy the jar file into the <code>/libs</code> folder in your project.</p>\n \n <h3>Android 3.0 (or earlier) projects</h3>\n <ol>\n <li>In the Eclipse <strong>Package Explorer</strong>, select your application\'s project folder.</li>\n <li>Click the <strong>File > Properties</strong> menu.</li>\n <li>In the <strong>Java Build Path</strong> section, click the <strong>Libraries</strong> tab, click <strong>Add External JARs</strong>.</li>\n <li>Browse to <code>apigee-android-<version>.jar</code>, then click <strong>Open</strong>.</li>\n <li>Order the <code>apigee-android-<version>.jar</code> at the top of the class path:\n <ol>\n <li>In the Eclipse <strong>Package Explorer</strong>, select your application\'s project folder.</li>\n <li>Click the <strong>File > Properties</strong> menu.</li>\n <li>In the properties dialog, in the&n
bsp;<strong>Java Build Path</strong> section, click the <strong>Order and Export</strong> tab.</li>\n <li>\n <p><strong>IMPORTANT:</strong> Select the checkbox for <code>apigee-android-<version>.jar</code>, then click the <strong>Top</strong> button.</p>\n </li>\n </ol>\n </li>\n </ol>\n <div class="warning">\n <h3>Applications using Ant</h3>\n <p>If you are using Ant to build your application, you must also copy <code>apigee-android-<version>.jar</code> to the <code>/libs</code> folder in your application.</p>\n </div>\n </div>\n </div>\n <div class="tab-pane" id="new_project">\n <a class="jumplink" name="create_a_new_project_based_on_the_SDK"></a>\n <p>If you don\'t have a project yet, you can begin by using the project template included with the SDK. The template includes support for SDK features.</p>\n <ul>\n <li>Locate the project template in the expanded SDK. It should be at the following location:\n
<pre><sdk_root>/new-project-template</pre>\n </li>\n </ul>\n </div>\n</div>\n<h2>2. Update permissions in AndroidManifest.xml</h2>\n<p>Add the following Internet permissions to your application\'s <code>AndroidManifest.xml</code> file if they have not already been added. Note that with the exception of INTERNET, enabling all other permissions are optional.</p>\n<pre>\n<uses-permission android:name="android.permission.INTERNET" />\n<uses-permission android:name="android.permission.READ_PHONE_STATE" />\n<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />\n<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />\n<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />\n</pre>\n<h2>3. Initialize the SDK</h2>\n<p>To initialize the App Services SDK, you must instantiate the <code>ApigeeClient</code> class. There are multiple ways to handle this step, but we recommend that you do the fo
llowing:</p>\n<ol>\n <li>Subclass the <code>Application</code> class, and add an instance variable for the <code>ApigeeClient</code> to it, along with getter and setter methods.\n <pre>\npublic class YourApplication extends Application\n{\n \n private ApigeeClient apigeeClient;\n \n public YourApplication()\n {\n this.apigeeClient = null;\n }\n \n public ApigeeClient getApigeeClient()\n {\n return this.apigeeClient;\n }\n \n public void setApigeeClient(ApigeeClient apigeeClient)\n {\n this.apigeeClient = apigeeClient;\n }\n} \n </pre>\n </li>\n <li>Declare the <code>Application</code> subclass in your <code>AndroidManifest.xml</code>. For example:\n <pre>\n<application>\n android:allowBackup="true"\n android:icon="@drawable/ic_launcher"\n android:label="@string/app_name"\n android:name=".YourApplication"\n …\n</app
lication> \n </pre>\n </li>\n <li>Instantiate the <code>ApigeeClient</code> class in the <code>onCreate</code> method of your first <code>Activity</code> class:\n <pre>\nimport com.apigee.sdk.ApigeeClient;\n\n@Override\nprotected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState); \n \n String ORGNAME = "{{currentOrg}}";\n String APPNAME = "{{currentApp}}";\n \n ApigeeClient apigeeClient = new ApigeeClient(ORGNAME,APPNAME,this.getBaseContext());\n\n // hold onto the ApigeeClient instance in our application object.\n yourApp = (YourApplication) getApplication;\n yourApp.setApigeeClient(apigeeClient); \n}\n </pre>\n <p>This will make the instance of <code>ApigeeClient</code> available to your <code>Application</code> class.</p>\n </li>\n</ol>\n<h2>4. Import additional SDK classes</h2>\n<p>The following classes will enable you to call common SDK methods:</p>\n<pre>\nimport com.apigee.sdk.data.client.DataClient; //App Services data methods\nim
port com.apigee.sdk.apm.android.MonitoringClient; //App Monitoring methods\nimport com.apigee.sdk.data.client.callbacks.ApiResponseCallback; //API response handling\nimport com.apigee.sdk.data.client.response.ApiResponse; //API response object\n</pre>\n \n<h2>5. Verify SDK installation</h2>\n\n<p>Once initialized, App Services will also automatically instantiate the <code>MonitoringClient</code> class and begin logging usage, crash and error metrics for your app.</p>\n<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n<p>To verify that the SDK has been properly initialized, run your app, then go to \'Monitoring\' > \'App Usage\' in the <a href="https://www.apigee.com/usergrid">App Services admin portal</a> to verify that data is being sent.</p>\n<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n\n<h2>Installation complete! Try these next steps</h2>\n<ul>\n <li>\n <h3><strong>Call addit
ional SDK methods in your code</strong></h3>\n <p>The <code>DataClient</code> and <code>MonitoringClient</code> classes are also automatically instantiated for you, and accessible with the following accessors:</p>\n <ul>\n <li>\n <pre>DataClient dataClient = apigeeClient.getDataClient();</pre>\n <p>Use this object to access the data methods of the App Services SDK, including those for push notifications, data store, and geolocation.</p>\n </li>\n <li>\n <pre>MonitoringClient monitoringClient = apigeeClient.getMonitoringClient();</pre>\n <p>Use this object to access the app configuration and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</p>\n </li>\n </ul>\n </li> \n <li> \n <h3><strong>Add App Services features to your app</strong></h3>\n <p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these links
to get started with a few of our most popular features:</p>\n <ul>\n <li><strong><a href="http://apigee.com/docs/node/8410">Push notifications</a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per month for free!</li>\n <li><strong>App Monitoring</strong>: When you initialize the App Services SDK, a suite of valuable, <a href="http://apigee.com/docs/node/13190">customizable</a> application monitoring features are automatically enabled that deliver the data you need to fine tune performance, analyze issues, and improve user experience.\n <ul>\n <li><strong><a href="http://apigee.com/docs/node/13176">App Usage Monitoring</a></strong>: Visit the <a href="https://apigee.com/usergrid">App Services admin portal</a> to view usage data for your app, including data on device models, platforms and OS versions running your app.</li> \n <li><strong><a
href="http://apigee.com/docs/node/12861">API Performance Monitoring</a></strong>: Network performance is key to a solid user experience. In the <a href="https://apigee.com/usergrid">App Services admin portal</a> you can view key metrics, including response time, number of requests and raw API request logs.</li> \n <li><strong><a href="http://apigee.com/docs/node/13177">Error & Crash Monitoring</a></strong>: Get alerted to any errors or crashes, then view them in the <a href="https://apigee.com/usergrid">App Services admin portal</a>, where you can also analyze raw error and crash logs.</li>\n </ul> \n </li>\n <li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Target users or return result sets based on user location to keep your app highly-relevant.</li>\n <li><strong><a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about deali
ng with a database ever again.</li>\n <li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement user registration, as well as OAuth 2.0-compliant login and authentication.</li>\n </ul>\n </li>\n <li> \n <h3><strong>Check out the sample apps</strong></h3>\n <p>The SDK includes samples that illustrate Apigee features. You\'ll find the samples in the following location in your SDK download:</p>\n <pre>\napigee-android-sdk-<version>\n ...\n /samples\n </pre>\n <div id="collapse">\n <a href="#samples_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n </div>\n <div id="samples_collapse" class="collapse">\n <p>The samples include the following:</p>\n <table class="table">\n <thead>\n <tr>\n <th scope="col">Sample</th>\n <th scope="col">Description</th>\n </tr>\n </thead>\n <tbody>\
n <tr>\n <td>books</td>\n <td>An app for storing a list of books that shows Apigee database operations such as reading, creating, and deleting.</td>\n </tr>\n <tr>\n <td>messagee</td>\n <td>An app for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n </tr>\n <tr>\n <td>push</td>\n <td>An app that uses the push feature to send notifications to the devices of users who have subscribed for them.</td>\n </tr>\n </tbody>\n </table>\n </div>\n </li>\n</ul>\n'),$templateCache.put("app-overview/doc-includes/ios.html",'<h2>1. Integrate ApigeeiOSSDK.framework</h2>\n<a class="jumplink" name="add_the_sdk_to_an_existing_project"></a>\n<ul class="nav nav-tabs" id="myTab">\n <li class="active"><a data-toggle="tab" href="#existing_project">Existing project</a></li>\n <li><a data-toggle="tab" href="#new_project">New project</a></li>\n</ul>\n<div class="tab-content">\n <div class="tab-pane activ
e" id="existing_project">\n <p>If you\'ve already got an Xcode iOS project, add it into your project as you normally would.</p>\n <div id="collapse"><a class="btn" data-toggle="collapse" href="#framework_collapse">Details</a></div>\n <div class="collapse" id="framework_collapse">\n <ol>\n <li>\n <p>Locate the SDK framework file so you can add it to your project. For example, you\'ll find the file at the following path:</p>\n <pre>\n<sdk_root>/bin/ApigeeiOSSDK.framework</pre>\n </li>\n <li>In the <strong>Project Navigator</strong>, click on your project file, and then the <strong>Build Phases</strong> tab. Expand <strong>Link Binary With Libraries</strong>.</li>\n <li>Link the Apigee iOS SDK into your project.\n <ul>\n <li>Drag ApigeeiOSSDK.framework into the Frameworks group created by Xcode.</li>\n </ul>\n <p>OR</p>\n <ol>\n <li>At the bottom of the <strong>Link Binary With Libraries</strong> group, click the <strong>+</
strong> button. Then click <strong>Add Other</strong>.</li>\n <li>Navigate to the directory that contains ApigeeiOSSDK.framework, and choose the ApigeeiOSSDK.framework folder.</li>\n </ol>\n </li>\n </ol>\n </div>\n </div>\n <div class="tab-pane" id="new_project"><a class="jumplink" name="create_a_new_project_based_on_the_SDK"></a>\n <p>If you\'re starting with a clean slate (you don\'t have a project yet), you can begin by using the project template included with the SDK. The template includes support for SDK features.</p>\n <ol>\n <li>\n <p>Locate the project template in the expanded SDK. It should be at the following location:</p>\n <pre>\n<sdk_root>/new-project-template</pre>\n </li>\n <li>In the project template directory, open the project file: Apigee App Services iOS Template.xcodeproj.</li>\n <li>Get acquainted with the template by looking at its readme file.</li>\n </ol>\n </div>\n</div>\n<h2>2. Add required iOS framework
s</h2>\n<p>Ensure that the following iOS frameworks are part of your project. To add them, under the <strong>Link Binary With Libraries</strong> group, click the <strong>+</strong> button, type the name of the framework you want to add, select the framework found by Xcode, then click <strong>Add</strong>.</p>\n<ul>\n <li>QuartzCore.framework</li>\n <li>CoreLocation.framework</li>\n <li>CoreTelephony.framework </li>\n <li>Security.framework</li>\n <li>SystemConfiguration.framework</li>\n <li>UIKit.framework</li>\n</ul>\n<h2>3. Update \'Other Linker Flags\'</h2>\n<p>In the <strong>Build Settings</strong> panel, add the following under <strong>Other Linker Flags</strong>:</p>\n<pre>\n-ObjC -all_load</pre>\n<p>Confirm that flags are set for both <strong>DEBUG</strong> and <strong>RELEASE</strong>.</p>\n<h2>4. Initialize the SDK</h2>\n<p>The <em>ApigeeClient</em> class initializes the App Services SDK. To do this you will need your organization name and application name, which are a
vailable in the <em>Getting Started</em> tab of the <a href="https://www.apigee.com/usergrid/">App Service admin portal</a>, under <strong>Mobile SDK Keys</strong>.</p>\n<ol>\n <li>Import the SDK\n <p>Add the following to your source code to import the SDK:</p>\n <pre>\n#import <ApigeeiOSSDK/Apigee.h></pre>\n </li>\n <li>\n <p>Declare the following properties in <code>AppDelegate.h</code>:</p>\n <pre>\n@property (strong, nonatomic) ApigeeClient *apigeeClient; \n@property (strong, nonatomic) ApigeeMonitoringClient *monitoringClient;\n@property (strong, nonatomic) ApigeeDataClient *dataClient; \n </pre>\n </li>\n <li>\n <p>Instantiate the <code>ApigeeClient</code> class inside the <code>didFinishLaunching</code> method of <code>AppDelegate.m</code>:</p>\n <pre>\n//Replace \'AppDelegate\' with the name of your app delegate class to instantiate it\nAppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];\n\n//Sepcify your App Services organiz
ation and application names\nNSString *orgName = @"{{currentOrg}}";\nNSString *appName = @"{{currentApp}}";\n\n//Instantiate ApigeeClient to initialize the SDK\nappDelegate.apigeeClient = [[ApigeeClient alloc]\n initWithOrganizationId:orgName\n applicationId:appName];\n \n//Retrieve instances of ApigeeClient.monitoringClient and ApigeeClient.dataClient\nself.monitoringClient = [appDelegate.apigeeClient monitoringClient]; \nself.dataClient = [appDelegate.apigeeClient dataClient]; \n </pre>\n </li>\n</ol>\n\n<h2>5. Verify SDK installation</h2>\n\n<p>Once initialized, App Services will also automatically instantiate the <code>ApigeeMonitoringClient</code> class and begin logging usage, crash and error metrics for your app.</p>\n\n<p>To verify that the SDK has been properly initialized, run your app, then go to <strong>\'Monitoring\' > \'App Usage\'</strong> in the <a href="https://www.apigee.com/usergrid"
>App Services admin portal</a> to verify that data is being sent.</p>\n<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n\n<h2>Installation complete! Try these next steps</h2>\n<ul> \n <li>\n <h3><strong>Call additional SDK methods in your code</strong></h3>\n <p>Create an instance of the AppDelegate class, then use <code>appDelegate.dataClient</code> or <code>appDelegate.monitoringClient</code> to call SDK methods:</p>\n <div id="collapse"><a class="btn" data-toggle="collapse" href="#client_collapse">Details</a></div>\n <div class="collapse" id="client_collapse">\n <ul>\n <li><code>appDelegate.dataClient</code>: Used to access the data methods of the App Services SDK, including those for push notifications, data store, and geolocation.</li>\n <li><code>appDelegate.monitoringClient</code>: Used to access the app configuration
and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</li>\n </ul>\n <h3>Example</h3>\n <p>For example, you could create a new entity with the following:</p>\n <pre>\nAppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];\nApigeeClientResponse *response = [appDelegate.dataClient createEntity:entity];\n </pre>\n </div>\n\n </li>\n <li>\n <h3><strong>Add App Services features to your app</strong></h3>\n <p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these links to get started with a few of our most popular features:</p>\n <ul>\n <li><strong><a href="http://apigee.com/docs/node/8410">Push notifications</a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per
month for free!</li>\n <li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Target users or return result sets based on user location to keep your app highly-relevant.</li>\n <li><strong><a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about dealing with a database ever again.</li>\n <li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement user registration, as well as OAuth 2.0-compliant login and authentication.</li>\n </ul>\n </li>\n <li>\n <h3><strong>Check out the sample apps</strong></h3>\n <p>The SDK includes samples that illustrate Apigee features. To look at them, open the .xcodeproj file for each in Xcode. To get a sample app running, open its project file, then follow the steps described in the section, <a target="_bla
nk" href="http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios">Add the SDK to an existing project</a>.</p>\n <p>You\'ll find the samples in the following location in your SDK download:</p>\n <pre>\napigee-ios-sdk-<version>\n ...\n /samples\n </pre>\n <div id="collapse"><a class="btn" data-toggle="collapse" href="#samples_collapse">Details</a></div>\n <div class="collapse" id="samples_collapse">\n <p>The samples include the following:</p>\n <table class="table">\n <thead>\n <tr>\n <th scope="col">Sample</th>\n <th scope="col">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>books</td>\n <td>An app for storing a list of books that shows Apigee database operations such as reading, creating, and deleting.</td>\n </tr>\n <tr>\n <td>messagee</td>\n <td>An app for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n </tr>\n <tr>\n
<td>push</td>\n <td>An app that uses the push feature to send notifications to the devices of users who have subscribed for them.</td>\n </tr>\n </tbody>\n </table>\n </div>\n <p> </p>\n </li>\n</ul>\n'),$templateCache.put("app-overview/doc-includes/javascript.html",'<h2>1. Import the SDK into your HTML</h2>\n<p>To enable support for Apigee-related functions in your HTML, you\'ll need to include <code>apigee.js</code> in your app. To do this, add the following to the <code>head</code> block of your HTML:</p>\n<pre>\n<script type="text/javascript" src="path/to/js/sdk/apigee.js"></script>\n</pre>\n<h2>2. Instantiate Apigee.Client</h2>\n<p>Apigee.Client initializes the App Services SDK, and gives you access to all of the App Services SDK methods.</p>\n<p>You will need to pass a JSON object with the UUID or name for your App Services organization and application when you instantiate it.</p>\n<pre>\n//Apigee account credentials, available in the
App Services admin portal \nvar client_creds = {\n orgName:\'{{currentOrg}}\',\n appName:\'{{currentApp}}\'\n }\n\n//Initializes the SDK. Also instantiates Apigee.MonitoringClient\nvar dataClient = new Apigee.Client(client_creds); \n</pre>\n\n<h2>3. Verify SDK installation</h2>\n\n<p>Once initialized, App Services will also automatically instantiate <code>Apigee.MonitoringClient</code> and begin logging usage, crash and error metrics for your app.</p>\n\n<p>To verify that the SDK has been properly initialized, run your app, then go to <strong>\'Monitoring\' > \'App Usage\'</strong> in the <a href="https://www.apigee.com/usergrid">App Services admin portal</a> to verify that data is being sent.</p>\n<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n\n<h2>Installation complete! Try these next steps</h2>\n<ul>\n <li> \n <
h3><strong>Call additional SDK methods in your code</strong></h3>\n <p>Use <code>dataClient</code> or <code>dataClient.monitor</code> to call SDK methods:</p>\n <div id="collapse">\n <a href="#client_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n </div>\n <div id="client_collapse" class="collapse">\n <ul>\n <li><code>dataClient</code>: Used to access the data methods of the App Services SDK, including those for push notifications, data store, and geolocation.</li>\n <li><code>dataClient.monitor</code>: Used to access the app configuration and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</li>\n </ul>\n </div>\n </li> \n <li>\n <h3><strong>Add App Services features to your app</strong></h3>\n <p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these li
nks to get started with a few of our most popular features:</p>\n <ul>\n <li><strong><a href="http://apigee.com/docs/node/8410">Push notifications</a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per month for free!</li>\n <li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Keep your app highly-relevant by targeting users or returning result sets based on user location.</li>\n <li><strong><a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about dealing with a database ever again.</li>\n <li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement registration, login and OAuth 2.0-compliant authentication.</li>\n </
ul>\n </li>\n <li>\n <h3><strong>Check out the sample apps</strong></h3>\n <p>The SDK includes samples that illustrate Apigee features. To look at them, open the .xcodeproj file for each in Xcode. You\'ll find the samples in the following location in your SDK download:</p>\n <pre>\napigee-javascript-sdk-master\n ...\n /samples \n </pre>\n <div id="collapse">\n <a href="#samples_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n </div>\n <div id="samples_collapse" class="collapse">\n <p>The samples include the following:</p>\n <table class="table">\n <thead>\n <tr>\n <th scope="col">Sample</th>\n <th scope="col">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>booksSample.html</td>\n <td>An app for storing a list of books that shows Apigee database operations such as reading, creating, and deleting.</td>\n </tr>\n <tr>\n <td>messagee</td>\n
<td>An app for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n </tr>\n <tr>\n <td>monitoringSample.html</td>\n <td>Shows basic configuration and initialization of the HTML5 app monitoring functionality. Works in browser, PhoneGap, Appcelerator, and Trigger.io.</td>\n </tr>\n <tr>\n <td>readmeSample.html</td>\n <td>A simple app for reading data from an Apigee database.</td>\n </tr>\n </tbody>\n </table>\n </div> \n </li> \n</ul>\n'),$templateCache.put("app-overview/doc-includes/net.html",""),$templateCache.put("app-overview/doc-includes/node.html",""),$templateCache.put("app-overview/doc-includes/ruby.html",""),$templateCache.put("app-overview/getting-started.html",'<div class="setup-sdk-content" >\n\n <bsmodal id="regenerateCredentials"\n title="Confirmation"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="regenerateCredentialsDialog"\
n extrabuttonlabel="Yes"\n ng-cloak>\n Are you sure you want to regenerate the credentials?\n </bsmodal>\n\n <page-title icon="🚀" title="Getting Started"></page-title>\n\n <section class="row-fluid">\n\n\n\n\n <div class="span8">\n\n <h2 class="title">Install the SDK for app {{currentApp}}</h2>\n <p>Click on a platform icon below to view SDK installation instructions for that platform.</p>\n <ul class="inline unstyled">\n <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#ios"><i class="sdk-icon-large-ios"></i></a></li>-->\n <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#android"><i class="sdk-icon-large-android"></i></a></li>-->\n <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#javascript"><i class="sdk-icon-large-js"></i></a></li>-->\n\n\n <li ng-click="showSDKDetail(\'ios\')
"\n analytics-on="click"\n analytics-label="App Services"\n analytics-category="Getting Started"\n analytics-event="iOS SDK"><i class="sdk-icon-large-ios"></i></li>\n <li ng-click="showSDKDetail(\'android\')"\n analytics-on="click"\n analytics-label="App Services"\n analytics-category="Getting Started"\n analytics-event="Android SDK"><i class="sdk-icon-large-android"></i></li>\n <li ng-click="showSDKDetail(\'javascript\')"\n analytics-on="click"\n analytics-label="App Services"\n analytics-category="Getting Started"\n analytics-event="JS SDK"><i class="sdk-icon-large-js"></i></li>\n <li><a target="_blank"\n ng-click="showSDKDetail(\'nocontent\')"\n href="http://apigee.com/docs/usergrid/content/sdks-and-examples#nodejs"\n analytics-on="click"\n analytics-label="App Services"\n
analytics-category="Getting Started"\n analytics-event="Node SDK"><i class="sdk-icon-large-node"></i></a></li>\n <li><a target="_blank"\n ng-click="showSDKDetail(\'nocontent\')"\n href="http://apigee.com/docs/usergrid/content/sdks-and-examples#ruby"\n analytics-on="click"\n analytics-label="App Services"\n analytics-category="Getting Started"\n analytics-event="Ruby SDK"><i class="sdk-icon-large-ruby"></i></a></li>\n <li><a target="_blank"\n ng-click="showSDKDetail(\'nocontent\')"\n href="http://apigee.com/docs/usergrid/content/sdks-and-examples#c"\n analytics-on="click"\n analytics-label="App Services"\n analytics-category="Getting Started"\n analytics-event="DotNet SDK"><i class="sdk-icon-large-net"></i></a></li>\n </ul>\n\n <section id="intro-container" class="row
-fluid intro-container">\n\n <div class="sdk-intro">\n </div>\n\n <div class="sdk-intro-content">\n\n <a class="btn normal white pull-right" ng-href="{{sdkLink}}" target="_blank">\n Download SDK\n </a>\n <a class="btn normal white pull-right" ng-href="{{docsLink}}" target="_blank">\n More Docs\n </a>\n <h3 class="title"><i class="pictogram">📕</i>{{contentTitle}}</h3>\n\n <div ng-include="getIncludeURL()"></div>\n </div>\n\n </section>\n </div>\n\n <div class="span4 keys-creds">\n <h2 class="title">Mobile sdk keys</h2>\n <p>For mobile SDK initialization.</p>\n <dl class="app-creds">\n <dt>Org Name</dt>\n <dd>{{currentOrg}}</dd>\n <dt>App Name</dt>\n <dd>{{currentApp}}</dd>\n </dl>\n <h2 class="title">Server app credentials</h2>\n <p>For authenticating from a server side app (i.e. Ruby, .NET, etc.)</p>\n
<dl class="app-creds">\n <dt>Client ID</dt>\n <dd>{{clientID}}</dd>\n <dt>Client Secret</dt>\n <dd>{{clientSecret}}</dd>\n <dt>\n \n </dt>\n <dd> </dd>\n\n <dt>\n <a class="btn filter-selector" ng-click="showModal(\'regenerateCredentials\')">Regenerate</a>\n </dt>\n <dd></dd>\n </dl>\n\n </div>\n\n </section>\n</div>'),$templateCache.put("data/data.html",'<div class="content-page">\n\n <bsmodal id="newCollection"\n title="Create new collection"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="newCollectionDialog"\n extrabuttonlabel="Create"\n buttonid="collection"\n ng-cloak>\n <fieldset>\n <div class="control-group">\n <label for="new-collection-name">Collection Name:</label>\n <div class="controls">\n <input type="text" ug-validate required ng-pattern="collection
NameRegex" ng-attr-title="{{collectionNameRegexDescription}}" ng-model="$parent.newCollection.name" name="collection" id="new-collection-name" class="input-xlarge"/>\n <p class="help-block hide"></p>\n </div>\n </div>\n </fieldset>\n </bsmodal>\n\n <page-title title=" Collections" icon="📾"></page-title>\n\n <section class="row-fluid">\n <div class="span3 user-col">\n <a class="btn btn-primary" id="new-collection-link" ng-click="showModal(\'newCollection\')">New Collection</a>\n <ul class="user-list">\n <li ng-class="queryCollection._type === entity.name ? \'selected\' : \'\'" ng-repeat="entity in collectionList" ng-click="loadCollection(\'/\'+entity.name);">\n <a id="collection-{{entity.name}}-link" href="javaScript:void(0)">/{{entity.name}} </a>\n </li>\n </ul>\n\n </div>\n\n <div class="span9 tab-content">\n <div class="content-page">\n <form name="dataForm" ng-submit="run();">\n
<fieldset>\n <div class="control-group">\n <div class="" data-toggle="buttons-radio">\n <!--a class="btn" id="button-query-back">◀ Back</a-->\n <!--Added disabled class to change the way button looks but their functionality is as usual -->\n <label class="control-label" style="display:none"><strong>Method</strong> <a id="query-method-help" href="#" class="help-link">get help</a></label>\n <input type="radio" id="create-rb" name="query-action" style="margin-top: -2px;" ng-click="selectPOST();" ng-checked="verb==\'POST\'"> CREATE \n <input type="radio" id="read-rb" name="query-action" style="margin-top: -2px;" ng-click="selectGET();" ng-checked="verb==\'GET\'"> READ \n <input type="radio" id="update-rb" name="query-action" style="margin-top: -2px;" ng-click="selectPUT();" ng-checked="verb==\'PUT\'"> UPDATE \n <input type="r
adio" id="delete-rb" name="query-action" style="margin-top: -2px;" ng-click="selectDELETE();" ng-checked="verb==\'DELETE\'"> DELETE\n </div>\n </div>\n\n <div class="control-group">\n <strong>Path </strong>\n <div class="controls">\n <input ng-model="data.queryPath" type="text" ug-validate id="pathDataQuery" ng-attr-title="{{pathRegexDescription}}" ng-pattern="pathRegex" class="span6" autocomplete="off" placeholder="ex: /users" required/>\n </div>\n </div>\n <div class="control-group">\n <a id="back-to-collection" class="outside-link" style="display:none">Back to collection</a>\n </div>\n <div class="control-group">\n <strong>Query</strong>\n <div class="controls">\n <input ng-model="data.searchString" type="text" class="span6" autocomplete="off" placeholder="ex: select * where name=\'fred\'"/>\n <div style="display
:none">\n <a class="btn dropdown-toggle " data-toggle="dropdown">\n <span id="query-collections-caret" class="caret"></span>\n </a>\n <ul id="query-collections-indexes-list" class="dropdown-menu ">\n </ul>\n </div>\n </div>\n </div>\n\n\n <div class="control-group" ng-show="verb==\'GET\' || verb==\'DELETE\'">\n <label class="control-label" for="query-limit"><strong>Limit</strong> <a id="query-limit-help" href="#" ng-show="false" class="help-link">get help</a></label>\n <div class="controls">\n <div class="input-append">\n <input ng-model="data.queryLimit" type="text" class="span5" id="query-limit" placeholder="ex: 10">\n </div>\n </div>\n </div>\n\n <div class="control-group" style="display:{{queryBodyDisplay}}">\n <label class="control-label" for="query-source"><s
trong>JSON Body</strong> <a id="query-json-help" href="#" ng-show="false" class="help-link">get help</a></label>\n <div class="controls">\n <textarea ng-model="data.queryBody" id="query-source" class="span6 pull-left" rows="4">\n { "name":"value" }\n </textarea>\n <br>\n <a class="btn pull-left" ng-click="validateJson();">Validate JSON</a>\n </div>\n </div>\n <div style="clear: both; height: 10px;"></div>\n <div class="control-group">\n <input type="submit" ng-disabled="!dataForm.$valid || loading" class="btn btn-primary" id="button-query" value="{{loading ? loadingText : \'Run Query\'}}"/>\n </div>\n </fieldset>\n </form>\n'+" <div ng-include=\"display=='generic' ? 'data/display-generic.html' : ''\"></div>\n <div ng-include=\"display=='users' ? 'data/display-users.html' : ''\"></div>\n <div ng-include=\"display=='groups' ? 'data/
display-groups.html' : ''\"></div>\n <div ng-include=\"display=='roles' ? 'data/display-roles.html' : ''\"></div>\n\n </div>\n\n </div>\n </section>\n\n\n\n\n</div>\n\n"),$templateCache.put("data/display-generic.html",'\n\n<bsmodal id="deleteEntities"\n title="Are you sure you want to delete the entities(s)?"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="deleteEntitiesDialog"\n extrabuttonlabel="Delete"\n buttonid="del-entity"\n ng-cloak>\n <fieldset>\n <div class="control-group">\n </div>\n </fieldset>\n</bsmodal>\n\n<span class="button-strip">\n <button class="btn btn-primary" ng-disabled="!valueSelected(queryCollection._list) || deleteLoading" ng-click="deleteEntitiesDialog()">{{deleteLoading ? loadingText : \'Delete Entity(s)\'}}</button>\n</span>\n<table class="table table-striped collection-list">\n <thead>\n <tr class="table-header">\n <th><input type="checkbox" n
g-show="queryCollection._list.length > 0" id="selectAllCheckbox" ng-model="queryBoxesSelected" ng-click="selectAllEntities(queryCollection._list,$parent,\'queryBoxesSelected\',true)"></th>\n <th ng-if="hasProperty(\'name\')">Name</th>\n <th>UUID</th>\n <th></th>\n </tr>\n </thead>\n <tbody ng-repeat="entity in queryCollection._list">\n <tr class="zebraRows" >\n <td>\n <input\n type="checkbox"\n id="entity-{{entity._data.name}}-cb"\n ng-value="entity._data.uuid"\n ng-model="entity.checked"\n >\n </td>\n <td ng-if="hasProperty(\'name\')">{{entity._data.name}}</td>\n <td>{{entity._data.uuid}}</td>\n <td><a href="javaScript:void(0)" ng-click="entitySelected[$index] = !entitySelected[$index];selectEntity(entity._data.uuid)">{{entitySelected[$index] ? \'Hide\' : \'View\'}} Details</a></td>\n </tr>\n <tr ng-if="entitySelected[$index]">\n <td colspan="5">\n\n\n <h4 style="margin: 0 0 20px 0">Entity Detail</h4>\n\n
\n <ul class="formatted-json">\n <li ng-repeat="(k,v) in entity._data track by $index">\n <span class="key">{{k}} :</span>\n <!--todo - doing manual recursion to get this out the door for launch, please fix-->\n <span ng-switch on="isDeep(v)">\n <ul ng-switch-when="true">\n <li ng-repeat="(k2,v2) in v"><span class="key">{{k2}} :</span>\n\n <span ng-switch on="isDeep(v2)">\n <ul ng-switch-when="true">\n <li ng-repeat="(k3,v3) in v2"><span class="key">{{k3}} :</span><span class="value">{{v3}}</span></li>\n </ul>\n <span ng-switch-when="false">\n <span class="value">{{v2}}</span>\n </span>\n </span>\n </li>\n </ul>\n <span ng-switch-when="false">\n <span class="value">{{v}}</span>\n </span>\n </span>\n </li>\n <
/ul>\n\n <div class="control-group">\n <h4 style="margin: 20px 0 20px 0">Edit Entity</h4>\n <div class="controls">\n <textarea ng-model="entity._json" class="span12" rows="12"></textarea>\n <br>\n <a class="btn btn-primary toolbar pull-left" ng-click="validateJson();">Validate JSON</a><button type="button" class="btn btn-primary pull-right" id="button-query" ng-click="saveEntity(entity);">Save</button>\n </div>\n </div>\n </td>\n </tr>\n\n <tr ng-show="queryCollection._list.length == 0">\n <td colspan="4">No data found</td>\n </tr>\n </tbody>\n</table>\n<div style="padding: 10px 5px 10px 5px">\n <button class="btn btn-primary toolbar" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous</button>\n <button class="btn btn-primary toolbar" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n</div>\n\n'),$templateCache.put("data/display-groups.html",""),$templateCache.put("data/displ
ay-roles.html","roles---------------------------------"),$templateCache.put("data/display-users.html",'\n<table id="query-response-table" class="table">\n <tbody>\n <tr class="zebraRows users-row">\n <td class="checkboxo">\n <input type="checkbox" onclick="Usergrid.console.selectAllEntities(this);"></td>\n <td class="gravatar50-td"> </td>\n <td class="user-details bold-header">Username</td>\n <td class="user-details bold-header">Display Name</td>\n <td class="user-details bold-header">UUID</td>\n <td class="view-details"> </td>\n </tr>\n <tr class="zebraRows users-row">\n <td class="checkboxo">\n <input class="listItem" type="checkbox" name="/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7" value="bf9a95da-d508-11e2-bf44-236d2eee13a7">\n </td>\n <td class="gravatar50-td">\n <img src="http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e" class="gravatar50">\n </td>\n <td
class="details">\n <a onclick="Usergrid.console.getCollection(\'GET\', \'/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/\'+\'bf9a95da-d508-11e2-bf44-236d2eee13a7\'); $(\'#data-explorer\').show(); return false;" class="view-details">10</a>\n </td>\n <td class="details"> #"><img src=x onerror=prompt(1);> </td>\n <td class="details"> bf9a95da-d508-11e2-bf44-236d2eee13a7 </td>\n <td class="view-details">\n <a href="" onclick="$(\'#query-row-bf9a95da-d508-11e2-bf44-236d2eee13a7\').toggle(); $(\'#data-explorer\').show(); return false;" class="view-details">Details</a>\n </td>\n </tr>\n <tr id="query-row-bf9a95da-d508-11e2-bf44-236d2eee13a7" style="display:none">\n <td colspan="5">\n <div>\n <div style="padding-bottom: 10px;">\n <button type="button" class="btn btn-small query-button active" id="button-query-show-row-JSON" onclick="Usergrid.console.activateQueryRowJSONButton(); $(\'#query-row-JSON-bf9a95da-d50
8-11e2-bf44-236d2eee13a7\').show(); $(\'#query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7\').hide(); return false;">JSON</button>\n <button type="button" class="btn btn-small query-button disabled" id="button-query-show-row-content" onclick="Usergrid.console.activateQueryRowContentButton();$(\'#query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7\').show(); $(\'#query-row-JSON-bf9a95da-d508-11e2-bf44-236d2eee13a7\').hide(); return false;">Content</button>\n </div>\n <div id="query-row-JSON-bf9a95da-d508-11e2-bf44-236d2eee13a7">\n <pre>{\n "picture": "http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e",\n "uuid": "bf9a95da-d508-11e2-bf44-236d2eee13a7",\n "type": "user",\n "name": "#"><img src=x onerror=prompt(1);>",\n "created": 1371224432557,\n "modified": 1371851347024,\n "username": "10",\n "email": "fdsafdsa@ookfd.com",\n "activated": "true",\n "adr": {\n "addr1": "",\n "addr2": "",\n "city": "",
\n "state": "",\n "zip": "",\n "country": ""\n },\n "metadata": {\n "path": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7",\n "sets": {\n "rolenames": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/rolenames",\n "permissions": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/permissions"\n },\n "collections": {\n "activities": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/activities",\n "devices": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/devices",\n "feed": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/feed",\n "groups": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/groups",\n "roles": "/users/8bb9a3fa-d508-1
1e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/roles",\n "following": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/following",\n "followers": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/followers"\n }\n },\n "title": "#"><img src=x onerror=prompt(1);>"\n}</pre>\n </div>\n <div id="query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7" style="display:none">\n <table>\n <tbody>\n <tr>\n <td>picture</td>\n <td>http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e</td></tr><tr><td>uuid</td><td>bf9a95da-d508-11e2-bf44-236d2eee13a7</td></tr><tr><td>type</td><td>user</td></tr><tr><td>name</td><td>#&quot;&gt;&lt;img src=x onerror=prompt(1);&gt;</td></tr><tr><td>created</td><td>1371224432557</td></tr><tr><td>modified</td><td>1371851347024</td></tr><tr><td>u
sername</td><td>10</td></tr><tr><td>email</td><td>fdsafdsa@ookfd.com</td></tr><tr><td>activated</td><td>true</td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>addr1</td><td></td></tr><tr><td>addr2</td><td></td></tr><tr><td>city</td><td></td></tr><tr><td>state</td><td></td></tr><tr><td>zip</td><td></td></tr><tr><td>country</td><td></td></tr></tbody></table></td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>path</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7</td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>rolenames</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/rolenames</td></tr><tr><td>permissions</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/permissions</td></tr></tbody></table></td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr
><td>activities</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/activities</td></tr><tr><td>devices</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/devices</td></tr><tr><td>feed</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/feed</td></tr><tr><td>groups</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/groups</td></tr><tr><td>roles</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/roles</td></tr><tr><td>following</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/following</td></tr><tr><td>followers</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/followers</td></tr></tbody></table></td></tr></tbody></table></td></tr><tr><td>title</td><td>
#&quot;&gt;&lt;img src=x onerror=prompt(1);&gt;</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n</table>'),$templateCache.put("data/entity.html",'<div class="content-page">\n\n <h4>Entity Detail</h4>\n <div class="well">\n <a href="#!/data" class="outside-link"><< Back to collection</a>\n </div>\n <fieldset>\n <div class="control-group">\n <strong>Path </strong>\n <div class="controls">\n {{entityType}}/{{entityUUID}}\n </div>\n </div>\n\n <div class="control-group">\n <label class="control-label" for="query-source"><strong>JSON Body</strong></label>\n <div class="controls">\n <textarea ng-model="queryBody" class="span6 pull-left" rows="12">{{queryBody}}</textarea>\n <br>\n <a class="btn pull-left" ng-click="validateJson();">Validate JSON</a>\n </div>\n </div>\n <div style="clear: both; height: 10px;"></div>\
n <div class="control-group">\n <button type="button" class="btn btn-primary" id="button-query" ng-click="saveEntity();">Save</button>\n <!--button type="button" class="btn btn-primary" id="button-query" ng-click="run();">Delete</button-->\n </div>\n </fieldset>\n\n</div>\n\n'),$templateCache.put("data/shell.html",'<div class="content-page">\n <div class="well">\n <h2>Interactive Shell</h2>\n <div style="float:right"><a target="_blank" href="http://apigee.com/docs/usergrid/content/usergrid-admin-portal" class="notifications-links">Learn more in our docs</a></div>\n </div>\n\n <div class="console-section-contents">\n <div id="shell-input-div">\n <p> Type "help" to view a list of the available commands.</p><hr>\n <span> >> </span>\n <!--textarea id="shell-input" rows="2" autofocus="autofocus"></textarea-->\n </div>\n <pre id="shell-output" class="prettyprint lang-js" style="overflow-x: auto; height: 400px;"><span class="pl
n"> </span><p><span class="pln"> </span><span class="typ">Response</span><span class="pun">:</span></p><hr><span class="pln">\n </span></pre>\n </div>\n</div>'),$templateCache.put("dialogs/modal.html",' <div class="modal show fade" tabindex="-1" role="dialog" aria-hidden="true">\n <form ng-submit="extraDelegate(extrabutton)" name="dialogForm" novalidate>\n\n <div class="modal-header">\n <h1 class="title">{{title}}</h1>\n </div>\n\n <div class="modal-body" ng-transclude></div>\n <div class="modal-footer">\n {{footertext}}\n <input type="submit" class="btn" id="dialogButton-{{buttonId}}" ng-if="extrabutton" ng-disabled="!dialogForm.$valid" aria-hidden="true" ng-value="extrabuttonlabel"/>\n <button class="btn cancel pull-left" data-dismiss="modal" aria-hidden="true"\n ng-click="closeDelegate(close)">{{closelabel}}\n </button>\n </div>\n
</form> </div>\n'),$templateCache.put("global/appswitcher-template.html",'<li id="globalNav" class="dropdown dropdownContainingSubmenu active">\n <a class="dropdown-toggle" data-toggle="dropdown">API Platform<b class="caret"></b></a>\n <ul class="dropdown-menu pull-right">\n <li id="globalNavSubmenuContainer">\n <ul>\n <li data-globalNavDetail="globalNavDetailApigeeHome"><a target="_blank" href="http://apigee.com">Apigee Home</a></li>\n <li data-globalNavDetail="globalNavDetailAppServices" class="active"><a target="_blank" href="https://apigee.com/usergrid/">App Services</a></li>\n <li data-globalNavDetail="globalNavDetailApiPlatform" ><a target="_blank" href="https://enterprise.apigee.com">API Platform</a></li>\n <li data-globalNavDetail="globalNavDetailApiConsoles"><a target="_blank" href="http://apigee.com/providers">API Consoles</a></li>\n </ul>\n </li>\n <li id="globalNavDetail">\n <div id="globalNavDetailApigeeHome">\n
<div class="globalNavDetailApigeeLogo"></div>\n <div class="globalNavDetailDescription">You need apps and apps need APIs. Apigee is the leading API platform for enterprises and developers.</div>\n </div>\n <div id="globalNavDetailAppServices">\n <div class="globalNavDetailSubtitle">For App Developers</div>\n <div class="globalNavDetailTitle">App Services</div>\n <div class="globalNavDetailDescription">Build engaging applications, store data, manage application users, and more.</div>\n </div>\n <div id="globalNavDetailApiPlatform">\n <div class="globalNavDetailSubtitle">For API Developers</div>\n <div class="globalNavDetailTitle">API Platform</div>\n <div class="globalNavDetailDescription">Create, configure, manage and analyze your APIs and resources.</div>\n </div>\n <div id="globalNavDetailApiConsoles">\n <div class="globalNavDetailSubtitle">For API Developers</div>\n <div class="glo
balNavDetailTitle">API Consoles</div>\n <div class="globalNavDetailDescription">Explore over 100 APIs with the Apigee API Console, or create and embed your own API Console.</div>\n </div>\n </li>\n </ul>\n</li>'),$templateCache.put("global/insecure-banner.html",'<div ng-if="securityWarning" ng-cloak class="demo-holder">\n <div class="alert alert-demo alert-animate">\n <div class="alert-text">\n <i class="pictogram">⚠</i>Warning: This application has "sandbox" permissions and is not production ready. <a target="_blank" href="http://apigee.com/docs/app-services/content/securing-your-app">Please go to our security documentation to find out more.</a></span>\n </div>\n </div>\n</div>'),$templateCache.put("global/page-title.html",'<section class="row-fluid">\n <div class="span12">\n <div class="page-filters">\n <h1 class="title pull-left" id="pageTitle"><i class="pictogram title" style="padding-right: 5px;">{{icon}}
</i>{{title}} <a class="super-help" href="http://community.apigee.com/content/apigee-customer-support" target="_blank" >(need help?)</a></h1>\n </div>\n </div>\n <bsmodal id="need-help"\n title="Need Help?"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="sendHelp"\n extrabuttonlabel="Get Help"\n ng-cloak>\n <p>Do you want to contact support? Support will get in touch with you as soon as possible.</p>\n </bsmodal>\n</section>\n\n'),$templateCache.put("groups/groups-activities.html",'<div class="content-page" ng-controller="GroupsActivitiesCtrl">\n\n <br>\n <div>\n <table class="table table-striped">\n <tbody>\n <tr class="table-header">\n <td>Date</td>\n <td>Content</td>\n <td>Verb</td>\n <td>UUID</td>\n </tr>\n <tr class="zebraRows" ng-repeat="activity in selectedGroup.activities">\n <td>{{activity.createdDate}}</td>\n
<td>{{activity.content}}</td>\n <td>{{activity.verb}}</td>\n <td>{{activity.uuid}}</td>\n </tr>\n </tbody>\n </table>\n </div>\n\n\n</div>'),$templateCache.put("groups/groups-details.html",'<div class="content-page" ng-controller="GroupsDetailsCtrl">\n\n <div>\n <form name="updateGroupDetailForm" ng-submit="saveSelectedGroup()" novalidate>\n <div style="float: left; padding-right: 30px;">\n <h4 class="ui-dform-legend">Group Information</h4>\n <label for="group-title" class="ui-dform-label">Group Title</label>\n <input type="text" id="group-title" ng-pattern="titleRegex" ng-attr-title="{{titleRegexDescription}}" required class="ui-dform-text" ng-model="group.title" ug-validate>\n <br/>\n <label for="group-path" class="ui-dform-label">Group Path</label>\n <input type="text" id="group-path" required ng-attr-title="{{pathRegexDescription}}" placeholder="ex: /mydata"
ng-pattern="pathRegex" class="ui-dform-text" ng-model="group.path" ug-validate>\n <br/>\n </div>\n <br style="clear:both"/>\n\n <div style="width:100%;float:left;padding: 20px 0">\n <input type="submit" value="Save Group" style="margin-right: 15px;" ng-disabled="!updateGroupDetailForm.$valid" class="btn btn-primary" />\n </div>\n\n <div class="content-container">\n <h4>JSON Group Object</h4>\n <pre>{{json}}</pre>\n </div>\n </form>\n </div>\n\n\n</div>'),$templateCache.put("groups/groups-members.html",'<div class="content-page" ng-controller="GroupsMembersCtrl">\n\n\n <bsmodal id="removeFromGroup"\n title="Confirmation"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="removeUsersFromGroupDialog"\n extrabuttonlabel="Delete"\n ng-cloak>\n <p>Are you sure you want to remove the users from the seleted group
(s)?</p>\n </bsmodal>\n\n <bsmodal id="addGroupToUser"\n title="Add user to group"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="addGroupToUserDialog"\n extrabuttonlabel="Add"\n ng-cloak>\n <div class="btn-group">\n <a class="btn dropdown-toggle filter-selector" data-toggle="dropdown">\n <span class="filter-label">{{$parent.user != \'\' ? $parent.user.username : \'Select a user...\'}}</span>\n <span class="caret"></span>\n </a>\n <ul class="dropdown-menu">\n <li ng-repeat="user in $parent.usersTypeaheadValues" class="filterItem"><a ng-click="$parent.$parent.user = user">{{user.username}}</a></li>\n </ul>\n </div>\n </bsmodal>\n\n\n <div class="button-strip">\n <button class="btn btn-primary" ng-click="showModal(\'addGroupToUser\')">Add User to Group</button>\n <button class="btn btn-primary" ng-disabled="!hasMembers || !valueSelected(groupsCollection.users
._list)" ng-click="showModal(\'removeFromGroup\')">Remove User(s) from Group</button>\n </div>\n <table class="table table-striped">\n <tr class="table-header">\n <td style="width: 30px;"><input type="checkbox" ng-show="hasMembers" id="selectAllCheckbox" ng-model="groupMembersSelected" ng-click="selectAllEntities(groupsCollection.users._list,this,\'groupMembersSelected\')"></td>\n <td style="width: 50px;"></td>\n <td>Username</td>\n <td>Display Name</td>\n </tr>\n <tr class="zebraRows" ng-repeat="user in groupsCollection.users._list">\n <td>\n <input\n type="checkbox"\n ng-model="user.checked"\n >\n </td>\n <td><img style="width:30px;height:30px;" ng-src="{{user._portal_image_icon}}"></td>\n <td>{{user.get(\'username\')}}</td>\n <td>{{user.get(\'name\')}}</td>\n </tr>\n </table>\n <div style="padding: 10px 5px 10px 5px">\n <button class="btn btn-primary" ng-click="getPrevious()" style="
display:{{previous_display}}">< Previous</button>\n <button class="btn btn-primary" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n </div>\n</div>'),$templateCache.put("groups/groups-roles.html",'<div class="content-page" ng-controller="GroupsRolesCtrl">\n\n <bsmodal id="addGroupToRole"\n title="Add group to role"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="addGroupToRoleDialog"\n extrabuttonlabel="Add"\n ng-cloak>\n <div class="btn-group">\n <a class="btn dropdown-toggle filter-selector" data-toggle="dropdown">\n <span class="filter-label">{{$parent.name != \'\' ? $parent.name : \'Role name...\'}}</span>\n <span class="caret"></span>\n </a>\n <ul class="dropdown-menu">\n <li ng-repeat="role in $parent.rolesTypeaheadValues" class="filterItem"><a ng-click="$parent.$parent.name = role.name">{{role.name}}</a></li>\n </ul>\n <
/div>\n </bsmodal>\n\n <bsmodal id="leaveRoleFromGroup"\n title="Confirmation"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="leaveRoleDialog"\n extrabuttonlabel="Leave"\n ng-cloak>\n <p>Are you sure you want to remove the group from the role(s)?</p>\n </bsmodal>\n\n\n <div class="button-strip">\n <button class="btn btn-primary" ng-click="showModal(\'addGroupToRole\')">Add Role to Group</button>\n <button class="btn btn-primary" ng-disabled="!hasRoles || !valueSelected(groupsCollection.roles._list)" ng-click="showModal(\'leaveRoleFromGroup\')">Remove Role(s) from Group</button>\n </div>\n <h4>Roles</h4>\n <table class="table table-striped">\n <tbody>\n <tr class="table-header">\n <td style="width: 30px;"><input type="checkbox" ng-show="hasRoles" id="groupsSelectAllCheckBox" ng-model="groupRoleSelected" ng-click="selectAllEntities(groupsCollection.roles._list,this,\'groupRoleSelected\')"
></td>\n <td>Role Name</td>\n <td>Role title</td>\n </tr>\n <tr class="zebraRows" ng-repeat="role in groupsCollection.roles._list">\n <td>\n <input\n type="checkbox"\n ng-model="role.checked"\n >\n </td>\n <td>{{role._data.name}}</td>\n <td>{{role._data.title}}</td>\n </tr>\n </tbody>\n </table>\n <div style="padding: 10px 5px 10px 5px">\n <button class="btn btn-primary" ng-click="getPreviousRoles()" style="display:{{roles_previous_display}}">< Previous</button>\n <button class="btn btn-primary" ng-click="getNextRoles()" style="display:{{roles_next_display}};float:right;">Next ></button>\n </div>\n\n\n <bsmodal id="deletePermission"\n title="Confirmation"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="deleteGroupPermissionDialog"\n extrabuttonlabel="Delete"\n ng-cloak>\n <p>Are you sure you want to delete the permission(s)?</p
>\n </bsmodal>\n\n\n <bsmodal id="addPermission"\n title="New Permission"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="addGroupPermissionDialog"\n extrabuttonlabel="Add"\n ng-cloak>\n <p>Path: <input ng-model="$parent.permissions.path" placeholder="ex: /mydata" id="groupsrolespermissions" type="text" ng-pattern="pathRegex" ng-attr-title="{{pathRegexDescription}}" required ug-validate /></p>\n <div class="control-group">\n <input type="checkbox" ng-model="$parent.permissions.getPerm"> GET\n </div>\n <div class="control-group">\n <input type="checkbox" ng-model="$parent.permissions.postPerm"> POST\n </div>\n <div class="control-group">\n <input type="checkbox" ng-model="$parent.permissions.putPerm"> PUT\n </div>\n <div class="control-group">\n <input type="checkbox" ng-model="$parent.permissions.deletePerm"> DELETE\n </div>\n </bsmodal>\n\n\n <div class="button-s
trip">\n <button class="btn btn-primary" ng-click="showModal(\'addPermission\')">Add Permission</button>\n <button class="btn btn-primary" ng-disabled="!hasPermissions || !valueSelected(selectedGroup.permissions)" ng-click="showModal(\'deletePermission\')">Delete Permission(s)</button>\n </div>\n <h4>Permissions</h4>\n <table class="table table-striped">\n <tbody>\n <tr class="table-header">\n <td style="width: 30px;"><input ng-show="hasPermissions" type="checkbox" id="permissionsSelectAllCheckBox" ng-model="groupPermissionsSelected" ng-click="selectAllEntities(selectedGroup.permissions,this,\'groupPermissionsSelected\')" ></td>\n <td>Path</td>\n <td>GET</td>\n <td>POST</td>\n <td>PUT</td>\n <td>DELETE</td>\n </tr>\n <tr class="zebraRows" ng-repeat="permission in selectedGroup.permissions">\n <td>\n <input\n type="checkbox"\n ng-model="permission.checked"\n >\n </td>\n <td>{{permissi
on.path}}</td>\n <td>{{permission.operations.get}}</td>\n <td>{{permission.operations.post}}</td>\n <td>{{permission.operations.put}}</td>\n <td>{{permission.operations.delete}}</td>\n </tr>\n </tbody>\n </table>\n\n</div>'),$templateCache.put("groups/groups-tabs.html",'<div class="content-page">\n\n <section class="row-fluid">\n\n <div class="span12">\n <div class="page-filters">\n <h1 class="title" class="pull-left"><i class="pictogram title">👥</i> Groups</h1>\n </div>\n </div>\n\n </section>\n\n <div id="user-panel" class="panel-buffer">\n <ul id="user-panel-tab-bar" class="nav nav-tabs">\n <li><a href="javaScript:void(0);" ng-click="gotoPage(\'groups\')">Group List</a></li>\n <li ng-class="detailsSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/details\')">Details</a></li>\n <li ng-class="membersSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/members\')">Users</a
></li>\n <li ng-class="activitiesSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/activities\')">Activities</a></li>\n <li ng-class="rolesSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/roles\')">Roles & Permissions</a></li>\n </ul>\n </div>\n\n <div style="float: left; margin-right: 10px;">\n <div style="float: left;">\n <div class="user-header-title"><strong>Group Path: </strong>{{selectedGroup.get(\'path\')}}</div>\n <div class="user-header-title"><strong>Group Title: </strong>{{selectedGroup.get(\'title\')}}</div>\n </div>\n </div>\n</div>\n<br>\n<br>\n'),$templateCache.put("groups/groups.html",'<div class="content-page">\n\n <page-title title=" Groups" icon="👥"></page-title>\n <bsmodal id="newGroup"\n title="New Group"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="newGroupDialog"\n extrabuttonlabel="Add"\n ng-model="dialog"\
n ng-cloak>\n <fieldset>\n <div class="control-group">\n <label for="title">Title</label>\n <div class="controls">\n <input type="text" id="title" ng-pattern="titleRegex" ng-attr-title="{{titleRegexDescription}}" required ng-model="newGroup.title"class="input-xlarge" ug-validate/>\n </div>\n </div>\n <div class="control-group">\n <label for="path">Path</label>\n <div class="controls">\n <input id="path" type="text" ng-attr-title="{{pathRegexDescription}}" placeholder="ex: /mydata" ng-pattern="pathRegex" required ng-model="newGroup.path" class="input-xlarge" ug-validate/>\n </div>\n </div>\n </fieldset>\n </bsmodal>\n\n <bsmodal id="deleteGroup"\n title="Delete Group"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="deleteGroupsDialog"\n extrabuttonlabel="Delete"\n ng-cloak>\n <p>Are you sure you want to delete the gr
oup(s)?</p>\n </bsmodal>\n\n\n <section class="row-fluid">\n <div class="span3 user-col">\n\n <div class="button-toolbar span12">\n <a title="Select All" class="btn btn-primary select-all toolbar" ng-show="hasGroups" ng-click="selectAllEntities(groupsCollection._list,this,\'groupBoxesSelected\',true)"> <i class="pictogram">⊟</i></a>\n <button title="Delete" class="btn btn-primary toolbar" ng-disabled="!hasGroups || !valueSelected(groupsCollection._list)" ng-click="showModal(\'deleteGroup\')"><i class="pictogram">☕</i></button>\n <button title="Add" class="btn btn-primary toolbar" ng-click="showModal(\'newGroup\')"><i class="pictogram"></i></button>\n </div>\n <ul class="user-list">\n <li ng-class="selectedGroup._data.uuid === group._data.uuid ? \'selected\' : \'\'" ng-repeat="group in groupsCollection._list" ng-click="selectGroup(group._data.uuid)">\n <input\n type="checkbox"\n ng-
value="group._data.uuid"\n ng-checked="group.checked"\n ng-model="group.checked"\n >\n <a href="javaScript:void(0)" >{{group.get(\'title\')}}</a>\n <br/>\n <span ng-if="group.get(\'path\')" class="label">Path:</span>/{{group.get(\'path\')}}\n </li>\n </ul>\n\n\n <div style="padding: 10px 5px 10px 5px">\n <button class="btn btn-primary" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous</button>\n <button class="btn btn-primary" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n </div>\n\n </div>\n\n <div class="span9 tab-content" ng-show="selectedGroup.get" >\n <div class="menu-toolbar">\n <ul class="inline" >\n <li class="tab" ng-class="currentGroupsPage.route === \'/groups/details\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/details\')"><i class="p
ictogram"></i>Details</a></li>\n <li class="tab" ng-class="currentGroupsPage.route === \'/groups/members\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/members\')"><i class="pictogram">👥</i>Users</a></li>\n <li class="tab" ng-class="currentGroupsPage.route === \'/groups/activities\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/activities\')"><i class="pictogram"></i>Activities</a></li>\n <li class="tab" ng-class="currentGroupsPage.route === \'/groups/roles\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/roles\')"><i class="pictogram">🌎</i>Roles & Permissions</a></li>\n </ul>\n </div>\n <span ng-include="currentGroupsPage.template"></span>\n\n </section>\n</div>\n'),$templateCache.put("login/forgot-password.html",'<div class="login-content" ng-controller="Forgo
tPasswordCtrl">\n <iframe class="container" ng-src="{{forgotPWiframeURL}}" id="forgot-password-frame" border="0" style="border:0;width:600px;height:620px;">\n <p>Email Address: <input id="resetPasswordEmail" name="resetPasswordEmail" /></p>\n <button class="btn btn-primary" ng-click="">Reset Password</button>\n</div>\n'),$templateCache.put("login/loading.html","\n\n<h1>Loading...</h1>"),$templateCache.put("login/login.html",'<div class="login-content">\r\n <bsmodal id="sendActivationLink"\r\n title="Resend Activation Link"\r\n close="hideModal"\r\n closelabel="Cancel"\r\n extrabutton="resendActivationLink"\r\n extrabuttonlabel="Send Activation"\r\n ng-cloak>\r\n <fieldset>\r\n <p>Email to send to: <input type="email" required ng-model="$parent.activation.id" ng-pattern="emailRegex" ng-attr-title="{{emailRegexDescription}}" name="activationId" id="user-activationId" class="input-xlarge"/></p>\r\n </fieldset>\r\n
</bsmodal>\r\n <div class="login-holder">\r\n <form name="loginForm" id="login-form" ng-submit="login()" class="form-horizontal" novalidate>\r\n <h1 class="title">Enter your credentials</h1>\r\n <div class="alert-error" id="loginError" ng-if="loginMessage">{{loginMessage}}</div>\r\n <div class="control-group">\r\n <label class="control-label" for="login-username">Email or Username:</label>\r\n <div class="controls">\r\n <input type="text" ng-model="login.username" title="Please add a username or email." class="" id="login-username" required ng-value="login.username" size="20" ug-validate>\r\n </div>\r\n </div>\r\n <div class="control-group">\r\n <label class="control-label" for="login-password">Password:</label>\r\n <div class="controls">\r\n <input type="password" ng-model="login.password" required id="login-password" class="" ng-value="login.password" size="20" ug-validate>\r\n </div>\r\n </div>\r\n <div class
="control-group" ng-show="requiresDeveloperKey">\r\n <label class="control-label" for="login-developerkey">Developer Key:</label>\r\n <div class="controls">\r\n <input type="text" ng-model="login.developerkey" id="login-developerkey" class="" ng-value="login.developerkey" size="20" ug-validate>\r\n </div>\r\n </div>\r\n <div class="form-actions">\r\n <div class="submit">\r\n <input type="submit" name="button-login" id="button-login" ng-disabled="!loginForm.$valid || loading" value="{{loading ? loadingText : \'Log In\'}}" class="btn btn-primary pull-right">\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class="extra-actions">\r\n <div class="submit">\r\n <a ng-click="gotoSignUp()" name="button-signUp" id="button-signUp" value="Sign Up"\r\n class="btn btn-primary pull-left">Register</a>\r\n </div>\r\n <div class="submit">\r\n <a ng-click="gotoForgotPasswordPage()" name="button-forgot-password" id="b
utton-forgot-password"\r\n value="" class="btn btn-primary pull-left">Forgot Password?</a>\r\n </div>\r\n <a ng-click="showModal(\'sendActivationLink\')" name="button-resend-activation" id="button-resend-activation"\r\n value="" class="btn btn-primary pull-left">Resend Activation Link</a>\r\n </div>\r\n <div id="gtm" style="width: 450px;margin-top: 4em;" />\r\n</div>\r\n'),$templateCache.put("login/logout.html",'<div id="logut">Logging out...</div>'),$templateCache.put("login/register.html",'<div class="signUp-content">\n <div class="signUp-holder">\n <form name="signUpform" id="signUp-form" ng-submit="register()" class="form-horizontal" ng-show="!signUpSuccess" novalidate>\n <h1 class="title">Register</h1>\n\n <div class="alert" ng-if="loginMessage">{{loginMessage}}</div>\n <div class="control-group">\n <label class="control-label" for="register-orgName">Organization:</label>\n\n <div class="controls">\n <input type="
text" ng-model="registeredUser.orgName" id="register-orgName" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" ug-validate required class="" size="20">\n </div>\n </div>\n\n <div class="control-group">\n <label class="control-label" for="register-name">Name:</label>\n\n <div class="controls">\n <input type="text" ng-model="registeredUser.name" id="register-name" ng-pattern="nameRegex" ng-attr-title="{{nameRegexDescription}}" ug-validate required class="" size="20">\n </div>\n </div>\n\n <div class="control-group">\n <label class="control-label" for="register-userName">Username:</label>\n\n <div class="controls">\n <input type="text" ng-model="registeredUser.userName" id="register-userName" ng-pattern="usernameRegex" ng-attr-title="{{usernameRegexDescription}}" ug-validate required class="" size="20">\n </div>\n </div>\n\n <div class="control-group">\n <label
class="control-label" for="register-email">Email:</label>\n\n <div class="controls">\n <input type="email" ng-model="registeredUser.email" id="register-email" ng-pattern="emailRegex" ng-attr-title="{{emailRegexDescription}}" required class="" ug-validate size="20">\n </div>\n </div>\n\n\n <div class="control-group">\n <label class="control-label" for="register-password">Password:</label>\n\n <div class="controls">\n <input type="password" ng-pattern="passwordRegex" ng-attr-title="{{passwordRegexDescription}}" ug-validate ng-model="registeredUser.password" id="register-password" required class=""\n size="20">\n </div>\n </div>\n <div class="control-group">\n <label class="control-label" for="register-confirmPassword">Re-enter Password:</label>\n\n <div class="controls">\n <input type="password" ng-model="registeredUser.confirmPassword" required id="register-confirmPasswor
d" ug-validate class="" size="20">\n </div>\n </div>\n <div class="form-actions">\n <div class="submit">\n <input type="submit" name="button-login" ng-disabled="!signUpform.$valid" id="button-login" value="Register"\n class="btn btn-primary pull-right">\n </div>\n <div class="submit">\n <a ng-click="cancel()" type="submit" name="button-cancel" id="button-cancel"\n class="btn btn-primary pull-right">Cancel</a>\n </div>\n </div>\n </form>\n <div class="console-section well thingy" ng-show="signUpSuccess">\n <span class="title">We\'re holding a seat for you!</span>\n <br><br>\n\n <p>Thanks for signing up for a spot on our private beta. We will send you an email as soon as we\'re ready for\n you!</p>\n\n <p>In the mean time, you can stay up to date with App Services on our <a\n href="https://groups.google.com/forum/?fromgroups#!forum/usergrid">GoogleG
roup</a>.</p>\n\n <p> <a href="#!/login">Back to login</a></p>\n </div>\n </div>\n\n</div>\n'),$templateCache.put("menus/appMenu.html",'<ul id="app-menu" class="nav top-nav span12">\n <li class="span7">\n <bsmodal id="newApplication"\n title="Create New Application"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="newApplicationDialog"\n extrabuttonlabel="Create"\n buttonid="app"\n ng-cloak>\n <div ng-show="!hasApplications" class="modal-instructions" >You have no applications, please create one.</div>\n <div ng-show="hasCreateApplicationError" class="alert-error">Application already exists!</div>\n <p>New application name: <input ng-model="$parent.newApp.name" id="app-name-input" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" type="text" required ug-validate /></p>\n </bsmodal>\n <div class="btn-group">\
n <a class="btn dropdown-toggle top-selector app-selector" id="current-app-selector" data-toggle="dropdown">\n <i class="pictogram">⚙</i> {{myApp.currentApp}}\n <span class="caret"></span>\n </a>\n <ul class="dropdown-menu app-nav">\n <li name="app-selector" ng-repeat="app in applications">\n <a id="app-{{app.name}}-link-id" ng-click="appChange(app.name)">{{app.name}}</a>\n </li>\n </ul>\n </div>\n </li>\n <li class="span5">\n <a ng-if="activeUI"\n class="btn btn-create zero-out pull-right"\n ng-click="showModal(\'newApplication\')"\n analytics-on="click"\n analytics-category="App Services"\n analytics-label="Button"\n analytics-event="Add New App"\n >\n <i class="pictogram">⊞</i>\n Add New App\n </a>\n </li>\n</ul>'),$templateCache.put("menus/orgMenu.html"
,'<ul class="nav top-nav org-nav">\n <li>\n<div class="btn-group ">\n <a class="btn dropdown-toggle top-selector org-selector" id="current-org-selector" data-toggle="dropdown">\n <i class="pictogram">📁</i> {{currentOrg}}<span class="caret"></span>\n </a>\n <ul class="dropdown-menu org-nav">\n <li name="org-selector" ng-repeat="(k,v) in organizations">\n <a id="org-{{v.name}}-selector" class="org-overview" ng-click="orgChange(v.name)"> {{v.name}}</a>\n </li>\n </ul>\n </div>\n </li></ul>'),$templateCache.put("org-overview/org-overview.html",'<div class="org-overview-content" ng-show="activeUI">\n\n <page-title title=" Org Administration" icon="🕪"></page-title>\n\n <section class="row-fluid">\n\n <div class="span6">\n <bsmodal id="introjs"\n title="Welcome to the API BaaS Admin Portal"\n close="hideModal"\n closelabel="Skip"\n extrabutton="startFirstTim
eUser"\n extrabuttonlabel="Take the tour"\n ng-cloak>\n <p>To get started, click \'Take the tour\' for a full walkthrough of the admin portal, or click \'Skip\' to start working right away.</p>\n </bsmodal>\n <div id="intro-4-current-org"> \n <h2 class="title">Current Organization <a class="help_tooltip" ng-mouseover="help.sendTooltipGA(\'current org\')" ng-show="help.helpTooltipsEnabled" href="#" ng-attr-tooltip="{{tooltip_current_org}}" tooltip-placement="right">(?)</a></h2>\n <table class="table table-striped">\n <tr>\n <td id="org-overview-name">{{currentOrganization.name}}</td>\n <td style="text-align: right">{{currentOrganization.uuid}}</td>\n </tr>\n </table>\n </div>\n\n <bsmodal id="newApplication"\n title="Create New Application"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="newApplicationDialog"\n extrabuttonlabel="Create"\n
ng-cloak>\n <p>New application name: <input ng-model="$parent.newApp.name" ug-validate required type="text" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" /></p>\n </bsmodal>\n <div id="intro-5-applications"> \n <h2 class="title" > Applications <a class="help_tooltip" ng-show="help.helpTooltipsEnabled" ng-mouseover="help.sendTooltipGA(\'applications\')" href="#" ng-attr-tooltip="{{tooltip_applications}}" tooltip-placement="right">(?)</a>\n <div class="header-button btn-group pull-right">\n <a class="btn filter-selector" style="{{applicationsSize === 10 ? \'width:290px\':\'\'}}" ng-click="showModal(\'newApplication\')">\n <span class="filter-label">Add New App</span>\n </a>\n </div>\n </h2>\n \n <table class="table table-striped">\n <tr ng-repeat="application in applications">\n <td>{{application.name}}</td>\n <td style="text-align: right">{{application.uuid}}</td>\n
</tr>\n </table>\n </div>\n <bsmodal id="regenerateCredentials"\n title="Confirmation"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="regenerateCredentialsDialog"\n extrabuttonlabel="Yes"\n ng-cloak>\n Are you sure you want to regenerate the credentials?\n </bsmodal>\n <div id="intro-6-org-api-creds">\n <h2 class="title" >Organization API Credentials <a class="help_tooltip" ng-mouseover="help.sendTooltipGA(\'api org credentials\')" ng-show="help.helpTooltipsEnabled" href="#" ng-attr-tooltip="{{tooltip_org_api_creds}}" tooltip-placement="right">(?)</a>\n <div class="header-button btn-group pull-right">\n <a class="btn filter-selector" ng-click="showModal(\'regenerateCredentials\')">\n <span class="filter-label">Regenerate Org Credentials</span>\n </a>\n </div>\n </h2>\n \n <table class="table table-striped">\n <tr>\n
<td >Client ID</td>\n <td style="text-align: right" >{{orgAPICredentials.client_id}}</td>\n </tr>\n <tr>\n <td>Client Secret</td>\n <td style="text-align: right">{{orgAPICredentials.client_secret}}</td>\n </tr>\n </table>\n </div>\n <bsmodal id="newAdministrator"\n title="Create New Administrator"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="newAdministratorDialog"\n extrabuttonlabel="Create"\n ng-cloak>\n <p>New administrator email: <input id="newAdminInput" ug-validate ng-model="$parent.admin.email" pattern="emailRegex" ng-attr-title="{{emailRegexDescription}}" required type="email" /></p>\n </bsmodal>\n <div id="intro-7-org-admins">\n <h2 class="title" >Organization Administrators <a class="help_tooltip" ng-mouseover="help.sendTooltipGA(\'org admins\')" ng-show="help.helpTooltipsEnabled" href="#" ng-attr-tooltip="{{tooltip_org_admins}
}" tooltip-placement="right">(?)</a>\n <div class="header-button btn-group pull-right">\n <a class="btn filter-selector" ng-click="showModal(\'newAdministrator\')">\n <span class="filter-label">Add New Administrator</span>\n </a>\n </div>\n </h2>\n \n <table class="table table-striped">\n <tr ng-repeat="administrator in orgAdministrators">\n <td><img style="width:30px;height:30px;" ng-src="{{administrator.image}}"> {{administrator.name}}</td>\n <td style="text-align: right">{{administrator.email}}</td>\n </tr>\n </table>\n </div>\n </div>\n\n <div class="span6">\n <div id="intro-8-activities">\n <h2 class="title">Activities <a class="help_tooltip" ng-mouseover="help.sendTooltipGA(\'activities\')" ng-show="help.helpTooltipsEnabled" href="#" ng-attr-tooltip="{{tooltip_activities}}" tooltip-placement="right">(?)</a></h2>\n <table class="table table-striped">\n <tr ng-repeat="activity in ac
tivities">\n <td>{{activity.title}}</td>\n <td style="text-align: right">{{activity.date}}</td>\n </tr>\n </table>\n </div>\n </div>\n\n\n </section>\n</div>'),$templateCache.put("profile/account.html",'<page-title title=" Account Settings" icon=""></page-title>\n\n<section class="row-fluid">\n <div class="span12 tab-content">\n <div class="menu-toolbar">\n <ul class="inline">\n <li class="tab" ng-show="!use_sso" ng-class="currentAccountPage.route === \'/profile/profile\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" id="profile-link" ng-click="selectAccountPage(\'/profile/profile\')"><i class="pictogram"></i>Profile</a></li>\n <li class="tab" ng-class="currentAccountPage.route === \'/profile/organizations\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" id="account-link" ng-click="selectAccountPage(\'/profile/organizations\')"><i class="pictogram">👥</i>Organizations</a></li>\n </ul
>\n </div>\n <span ng-include="currentAccountPage.template"></span>\n </div>\n</section>'),$templateCache.put("profile/organizations.html",'<div class="content-page" ng-controller="OrgCtrl">\n\n\n\n <bsmodal id="newOrganization"\n title="Create New Organization"\n close="hideModal"\n closelabel="Cancel"\n extrabutton="addOrganization"\n extrabuttonlabel="Create"\n ng-cloak>\n <fieldset>\n\n <div class="control-group">\n <label for="new-user-orgname">Organization Name</label>\n\n <div class="controls">\n <input type="text" required title="Name" ug-validate ng-pattern="nameRegex" ng-attr-title="{{nameRegexDescription}}" ng-model="$parent.org.name" name="name" id="new-user-orgname" class="input-xlarge"/>\n\n <p class="help-block hide"></p>\n </div>\n </div>\n\n </fieldset>\n </bsmodal>\n\n\n <div class="row-fluid" >\n <div class="span3 user-col ">\n\n
<div class="button-toolbar span12">\n\n <button class="btn btn-primary toolbar" ng-click="showModal(\'newOrganization\')" ng-show="true"><i class="pictogram"></i>\n </button>\n
<TRUNCATED>
[19/34] building changes updating bower
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/efe34294/portal/test/coverage/instrument/js/usergrid-coverage.min.js
----------------------------------------------------------------------
diff --git a/portal/test/coverage/instrument/js/usergrid-coverage.min.js b/portal/test/coverage/instrument/js/usergrid-coverage.min.js
index b02fa5f..2a10462 100644
--- a/portal/test/coverage/instrument/js/usergrid-coverage.min.js
+++ b/portal/test/coverage/instrument/js/usergrid-coverage.min.js
@@ -1,4 +1,4 @@
-/*! usergrid@2.0.1 2014-03-27 */
+/*! usergrid@2.0.1 2014-03-28 */
angular.module("appservices").run(["$templateCache",function($templateCache){"use strict";$templateCache.put("activities/activities.html",'<section class="row-fluid">\n'+' <div class="span12">\n'+' <div class="page-filters">\n'+' <h1 class="title" class="pull-left"><i class="pictogram title">📱</i> Activities</h1>\n'+" </div>\n"+" </div>\n"+"\n"+"</section>\n"+'<section class="row-fluid">\n'+' <div class="span12 tab-content">\n'+' <table class="table table-striped">\n'+" <tbody>\n"+' <tr class="table-header">\n'+" <td>Date</td>\n"+" <td></td>\n"+" <td>User</td>\n"+" <td>Content</td>\n"+" <td>Verb</td>\n"+" <td>UUID</td>\n"+" </tr>\n"+' <tr class="zebraRows" ng-repeat="activity in activities">\n'+" <td>{{formatDate(activity.created)}}</td>\n"+' <td class="gravatar20"> <img ng-src="{{activity.actor.picture}}"/>\n'+" </td>\n"+" <td>{{activity.actor.displayName}}</td>\n"+"
<td>{{activity.content}}</td>\n"+" <td>{{activity.verb}}</td>\n"+" <td>{{activity.uuid}}</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"+" </div>\n"+"</section>");$templateCache.put("app-overview/app-overview.html",'<div class="app-overview-content" >\n'+' <section class="row-fluid">\n'+"\n"+' <page-title title=" Summary" icon="📱"></page-title>\n'+' <section class="row-fluid">\n'+' <h2 class="title" id="app-overview-title">{{currentApp}}</h2>\n'+" </section>\n"+' <section class="row-fluid">\n'+"\n"+' <div class="span6">\n'+' <chart id="appOverview"\n'+' chartdata="appOverview.chart"\n'+' type="column"></chart>\n'+" </div>\n"+"\n"+' <div class="span6">\n'+' <table class="table table-striped">\n'+' <tr class="table-header">\n'+" <td>Path</td>\n"+" <td>Title</td>\n"+" </tr>\n"+' <tr class="zebraRows" ng-repeat="(k,v) in collections">\n'+" <td
>{{v.title}}</td>\n"+" <td>{{v.count}}</td>\n"+" </tr>\n"+" </table>\n"+" </div>\n"+"\n"+" </section>\n"+"</div>");$templateCache.put("app-overview/doc-includes/android.html","<h2>1. Integrate the SDK into your project</h2>\n"+"<p>You can integrate Apigee features into your app by including the SDK in your project. You can do one of the following:</p>\n"+"\n"+'<ul class="nav nav-tabs" id="myTab">\n'+' <li class="active"><a data-toggle="tab" href="#existing_project">Existing project</a></li>\n'+' <li><a data-toggle="tab" href="#new_project">New project</a></li>\n'+"</ul>\n"+"\n"+'<div class="tab-content">\n'+' <div class="tab-pane active" id="existing_project">\n'+' <a class="jumplink" name="add_the_sdk_to_an_existing_project"></a>\n'+" <p>If you've already got an Android project, you can integrate the Apigee SDK into your project as you normally would:</p>\n"+' <div id="collapse">\n'+' <a href="#jar_collapse" class="btn" d
ata-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a> \n'+" </div>\n"+' <div id="jar_collapse" class="collapse">\n'+" <p>Add <code>apigee-android-<version>.jar</code> to your class path by doing the following:</p>\n"+" \n"+" <h3>Android 4.0 (or later) projects</h3>\n"+" <p>Copy the jar file into the <code>/libs</code> folder in your project.</p>\n"+" \n"+" <h3>Android 3.0 (or earlier) projects</h3>\n"+" <ol>\n"+" <li>In the Eclipse <strong>Package Explorer</strong>, select your application's project folder.</li>\n"+" <li>Click the <strong>File > Properties</strong> menu.</li>\n"+" <li>In the <strong>Java Build Path</strong> section, click the <strong>Libraries</strong> tab, click <strong>Add External JARs</strong>.</li>\n"+" <li>Browse to <code>apigee-android-<version>.jar</code>, then click <strong>Open</strong>.</li>\n"+" <li>Order the <code>apigee-android-<version>.jar</code> at the t
op of the class path:\n"+" <ol>\n"+" <li>In the Eclipse <strong>Package Explorer</strong>, select your application's project folder.</li>\n"+" <li>Click the <strong>File > Properties</strong> menu.</li>\n"+" <li>In the properties dialog, in the <strong>Java Build Path</strong> section, click the <strong>Order and Export</strong> tab.</li>\n"+" <li>\n"+" <p><strong>IMPORTANT:</strong> Select the checkbox for <code>apigee-android-<version>.jar</code>, then click the <strong>Top</strong> button.</p>\n"+" </li>\n"+" </ol>\n"+" </li>\n"+" </ol>\n"+' <div class="warning">\n'+" <h3>Applications using Ant</h3>\n"+" <p>If you are using Ant to build your application, you must also copy <code>apigee-android-<version>.jar</code> to the <code>/libs</code> folder in your application.</p>\n"+" </div>\n"+" </div>\n"+" </div>\n"+' <div class="tab-pane" id="new_project">\n'+' <a class="jumplink" name=
"create_a_new_project_based_on_the_SDK"></a>\n'+" <p>If you don't have a project yet, you can begin by using the project template included with the SDK. The template includes support for SDK features.</p>\n"+" <ul>\n"+" <li>Locate the project template in the expanded SDK. It should be at the following location:\n"+" <pre><sdk_root>/new-project-template</pre>\n"+" </li>\n"+" </ul>\n"+" </div>\n"+"</div>\n"+"<h2>2. Update permissions in AndroidManifest.xml</h2>\n"+"<p>Add the following Internet permissions to your application's <code>AndroidManifest.xml</code> file if they have not already been added. Note that with the exception of INTERNET, enabling all other permissions are optional.</p>\n"+"<pre>\n"+'<uses-permission android:name="android.permission.INTERNET" />\n'+'<uses-permission android:name="android.permission.READ_PHONE_STATE" />\n'+'<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />\n'+'<uses-permission andro
id:name="android.permission.ACCESS_FINE_LOCATION" />\n'+'<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />\n'+"</pre>\n"+"<h2>3. Initialize the SDK</h2>\n"+"<p>To initialize the App Services SDK, you must instantiate the <code>ApigeeClient</code> class. There are multiple ways to handle this step, but we recommend that you do the following:</p>\n"+"<ol>\n"+" <li>Subclass the <code>Application</code> class, and add an instance variable for the <code>ApigeeClient</code> to it, along with getter and setter methods.\n"+" <pre>\n"+"public class YourApplication extends Application\n"+"{\n"+" \n"+" private ApigeeClient apigeeClient;\n"+" \n"+" public YourApplication()\n"+" {\n"+" this.apigeeClient = null;\n"+" }\n"+" \n"+" public ApigeeClient getApigeeClient()\n"+" {\n"+" return this.apigeeClient;\n"+" }\n"+" \n"+" public void setApigeeClien
t(ApigeeClient apigeeClient)\n"+" {\n"+" this.apigeeClient = apigeeClient;\n"+" }\n"+"} \n"+" </pre>\n"+" </li>\n"+" <li>Declare the <code>Application</code> subclass in your <code>AndroidManifest.xml</code>. For example:\n"+" <pre>\n"+"<application>\n"+' android:allowBackup="true"\n'+' android:icon="@drawable/ic_launcher"\n'+' android:label="@string/app_name"\n'+' android:name=".YourApplication"\n'+" …\n"+"</application> \n"+" </pre>\n"+" </li>\n"+" <li>Instantiate the <code>ApigeeClient</code> class in the <code>onCreate</code> method of your first <code>Activity</code> class:\n"+" <pre>\n"+"import com.apigee.sdk.ApigeeClient;\n"+"\n"+"@Override\n"+"protected void onCreate(Bundle savedInstanceState) {\n"+" super.onCreate(savedInstanceState); \n"+" \n"+' String ORGNAME = "{{currentOrg}}";\n'+' String APPNAME = "{{currentApp}}";\n'+" \n"+" ApigeeClient apigeeClient = new ApigeeClient(ORGNAME,APPNAME,this.getBaseConte
xt());\n"+"\n"+" // hold onto the ApigeeClient instance in our application object.\n"+" yourApp = (YourApplication) getApplication;\n"+" yourApp.setApigeeClient(apigeeClient); \n"+"}\n"+" </pre>\n"+" <p>This will make the instance of <code>ApigeeClient</code> available to your <code>Application</code> class.</p>\n"+" </li>\n"+"</ol>\n"+"<h2>4. Import additional SDK classes</h2>\n"+"<p>The following classes will enable you to call common SDK methods:</p>\n"+"<pre>\n"+"import com.apigee.sdk.data.client.DataClient; //App Services data methods\n"+"import com.apigee.sdk.apm.android.MonitoringClient; //App Monitoring methods\n"+"import com.apigee.sdk.data.client.callbacks.ApiResponseCallback; //API response handling\n"+"import com.apigee.sdk.data.client.response.ApiResponse; //API response object\n"+"</pre>\n"+" \n"+"<h2>5. Verify SDK installation</h2>\n"+"\n"+"<p>Once initialized, App Services will also automatically instantiate the <code>MonitoringClient</code> class and begin logg
ing usage, crash and error metrics for your app.</p>\n"+'<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n'+"<p>To verify that the SDK has been properly initialized, run your app, then go to 'Monitoring' > 'App Usage' in the <a href=\"https://www.apigee.com/usergrid\">App Services admin portal</a> to verify that data is being sent.</p>\n"+'<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n'+"\n"+"<h2>Installation complete! Try these next steps</h2>\n"+"<ul>\n"+" <li>\n"+" <h3><strong>Call additional SDK methods in your code</strong></h3>\n"+" <p>The <code>DataClient</code> and <code>MonitoringClient</code> classes are also automatically instantiated for you, and accessible with the following accessors:</p>\n"+" <ul>\n"+" <li>\n"+" <pre>DataClient dataClient = apigeeClient.getDataClient();</pre>\n"+" <p>Use this object to access the data methods of the App Services SDK, inclu
ding those for push notifications, data store, and geolocation.</p>\n"+" </li>\n"+" <li>\n"+" <pre>MonitoringClient monitoringClient = apigeeClient.getMonitoringClient();</pre>\n"+" <p>Use this object to access the app configuration and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</p>\n"+" </li>\n"+" </ul>\n"+" </li> \n"+" <li> \n"+" <h3><strong>Add App Services features to your app</strong></h3>\n"+" <p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these links to get started with a few of our most popular features:</p>\n"+" <ul>\n"+' <li><strong><a href="http://apigee.com/docs/node/8410">Push notifications</a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per month for free!</li>\
n'+' <li><strong>App Monitoring</strong>: When you initialize the App Services SDK, a suite of valuable, <a href="http://apigee.com/docs/node/13190">customizable</a> application monitoring features are automatically enabled that deliver the data you need to fine tune performance, analyze issues, and improve user experience.\n'+" <ul>\n"+' <li><strong><a href="http://apigee.com/docs/node/13176">App Usage Monitoring</a></strong>: Visit the <a href="https://apigee.com/usergrid">App Services admin portal</a> to view usage data for your app, including data on device models, platforms and OS versions running your app.</li> \n'+' <li><strong><a href="http://apigee.com/docs/node/12861">API Performance Monitoring</a></strong>: Network performance is key to a solid user experience. In the <a href="https://apigee.com/usergrid">App Services admin portal</a> you can view key metrics, including response time, number of requests and raw API request logs.</li> \n'+' <li><strong>
<a href="http://apigee.com/docs/node/13177">Error & Crash Monitoring</a></strong>: Get alerted to any errors or crashes, then view them in the <a href="https://apigee.com/usergrid">App Services admin portal</a>, where you can also analyze raw error and crash logs.</li>\n'+" </ul> \n"+" </li>\n"+' <li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Target users or return result sets based on user location to keep your app highly-relevant.</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about dealing with a database ever again.</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement user registration, as well as OAuth 2.0-compliant login and authentication.</li>\n'+" </ul>\n"+" </li>\n"+" <li>
\n"+" <h3><strong>Check out the sample apps</strong></h3>\n"+" <p>The SDK includes samples that illustrate Apigee features. You'll find the samples in the following location in your SDK download:</p>\n"+" <pre>\n"+"apigee-android-sdk-<version>\n"+" ...\n"+" /samples\n"+" </pre>\n"+' <div id="collapse">\n'+' <a href="#samples_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n'+" </div>\n"+' <div id="samples_collapse" class="collapse">\n'+" <p>The samples include the following:</p>\n"+' <table class="table">\n'+" <thead>\n"+" <tr>\n"+' <th scope="col">Sample</th>\n'+' <th scope="col">Description</th>\n'+" </tr>\n"+" </thead>\n"+" <tbody>\n"+" <tr>\n"+" <td>books</td>\n"+" <td>An app for storing a list of books that shows Apigee database operations such as reading, creating, and deleting.</td>\n"+" </tr>\n"+" <tr>\n"+" <td>messagee</td>\n"+" <td>An app
for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n"+" </tr>\n"+" <tr>\n"+" <td>push</td>\n"+" <td>An app that uses the push feature to send notifications to the devices of users who have subscribed for them.</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"+" </div>\n"+" </li>\n"+"</ul>\n");$templateCache.put("app-overview/doc-includes/ios.html","<h2>1. Integrate ApigeeiOSSDK.framework</h2>\n"+'<a class="jumplink" name="add_the_sdk_to_an_existing_project"></a>\n'+'<ul class="nav nav-tabs" id="myTab">\n'+' <li class="active"><a data-toggle="tab" href="#existing_project">Existing project</a></li>\n'+' <li><a data-toggle="tab" href="#new_project">New project</a></li>\n'+"</ul>\n"+'<div class="tab-content">\n'+' <div class="tab-pane active" id="existing_project">\n'+" <p>If you've already got an Xcode iOS project, add it into your project as you normally would.</p>\n"+' <div id="collapse"><a class="btn" d
ata-toggle="collapse" href="#framework_collapse">Details</a></div>\n'+' <div class="collapse" id="framework_collapse">\n'+" <ol>\n"+" <li>\n"+" <p>Locate the SDK framework file so you can add it to your project. For example, you'll find the file at the following path:</p>\n"+" <pre>\n"+"<sdk_root>/bin/ApigeeiOSSDK.framework</pre>\n"+" </li>\n"+" <li>In the <strong>Project Navigator</strong>, click on your project file, and then the <strong>Build Phases</strong> tab. Expand <strong>Link Binary With Libraries</strong>.</li>\n"+" <li>Link the Apigee iOS SDK into your project.\n"+" <ul>\n"+" <li>Drag ApigeeiOSSDK.framework into the Frameworks group created by Xcode.</li>\n"+" </ul>\n"+" <p>OR</p>\n"+" <ol>\n"+" <li>At the bottom of the <strong>Link Binary With Libraries</strong> group, click the <strong>+</strong> button. Then click <strong>Add Other</strong>.</li>\n"+" <li>Navigate to the directory that contains ApigeeiOS
SDK.framework, and choose the ApigeeiOSSDK.framework folder.</li>\n"+" </ol>\n"+" </li>\n"+" </ol>\n"+" </div>\n"+" </div>\n"+' <div class="tab-pane" id="new_project"><a class="jumplink" name="create_a_new_project_based_on_the_SDK"></a>\n'+" <p>If you're starting with a clean slate (you don't have a project yet), you can begin by using the project template included with the SDK. The template includes support for SDK features.</p>\n"+" <ol>\n"+" <li>\n"+" <p>Locate the project template in the expanded SDK. It should be at the following location:</p>\n"+" <pre>\n"+"<sdk_root>/new-project-template</pre>\n"+" </li>\n"+" <li>In the project template directory, open the project file: Apigee App Services iOS Template.xcodeproj.</li>\n"+" <li>Get acquainted with the template by looking at its readme file.</li>\n"+" </ol>\n"+" </div>\n"+"</div>\n"+"<h2>2. Add required iOS frameworks</h2>\n"+"<p>Ensure that the following iOS frameworks are part of you
r project. To add them, under the <strong>Link Binary With Libraries</strong> group, click the <strong>+</strong> button, type the name of the framework you want to add, select the framework found by Xcode, then click <strong>Add</strong>.</p>\n"+"<ul>\n"+" <li>QuartzCore.framework</li>\n"+" <li>CoreLocation.framework</li>\n"+" <li>CoreTelephony.framework </li>\n"+" <li>Security.framework</li>\n"+" <li>SystemConfiguration.framework</li>\n"+" <li>UIKit.framework</li>\n"+"</ul>\n"+"<h2>3. Update 'Other Linker Flags'</h2>\n"+"<p>In the <strong>Build Settings</strong> panel, add the following under <strong>Other Linker Flags</strong>:</p>\n"+"<pre>\n"+"-ObjC -all_load</pre>\n"+"<p>Confirm that flags are set for both <strong>DEBUG</strong> and <strong>RELEASE</strong>.</p>\n"+"<h2>4. Initialize the SDK</h2>\n"+'<p>The <em>ApigeeClient</em> class initializes the App Services SDK. To do this you will need your organization name and application name, which are available in the <em>Gett
ing Started</em> tab of the <a href="https://www.apigee.com/usergrid/">App Service admin portal</a>, under <strong>Mobile SDK Keys</strong>.</p>\n'+"<ol>\n"+" <li>Import the SDK\n"+" <p>Add the following to your source code to import the SDK:</p>\n"+" <pre>\n"+"#import <ApigeeiOSSDK/Apigee.h></pre>\n"+" </li>\n"+" <li>\n"+" <p>Declare the following properties in <code>AppDelegate.h</code>:</p>\n"+" <pre>\n"+"@property (strong, nonatomic) ApigeeClient *apigeeClient; \n"+"@property (strong, nonatomic) ApigeeMonitoringClient *monitoringClient;\n"+"@property (strong, nonatomic) ApigeeDataClient *dataClient; \n"+" </pre>\n"+" </li>\n"+" <li>\n"+" <p>Instantiate the <code>ApigeeClient</code> class inside the <code>didFinishLaunching</code> method of <code>AppDelegate.m</code>:</p>\n"+" <pre>\n"+"//Replace 'AppDelegate' with the name of your app delegate class to instantiate it\n"+"AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];\n"+"\n"
+"//Sepcify your App Services organization and application names\n"+'NSString *orgName = @"{{currentOrg}}";\n'+'NSString *appName = @"{{currentApp}}";\n'+"\n"+"//Instantiate ApigeeClient to initialize the SDK\n"+"appDelegate.apigeeClient = [[ApigeeClient alloc]\n"+" initWithOrganizationId:orgName\n"+" applicationId:appName];\n"+" \n"+"//Retrieve instances of ApigeeClient.monitoringClient and ApigeeClient.dataClient\n"+"self.monitoringClient = [appDelegate.apigeeClient monitoringClient]; \n"+"self.dataClient = [appDelegate.apigeeClient dataClient]; \n"+" </pre>\n"+" </li>\n"+"</ol>\n"+"\n"+"<h2>5. Verify SDK installation</h2>\n"+"\n"+"<p>Once initialized, App Services will also automatically instantiate the <code>ApigeeMonitoringClient</code> class and begin logging usage, crash and error metrics for your app.</p>\n"+"\n"+"<p>To verify that the SDK has been properly initialized, run your app, then go to
<strong>'Monitoring' > 'App Usage'</strong> in the <a href=\"https://www.apigee.com/usergrid\">App Services admin portal</a> to verify that data is being sent.</p>\n"+'<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n'+'<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n'+"\n"+"<h2>Installation complete! Try these next steps</h2>\n"+"<ul> \n"+" <li>\n"+" <h3><strong>Call additional SDK methods in your code</strong></h3>\n"+" <p>Create an instance of the AppDelegate class, then use <code>appDelegate.dataClient</code> or <code>appDelegate.monitoringClient</code> to call SDK methods:</p>\n"+' <div id="collapse"><a class="btn" data-toggle="collapse" href="#client_collapse">Details</a></div>\n'+' <div class="collapse" id="client_collapse">\n'+" <ul>\n"+" <li><code>appDelegate.dataClient</code>: Used to access the data methods of the App Services SDK, including those for push notifi
cations, data store, and geolocation.</li>\n"+" <li><code>appDelegate.monitoringClient</code>: Used to access the app configuration and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</li>\n"+" </ul>\n"+" <h3>Example</h3>\n"+" <p>For example, you could create a new entity with the following:</p>\n"+" <pre>\n"+"AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];\n"+"ApigeeClientResponse *response = [appDelegate.dataClient createEntity:entity];\n"+" </pre>\n"+" </div>\n"+"\n"+" </li>\n"+" <li>\n"+" <h3><strong>Add App Services features to your app</strong></h3>\n"+" <p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these links to get started with a few of our most popular features:</p>\n"+" <ul>\n"+' <li><strong><a href="http://apigee.com/docs/node/8410">Push notifications<
/a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per month for free!</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Target users or return result sets based on user location to keep your app highly-relevant.</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about dealing with a database ever again.</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement user registration, as well as OAuth 2.0-compliant login and authentication.</li>\n'+" </ul>\n"+" </li>\n"+" <li>\n"+" <h3><strong>Check out the sample apps</strong></h3>\n"+' <p>The SDK includes samples that illust
rate Apigee features. To look at them, open the .xcodeproj file for each in Xcode. To get a sample app running, open its project file, then follow the steps described in the section, <a target="_blank" href="http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios">Add the SDK to an existing project</a>.</p>\n'+" <p>You'll find the samples in the following location in your SDK download:</p>\n"+" <pre>\n"+"apigee-ios-sdk-<version>\n"+" ...\n"+" /samples\n"+" </pre>\n"+' <div id="collapse"><a class="btn" data-toggle="collapse" href="#samples_collapse">Details</a></div>\n'+' <div class="collapse" id="samples_collapse">\n'+" <p>The samples include the following:</p>\n"+' <table class="table">\n'+" <thead>\n"+" <tr>\n"+' <th scope="col">Sample</th>\n'+' <th scope="col">Description</th>\n'+" </tr>\n"+" </thead>\n"+" <tbody>\n"+" <tr>\n"+" <td>books</td>\n"+" <td>An app for storing a list of books that shows Ap
igee database operations such as reading, creating, and deleting.</td>\n"+" </tr>\n"+" <tr>\n"+" <td>messagee</td>\n"+" <td>An app for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n"+" </tr>\n"+" <tr>\n"+" <td>push</td>\n"+" <td>An app that uses the push feature to send notifications to the devices of users who have subscribed for them.</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"+" </div>\n"+" <p> </p>\n"+" </li>\n"+"</ul>\n");$templateCache.put("app-overview/doc-includes/javascript.html","<h2>1. Import the SDK into your HTML</h2>\n"+"<p>To enable support for Apigee-related functions in your HTML, you'll need to include <code>apigee.js</code> in your app. To do this, add the following to the <code>head</code> block of your HTML:</p>\n"+"<pre>\n"+'<script type="text/javascript" src="path/to/js/sdk/apigee.js"></script>\n'+"</pre>\n"+"<h2>2. Instantiate Apigee.Clien
t</h2>\n"+"<p>Apigee.Client initializes the App Services SDK, and gives you access to all of the App Services SDK methods.</p>\n"+"<p>You will need to pass a JSON object with the UUID or name for your App Services organization and application when you instantiate it.</p>\n"+"<pre>\n"+"//Apigee account credentials, available in the App Services admin portal \n"+"var client_creds = {\n"+" orgName:'{{currentOrg}}',\n"+" appName:'{{currentApp}}'\n"+" }\n"+"\n"+"//Initializes the SDK. Also instantiates Apigee.MonitoringClient\n"+"var dataClient = new Apigee.Client(client_creds); \n"+"</pre>\n"+"\n"+"<h2>3. Verify SDK installation</h2>\n"+"\n"+"<p>Once initialized, App Services will also automatically instantiate <code>Apigee.MonitoringClient</code> and begin logging usage, crash and error metrics for your app.</p>\n"+"\n"+"<p>To verify that the SDK has been properly initialized, run your app, then go to <strong>'Monitoring' > 'App Usage'</strong> in the <a href=\"https:
//www.apigee.com/usergrid\">App Services admin portal</a> to verify that data is being sent.</p>\n"+'<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n'+'<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n'+"\n"+"<h2>Installation complete! Try these next steps</h2>\n"+"<ul>\n"+" <li> \n"+" <h3><strong>Call additional SDK methods in your code</strong></h3>\n"+" <p>Use <code>dataClient</code> or <code>dataClient.monitor</code> to call SDK methods:</p>\n"+' <div id="collapse">\n'+' <a href="#client_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n'+" </div>\n"+' <div id="client_collapse" class="collapse">\n'+" <ul>\n"+" <li><code>dataClient</code>: Used to access the data methods of the App Services SDK, including those for push notifications, data store, and geolocation.</li>\n"+" <li><code>dataClient.monitor</code>: Used
to access the app configuration and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</li>\n"+" </ul>\n"+" </div>\n"+" </li> \n"+" <li>\n"+" <h3><strong>Add App Services features to your app</strong></h3>\n"+" <p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these links to get started with a few of our most popular features:</p>\n"+" <ul>\n"+' <li><strong><a href="http://apigee.com/docs/node/8410">Push notifications</a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per month for free!</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Keep your app highly-relevant by targeting users or returning result sets based on user location.</li>\n'+' <li><strong>
<a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about dealing with a database ever again.</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement registration, login and OAuth 2.0-compliant authentication.</li>\n'+" </ul>\n"+" </li>\n"+" <li>\n"+" <h3><strong>Check out the sample apps</strong></h3>\n"+" <p>The SDK includes samples that illustrate Apigee features. To look at them, open the .xcodeproj file for each in Xcode. You'll find the samples in the following location in your SDK download:</p>\n"+" <pre>\n"+"apigee-javascript-sdk-master\n"+" ...\n"+" /samples \n"+" </pre>\n"+' <div id="collapse">\n'+' <a href="#samples_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n'+" </div>\
n"+' <div id="samples_collapse" class="collapse">\n'+" <p>The samples include the following:</p>\n"+' <table class="table">\n'+" <thead>\n"+" <tr>\n"+' <th scope="col">Sample</th>\n'+' <th scope="col">Description</th>\n'+" </tr>\n"+" </thead>\n"+" <tbody>\n"+" <tr>\n"+" <td>booksSample.html</td>\n"+" <td>An app for storing a list of books that shows Apigee database operations such as reading, creating, and deleting.</td>\n"+" </tr>\n"+" <tr>\n"+" <td>messagee</td>\n"+" <td>An app for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n"+" </tr>\n"+" <tr>\n"+" <td>monitoringSample.html</td>\n"+" <td>Shows basic configuration and initialization of the HTML5 app monitoring functionality. Works in browser, PhoneGap, Appcelerator, and Trigger.io.</td>\n"+" </tr>\n"+" <tr>\n"+" <td>readmeSample.html</td>\n"+" <td>A simple app for reading data from
an Apigee database.</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"+" </div> \n"+" </li> \n"+"</ul>\n");$templateCache.put("app-overview/doc-includes/net.html","");$templateCache.put("app-overview/doc-includes/node.html","");$templateCache.put("app-overview/doc-includes/ruby.html","");$templateCache.put("app-overview/getting-started.html",'<div class="setup-sdk-content" >\n'+"\n"+' <bsmodal id="regenerateCredentials"\n'+' title="Confirmation"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="regenerateCredentialsDialog"\n'+' extrabuttonlabel="Yes"\n'+" ng-cloak>\n"+" Are you sure you want to regenerate the credentials?\n"+" </bsmodal>\n"+"\n"+' <page-title icon="🚀" title="Getting Started"></page-title>\n'+"\n"+' <section class="row-fluid">\n'+"\n"+"\n"+"\n"+"\n"+' <div class="span8">\n'+"\n"+' <h2 class="title">Install the SDK for app {{currentApp}}</h2>\n'+" <p>Cli
ck on a platform icon below to view SDK installation instructions for that platform.</p>\n"+' <ul class="inline unstyled">\n'+' <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#ios"><i class="sdk-icon-large-ios"></i></a></li>-->\n'+' <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#android"><i class="sdk-icon-large-android"></i></a></li>-->\n'+' <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#javascript"><i class="sdk-icon-large-js"></i></a></li>-->\n'+"\n"+"\n"+" <li ng-click=\"showSDKDetail('ios')\"\n"+' analytics-on="click"\n'+' analytics-label="App Services"\n'+' analytics-category="Getting Started"\n'+' analytics-event="iOS SDK"><i class="sdk-icon-large-ios"></i></li>\n'+" <li ng-click=\"showSDKDetail('android')\"\n"+' analytics-on="click"\n'+' anal
ytics-label="App Services"\n'+' analytics-category="Getting Started"\n'+' analytics-event="Android SDK"><i class="sdk-icon-large-android"></i></li>\n'+" <li ng-click=\"showSDKDetail('javascript')\"\n"+' analytics-on="click"\n'+' analytics-label="App Services"\n'+' analytics-category="Getting Started"\n'+' analytics-event="JS SDK"><i class="sdk-icon-large-js"></i></li>\n'+' <li><a target="_blank"\n'+" ng-click=\"showSDKDetail('nocontent')\"\n"+' href="http://apigee.com/docs/usergrid/content/sdks-and-examples#nodejs"\n'+' analytics-on="click"\n'+' analytics-label="App Services"\n'+' analytics-category="Getting Started"\n'+' analytics-event="Node SDK"><i class="sdk-icon-large-node"></i></a></li>\n'+' <li><a target="_blank"\n'+" ng-click=\"showSDKDetail('nocontent')\"\n"+' href="http://apige
e.com/docs/usergrid/content/sdks-and-examples#ruby"\n'+' analytics-on="click"\n'+' analytics-label="App Services"\n'+' analytics-category="Getting Started"\n'+' analytics-event="Ruby SDK"><i class="sdk-icon-large-ruby"></i></a></li>\n'+' <li><a target="_blank"\n'+" ng-click=\"showSDKDetail('nocontent')\"\n"+' href="http://apigee.com/docs/usergrid/content/sdks-and-examples#c"\n'+' analytics-on="click"\n'+' analytics-label="App Services"\n'+' analytics-category="Getting Started"\n'+' analytics-event="DotNet SDK"><i class="sdk-icon-large-net"></i></a></li>\n'+" </ul>\n"+"\n"+' <section id="intro-container" class="row-fluid intro-container">\n'+"\n"+' <div class="sdk-intro">\n'+" </div>\n"+"\n"+' <div class="sdk-intro-content">\n'+"\n"+' <a class="btn normal white pull-right" ng-href="{{sdkLink}}" targ
et="_blank">\n'+" Download SDK\n"+" </a>\n"+' <a class="btn normal white pull-right" ng-href="{{docsLink}}" target="_blank">\n'+" More Docs\n"+" </a>\n"+' <h3 class="title"><i class="pictogram">📕</i>{{contentTitle}}</h3>\n'+"\n"+' <div ng-include="getIncludeURL()"></div>\n'+" </div>\n"+"\n"+" </section>\n"+" </div>\n"+"\n"+' <div class="span4 keys-creds">\n'+' <h2 class="title">Mobile sdk keys</h2>\n'+" <p>For mobile SDK initialization.</p>\n"+' <dl class="app-creds">\n'+" <dt>Org Name</dt>\n"+" <dd>{{currentOrg}}</dd>\n"+" <dt>App Name</dt>\n"+" <dd>{{currentApp}}</dd>\n"+" </dl>\n"+' <h2 class="title">Server app credentials</h2>\n'+" <p>For authenticating from a server side app (i.e. Ruby, .NET, etc.)</p>\n"+' <dl class="app-creds">\n'+" <dt>Client ID</dt>\n"+" <dd>{{clientID}}</dd>\n"+" <dt>Client Secret</
dt>\n"+" <dd>{{clientSecret}}</dd>\n"+" <dt>\n"+" \n"+" </dt>\n"+" <dd> </dd>\n"+"\n"+" <dt>\n"+' <a class="btn filter-selector" ng-click="showModal(\'regenerateCredentials\')">Regenerate</a>\n'+" </dt>\n"+" <dd></dd>\n"+" </dl>\n"+"\n"+" </div>\n"+"\n"+" </section>\n"+"</div>");
$templateCache.put("data/data.html",'<div class="content-page">\n'+"\n"+' <bsmodal id="newCollection"\n'+' title="Create new collection"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="newCollectionDialog"\n'+' extrabuttonlabel="Create"\n'+' buttonid="collection"\n'+" ng-cloak>\n"+" <fieldset>\n"+' <div class="control-group">\n'+' <label for="new-collection-name">Collection Name:</label>\n'+' <div class="controls">\n'+' <input type="text" ug-validate required ng-pattern="collectionNameRegex" ng-attr-title="{{collectionNameRegexDescription}}" ng-model="$parent.newCollection.name" name="collection" id="new-collection-name" class="input-xlarge"/>\n'+' <p class="help-block hide"></p>\n'+" </div>\n"+" </div>\n"+" </fieldset>\n"+" </bsmodal>\n"+"\n"+' <page-title title=" Collections" icon="📾"></page-title>\n'+"\n"+' <section class="row-
fluid">\n'+' <div class="span3 user-col">\n'+' <a class="btn btn-primary" id="new-collection-link" ng-click="showModal(\'newCollection\')">New Collection</a>\n'+' <ul class="user-list">\n'+" <li ng-class=\"queryCollection._type === entity.name ? 'selected' : ''\" ng-repeat=\"entity in collectionList\" ng-click=\"loadCollection('/'+entity.name);\">\n"+' <a id="collection-{{entity.name}}-link" href="javaScript:void(0)">/{{entity.name}} </a>\n'+" </li>\n"+" </ul>\n"+"\n"+" </div>\n"+"\n"+' <div class="span9 tab-content">\n'+' <div class="content-page">\n'+' <form name="dataForm" ng-submit="run();">\n'+" <fieldset>\n"+' <div class="control-group">\n'+' <div class="" data-toggle="buttons-radio">\n'+' <!--a class="btn" id="button-query-back">◀ Back</a-->\n'+" <!--Added disabled class to change the way button looks but their functionality is as usual -->\n"+'
<label class="control-label" style="display:none"><strong>Method</strong> <a id="query-method-help" href="#" class="help-link">get help</a></label>\n'+' <input type="radio" id="create-rb" name="query-action" style="margin-top: -2px;" ng-click="selectPOST();" ng-checked="verb==\'POST\'"> CREATE \n'+' <input type="radio" id="read-rb" name="query-action" style="margin-top: -2px;" ng-click="selectGET();" ng-checked="verb==\'GET\'"> READ \n'+' <input type="radio" id="update-rb" name="query-action" style="margin-top: -2px;" ng-click="selectPUT();" ng-checked="verb==\'PUT\'"> UPDATE \n'+' <input type="radio" id="delete-rb" name="query-action" style="margin-top: -2px;" ng-click="selectDELETE();" ng-checked="verb==\'DELETE\'"> DELETE\n'+" </div>\n"+" </div>\n"+"\n"+' <div class="control-group">\n'+" <strong>Path </strong>\n"+' <div class="contr
ols">\n'+' <input ng-model="data.queryPath" type="text" ug-validate id="pathDataQuery" ng-attr-title="{{pathRegexDescription}}" ng-pattern="pathRegex" class="span6" autocomplete="off" placeholder="ex: /users" required/>\n'+" </div>\n"+" </div>\n"+' <div class="control-group">\n'+' <a id="back-to-collection" class="outside-link" style="display:none">Back to collection</a>\n'+" </div>\n"+' <div class="control-group">\n'+" <strong>Query</strong>\n"+' <div class="controls">\n'+' <input ng-model="data.searchString" type="text" class="span6" autocomplete="off" placeholder="ex: select * where name=\'fred\'"/>\n'+' <div style="display:none">\n'+' <a class="btn dropdown-toggle " data-toggle="dropdown">\n'+' <span id="query-collections-caret" class="caret"></span>\n'+" </a>\n"+' <ul id="query-collections-indexes-li
st" class="dropdown-menu ">\n'+" </ul>\n"+" </div>\n"+" </div>\n"+" </div>\n"+"\n"+"\n"+" <div class=\"control-group\" ng-show=\"verb=='GET' || verb=='DELETE'\">\n"+' <label class="control-label" for="query-limit"><strong>Limit</strong> <a id="query-limit-help" href="#" ng-show="false" class="help-link">get help</a></label>\n'+' <div class="controls">\n'+' <div class="input-append">\n'+' <input ng-model="data.queryLimit" type="text" class="span5" id="query-limit" placeholder="ex: 10">\n'+" </div>\n"+" </div>\n"+" </div>\n"+"\n"+' <div class="control-group" style="display:{{queryBodyDisplay}}">\n'+' <label class="control-label" for="query-source"><strong>JSON Body</strong> <a id="query-json-help" href="#" ng-show="false" class="help-link">get help</a></label>\n'+' <div class="controls">\n'+' <textarea ng-
model="data.queryBody" id="query-source" class="span6 pull-left" rows="4">\n'+' { "name":"value" }\n'+" </textarea>\n"+" <br>\n"+' <a class="btn pull-left" ng-click="validateJson();">Validate JSON</a>\n'+" </div>\n"+" </div>\n"+' <div style="clear: both; height: 10px;"></div>\n'+' <div class="control-group">\n'+' <input type="submit" ng-disabled="!dataForm.$valid || loading" class="btn btn-primary" id="button-query" value="{{loading ? loadingText : \'Run Query\'}}"/>\n'+" </div>\n"+" </fieldset>\n"+" </form>\n"+" <div ng-include=\"display=='generic' ? 'data/display-generic.html' : ''\"></div>\n"+" <div ng-include=\"display=='users' ? 'data/display-users.html' : ''\"></div>\n"+" <div ng-include=\"display=='groups' ? 'data/display-groups.html' : ''\"></div>\n"+" <div ng-include=\"display=='roles' ? 'data/display-roles.html' : ''\"></div>\n"+"\n"+"
</div>\n"+"\n"+" </div>\n"+" </section>\n"+"\n"+"\n"+"\n"+"\n"+"</div>\n"+"\n");$templateCache.put("data/display-generic.html","\n"+"\n"+'<bsmodal id="deleteEntities"\n'+' title="Are you sure you want to delete the entities(s)?"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="deleteEntitiesDialog"\n'+' extrabuttonlabel="Delete"\n'+' buttonid="del-entity"\n'+" ng-cloak>\n"+" <fieldset>\n"+' <div class="control-group">\n'+" </div>\n"+" </fieldset>\n"+"</bsmodal>\n"+"\n"+'<span class="button-strip">\n'+' <button class="btn btn-primary" ng-disabled="!valueSelected(queryCollection._list) || deleteLoading" ng-click="deleteEntitiesDialog()">{{deleteLoading ? loadingText : \'Delete Entity(s)\'}}</button>\n'+"</span>\n"+'<table class="table table-striped collection-list">\n'+" <thead>\n"+' <tr class="table-header">\n'+' <th><input type="checkbox" ng-show="queryCollection._list.l
ength > 0" id="selectAllCheckbox" ng-model="queryBoxesSelected" ng-click="selectAllEntities(queryCollection._list,$parent,\'queryBoxesSelected\',true)"></th>\n'+" <th ng-if=\"hasProperty('name')\">Name</th>\n"+" <th>UUID</th>\n"+" <th></th>\n"+" </tr>\n"+" </thead>\n"+' <tbody ng-repeat="entity in queryCollection._list">\n'+' <tr class="zebraRows" >\n'+" <td>\n"+" <input\n"+' type="checkbox"\n'+' id="entity-{{entity._data.name}}-cb"\n'+' ng-value="entity._data.uuid"\n'+' ng-model="entity.checked"\n'+" >\n"+" </td>\n"+" <td ng-if=\"hasProperty('name')\">{{entity._data.name}}</td>\n"+" <td>{{entity._data.uuid}}</td>\n"+" <td><a href=\"javaScript:void(0)\" ng-click=\"entitySelected[$index] = !entitySelected[$index];selectEntity(entity._data.uuid)\">{{entitySelected[$index] ? 'Hide' : 'View'}} Details</a></td>\n"+" </tr>\n"+' <tr ng-if="entitySelected[$index]">\n'+' <td colspan="5">\n'+"\n"+"\n"+' <h4 style="m
argin: 0 0 20px 0">Entity Detail</h4>\n'+"\n"+"\n"+' <ul class="formatted-json">\n'+' <li ng-repeat="(k,v) in entity._data track by $index">\n'+' <span class="key">{{k}} :</span>\n'+" <!--todo - doing manual recursion to get this out the door for launch, please fix-->\n"+' <span ng-switch on="isDeep(v)">\n'+' <ul ng-switch-when="true">\n'+' <li ng-repeat="(k2,v2) in v"><span class="key">{{k2}} :</span>\n'+"\n"+' <span ng-switch on="isDeep(v2)">\n'+' <ul ng-switch-when="true">\n'+' <li ng-repeat="(k3,v3) in v2"><span class="key">{{k3}} :</span><span class="value">{{v3}}</span></li>\n'+" </ul>\n"+' <span ng-switch-when="false">\n'+' <span class="value">{{v2}}</span>\n'+" </span>\n"+" </span>\n"+" </li>\n"+" </ul>\n"+' <span ng-switch-when="false">\n'+'
<span class="value">{{v}}</span>\n'+" </span>\n"+" </span>\n"+" </li>\n"+" </ul>\n"+"\n"+' <div class="control-group">\n'+' <h4 style="margin: 20px 0 20px 0">Edit Entity</h4>\n'+' <div class="controls">\n'+' <textarea ng-model="entity._json" class="span12" rows="12"></textarea>\n'+" <br>\n"+' <a class="btn btn-primary toolbar pull-left" ng-click="validateJson();">Validate JSON</a><button type="button" class="btn btn-primary pull-right" id="button-query" ng-click="saveEntity(entity);">Save</button>\n'+" </div>\n"+" </div>\n"+" </td>\n"+" </tr>\n"+"\n"+' <tr ng-show="queryCollection._list.length == 0">\n'+' <td colspan="4">No data found</td>\n'+" </tr>\n"+" </tbody>\n"+"</table>\n"+'<div style="padding: 10px 5px 10px 5px">\n'+' <button class="btn btn-primary toolbar" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous</button>\n'+' <button class="btn btn-primary toolbar"
ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n'+"</div>\n"+"\n");$templateCache.put("data/display-groups.html","");$templateCache.put("data/display-roles.html","roles---------------------------------");$templateCache.put("data/display-users.html","\n"+'<table id="query-response-table" class="table">\n'+" <tbody>\n"+' <tr class="zebraRows users-row">\n'+' <td class="checkboxo">\n'+' <input type="checkbox" onclick="Usergrid.console.selectAllEntities(this);"></td>\n'+' <td class="gravatar50-td"> </td>\n'+' <td class="user-details bold-header">Username</td>\n'+' <td class="user-details bold-header">Display Name</td>\n'+' <td class="user-details bold-header">UUID</td>\n'+' <td class="view-details"> </td>\n'+" </tr>\n"+' <tr class="zebraRows users-row">\n'+' <td class="checkboxo">\n'+' <input class="listItem" type="checkbox" name="/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf
44-236d2eee13a7" value="bf9a95da-d508-11e2-bf44-236d2eee13a7">\n'+" </td>\n"+' <td class="gravatar50-td">\n'+' <img src="http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e" class="gravatar50">\n'+" </td>\n"+' <td class="details">\n'+" <a onclick=\"Usergrid.console.getCollection('GET', '/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/'+'bf9a95da-d508-11e2-bf44-236d2eee13a7'); $('#data-explorer').show(); return false;\" class=\"view-details\">10</a>\n"+" </td>\n"+' <td class="details"> #"><img src=x onerror=prompt(1);> </td>\n'+' <td class="details"> bf9a95da-d508-11e2-bf44-236d2eee13a7 </td>\n'+' <td class="view-details">\n'+' <a href="" onclick="$(\'#query-row-bf9a95da-d508-11e2-bf44-236d2eee13a7\').toggle(); $(\'#data-explorer\').show(); return false;" class="view-details">Details</a>\n'+" </td>\n"+" </tr>\n"+' <tr id="query-row-bf9a95da-d508-11e2-bf44-236d2eee13a7" style="display:none">\n'+' <t
d colspan="5">\n'+" <div>\n"+' <div style="padding-bottom: 10px;">\n'+' <button type="button" class="btn btn-small query-button active" id="button-query-show-row-JSON" onclick="Usergrid.console.activateQueryRowJSONButton(); $(\'#query-row-JSON-bf9a95da-d508-11e2-bf44-236d2eee13a7\').show(); $(\'#query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7\').hide(); return false;">JSON</button>\n'+' <button type="button" class="btn btn-small query-button disabled" id="button-query-show-row-content" onclick="Usergrid.console.activateQueryRowContentButton();$(\'#query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7\').show(); $(\'#query-row-JSON-bf9a95da-d508-11e2-bf44-236d2eee13a7\').hide(); return false;">Content</button>\n'+" </div>\n"+' <div id="query-row-JSON-bf9a95da-d508-11e2-bf44-236d2eee13a7">\n'+" <pre>{\n"+' "picture": "http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e",\n'+' "uuid": "bf9a95da-d508-11e2-bf4
4-236d2eee13a7",\n'+' "type": "user",\n'+' "name": "#"><img src=x onerror=prompt(1);>",\n'+' "created": 1371224432557,\n'+' "modified": 1371851347024,\n'+' "username": "10",\n'+' "email": "fdsafdsa@ookfd.com",\n'+' "activated": "true",\n'+' "adr": {\n'+' "addr1": "",\n'+' "addr2": "",\n'+' "city": "",\n'+' "state": "",\n'+' "zip": "",\n'+' "country": ""\n'+" },\n"+' "metadata": {\n'+' "path": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7",\n'+' "sets": {\n'+' "rolenames": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/rolenames",\n'+' "permissions": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/permissions"\n'+" },\n"+' "collections": {\n'+' "activities": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/activities",\n'+' "devices": "/user
s/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/devices",\n'+' "feed": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/feed",\n'+' "groups": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/groups",\n'+' "roles": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/roles",\n'+' "following": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/following",\n'+' "followers": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/followers"\n'+" }\n"+" },\n"+' "title": "#"><img src=x onerror=prompt(1);>"\n'+"}</pre>\n"+" </div>\n"+' <div id="query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7" style="display:none">\n'+" <table>\n"+" <tbody>\n"+" <tr>\n"+"
<td>picture</td>\n"+' <td>http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e</td></tr><tr><td>uuid</td><td>bf9a95da-d508-11e2-bf44-236d2eee13a7</td></tr><tr><td>type</td><td>user</td></tr><tr><td>name</td><td>#&quot;&gt;&lt;img src=x onerror=prompt(1);&gt;</td></tr><tr><td>created</td><td>1371224432557</td></tr><tr><td>modified</td><td>1371851347024</td></tr><tr><td>username</td><td>10</td></tr><tr><td>email</td><td>fdsafdsa@ookfd.com</td></tr><tr><td>activated</td><td>true</td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>addr1</td><td></td></tr><tr><td>addr2</td><td></td></tr><tr><td>city</td><td></td></tr><tr><td>state</td><td></td></tr><tr><td>zip</td><td></td></tr><tr><td>country</td><td></td></tr></tbody></table></td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>path</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7</td></tr><tr><td>
</td><td style="padding: 0"><table><tbody><tr></tr><tr><td>rolenames</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/rolenames</td></tr><tr><td>permissions</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/permissions</td></tr></tbody></table></td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>activities</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/activities</td></tr><tr><td>devices</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/devices</td></tr><tr><td>feed</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/feed</td></tr><tr><td>groups</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/groups</td></tr><tr><td>roles</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031
a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/roles</td></tr><tr><td>following</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/following</td></tr><tr><td>followers</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/followers</td></tr></tbody></table></td></tr></tbody></table></td></tr><tr><td>title</td><td>#&quot;&gt;&lt;img src=x onerror=prompt(1);&gt;</td>\n'+" </tr>\n"+" </tbody>\n"+" </table>\n"+" </div>\n"+" </div>\n"+" </td>\n"+" </tr>\n"+" </tbody>\n"+"</table>");$templateCache.put("data/entity.html",'<div class="content-page">\n'+"\n"+" <h4>Entity Detail</h4>\n"+' <div class="well">\n'+' <a href="#!/data" class="outside-link"><< Back to collection</a>\n'+" </div>\n"+" <fieldset>\n"+' <div class="control-group">\n'+" <strong>Path </strong>\n"+' <div class="controls">\n'+" {{entityT
ype}}/{{entityUUID}}\n"+" </div>\n"+" </div>\n"+"\n"+' <div class="control-group">\n'+' <label class="control-label" for="query-source"><strong>JSON Body</strong></label>\n'+' <div class="controls">\n'+' <textarea ng-model="queryBody" class="span6 pull-left" rows="12">{{queryBody}}</textarea>\n'+" <br>\n"+' <a class="btn pull-left" ng-click="validateJson();">Validate JSON</a>\n'+" </div>\n"+" </div>\n"+' <div style="clear: both; height: 10px;"></div>\n'+' <div class="control-group">\n'+' <button type="button" class="btn btn-primary" id="button-query" ng-click="saveEntity();">Save</button>\n'+' <!--button type="button" class="btn btn-primary" id="button-query" ng-click="run();">Delete</button-->\n'+" </div>\n"+" </fieldset>\n"+"\n"+"</div>\n"+"\n");$templateCache.put("data/shell.html",'<div class="content-page">\n'+' <div class="well">\n'+" <h2>Interactive Shell</h2>\n"+' <div style="float:right"><a target="
_blank" href="http://apigee.com/docs/usergrid/content/usergrid-admin-portal" class="notifications-links">Learn more in our docs</a></div>\n'+" </div>\n"+"\n"+' <div class="console-section-contents">\n'+' <div id="shell-input-div">\n'+' <p> Type "help" to view a list of the available commands.</p><hr>\n'+" <span> >> </span>\n"+' <!--textarea id="shell-input" rows="2" autofocus="autofocus"></textarea-->\n'+" </div>\n"+' <pre id="shell-output" class="prettyprint lang-js" style="overflow-x: auto; height: 400px;"><span class="pln"> </span><p><span class="pln"> </span><span class="typ">Response</span><span class="pun">:</span></p><hr><span class="pln">\n'+" </span></pre>\n"+" </div>\n"+"</div>");$templateCache.put("dialogs/modal.html",' <div class="modal show fade" tabindex="-1" role="dialog" aria-hidden="true">\n'+' <form ng-submit="extraDelegate(extrabutton)" name="dialogForm" novalidate>\n'+"\n"+' <div cl
ass="modal-header">\n'+' <h1 class="title">{{title}}</h1>\n'+" </div>\n"+"\n"+' <div class="modal-body" ng-transclude></div>\n'+' <div class="modal-footer">\n'+" {{footertext}}\n"+' <input type="submit" class="btn" id="dialogButton-{{buttonId}}" ng-if="extrabutton" ng-disabled="!dialogForm.$valid" aria-hidden="true" ng-value="extrabuttonlabel"/>\n'+' <button class="btn cancel pull-left" data-dismiss="modal" aria-hidden="true"\n'+' ng-click="closeDelegate(close)">{{closelabel}}\n'+" </button>\n"+" </div>\n"+" </form> </div>\n");$templateCache.put("global/appswitcher-template.html",'<li id="globalNav" class="dropdown dropdownContainingSubmenu active">\n'+' <a class="dropdown-toggle" data-toggle="dropdown">API Platform<b class="caret"></b></a>\n'+' <ul class="dropdown-menu pull-right">\n'+' <li id="globalNavSubmenuContainer">\n'+" <ul>\n"+' <li data-globalNav
Detail="globalNavDetailApigeeHome"><a target="_blank" href="http://apigee.com">Apigee Home</a></li>\n'+' <li data-globalNavDetail="globalNavDetailAppServices" class="active"><a target="_blank" href="https://apigee.com/usergrid/">App Services</a></li>\n'+' <li data-globalNavDetail="globalNavDetailApiPlatform" ><a target="_blank" href="https://enterprise.apigee.com">API Platform</a></li>\n'+' <li data-globalNavDetail="globalNavDetailApiConsoles"><a target="_blank" href="http://apigee.com/providers">API Consoles</a></li>\n'+" </ul>\n"+" </li>\n"+' <li id="globalNavDetail">\n'+' <div id="globalNavDetailApigeeHome">\n'+' <div class="globalNavDetailApigeeLogo"></div>\n'+' <div class="globalNavDetailDescription">You need apps and apps need APIs. Apigee is the leading API platform for enterprises and developers.</div>\n'+" </div>\n"+' <div id="globalNavDetailAppServices">\n'+' <div class="globalNavDetailSubtitle">For App De
velopers</div>\n'+' <div class="globalNavDetailTitle">App Services</div>\n'+' <div class="globalNavDetailDescription">Build engaging applications, store data, manage application users, and more.</div>\n'+" </div>\n"+' <div id="globalNavDetailApiPlatform">\n'+' <div class="globalNavDetailSubtitle">For API Developers</div>\n'+' <div class="globalNavDetailTitle">API Platform</div>\n'+' <div class="globalNavDetailDescription">Create, configure, manage and analyze your APIs and resources.</div>\n'+" </div>\n"+' <div id="globalNavDetailApiConsoles">\n'+' <div class="globalNavDetailSubtitle">For API Developers</div>\n'+' <div class="globalNavDetailTitle">API Consoles</div>\n'+' <div class="globalNavDetailDescription">Explore over 100 APIs with the Apigee API Console, or create and embed your own API Console.</div>\n'+" </div>\n"+" </li>\n"+" </ul>\n"+"</li>");$templateCache.put("global/insecure-banner.html
",'<div ng-if="securityWarning" ng-cloak class="demo-holder">\n'+' <div class="alert alert-demo alert-animate">\n'+' <div class="alert-text">\n'+' <i class="pictogram">⚠</i>Warning: This application has "sandbox" permissions and is not production ready. <a target="_blank" href="http://apigee.com/docs/app-services/content/securing-your-app">Please go to our security documentation to find out more.</a></span>\n'+" </div>\n"+" </div>\n"+"</div>");$templateCache.put("global/page-title.html",'<section class="row-fluid">\n'+' <div class="span12">\n'+' <div class="page-filters">\n'+' <h1 class="title pull-left" id="pageTitle"><i class="pictogram title" style="padding-right: 5px;">{{icon}}</i>{{title}} <a class="super-help" href="http://community.apigee.com/content/apigee-customer-support" target="_blank" >(need help?)</a></h1>\n'+" </div>\n"+" </div>\n"+' <bsmodal id="need-help"\n'+' title="Need Help?"\n'+'
close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="sendHelp"\n'+' extrabuttonlabel="Get Help"\n'+" ng-cloak>\n"+" <p>Do you want to contact support? Support will get in touch with you as soon as possible.</p>\n"+" </bsmodal>\n"+"</section>\n"+"\n");$templateCache.put("groups/groups-activities.html",'<div class="content-page" ng-controller="GroupsActivitiesCtrl">\n'+"\n"+" <br>\n"+" <div>\n"+' <table class="table table-striped">\n'+" <tbody>\n"+' <tr class="table-header">\n'+" <td>Date</td>\n"+" <td>Content</td>\n"+" <td>Verb</td>\n"+" <td>UUID</td>\n"+" </tr>\n"+' <tr class="zebraRows" ng-repeat="activity in selectedGroup.activities">\n'+" <td>{{activity.createdDate}}</td>\n"+" <td>{{activity.content}}</td>\n"+" <td>{{activity.verb}}</td>\n"+" <td>{{activity.uuid}}</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"
+" </div>\n"+"\n"+"\n"+"</div>");$templateCache.put("groups/groups-details.html",'<div class="content-page" ng-controller="GroupsDetailsCtrl">\n'+"\n"+" <div>\n"+' <form name="updateGroupDetailForm" ng-submit="saveSelectedGroup()" novalidate>\n'+' <div style="float: left; padding-right: 30px;">\n'+' <h4 class="ui-dform-legend">Group Information</h4>\n'+' <label for="group-title" class="ui-dform-label">Group Title</label>\n'+' <input type="text" id="group-title" ng-pattern="titleRegex" ng-attr-title="{{titleRegexDescription}}" required class="ui-dform-text" ng-model="group.title" ug-validate>\n'+" <br/>\n"+' <label for="group-path" class="ui-dform-label">Group Path</label>\n'+' <input type="text" id="group-path" required ng-attr-title="{{pathRegexDescription}}" placeholder="ex: /mydata" ng-pattern="pathRegex" class="ui-dform-text" ng-model="group.path" ug-validate>\n'+" <br/>\n"+"
</div>\n"+' <br style="clear:both"/>\n'+"\n"+' <div style="width:100%;float:left;padding: 20px 0">\n'+' <input type="submit" value="Save Group" style="margin-right: 15px;" ng-disabled="!updateGroupDetailForm.$valid" class="btn btn-primary" />\n'+" </div>\n"+"\n"+' <div class="content-container">\n'+" <h4>JSON Group Object</h4>\n"+" <pre>{{json}}</pre>\n"+" </div>\n"+" </form>\n"+" </div>\n"+"\n"+"\n"+"</div>");$templateCache.put("groups/groups-members.html",'<div class="content-page" ng-controller="GroupsMembersCtrl">\n'+"\n"+"\n"+' <bsmodal id="removeFromGroup"\n'+' title="Confirmation"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="removeUsersFromGroupDialog"\n'+' extrabuttonlabel="Delete"\n'+" ng-cloak>\n"+" <p>Are you sure you want to remove the users from the seleted group(s)?</p>\n"+" </bsmodal>\n"+"
\n"+' <bsmodal id="addGroupToUser"\n'+' title="Add user to group"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="addGroupToUserDialog"\n'+' extrabuttonlabel="Add"\n'+" ng-cloak>\n"+' <div class="btn-group">\n'+' <a class="btn dropdown-toggle filter-selector" data-toggle="dropdown">\n'+" <span class=\"filter-label\">{{$parent.user != '' ? $parent.user.username : 'Select a user...'}}</span>\n"+' <span class="caret"></span>\n'+" </a>\n"+' <ul class="dropdown-menu">\n'+' <li ng-repeat="user in $parent.usersTypeaheadValues" class="filterItem"><a ng-click="$parent.$parent.user = user">{{user.username}}</a></li>\n'+" </ul>\n"+" </div>\n"+" </bsmodal>\n"+"\n"+"\n"+' <div class="button-strip">\n'+' <button class="btn btn-primary" ng-click="showModal(\'addGroupToUser\')">Add User to Group</button>\n'+' <button class="btn btn-primary" ng-disabled="!hasMembers
|| !valueSelected(groupsCollection.users._list)" ng-click="showModal(\'removeFromGroup\')">Remove User(s) from Group</button>\n'+" </div>\n"+' <table class="table table-striped">\n'+' <tr class="table-header">\n'+' <td style="width: 30px;"><input type="checkbox" ng-show="hasMembers" id="selectAllCheckbox" ng-model="groupMembersSelected" ng-click="selectAllEntities(groupsCollection.users._list,this,\'groupMembersSelected\')"></td>\n'+' <td style="width: 50px;"></td>\n'+" <td>Username</td>\n"+" <td>Display Name</td>\n"+" </tr>\n"+' <tr class="zebraRows" ng-repeat="user in groupsCollection.users._list">\n'+" <td>\n"+" <input\n"+' type="checkbox"\n'+' ng-model="user.checked"\n'+" >\n"+" </td>\n"+' <td><img style="width:30px;height:30px;" ng-src="{{user._portal_image_icon}}"></td>\n'+" <td>{{user.get('username')}}</td>\n"+" <td>{{user.get('name')}}</td>\n"+" </tr>\n"+" </table>\n"+' <div style=
"padding: 10px 5px 10px 5px">\n'+' <button class="btn btn-primary" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous</button>\n'+' <button class="btn btn-primary" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n'+" </div>\n"+"</div>");$templateCache.put("groups/groups-roles.html",'<div class="content-page" ng-controller="GroupsRolesCtrl">\n'+"\n"+' <bsmodal id="addGroupToRole"\n'+' title="Add group to role"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="addGroupToRoleDialog"\n'+' extrabuttonlabel="Add"\n'+" ng-cloak>\n"+' <div class="btn-group">\n'+' <a class="btn dropdown-toggle filter-selector" data-toggle="dropdown">\n'+" <span class=\"filter-label\">{{$parent.name != '' ? $parent.name : 'Role name...'}}</span>\n"+' <span class="caret"></span>\n'+" </a>\n"+' <ul class="dropdown-menu">\n'+' <li ng-
repeat="role in $parent.rolesTypeaheadValues" class="filterItem"><a ng-click="$parent.$parent.name = role.name">{{role.name}}</a></li>\n'+" </ul>\n"+" </div>\n"+" </bsmodal>\n"+"\n"+' <bsmodal id="leaveRoleFromGroup"\n'+' title="Confirmation"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="leaveRoleDialog"\n'+' extrabuttonlabel="Leave"\n'+" ng-cloak>\n"+" <p>Are you sure you want to remove the group from the role(s)?</p>\n"+" </bsmodal>\n"+"\n"+"\n"+' <div class="button-strip">\n'+' <button class="btn btn-primary" ng-click="showModal(\'addGroupToRole\')">Add Role to Group</button>\n'+' <button class="btn btn-primary" ng-disabled="!hasRoles || !valueSelected(groupsCollection.roles._list)" ng-click="showModal(\'leaveRoleFromGroup\')">Remove Role(s) from Group</button>\n'+" </div>\n"+" <h4>Roles</h4>\n"+' <table class="table table-striped">\n'+" <tbody>\n"+' <tr class="table-head
er">\n'+' <td style="width: 30px;"><input type="checkbox" ng-show="hasRoles" id="groupsSelectAllCheckBox" ng-model="groupRoleSelected" ng-click="selectAllEntities(groupsCollection.roles._list,this,\'groupRoleSelected\')" ></td>\n'+" <td>Role Name</td>\n"+" <td>Role title</td>\n"+" </tr>\n"+' <tr class="zebraRows" ng-repeat="role in groupsCollection.roles._list">\n'+" <td>\n"+" <input\n"+' type="checkbox"\n'+' ng-model="role.checked"\n'+" >\n"+" </td>\n"+" <td>{{role._data.name}}</td>\n"+" <td>{{role._data.title}}</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"+' <div style="padding: 10px 5px 10px 5px">\n'+' <button class="btn btn-primary" ng-click="getPreviousRoles()" style="display:{{roles_previous_display}}">< Previous</button>\n'+' <button class="btn btn-primary" ng-click="getNextRoles()" style="display:{{roles_next_display}};float:right;">Next ></button>\n'+" </div>\n"+"\n"+"\n"+' <bsmodal
id="deletePermission"\n'+' title="Confirmation"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="deleteGroupPermissionDialog"\n'+' extrabuttonlabel="Delete"\n'+" ng-cloak>\n"+" <p>Are you sure you want to delete the permission(s)?</p>\n"+" </bsmodal>\n"+"\n"+"\n"+' <bsmodal id="addPermission"\n'+' title="New Permission"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="addGroupPermissionDialog"\n'+' extrabuttonlabel="Add"\n'+" ng-cloak>\n"+' <p>Path: <input ng-model="$parent.permissions.path" placeholder="ex: /mydata" id="groupsrolespermissions" type="text" ng-pattern="pathRegex" ng-attr-title="{{pathRegexDescription}}" required ug-validate /></p>\n'+' <div class="control-group">\n'+' <input type="checkbox" ng-model="$parent.permissions.getPerm"> GET\n'+" </div>\n"+' <div class="control-group">\n'+' <inpu
t type="checkbox" ng-model="$parent.permissions.postPerm"> POST\n'+" </div>\n"+' <div class="control-group">\n'+' <input type="checkbox" ng-model="$parent.permissions.putPerm"> PUT\n'+" </div>\n"+' <div class="control-group">\n'+' <input type="checkbox" ng-model="$parent.permissions.deletePerm"> DELETE\n'+" </div>\n"+" </bsmodal>\n"+"\n"+"\n"+' <div class="button-strip">\n'+' <button class="btn btn-primary" ng-click="showModal(\'addPermission\')">Add Permission</button>\n'+' <button class="btn btn-primary" ng-disabled="!hasPermissions || !valueSelected(selectedGroup.permissions)" ng-click="showModal(\'deletePermission\')">Delete Permission(s)</button>\n'+" </div>\n"+" <h4>Permissions</h4>\n"+' <table class="table table-striped">\n'+" <tbody>\n"+' <tr class="table-header">\n'+' <td style="width: 30px;"><input ng-show="hasPermissions" type="checkbox" id="permissionsSelectAllCheckBox" ng-model="groupPermissionsSelected" ng-click="selectAll
Entities(selectedGroup.permissions,this,\'groupPermissionsSelected\')" ></td>\n'+" <td>Path</td>\n"+" <td>GET</td>\n"+" <td>POST</td>\n"+" <td>PUT</td>\n"+" <td>DELETE</td>\n"+" </tr>\n"+' <tr class="zebraRows" ng-repeat="permission in selectedGroup.permissions">\n'+" <td>\n"+" <input\n"+' type="checkbox"\n'+' ng-model="permission.checked"\n'+" >\n"+" </td>\n"+" <td>{{permission.path}}</td>\n"+" <td>{{permission.operations.get}}</td>\n"+" <td>{{permission.operations.post}}</td>\n"+" <td>{{permission.operations.put}}</td>\n"+" <td>{{permission.operations.delete}}</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"+"\n"+"</div>");
$templateCache.put("groups/groups-tabs.html",'<div class="content-page">\n'+"\n"+' <section class="row-fluid">\n'+"\n"+' <div class="span12">\n'+' <div class="page-filters">\n'+' <h1 class="title" class="pull-left"><i class="pictogram title">👥</i> Groups</h1>\n'+" </div>\n"+" </div>\n"+"\n"+" </section>\n"+"\n"+' <div id="user-panel" class="panel-buffer">\n'+' <ul id="user-panel-tab-bar" class="nav nav-tabs">\n'+' <li><a href="javaScript:void(0);" ng-click="gotoPage(\'groups\')">Group List</a></li>\n'+' <li ng-class="detailsSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/details\')">Details</a></li>\n'+' <li ng-class="membersSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/members\')">Users</a></li>\n'+' <li ng-class="activitiesSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/activities\')">Activities</a></li>\n'+' <li ng-class="rolesSelected"><a href="javaScript:v
oid(0);" ng-click="gotoPage(\'groups/roles\')">Roles & Permissions</a></li>\n'+" </ul>\n"+" </div>\n"+"\n"+' <div style="float: left; margin-right: 10px;">\n'+' <div style="float: left;">\n'+" <div class=\"user-header-title\"><strong>Group Path: </strong>{{selectedGroup.get('path')}}</div>\n"+" <div class=\"user-header-title\"><strong>Group Title: </strong>{{selectedGroup.get('title')}}</div>\n"+" </div>\n"+" </div>\n"+"</div>\n"+"<br>\n"+"<br>\n");$templateCache.put("groups/groups.html",'<div class="content-page">\n'+"\n"+' <page-title title=" Groups" icon="👥"></page-title>\n'+' <bsmodal id="newGroup"\n'+' title="New Group"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="newGroupDialog"\n'+' extrabuttonlabel="Add"\n'+' ng-model="dialog"\n'+" ng-cloak>\n"+" <fieldset>\n"+' <div class="control-group">\n'+' <label for="title">Title</label>\n'+'
<div class="controls">\n'+' <input type="text" id="title" ng-pattern="titleRegex" ng-attr-title="{{titleRegexDescription}}" required ng-model="newGroup.title"class="input-xlarge" ug-validate/>\n'+" </div>\n"+" </div>\n"+' <div class="control-group">\n'+' <label for="path">Path</label>\n'+' <div class="controls">\n'+' <input id="path" type="text" ng-attr-title="{{pathRegexDescription}}" placeholder="ex: /mydata" ng-pattern="pathRegex" required ng-model="newGroup.path" class="input-xlarge" ug-validate/>\n'+" </div>\n"+" </div>\n"+" </fieldset>\n"+" </bsmodal>\n"+"\n"+' <bsmodal id="deleteGroup"\n'+' title="Delete Group"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="deleteGroupsDialog"\n'+' extrabuttonlabel="Delete"\n'+" ng-cloak>\n"+" <p>Are you sure you want to delete the group(s)?</p>\n"+" </bsmodal>\n"+"\n"+"\n"+' <section class=
"row-fluid">\n'+' <div class="span3 user-col">\n'+"\n"+' <div class="button-toolbar span12">\n'+' <a title="Select All" class="btn btn-primary select-all toolbar" ng-show="hasGroups" ng-click="selectAllEntities(groupsCollection._list,this,\'groupBoxesSelected\',true)"> <i class="pictogram">⊟</i></a>\n'+' <button title="Delete" class="btn btn-primary toolbar" ng-disabled="!hasGroups || !valueSelected(groupsCollection._list)" ng-click="showModal(\'deleteGroup\')"><i class="pictogram">☕</i></button>\n'+' <button title="Add" class="btn btn-primary toolbar" ng-click="showModal(\'newGroup\')"><i class="pictogram"></i></button>\n'+" </div>\n"+' <ul class="user-list">\n'+' <li ng-class="selectedGroup._data.uuid === group._data.uuid ? \'selected\' : \'\'" ng-repeat="group in groupsCollection._list" ng-click="selectGroup(group._data.uuid)">\n'+" <input\n"+' type="checkbox"\n'+' ng-value="group
._data.uuid"\n'+' ng-checked="group.checked"\n'+' ng-model="group.checked"\n'+" >\n"+" <a href=\"javaScript:void(0)\" >{{group.get('title')}}</a>\n"+" <br/>\n"+" <span ng-if=\"group.get('path')\" class=\"label\">Path:</span>/{{group.get('path')}}\n"+" </li>\n"+" </ul>\n"+"\n"+"\n"+' <div style="padding: 10px 5px 10px 5px">\n'+' <button class="btn btn-primary" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous</button>\n'+' <button class="btn btn-primary" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n'+" </div>\n"+"\n"+" </div>\n"+"\n"+' <div class="span9 tab-content" ng-show="selectedGroup.get" >\n'+' <div class="menu-toolbar">\n'+' <ul class="inline" >\n'+' <li class="tab" ng-class="currentGroupsPage.route === \'/groups/details\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click
="selectGroupPage(\'/groups/details\')"><i class="pictogram"></i>Details</a></li>\n'+' <li class="tab" ng-class="currentGroupsPage.route === \'/groups/members\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/members\')"><i class="pictogram">👥</i>Users</a></li>\n'+' <li class="tab" ng-class="currentGroupsPage.route === \'/groups/activities\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/activities\')"><i class="pictogram"></i>Activities</a></li>\n'+' <li class="tab" ng-class="currentGroupsPage.route === \'/groups/roles\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/roles\')"><i class="pictogram">🌎</i>Roles & Permissions</a></li>\n'+" </ul>\n"+" </div>\n"+' <span ng-include="currentGroupsPage.template"></span>\n'+"\n"+" </section>\n"+"</div>\n");$templateCache.put
("login/forgot-password.html",'<div class="login-content" ng-controller="ForgotPasswordCtrl">\n'+' <iframe class="container" ng-src="{{forgotPWiframeURL}}" id="forgot-password-frame" border="0" style="border:0;width:600px;height:620px;">\n'+' <p>Email Address: <input id="resetPasswordEmail" name="resetPasswordEmail" /></p>\n'+' <button class="btn btn-primary" ng-click="">Reset Password</button>\n'+"</div>\n");$templateCache.put("login/loading.html","\n"+"\n"+"<h1>Loading...</h1>");$templateCache.put("login/login.html",'<div class="login-content">\r'+"\n"+' <bsmodal id="sendActivationLink"\r'+"\n"+' title="Resend Activation Link"\r'+"\n"+' close="hideModal"\r'+"\n"+' closelabel="Cancel"\r'+"\n"+' extrabutton="resendActivationLink"\r'+"\n"+' extrabuttonlabel="Send Activation"\r'+"\n"+" ng-cloak>\r"+"\n"+" <fieldset>\r"+"\n"+' <p>Email to send to: <input type="email" required ng-model="$parent.activation.id" ng-patter
n="emailRegex" ng-attr-title="{{emailRegexDescription}}" name="activationId" id="user-activationId" class="input-xlarge"/></p>\r'+"\n"+" </fieldset>\r"+"\n"+" </bsmodal>\r"+"\n"+' <div class="login-holder">\r'+"\n"+' <form name="loginForm" id="login-form" ng-submit="login()" class="form-horizontal" novalidate>\r'+"\n"+' <h1 class="title">Enter your credentials</h1>\r'+"\n"+' <div class="alert-error" id="loginError" ng-if="loginMessage">{{loginMessage}}</div>\r'+"\n"+' <div class="control-group">\r'+"\n"+' <label class="control-label" for="login-username">Email or Username:</label>\r'+"\n"+' <div class="controls">\r'+"\n"+' <input type="text" ng-model="login.username" title="Please add a username or email." class="" id="login-username" required ng-value="login.username" size="20" ug-validate>\r'+"\n"+" </div>\r"+"\n"+" </div>\r"+"\n"+' <div class="control-group">\r'+"\n"+' <label class="control-label" for="login-password">Password:</
label>\r'+"\n"+' <div class="controls">\r'+"\n"+' <input type="password" ng-model="login.password" required id="login-password" class="" ng-value="login.password" size="20" ug-validate>\r'+"\n"+" </div>\r"+"\n"+" </div>\r"+"\n"+' <div class="control-group" ng-show="requiresDeveloperKey">\r'+"\n"+' <label class="control-label" for="login-developerkey">Developer Key:</label>\r'+"\n"+' <div class="controls">\r'+"\n"+' <input type="text" ng-model="login.developerkey" id="login-developerkey" class="" ng-value="login.developerkey" size="20" ug-validate>\r'+"\n"+" </div>\r"+"\n"+" </div>\r"+"\n"+' <div class="form-actions">\r'+"\n"+' <div class="submit">\r'+"\n"+' <input type="submit" name="button-login" id="button-login" ng-disabled="!loginForm.$valid || loading" value="{{loading ? loadingText : \'Log In\'}}" class="btn btn-primary pull-right">\r'+"\n"+" </div>\r"+"\n"+" </div>\r"+"\n"+" </form>\r"+"\n"+" </div>\r"+
"\n"+' <div class="extra-actions">\r'+"\n"+' <div class="submit">\r'+"\n"+' <a ng-click="gotoSignUp()" name="button-signUp" id="button-signUp" value="Sign Up"\r'+"\n"+' class="btn btn-primary pull-left">Register</a>\r'+"\n"+" </div>\r"+"\n"+' <div class="submit">\r'+"\n"+' <a ng-click="gotoForgotPasswordPage()" name="button-forgot-password" id="button-forgot-password"\r'+"\n"+' value="" class="btn btn-primary pull-left">Forgot Password?</a>\r'+"\n"+" </div>\r"+"\n"+' <a ng-click="showModal(\'sendActivationLink\')" name="button-resend-activation" id="button-resend-activation"\r'+"\n"+' value="" class="btn btn-primary pull-left">Resend Activation Link</a>\r'+"\n"+" </div>\r"+"\n"+' <div id="gtm" style="width: 450px;margin-top: 4em;" />\r'+"\n"+"</div>\r"+"\n");$templateCache.put("login/logout.html",'<div id="logut">Logging out...</div>');$templateCache.put("login/register.html",'<div class="signUp-content">\n'+' <div class="signUp-
holder">\n'+' <form name="signUpform" id="signUp-form" ng-submit="register()" class="form-horizontal" ng-show="!signUpSuccess" novalidate>\n'+' <h1 class="title">Register</h1>\n'+"\n"+' <div class="alert" ng-if="loginMessage">{{loginMessage}}</div>\n'+' <div class="control-group">\n'+' <label class="control-label" for="register-orgName">Organization:</label>\n'+"\n"+' <div class="controls">\n'+' <input type="text" ng-model="registeredUser.orgName" id="register-orgName" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" ug-validate required class="" size="20">\n'+" </div>\n"+" </div>\n"+"\n"+' <div class="control-group">\n'+' <label class="control-label" for="register-name">Name:</label>\n'+"\n"+' <div class="controls">\n'+' <input type="text" ng-model="registeredUser.name" id="register-name" ng-pattern="nameRegex" ng-attr-title="{{nameRegexDescription}}" ug-validate required class=""
size="20">\n'+" </div>\n"+" </div>\n"+"\n"+' <div class="control-group">\n'+' <label class="control-label" for="register-userName">Username:</label>\n'+"\n"+' <div class="controls">\n'+' <input type="text" ng-model="registeredUser.userName" id="register-userName" ng-pattern="usernameRegex" ng-attr-title="{{usernameRegexDescription}}" ug-validate required class="" size="20">\n'+" </div>\n"+" </div>\n"+"\n"+' <div class="control-group">\n'+' <label class="control-label" for="register-email">Email:</label>\n'+"\n"+' <div class="controls">\n'+' <input type="email" ng-model="registeredUser.email" id="register-email" ng-pattern="emailRegex" ng-attr-title="{{emailRegexDescription}}" required class="" ug-validate size="20">\n'+" </div>\n"+" </div>\n"+"\n"+"\n"+' <div class="control-group">\n'+' <label class="control-label" for="register-password">Password:</label>\n'+"\n"+' <div
class="controls">\n'+' <input type="password" ng-pattern="passwordRegex" ng-attr-title="{{passwordRegexDescription}}" ug-validate ng-model="registeredUser.password" id="register-password" required class=""\n'+' size="20">\n'+" </div>\n"+" </div>\n"+' <div class="control-group">\n'+' <label class="control-label" for="register-confirmPassword">Re-enter Password:</label>\n'+"\n"+' <div class="controls">\n'+' <input type="password" ng-model="registeredUser.confirmPassword" required id="register-confirmPassword" ug-validate class="" size="20">\n'+" </div>\n"+" </div>\n"+' <div class="form-actions">\n'+' <div class="submit">\n'+' <input type="submit" name="button-login" ng-disabled="!signUpform.$valid" id="button-login" value="Register"\n'+' class="btn btn-primary pull-right">\n'+" </div>\n"+' <div class="submit">\n'+' <a ng-click="cancel()" type="submi
t" name="button-cancel" id="button-cancel"\n'+' class="btn btn-primary pull-right">Cancel</a>\n'+" </div>\n"+" </div>\n"+" </form>\n"+' <div class="console-section well thingy" ng-show="signUpSuccess">\n'+' <span class="title">We\'re holding a seat for you!</span>\n'+" <br><br>\n"+"\n"+" <p>Thanks for signing up for a spot on our private beta. We will send you an email as soon as we're ready for\n"+" you!</p>\n"+"\n"+" <p>In the mean time, you can stay up to date with App Services on our <a\n"+' href="https://groups.google.com/forum/?fromgroups#!forum/usergrid">GoogleGroup</a>.</p>\n'+"\n"+' <p> <a href="#!/login">Back to login</a></p>\n'+" </div>\n"+" </div>\n"+"\n"+"</div>\n");$templateCache.put("menus/appMenu.html",'<ul id="app-menu" class="nav top-nav span12">\n'+' <li class="span7">\n'+' <bsmodal id="newApplication"\n'+' title="Create New Application"\n'+' close="hideM
odal"\n'+' closelabel="Cancel"\n'+' extrabutton="newApplicationDialog"\n'+' extrabuttonlabel="Create"\n'+' buttonid="app"\n'+" ng-cloak>\n"+' <div ng-show="!hasApplications" class="modal-instructions" >You have no applications, please create one.</div>\n'+' <div ng-show="hasCreateApplicationError" class="alert-error">Application already exists!</div>\n'+' <p>New application name: <input ng-model="$parent.newApp.name" id="app-name-input" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" type="text" required ug-validate /></p>\n'+" </bsmodal>\n"+' <div class="btn-group">\n'+' <a class="btn dropdown-toggle top-selector app-selector" id="current-app-selector" data-toggle="dropdown">\n'+' <i class="pictogram">⚙</i> {{myApp.currentApp}}\n'+' <span class="caret"></span>\n'+" </a>\n"+' <ul class="dro
pdown-menu app-nav">\n'+' <li name="app-selector" ng-repeat="app in applications">\n'+' <a id="app-{{app.name}}-link-id" ng-click="appChange(app.name)">{{app.name}}</a>\n'+" </li>\n"+" </ul>\n"+" </div>\n"+" </li>\n"+' <li class="span5">\n'+' <a ng-if="activeUI"\n'+' class="btn btn-create zero-out pull-right"\n'+" ng-click=\"showModal('newApplication')\"\n"+' analytics-on="click"\n'+' analytics-category="App Services"\n'+' analytics-label="Button"\n'+' analytics-event="Add New App"\n'+" >\n"+' <i class="pictogram">⊞</i>\n'+" Add New App\n"+" </a>\n"+" </li>\n"+"</ul>");$templateCache.put("menus/orgMenu.html",'<ul class="nav top-nav org-nav">\n'+" <li>\n"+'<div class="btn-group ">\n'+' <a class="btn dropdown-toggle top-selector org-selector" id="current-org-selector" data-toggle="dropdown">\n'+' <i class="pictogram
">📁</i> {{currentOrg}}<span class="caret"></span>\n'+" </a>\n"+' <ul class="dropdown-menu org-nav">\n'+' <li name="org-selector" ng-repeat="(k,v) in organizations">\n'+' <a id="org-{{v.name}}-selector" class="org-overview" ng-click="orgChange(v.name)"> {{v.name}}</a>\n'+" </li>\n"+" </ul>\n"+" </div>\n"+" </li></ul>");$templateCache.put("org-overview/org-overview.html",'<div class="org-overview-content" ng-show="activeUI">\n'+"\n"+' <page-title title=" Org Administration" icon="🕪"></page-title>\n'+"\n"+' <section class="row-fluid">\n'+"\n"+' <div class="span6">\n'+' <bsmodal id="introjs"\n'+' title="Welcome to the API BaaS Admin Portal"\n'+' close="hideModal"\n'+' closelabel="Skip"\n'+' extrabutton="startFirstTimeUser"\n'+' extrabuttonlabel="Take the tour"\n'+" ng-cloak>\n"+" <p>To get started, click 'Take the tour' for a full walkth
rough of the admin portal, or click 'Skip' to start working right away.</p>\n"+" </bsmodal>\n"+' <div id="intro-4-current-org"> \n'+' <h2 class="title">Current Organization <a class="help_tooltip" ng-mouseover="help.sendTooltipGA(\'current org\')" ng-show="help.helpTooltipsEnabled" href="#" ng-attr-tooltip="{{tooltip_current_org}}" tooltip-placement="right">(?)</a></h2>\n'+' <table class="table table-striped">\n'+" <tr>\n"+' <td id="org-overview-name">{{currentOrganization.name}}</td>\n'+' <td style="text-align: right">{{currentOrganization.uuid}}</td>\n'+" </tr>\n"+" </table>\n"+" </div>\n"+"\n"+' <bsmodal id="newApplication"\n'+' title="Create New Application"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="newApplicationDialog"\n'+' extrabuttonlabel="Create"\n'+" ng-cloak>\n"+' <p>New application name: <input ng-model="$parent.newApp.name"
ug-validate required type="text" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" /></p>\n'+" </bsmodal>\n"+' <div id="intro-5-applications"> \n'+' <h2 class="title" > Applications <a class="help_tooltip" ng-show="help.helpTooltipsEnabled" ng-mouseover="help.sendTooltipGA(\'applications\')" href="#" ng-attr-tooltip="{{tooltip_applications}}" tooltip-placement="right">(?)</a>\n'+' <div class="header-button btn-group pull-right">\n'+" <a class=\"btn filter-selector\" style=\"{{applicationsSize === 10 ? 'width:290px':''}}\" ng-click=\"showModal('newApplication')\">\n"+' <span class="filter-label">Add New App</span>\n'+" </a>\n"+" </div>\n"+" </h2>\n"+" \n"+' <table class="table table-striped">\n'+' <tr ng-repeat="application in applications">\n'+" <td>{{application.name}}</td>\n"+' <td style="text-align: right">{{application.uuid}}</td>\n'+" </tr>\n"+" </table>\n"+" </div>\n
"+' <bsmodal id="regenerateCredentials"\n'+'
<TRUNCATED>
[06/34] minor css tweaks to embedded help and fix for if 25948route
is null
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d3017f28/portal/js/libs/bootstrap/custom/css/bootstrap.min.css
----------------------------------------------------------------------
diff --git a/portal/js/libs/bootstrap/custom/css/bootstrap.min.css b/portal/js/libs/bootstrap/custom/css/bootstrap.min.css
index 939f8a7..8e834b9 100755
--- a/portal/js/libs/bootstrap/custom/css/bootstrap.min.css
+++ b/portal/js/libs/bootstrap/custom/css/bootstrap.min.css
@@ -6,4 +6,4 @@
* http://www.apache.org/licenses/LICENSE-2.0
*
* Designed and built with all the love in the world @twitter by @mdo and @fat.
- */.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:"";line-height:0}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:active,a:hover{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{max-width:100%;width:auto\9;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:
none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button,input[type=button],input[type=checkbox],input[type=radio],input[type=reset],input[type=submit],label,select{cursor:pointer}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:afte
r{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:focus,a:hover{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:after,.row:before{display:table;content:"";line-height:0}.row:after{clear:both}[class*=spa
n]{float:left;min-height:1px;margin-left:20px}.container,.navbar-fixed-bottom .container,.navbar-fixed-top .container,.navbar-static-top .container,.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:after,.row-fluid:before{display:table;content:"";line-height:0}.row-fluid:after{clear:both}.row-fluid [class*=span]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;marg
in-left:2.127659574468085%;*margin-left:2.074468085106383%}.row-fluid [class*=span]:first-child{margin-left:0}.row-fluid .controls-row [class*=span]+[class*=span]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width
:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106
%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row
-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}.row-fluid [class*=span].hide,[class*=span].hide{display:none}.row-fluid [class*=span].pull-right,[class*=span].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:after,.container:before{display:table;content:"";line-height:0}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:after,.container-fluid:before{display:table;content:"";line-height:0}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:700}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:focus,a.muted:hover{color:gray}.text-warning{color:#c09853}a.text-warning:focus,a.text-warning:hover{color:#a47e3c}.text-error{color:#b94a48}a.tex
t-error:focus,a.text-error:hover{color:#953b39}.text-info{color:#3a87ad}a.text-info:focus,a.text-info:hover{color:#2d6987}.text-success{color:#468847}a.text-success:focus,a.text-success:hover{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:700;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:400;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small,h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ol,ul{padding:0;margin:0 0 10px 25px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}li{line-height:20px}ol.inline,ol.unstyled,ul.inline,ul.unstyled{margin-left:0;list-style:n
one}ol.inline>li,ul.inline>li{display:inline-block;*display:inline;*zoom:1;padding-left:5px;padding-right:5px}dl{margin-bottom:20px}dd,dt{line-height:20px}dt{font-weight:700}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:after,.dl-horizontal:before{display:table;content:"";line-height:0}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:ri
ght;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}blockquote:after,blockquote:before,q:after,q:before{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;white-space:nowrap}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}pre.prettyprint{margin-botto
m:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.badge,.label{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:700;line-height:14px;color:#fff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-left:9px;padding-right:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.badge:empty,.label:empty{display:none}a.badge:focus,a.badge:hover,a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.badge-important,.label-important{background-color:#b94a48}.badge-important[href],.label-important[href]{background-color:#953b39}.badge-warning,.label-warning{background-color:#f89406}.badge-warning[href],.label-warning[href]{background-color:#c67605}.badge-success,.label-success{backgrou
nd-color:#468847}.badge-success[href],.label-success[href]{background-color:#356635}.badge-info,.label-info{background-color:#3a87ad}.badge-info[href],.label-info[href]{background-color:#2d6987}.badge-inverse,.label-inverse{background-color:#333}.badge-inverse[href],.label-inverse[href]{background-color:#1a1a1a}.btn .badge,.btn .label{position:relative;top:-1px}.btn-mini .badge,.btn-mini .label{top:0}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table td,.table th{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:700}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child td,.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child td,.table thead:first-child tr:first-child th{border-top:0}.table tbody+tbody{border-top:2px
solid #ddd}.table .table{background-color:#fff}.table-condensed td,.table-condensed th{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.table-bordered td,.table-bordered th{border-left:1px solid #ddd}.table-bordered caption+tbody tr:first-child td,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+thead tr:first-child th,.table-bordered tbody:first-child tr:first-child td,.table-bordered tbody:first-child tr:first-child th,.table-bordered thead:first-child tr:first-child th{border-top:0}.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child,.table-bordered thead:first-child tr:first-child>th:first-child{-webkit-bord
er-top-left-radius:0;-moz-border-radius-topleft:0;border-top-left-radius:0}.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child,.table-bordered thead:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:0;-moz-border-radius-topright:0;border-top-right-radius:0}.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child,.table-bordered thead:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0}.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last
-child,.table-bordered thead:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0}.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered caption+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child{-webkit-border-top-left-radius:0;-moz-border-radius-topleft:0;border-top-left-radius:0}.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered caption+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last
-child,.table-bordered colgroup+thead tr:first-child th:last-child{-webkit-border-top-right-radius:0;-moz-border-radius-topright:0;border-top-right-radius:0}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}.row-fluid table td[class*=span],.row-fluid table th[class*=span],table td[class*=span],table th[class*=span]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table t
d.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5
e5}legend small{font-size:15px;color:#999}button,input,label,select,textarea{font-size:14px;font-weight:400;line-height:20px}button,input,select,textarea{font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}.uneditable-input,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;vertical-align:middle}.uneditable-input,input,textarea{width:206px}textarea{height:auto}.uneditable-input,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],i
nput[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}.uneditable-input:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{border-color:rgba(82,168,236,.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1
px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}input[type=checkbox],input[type=radio]{margin:4px 0 0;*margin-top:0;margin-top:1px \9;line-height:normal}input[type=button],input[type=checkbox],input[type=file],input[type=image],input[type=radio],input[type=reset],input[type=submit]{width:auto}input[type=file],select{height:30px;*margin-top:4px;line-height:30px}select{width:220px;border:1px solid #ccc;background-color:#fff}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus,select:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.025);box-shad
ow:inset 0 1px 2px rgba(0,0,0,.025);cursor:not-allowed}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.checkbox,.radio{min-height:20px;padding-left:20px}.checkbox input[type=checkbox],.radio input[type=radio]{float:left;margin-left:-20px}.controls>.checkbox:first-child,.controls>.radio:first-child{padding-top:5px}.checkbox.inline,.radio.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.checkbox.inline+.checkbox.inline,.radio.inline+.radio.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}.row-fluid .uneditable-input[class*=span],.row-fluid input[class*=span],.row-fluid sel
ect[class*=span],.row-fluid textarea[class*=span],.uneditable-input[class*=span],input[class*=span],select[class*=span],textarea[class*=span]{float:none;margin-left:0}.input-append .uneditable-input[class*=span],.input-append input[class*=span],.input-prepend .uneditable-input[class*=span],.input-prepend input[class*=span],.row-fluid .input-append [class*=span],.row-fluid .input-prepend [class*=span],.row-fluid .uneditable-input[class*=span],.row-fluid input[class*=span],.row-fluid select[class*=span],.row-fluid textarea[class*=span]{display:inline-block}.uneditable-input,input,textarea{margin-left:0}.controls-row [class*=span]+[class*=span]{margin-left:20px}.uneditable-input.span12,input.span12,textarea.span12{width:926px}.uneditable-input.span11,input.span11,textarea.span11{width:846px}.uneditable-input.span10,input.span10,textarea.span10{width:766px}.uneditable-input.span9,input.span9,textarea.span9{width:686px}.uneditable-input.span8,input.span8,textarea.span8{width:606px}.unedi
table-input.span7,input.span7,textarea.span7{width:526px}.uneditable-input.span6,input.span6,textarea.span6{width:446px}.uneditable-input.span5,input.span5,textarea.span5{width:366px}.uneditable-input.span4,input.span4,textarea.span4{width:286px}.uneditable-input.span3,input.span3,textarea.span3{width:206px}.uneditable-input.span2,input.span2,textarea.span2{width:126px}.uneditable-input.span1,input.span1,textarea.span1{width:46px}.controls-row{*zoom:1}.controls-row:after,.controls-row:before{display:table;content:"";line-height:0}.controls-row:after{clear:both}.controls-row [class*=span],.row-fluid .controls-row [class*=span]{float:left}.controls-row .checkbox[class*=span],.controls-row .radio[class*=span]{padding-top:5px}input[disabled],input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type=checkbox][disabled],input[type=checkbox][readonly],input[type=radio][disabled],input[type=radio][readonly]{ba
ckground-color:transparent}.control-group.warning .checkbox,.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e}.control-group.warning .input-append .add-on,.control-group.warning .input-prepend .add-on{color:#c
09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .checkbox,.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392}.control-group.error .input-append .add-on,.control-group.error .input-prepend .add-on{color:#b94a48;b
ackground-color:#f2dede;border-color:#b94a48}.control-group.success .checkbox,.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b}.control-group.success .input-append .add-on,.control-group.success .input-prepen
d .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .checkbox,.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad;border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7ab5d3}.control-group.info .input-append .add-on,.control-group.info .input-prepend .add-on{color:#3a87ad
;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:after,.form-actions:before{display:table;content:"";line-height:0}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;vertical-align:middle;font-size:0;white-space:nowrap}.input-append .dropdown-menu,.input-append .popover,.input-append .uneditable-input,.input-append input,.i
nput-append select,.input-prepend .dropdown-menu,.input-prepend .popover,.input-prepend .uneditable-input,.input-prepend input,.input-prepend select{font-size:14px}.input-append .uneditable-input,.input-append input,.input-append select,.input-prepend .uneditable-input,.input-prepend input,.input-prepend select{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .uneditable-input:focus,.input-append input:focus,.input-append select:focus,.input-prepend .uneditable-input:focus,.input-prepend input:focus,.input-prepend select:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:400;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-append .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .add-on
,.input-prepend .btn,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-append .uneditable-input,.input-append .uneditable-input+.btn-group .btn:last-child,.input-append input,.input-append input+.btn-group .btn:last-child,.input-append select,.input-append select+.btn-group .btn:last-child,.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn-group:last-child>.dropdown-toggle,.input-append .btn:last-child,.input-prepend.input-append .uneditable-input,.input-prepend.input-append .uneditable-input+.btn-group .btn,.input-prepend.input-append input,.inpu
t-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select,.input-prepend.input-append select+.btn-group .btn{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn,.form-search .input-prepend .search-query{-web
kit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-horizontal .help-inline,.form-horizontal .input-append,.form-horizontal .input-prepend,.form-horizontal .uneditable-input,.form-horizontal input,.form-horizontal select,.form-horizontal textarea,.form-inline .help-inline,.form-inline .input-append,.form-inline .input-prepend,.form-inline .uneditable-input,.form-inline input,.form-inline select,.form-inline textarea,.form-search .help-inline,.form-search .input-append,.form-search .input-prepend,.form-search .uneditable-input,.form-search input,.form-search select,.form-search textarea{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;vertical-align:middle}.form-horizontal .hide,.form-inline .hide,.form-search .hide{display:none}.form-inline .btn-group,.form-inline label,.form-search .btn-group,.fo
rm-search label{display:inline-block}.form-inline .input-append,.form-inline .input-prepend,.form-search .input-append,.form-search .input-prepend{margin-bottom:0}.form-inline .checkbox,.form-inline .radio,.form-search .checkbox,.form-search .radio{padding-left:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio],.form-search .checkbox input[type=checkbox],.form-search .radio input[type=radio]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:after,.form-horizontal .control-group:before{display:table;content:"";line-height:0}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;
margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal .input-append+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 12px;margin-bottom:0;font-size:14px;line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333;text-shadow:0 1px 1px rgba(255,255,255,.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6)
;background-repeat:repeat-x;*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border:1px solid #ccc;*border:0;border-bottom-color:#b3b3b3;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.btn.active,.btn.disabled,.btn:active,.btn:focus,.btn:hover,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn.active,.btn:active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:focus,.btn:hover{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin do
tted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-large [class*=" icon-"],.btn-large [class^=icon-]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-small [class*=" icon-"],.btn-small [class^=icon-]{margin-top:0}.btn-mini [class*=" icon-"],.btn-mini [class^=icon-]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:0;
-moz-border-radius:0;border-radius:0}.btn-block{display:block;width:100%;padding-left:0;padding-right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#04c;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary.active,.btn-primary.disabled,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.b
tn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary.active,.btn-primary:active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning.active,.btn-warning.disabled,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning.active,.btn-warning:active{background
-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#da4f49;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger.active,.btn-danger.disabled,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger.active,.btn-danger:active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#5bb75b;background-image:-moz-linear-gra
dient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success.active,.btn-success.disabled,.btn-success:active,.btn-success:focus,.btn-success:hover,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success.active,.btn-success:active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#49afcd;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit
-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info.active,.btn-info.disabled,.btn-info:active,.btn-info:focus,.btn-info:hover,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info.active,.btn-info:active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#363636;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x
;border-color:#222 #222 #000;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#222;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse.active,.btn-inverse.disabled,.btn-inverse:active,.btn-inverse:focus,.btn-inverse:hover,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse.active,.btn-inverse:active{background-color:#080808 \9}button.btn,input[type=submit].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type=submit].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type=submit].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type=submit].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type=submit].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:no
ne;box-shadow:none}.btn-link{border-color:transparent;cursor:pointer;color:#08c;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:focus,.btn-link:hover{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover{color:#333;text-decoration:none}[class*=" icon-"],[class^=icon-]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url(../img/glyphicons-halflings.png);background-position:14px 14px;background-repeat:no-repeat;margin-top:1px}.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-menu>.active>a>[class^=icon-],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>li>a:focus>[class^=icon-],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^=icon-],.dropdown-submenu:focus>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class^=icon-],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:hover>a
>[class^=icon-],.icon-white,.nav-list>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^=icon-],.nav-pills>.active>a>[class*=" icon-"],.nav-pills>.active>a>[class^=icon-],.navbar-inverse .nav>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^=icon-]{background-image:url(../img/glyphicons-halflings-white.png)}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-of
f{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-
qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-p
icture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sig
n{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{backgrou
nd-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{background-position:-216px -120px;width:16px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{background-position:-384px -120px;width:16px}.icon-folder-open{background-position:-408px -120px;width:16px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118p
x}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -1
44px}.btn-group{position:relative;display:inline-block;*display:inline;*zoom:1;font-size:0;vertical-align:middle;white-space:nowrap;*margin-left:.3em}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{font-size:0;margin-top:10px;margin-bottom:10px}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-top-left-radius:0;-moz-border-radius-topleft:0;border-top-left-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-
border-top-right-radius:0;-moz-border-radius-topright:0;border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:0;-moz-border-radius-topleft:0;border-top-left-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:0;-moz-border-radius-topright:0;border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0}.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,
255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);*padding-top:5px;*padding-bottom:5px}.btn-group>.btn-mini+.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:2px;*padding-bottom:2px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{padding-left:12px;padding-right:12px;*padding-top:7px;*padding-bottom:7px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}
.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px;border-left-width:5px;border-right-width:5px;border-top-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-danger .caret,.btn-info .caret,.btn-inverse .caret,.btn-primary .caret,.btn-success .caret,.btn-warning .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-left:0;margin-top:-1px}
.btn-group-vertical>.btn-large:first-child,.btn-group-vertical>.btn-large:last-child,.btn-group-vertical>.btn:first-child,.btn-group-vertical>.btn:last-child{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav{margin-left:0;margin-bottom:20px;list-style:none}.nav>li>a{display:block}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:700;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0}.nav-list .nav-header,.nav-list>li>a{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255,255,255,.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:focus,.nav-list>.active>a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.2);background-color:#08c}.nav-list [cl
ass*=" icon-"],.nav-list [class^=icon-]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-pills,.nav-tabs{*zoom:1}.nav-pills:after,.nav-pills:before,.nav-tabs:after,.nav-tabs:before{display:table;content:"";line-height:0}.nav-pills:after,.nav-tabs:after{clear:both}.nav-pills>li,.nav-tabs>li{float:left}.nav-pills>li>a,.nav-tabs>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:focus,.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:focus,.nav-tabs>.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color
:transparent;cursor:default}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:focus,.nav-pills>.active>a:hover{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.nav-tabs.nav-stacked>li>a:fo
cus,.nav-tabs.nav-stacked>li>a:hover{border-color:#ddd;z-index:2}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{border-top-color:#08c;border-bottom-color:#08c;margin-top:6px}.nav .dropdown-toggle:focus .caret,.nav .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:focus,.nav>.dropdown.active>a:hover{cursor:pointer}.nav-pills .open .dropdown-toggle,.nav-tabs .open .dropdown-toggle,.nav>li.dropdown.open.active>a:focus,.nav>
li.dropdown.open.active>a:hover{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open a:focus .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open.active .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:focus,.tabs-stacked .open>a:hover{border-color:#999}.tabbable{*zoom:1}.tabbable:after,.tabbable:before{display:table;content:"";line-height:0}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-left>.nav-tabs,.tabs-right>.nav-tabs{border-bottom:0}.pill-content>.pill-pane,.tab-content>.tab-pane{display:none}.pill-content>.active,.tab-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:focus,.tabs-below>.nav-ta
bs>li>a:hover{border-bottom-color:transparent;border-top-color:#ddd}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:focus,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:focus,.tabs-left>.nav-tabs>li>a:hover{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:focus,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0
4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:focus,.tabs-right>.nav-tabs>li>a:hover{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:focus,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:focus,.nav>.disabled>a:hover{text-decoration:none;background-color:transparent;cursor:default}.navbar{overflow:visible;margin-bottom:20px;*position:relative;*z-index:2}.navbar-inner{min-height:40px;padding-left:20px;padding-right:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;filter:progid:DXImageTra
nsform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);border:1px solid #d4d4d4;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,.065);box-shadow:0 1px 4px rgba(0,0,0,.065);*zoom:1}.navbar-inner:after,.navbar-inner:before{display:table;content:"";line-height:0}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{float:left;display:block;padding:10px 20px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:focus,.navbar .brand:hover{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:focus,.navbar-link:hover{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-left:1px solid #f2f2f2;border-right:1px solid #fff}.navbar .btn,.navbar .btn-group{margin-top:5
px}.navbar .btn-group .btn,.navbar .input-append .btn,.navbar .input-append .btn-group,.navbar .input-prepend .btn,.navbar .input-prepend .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:after,.navbar-form:before{display:table;content:"";line-height:0}.navbar-form:after{clear:both}.navbar-form .checkbox,.navbar-form .radio,.navbar-form input,.navbar-form select{margin-top:5px}.navbar-form .btn,.navbar-form input,.navbar-form select{display:inline-block;margin-bottom:0}.navbar-form input[type=checkbox],.navbar-form input[type=image],.navbar-form input[type=radio]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{margin-bottom:0;padding:4px 14px;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:
13px;font-weight:400;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-bottom .navbar-inner,.navbar-fixed-top .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-bottom .container,.navbar-fixed-top .container,.navbar-static-top .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,.1);box-shadow:0 1px 10px rgba(0,0,0,.1)}.navbar-fixed-bottom{bottom:0}.n
avbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,.1);box-shadow:0 -1px 10px rgba(0,0,0,.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{background-color:transparent;color:#333;text-decoration:none}.navbar .nav>.active>a,.navbar .nav>.active>a:focus,.navbar .nav>.active>a:hover{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,.125);box-shadow:inset 0 3px 8px rgba(0,0,0,.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;color:#fff;text-shadow:0 -1px 0 rgb
a(0,0,0,.25);background-color:#ededed;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#e5e5e5;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.075)}.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar:active,.navbar .btn-navbar:focus,.navbar .btn-navbar:hover,.navbar .btn-navbar[disabled]{color:#fff;backgrou
nd-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar.active,.navbar .btn-navbar:active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,.25);box-shadow:0 1px 0 rgba(0,0,0,.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,.2);position:absolute;top:-7px;left:9px}.navbar .nav>li>.dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;top:-6px;left:10px}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0,0,0,.2);
border-bottom:0;bottom:-7px;top:auto}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{border-top:6px solid #fff;border-bottom:0;bottom:-6px;top:auto}.navbar .nav li.dropdown>a:focus .caret,.navbar .nav li.dropdown>a:hover .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle,.navbar .nav li.dropdown.open>.dropdown-toggle{background-color:#e5e5e5;color:#555}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .nav>li>.dropdown-menu.pull-right,.navbar .pull-right>li>.dropdown-menu{left:auto;right:0}.navbar .nav>li>.dropdown-menu.pull-right:before,.navbar .pull-right>li>.dropdown-menu:before{left:auto;right:12px}.navbar
.nav>li>.dropdown-menu.pull-right:after,.navbar .pull-right>li>.dropdown-menu:after{left:auto;right:13px}.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu,.navbar .pull-right>li>.dropdown-menu .dropdown-menu{left:auto;right:100%;margin-left:0;margin-right:-1px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);border-color:#252525}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-inverse .brand:foc
us,.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff}.navbar-inverse .brand,.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{background-color:transparent;color:#fff}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:focus,.navbar-inverse .nav .active>a:hover{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:focus,.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .divider-vertical{border-left-color:#111;border-right-color:#222}.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open>.dropdown-toggle{background-color:#111;color:#fff}.navbar-inverse .nav li.dropdown>a:focus .caret,.navbar-inverse .nav li.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>
.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-que
ry.focused,.navbar-inverse .navbar-search .search-query:focus{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);-moz-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15);outline:0}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#0e0e0e;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);*background-color:#040404;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-n
avbar:active,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar:active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.breadcrumb>li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0 #fff}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-he
ight:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>.active>a,.pagination ul>.active>span,.pagination ul>li>a:focus,.pagination ul>li>a:hover{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>a,.pagination ul>.disabled>a:focus,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>span{color:#999;background-color:transparent;cursor:default}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-top-left-radius:0;-moz-border-radius-topleft:0;border-top-left-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:0;-moz-border-radius-topright:0;border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-righ
t-radius:0}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-top-left-radius:0;-moz-border-radius-topleft:0;border-top-left-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:0;-moz-border-radius-topright:0;border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0}.pagination-mini ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>a,.pagination-small ul>li:first-child>span{-webkit-border-top-left-radius:0;-moz-border-radius-topleft:0;border-top-left-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-rad
ius-bottomleft:0;border-bottom-left-radius:0}.pagination-mini ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>a,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:0;-moz-border-radius-topright:0;border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;list-style:none;text-align:center;*zoom:1}.pager:after,.pager:before{display:table;content:"";line-height:0}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#f5f5f5
}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#999;background-color:#fff;cursor:default}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:after,.thumbnails:before{display:table;content:"";line-height:0}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,.055);box-shadow:0 1px 3px rgba(0,0,0,.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:focus,a.thumbnail:hover{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,
.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,.25);box-shadow:0 1px 4px rgba(0,105,214,.25)}.thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#555}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success h4{color:#468847}.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{mar
gin-top:5px}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', en
dColorstr='#fff9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.progress .bar{width:0;height:100%;color:#fff;float:left;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webk
it-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rg
ba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress .bar-danger,.progress-danger .bar{background-color:#dd514c;background-image:-mo
z-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);b
ackground-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress .bar-success,.progress-success .bar{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.
gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0)}.progress-striped .bar-success,.progress-success.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);
background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress .bar-info,.progress-info .bar{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.
75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress .bar-warning,.progress-warning .bar{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),t
o(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0)}.progress-striped .bar-warning,.progress-warning.progress-striped .bar{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgb
a(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255
<TRUNCATED>
[07/34] git commit: minor css tweaks to embedded help and fix for if
25948route is null
Posted by sn...@apache.org.
minor css tweaks to embedded help and fix for if 25948route is null
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/d3017f28
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/d3017f28
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/d3017f28
Branch: refs/heads/master
Commit: d3017f28a85f4943b0a402b8b64360ce7bed4200
Parents: 082530e
Author: amuramoto <am...@apigee.com>
Authored: Fri Mar 28 13:05:18 2014 -0700
Committer: amuramoto <am...@apigee.com>
Committed: Fri Mar 28 13:05:18 2014 -0700
----------------------------------------------------------------------
portal/css/dash.min.css | 2 +-
portal/css/main.css | 13 +++++++++----
portal/dist/appsvc-ui.2.0.1.zip | Bin 17166351 -> 16937328 bytes
portal/js/global/help-service.js | 6 +++---
.../js/libs/bootstrap/custom/css/bootstrap.css | 15 ++++++++-------
.../libs/bootstrap/custom/css/bootstrap.min.css | 2 +-
portal/js/libs/usergrid-libs.min.js | 4 ++--
portal/js/usergrid-dev.min.js | 8 ++++----
portal/js/usergrid.min.js | 4 ++--
.../instrument/js/usergrid-coverage.min.js | 2 +-
.../test/coverage/instrument/js/usergrid.min.js | 2 +-
11 files changed, 32 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d3017f28/portal/css/dash.min.css
----------------------------------------------------------------------
diff --git a/portal/css/dash.min.css b/portal/css/dash.min.css
index 6fb8190..afe2e5f 100644
--- a/portal/css/dash.min.css
+++ b/portal/css/dash.min.css
@@ -1 +1 @@
-.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;opacity:.3;filter:alpha(opacity=30);content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100)}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;padding:4px 0;margin:0;list-style:none;background-color:#fff;border-color:#ccc;border-color:rgba(0,0,0,.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip
:padding-box;*border-right-width:2px;*border-bottom-width:2px}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff;*width:100%;*margin:-5px 0 5px}.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}.dropdown-menu .active>a,.dropdown-menu .active>a:hover,.dropdown-menu li>a:hover{color:#fff;text-decoration:none;background-color:#08c}.dropdown.open{*z-index:1000}.dropdown.open .dropdown-toggle{color:#fff;background:#ccc;background:rgba(0,0,0,.3)}.dropdown.open .dropdown-menu{display:block}.pull-right .dropdown-menu{left:auto;right:0}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdownContainingSubmenu .dropdown-menu{padding:0;margin-t
op:-4px;min-width:auto;background-color:#fff;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:4px 4px 16px rgba(0,0,0,.25);-moz-box-shadow:4px 4px 16px rgba(0,0,0,.25);box-shadow:4px 4px 16px rgba(0,0,0,.25);border-width:1px;border-top-width:4px;border-color:#bb2d16}.dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:7px 10px}.dropdownContainingSubmenu .dropdown-menu a:hover{color:#fff;background-color:#f03800}.dropdownContainingSubmenu .dropdown-menu .nav-header{background-color:#f0f0f0;margin-top:0;padding-left:10px}.dropdownContainingSubmenu .dropdown-menu .divider{margin:0}.navbar .dropdown-menu:after,.navbar .dropdown-menu:before{content:normal}#globalNav{margin-left:20px;background-color:transparent}#globalNav .dropdown-toggle{border-radius:3px;padding-top:3px;padding-bottom:3px;margin-top:7.5px;margin-bottom:7.5px}#globalNav .dropdown-toggle :hover{background-color:transparent}#globalNav.active .caret{opacity:.7}#globalNav.active :
hover .caret{opacity:1}#globalNav ul ul a{border-left:1px solid #bb2d16}#globalNav ul ul li{position:relative}#globalNav ul ul li:first-child{border-bottom:1px solid #bb2d16}#globalNav ul ul a:before{content:"";width:6px;height:32px;position:absolute;left:-6px;top:0}#globalNav ul ul .active a:before,#globalNav ul ul .active a:hover:before{background-image:url(images/triangleMenuItem_right.png)}#globalNav ul ul:hover a:before{background-image:none}#globalNav ul ul a:hover:before{background-image:url(images/triangleMenuItem_right_hover.png)}#globalNav ul ul li a:hover{border-color:transparent}#globalNav .dropdown-menu{width:400px}#globalNavDetail{padding:20px 10px 0;width:250px;height:100%;position:relative;top:0}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail>div.open{display:inline-block}#globalNavDetail>div .globalNavDetailApigeeLogo,#globalNavDetail>div .globalNavDetailDescr
iption,#globalNavDetail>div .globalNavDetailSubtitle,#globalNavDetail>div .globalNavDetailTitle{margin-left:80px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}#globalNavDetail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail #globalNavDetailAppServices{background-image:url(img/appswitcher/appServices_lg.png)}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailMobileAnalytics{background-image:url(img/appswitcher/max_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{ba
ckground-image:url(img/appswitcher/console_lg.png)}#globalNavSubmenuContainer{float:right}#globalNavSubmenuContainer ul{margin-left:0}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none}html{min-height:100%;position:relative;margin:0 auto;background:#fff;min-width:1100px}body{padding:0;background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif;height:100%;max-height:100%;overflow-x:hidden}a{cursor:pointer}@font-face{font-family:entypo;src:url(entypo/entypo.eot);src:url(entypo/entypo.eot?#iefix) format('embedded-opentype'),url(entypo/entypo.woff) format('woff'),url(entypo/entypo.ttf) format('truetype'),url(entypo/entypo.svg#entypo) format('svg');font-weight:400;font-style:normal}@font-face{font-family:marquette-medium;src:url(arsmarquette/ARSMaquettePro-Medium.otf),url(arsmarquette/ARSMaquettePro-Medium.otf) format('opentype')}@font-face{font-family:marquette-regular;src:url(arsmarquette/ARSMaquettePro-Regular.otf)
,url(arsmarquette/ARSMaquettePro-Regular.otf) format('opentype')}@font-face{font-family:marquette-light;src:url(arsmarquette/ARSMaquettePro-Light.otf),url(arsmarquette/ARSMaquettePro-Light.otf) format('opentype')}.bold{font-family:marquette-medium}.main-content{background-color:#fff;margin:0 0 0 200px}.side-menu{position:absolute;top:51px;left:0;bottom:0;width:200px;float:left;background-color:#eee}footer{padding-top:20px;clear:both}.zero-out{padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0}.modal-body{overflow-y:visible}.demo-holder{margin:0 -20px 0 -20px;position:relative}.alert-holder{position:fixed;right:0;margin:20px 20px 0 0;z-index:10500;width:302px}.alert,.alert.alert-demo{padding:9px 35px 5px 14px;margin-bottom:3px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#eee;border:1px solid #eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-transition:all 1s ease;-moz-transition:all 1s
ease;transition:all 1s ease;height:0;overflow:hidden;line-height:0;float:right}.alert.alert-demo{float:none}.alert{width:0}.alert.alert-success{background-color:rgba(155,198,144,.31);color:#1f6719;border-left:2px solid #1f6719}.alert.alert-warning{background-color:rgba(239,172,37,.2);color:#efac25;border-left:2px solid #efac25}.alert.alert-info{background-color:rgba(27,151,209,.2);color:#1b97d1;border-left:2px solid #1b97d1}.alert.alert-error{background-color:rgba(255,3,3,.2);color:#ff0303;border-left:2px solid #ff0303}.alert.alert-animate.alert-demo{height:20px;line-height:normal;opacity:1;width:100%;-moz-box-shadow:inset 0 2px 13px #b8b8b8;-webkit-box-shadow:inset 0 2px 13px #b8b8b8;box-shadow:inset 0 2px 13px #b8b8b8}.alert.alert-animate{height:auto;line-height:normal;opacity:.9;width:300px}@-webkit-keyframes alert-out{from{opacity:1}to{-webkit-transform:translateY(500px);opacity:0}}@keyframes alert-out{from{opacity:1}to{transform:translateY(500px);opacity:0}}.fade-out{-webkit-a
nimation-name:alert-out;-webkit-animation-duration:1s;-webkit-animation-timing-function:step-stop;-webkit-animation-direction:normal;-webkit-animation-iteration-count:1;animation-name:alert-out;animation-duration:1s;animation-timing-function:step-stop;animation-direction:normal;animation-iteration-count:1;opacity:.9}.margin-35{margin-top:35px}.modal-footer{background-color:transparent}.baloon{margin:20px;padding:20px 30px;position:fixed;bottom:0;top:auto;border-style:solid;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.8)}.baloon:after{content:"";position:absolute;width:10px;height:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-o-transform:rotate(45deg);-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.7071067811865473, M12=-0.7071067811865477, M21=0.7071067811865477, M22=0.7071067811865473, SizingMethod='auto expand')"}.north.baloon:after{top:-6px;left:30px;border-top-style:solid;border-left-style:solid;box-shadow:-2px -2px 3px -1px rgba(0,0,0,.5)}.so
uth.baloon:after{bottom:-6px;left:30px;border-bottom-style:solid;border-right-style:solid;box-shadow:2px 2px 3px -1px rgba(0,0,0,.5)}.left.baloon:after{top:10px;left:-6px;border-bottom-style:solid;border-left-style:solid;box-shadow:-2px 2px 3px -1px rgba(0,0,0,.5)}.right.baloon:after{bottom:10px;right:-6px;border-top-style:solid;border-right-style:solid;box-shadow:2px -2px 3px -1px rgba(0,0,0,.5)}.baloon,.baloon:after{font-family:sans-serif;font-weight:700;border-color:#f7f7f7;border-width:1px;background-color:#3ac62f;color:#fff}#globalNav{float:right;margin:15px 8px 0 9px;list-style:none;width:114px}#globalNav ul{list-style:none}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(../img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailAppServices{background-image:url(../img/appswitcher/appServices_lg.png)}#globalNav
Detail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(../img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{background-image:url(../img/appswitcher/console_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(../img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:13px 10px}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu .active a{color:#fff;background-color:#bb2d16}.navbar.navbar-static-top .dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}#
globalNav .dropdown-toggle{border-radius:3px;padding:3px 6px;margin:0}.dropdown-toggle{background-color:#bb2d16;padding:3px}.demo-holder .alert.alert-demo{background-color:rgba(196,196,196,.1);color:#777;padding:12px 35px 7px 14px}.demo-holder-content{position:absolute;right:50px}.demo-text{position:absolute;right:223px;left:0;padding:0 0 0 10px}.b{display:block}.toggle,.toggle-form{position:absolute;top:10px;right:173px;width:50px;height:23px;border-radius:100px;background-color:#ddd;overflow:hidden;box-shadow:inset 0 0 2px 1px rgba(0,0,0,.05)}.form-horizontal.configs .control-label{width:250px;padding:0 10px 0 0}.toggle-form{position:relative;right:auto;top:auto;display:inline-block}.toggle-form-label{display:inline-block}input[type=checkbox].check{position:absolute;display:block;cursor:pointer;top:0;left:0;width:100%;height:100%;opacity:0;z-index:6}.check:checked~.track{box-shadow:inset 0 0 0 20px #ff3b00}.toggle-form .check:checked~.track{box-shadow:inset 0 0 0 20px #82ce85}.che
ck:checked~.switch{right:2px;left:27px;transition:.4s ease;transition-property:left,right;transition-delay:.05s,0s}.switch{position:absolute;left:2px;top:2px;bottom:2px;right:27px;background-color:#fff;border-radius:36px;z-index:1;transition:.4s ease;transition-property:left,right;transition-delay:0s,.05s;box-shadow:0 1px 2px rgba(0,0,0,.2)}.track{position:absolute;left:0;top:0;right:0;bottom:0;transition:.4s ease;box-shadow:inset 0 0 0 2px rgba(0,0,0,.05);border-radius:40px}.add-app .pictogram,top-selector .pictogram{margin:0 3px 0 0}i.pictogram{font-family:entypo;display:inline-block;width:23px;margin:0 5px 0 0;font-size:2.5em;height:17px;line-height:.35;overflow:hidden;vertical-align:middle;padding:5px 0 0;font-style:normal;font-weight:100;-webkit-font-smoothing:antialiased}i.pictogram.sub{margin:0 0 0 10px;font-size:2.1em}i.pictogram.title{margin:0;font-size:2.1em}i.pictogram.chart{margin:0 0 0 3px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}i.pictogram.apichart{marg
in:0 0 0 11px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}[class*=" ma-icon-"],[class^=ma-icon-]{display:inline-block;width:23px;height:20px;margin:1px 3px 0 0;line-height:20px;vertical-align:text-top;background-image:url(../img/nav-sprites.png);background-position:14px 14px;background-repeat:no-repeat}[class*=" sdk-icon-"],[class^=sdk-icon-]{display:inline-block;width:32px;height:29px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites.png);background-position:14px 14px;background-repeat:no-repeat;cursor:pointer;overflow:hidden}[class*=" sdk-icon-large-"],[class^=sdk-icon-large-]{display:inline-block;width:86px;height:86px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites-large.png);background-position:14px 14px;background-repeat:no-repeat;border:1px solid #aaa;-moz-box-shadow:3px 3px 0 -1px #ccc;-webkit-box-shadow:3px 3px 0 -1px #ccc;box-shadow:3px 3px 0 -1px #ccc}.sdk-i
con-ios{background-position:-6px -4px}.sdk-icon-android{background-position:-59px -3px}.sdk-icon-js{background-position:-109px -4px}.sdk-icon-node{background-position:-154px -3px}.sdk-icon-ruby{background-position:-204px -3px}.sdk-icon-net{background-position:-256px -4px}.sdk-icon-large-ios{background-position:-6px -3px}.sdk-icon-large-android{background-position:-113px 0}.sdk-icon-large-js{background-position:-219px 0}.sdk-icon-large-node{background-position:-323px -3px}.sdk-icon-large-ruby{background-position:-431px 0}.sdk-icon-large-net{background-position:-537px -3px}body>header>.navbar{background-color:#ff3b00}body>header .navbar:first-child>a{height:22px;line-height:22px;padding:10px 20px 20px 13px}.navbar.navbar-static-top a{text-shadow:none;color:#fff}.navbar-text{color:#fff;margin:4px}.navbar-text .dropdown-menu a{color:#343434}.navbar-text.pull-left{margin-left:90px}.top-nav,ul.app-nav li,ul.org-nav li{background-color:#fff}.top-nav .btn-group{margin:9px 0 5px 5px}.nav .ap
p-selector .caret,.nav .app-selector:active .caret,.nav .app-selector:focus .caret,.nav .app-selector:hover .caret,.nav .org-selector .caret,.nav .org-selector:active .caret,.nav .org-selector:focus .caret,.nav .org-selector:hover .caret{border-top-color:#5f5f5f;border-bottom-color:transparent;margin-top:8px;position:absolute;right:10px}.org-options{margin:5px 2px -8px -5px;border-top:3px solid #e6e6e6;overflow:hidden}.navbar.secondary{margin:0 -20px 0 -21px;border-bottom:3px solid #e6e6e6}.navbar.secondary>.container-fluid{margin:0 -20px 0 -18px}.navbar.secondary .nav,.navbar.secondary>.container-fluid .nav-collapse.collapse.span9,.top-nav{margin:0}.top-nav>li,.top-nav>li>div{width:100%}.span9.button-area{margin-left:0}.navbar .nav a.btn-create i{margin:1px 0 0}.navbar .nav a.btn-create,.navbar .nav a.btn-create:hover{text-align:left;font-weight:400;color:#1b70a0;padding:0 0 0 10px;margin:4px 0 0 3px;display:block;width:140px;height:30px;line-height:30px;background-color:#f3f3f3}.n
avbar .nav a.btn-create:hover{color:#1b70a0}.navbar .nav a.btn-create:active{box-shadow:none}.sdks>ul>li.title label{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px;cursor:default}.sdks>ul>li.title a{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px}.sdks>ul{list-style:none;margin:0;height:32px;overflow:hidden}.sdks>ul>li{display:inline;margin:0 10px 0 0;line-height:11px}.navbar.secondary,.navbar.secondary .btn-group>.btn,.navbar.secondary .btn-group>.dropdown-menu,.side-menu .btn-group>.btn,.side-menu .dropdown-menu{text-transform:uppercase;font-family:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif;color:#5f5f5f;font-size:14px;-webkit-font-smoothing:antialiased}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover,.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{text-decoration:none;color:#fff;background-color:#5f
5f5f;background-image:-moz-linear-gradient(top,#5f5f5f,#787878);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5f5f5f),to(#787878));background-image:-webkit-linear-gradient(top,#5f5f5f,#787878);background-image:-o-linear-gradient(top,#5f5f5f,#787878);background-image:linear-gradient(to bottom,#5f5f5f,#787878);background-repeat:repeat-x}.btn-group.open .btn.dropdown-toggle.top-selector,.top-selector,.top-selector:active,.top-selector:focus,.top-selector:hover{color:#5f5f5f;padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0;width:100%;text-align:left}.dialog-body{padding:20px}h1.title{font-size:1.3em;font-family:marquette-medium,"Helvetica Neue",sans-serif;color:#686868;line-height:17px;display:inline-block;padding:0 10px 0 0}h2.title{text-transform:uppercase;font-size:1.2em;border-top:2px solid #eee;color:#828282}h2.title.chart{margin:10px 0 20px 10px;z-index:101;position:absolute;top:0;left:0;right:0}h3.title{t
ext-transform:uppercase;font-size:1.1em}.sidebar-nav .nav-list{padding:0}.nav-list .nav-header,.sidebar-nav .nav-list>li>a{margin-right:0}.sidebar-nav .nav-list.trans{max-height:100000px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;display:block;opacity:0}.sidebar-nav .nav-list li a{padding:10px 0 10px 25px;color:#5f5f5f;text-shadow:none;background-color:#eee;font-size:14px;text-transform:uppercase;position:relative}.sidebar-nav .nav-list li a.org-overview{background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif}.sidebar-nav .nav-list li a.org-overview:hover{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li{margin:0;height:39px;overflow:hidden}.sidebar-nav .nav-list:first-child>li.active{height:auto;overflow:visible}.sidebar-nav .nav-list:first-child>li>ul>li>a{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li.active>a,.sidebar-nav .nav-list:first-child>li>a:focus,.sidebar-nav .nav-list:first-child>li>a
:hover{color:#fff;text-shadow:none;background-color:#1b70a0;margin:0 0 0 -15px}.sidebar-nav .nav-list:first-child li.active>ul>li>a{background-color:#fff}.sidebar-nav .nav-list li.option>ul{overflow:hidden;opacity:0;height:auto;display:block;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;max-height:100000px}.sidebar-nav .nav-list li.option.active>ul{opacity:1}.sidebar-nav .nav-list li.active>ul>li a{border-bottom:1px solid #eee;color:#747474;text-transform:none;font-weight:300;padding:10px 0 10px 22px}.sidebar-nav .nav-list li.active>ul>li.active>a,.sidebar-nav .nav-list li.active>ul>li>a:focus,.sidebar-nav .nav-list li.active>ul>li>a:hover{color:#1b70a0;background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAKCAYAAAB4zEQNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIH
g6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NkEzQ0Y1MUI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NkEzQ0Y1MkI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU2QTNDRjRGQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU2QTNDRjUwQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+poqUzgAAAG1JREFUeNpilC5YwIADqLNgEWQG4kYg9mNCk1AE4sNAXA3iIEuGAPF5ILaECYAkeYB
4DhCvBmJ+ZGNAkt+B+CkQ/0W3nAkqWA/EblBFKJIwsA+IDYF4BzZJEHgNxJ5AXAbEv1hwBEA3EK8BCDAAwgoRW2zTv6EAAAAASUVORK5CYII=) no-repeat;background-position:206px 16px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif;border-bottom:1px solid #eee;text-shadow:none;-webkit-font-smoothing:antialiased}.sidebar-nav .nav-list li.option ul{list-style:none}.new-tag{border-radius:3px;display:inline-block;font-family:marquette-medium;font-size:.6em;background-color:rgba(26,26,26,.5);color:#fff;padding:3px;height:8px;line-height:8px;position:absolute;right:5px;top:13px}.sidebar-nav .nav-list li:active a{background-color:rgba(255,255,255,.5)}.app-creds dt{font-family:marquette-medium}.intro-container{position:relative;height:auto;-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;transition:all .5s ease-out;overflow:hidden}.sdk-intro{position:absolute;border:1px solid #aaa;background-color:#f4f4f4;-moz-box-shadow:inset 0 0 10px #ccc;-webkit-box-shadow:inset 0 0 10px #cc
c;box-shadow:inset 0 4px 10px #ccc;opacity:.4;top:0;left:6px;right:1px;bottom:0;height:auto;overflow:hidden}.sdk-intro-content{position:absolute;padding:10px 40px 10px 10px;top:0;left:6px;right:-20px;bottom:0;height:auto;overflow:auto}.sdk-intro-content .btn.normal{margin:19px 10px 0 0}.keys-creds h2{margin-bottom:-2px}.user-list{padding:0;margin:0;list-style:none;min-height:450px;float:left;width:100%}.user-list li{padding:10px;border-bottom:1px solid #c5c5c5;cursor:pointer}.user-list li .label{margin:0 0 0 22px}.user-list li input{margin:0 10px 0 0}.user-list li.selected{background-color:#eee}#user-panel{margin-top:20px}.user-col{border-right:1px solid #c5c5c5;-moz-box-shadow:inset -27px 1px 6px -27px #b8b8b8;-webkit-box-shadow:inset -27px 1px 6px -27px #b8b8b8;box-shadow:inset -27px 1px 6px -27px #b8b8b8}.user-profile-picture{width:40px;height:40px}.content-page>.well{padding:10px;height:40px}.table-header td{font-weight:800;color:#000}.user-header-title{font-size:13px;font-famil
y:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif}.tabbable>.tab-content{overflow:visible}.button-strip{float:right;margin-bottom:10px}a.notifications-links{color:#1b97d1}.notifications-header{height:50px;background-color:#eee;padding:10px;border-bottom:1px solid #aaa;position:relative;overflow:hidden}.groups-row td.details,.notifications-row td.details,.roles-row td.details,.users-row td.details{line-height:25px!important;border-right:1px solid #e5e5e5}.nav-tabs>li{cursor:pointer}.login-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.login-content form{margin:0}.login-content form h1{padding:10px 0 5px 20px}.login-holder{width:450px;border:1px solid #e5e5e5}.login-holder .form-actions{padding-left:30px;margin-bottom:0}.login-holder .form-actions .submit{padding:0 30px 0 0}.login-content .extra-actions{margin-top:10px;padding-left:30px;margin-bottom:0}.login-content .extra-actions .submit{padding:0 30px 0 0}.login-co
ntent .extra-actions .submit a{margin-left:3px;margin-right:3px}.signUp-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.signUp-content form{margin:0}.signUp-content form h1{padding:10px 0 5px 20px}.signUp-holder{width:450px;border:1px solid #e5e5e5}.signUp-holder .form-actions{margin-bottom:0}.signUp-holder .form-actions .submit{padding:0 30px 0 0}.table.collection-list{border:1px solid #eee}.formatted-json,.formatted-json ul{list-style:none}.formatted-json .key{font-family:marquette-medium}.formatted-json li{border-bottom:1px solid #eee;margin:3px 0}iframe[seamless]{background-color:transparent;border:0 none transparent;padding:0;overflow:visible;overflow-x:hidden;width:100%}.gravatar20{padding:7px 0 0 10px!important;margin:0;width:30px}#shell-panel *{font-family:monospace}#shell-panel .boxContent{font-family:monospace;font-size:14px;min-height:400px}#shell-panel input{font-family:monospace;overflow:auto;width:90%;margin-top:10px
}#shell-panel hr{margin:2px;border-color:#e1e1e1}form input.has-error{-webkit-animation:pulse-red 1s alternate infinite;-moz-animation:pulse-red 1s alternate infinite;border:1px solid rgba(255,3,3,.6)}.validator-error-message{color:#ff0303}@-webkit-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}@-moz-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}.modal-instructions{padding-top:5px;padding-bottom:5px}.dropdown-menu{width:100%}.modal{width:560px!important}.dropdown-backdrop{position:static}.title.with-icons a{display:inline-block;text-transform:lowercase;font-size:.8em;margin:0 5px 0 0}.span9.tab-content{margin:0}.span9.tab-content .content-page{padding:0 0 0 30px}.button-toolbar,.menu-toolbar{padding:10px 0;margin:0;width:1
00%}.menu-toolbar{padding:0 0 20px}.menu-toolbar>ul.inline{border-bottom:1px solid #c5c5c5;margin:0}.btn-group .filter-selector,.btn-group .filter-selector:active,.btn-group .filter-selector:focus,.btn-group .filter-selector:hover,.btn-group .filter-title,.btn-group .filter-title:active,.btn-group .filter-title:focus,.btn-group.open .btn.dropdown-toggle.filter-selector,.btn-group.open .btn.dropdown-toggle.filter-title,.btn-group>.filter-selector.btn:first-child,.btn-group>.filter-title.btn:first-child,.btn.btn-primary,.btn.normal,.modal-footer .btn{color:#fff;padding:3px 9px;text-shadow:none;background-color:#494949;background-image:none;border:1px solid #c5c5c5;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-bottom-left-radius:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;box-shadow:none}ul.inline>li.tab{margin:0;padding:0}li.tab .btn.btn-primary{background-color:#eee;border:0;color:#494949;box-shadow:none;margin:0 -1px -1px -1px;padding:3px 19px 3
px 16px;border-bottom:1px solid #c5c5c5}ul.inline>li.tab.selected{margin:0 0 -1px 0;border-bottom:1px solid #fff}li.tab.selected .btn.btn-primary.toolbar{color:#494949;border-left:1px solid #c5c5c5;border-right:1px solid #c5c5c5;border-top:1px solid #c5c5c5;border-bottom:0;background-color:#fff}.btn-group.compare .filter-selector.btn:first-child,.btn.btn-primary.toolbar{color:#494949;background-color:#f1f1f1}li.selected .btn.btn-primary.toolbar{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn.cancel,.btn.cancel:hover,.btn.normal.white,.btn.normal.white:hover{background-color:#fff;color:#5f5f5f}.btn-group .filter-selector:active,.btn-group .filter-title:hover,.btn-group.selected .filter-selector,.btn-group.selected>.filter-selector.btn:first-child,.btn.btn-primary:active,.btn.btn-primary:hover,.btn.normal:hover,.modal-footer .btn:active,.modal-footer .btn:hover{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn-group .filter-selector .caret{margin:8px
0 0 10px;border-top:4px solid #fff;border-right:4px solid transparent;border-left:4px solid transparent}.btn-group.header-button{margin:4px 0 0;text-transform:none}.page-filters{padding:0;margin:10px 0}.dropdown-menu{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;z-index:102}.modal{position:fixed;top:10%;left:50%;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.3);*border:1px solid #999;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,.3);box-shadow:0 3px 7px rgba(0,0,0,.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:0}.modal.fade{z-index:-200}.modal.fade.in{z-index:1050}.auto-update-container{padding:10px 0 0}.auto-updates{margin:0 10px 0 0}.super-help{font-size:9pt;vertical-align:super}.help_tooltip{font-size:9pt;text-transform:none}.helpButton{font-family:Helvetica,Arial,s
ans-serif;font-size:13px;font-weight:300;padding:5px 8px;text-align:center;vertical-align:middle;color:#ffd6ca;border:1px solid #ffbfab;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#ff3b00;width:110px;outline:0}.helpButton:hover{cursor:pointer;background-color:#FFB7A5;color:#dc3300;-webkit-transition:background-color .1s;-moz-transition:background-color .1s;-o-transition:background-color .1s;transition:background-color .1s}.helpButtonClicked{background-color:#FFB7A5;color:#dc3300;outline:0}.introjs-overlay{background:0 0;filter:none;-ms-filter:"alpha(Opacity=20)";filter:alpha(opacity=20);background-color:#fff;opacity:.2}.introjs-helperLayer{border:1px solid rgba(0,0,0,.1);border-radius:0;box-shadow:none}.introjs-helperNumberLayer{top:-12px;left:-12px;font-family:"Open Sans",Arial,sans-serif;font-weight:400;border:0;filter:none;filter:none;box-shadow:none}.introjs-arrow{border:10px solid #fff}.introjs-arrow.top{top:-20px;border-bottom-color:#6db
ce3}.introjs-arrow.right{right:-20px;top:20px;border-left-color:#6dbce3}.introjs-arrow.bottom{bottom:-20px;border-top-color:#6dbce3}.introjs-arrow.left{left:-20px;top:20px;border-right-color:#6dbce3}.introjs-arrow:before{border:10px solid #fff;content:'';position:absolute}.introjs-arrow.top:before{top:-8px;left:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#F0F8FC;border-left-color:transparent}.introjs-arrow.right:before{right:-7px;top:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:#F0F8FC}.introjs-arrow.bottom:before{bottom:-9px;left:-10px;border-top-color:#F0F8FC;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.introjs-arrow.left:before{left:-7px;top:-10px;border-top-color:transparent;border-right-color:#F0F8FC;border-bottom-color:transparent;border-left-color:transparent}.introjs-tooltip{background-color:#F0F8FC;border-radius:0;
border:1px solid #6dbce3;box-shadow:0 1px 7px rgba(0,0,0,.3)}.introjs-button{border:1px solid #6dbce3;text-shadow:none;font:12px/normal sans-serif;color:#1f77a3;background-color:#F0F8FC;background-image:none;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.introjs-button:hover{border-color:#6dbce3;font-family:"Open Sans",Arial,sans-serif}.introjs-button:active,.introjs-button:focus{text-decoration:none;outline:0}.introjs-skipbutton{color:#1f77a3;text-decoration:none;font-family:"Open Sans",Arial,sans-serif}.introjs-nextbutton{text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px}.introjs-prevbutton{border-right:0;text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px}.introjs-nextbutton.introjs-disabled,.introjs-nextbutton.introjs-disabled:active,.introjs-nextbutton.introjs-disabled:focus,.introjs-nextbutton.introjs-disabled:hover{background-image:url(img/introjs_arrow_step_next_disabled.png);background-position:48px 5px;backgr
ound-repeat:no-repeat;text-align:left}.introjs-prevbutton.introjs-disabled,.introjs-prevbutton.introjs-disabled:active,.introjs-prevbutton.introjs-disabled:focus,.introjs-prevbutton.introjs-disabled:hover{background-image:url(img/introjs_arrow_step_prev_disabled.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right}.introjs-nextbutton,.introjs-nextbutton:active,.introjs-nextbutton:focus,.introjs-nextbutton:hover{background-image:url(img/introjs_arrow_step_next.png);background-position:48px 5px;background-repeat:no-repeat;text-align:left}.introjs-prevbutton,.introjs-prevbutton:active,.introjs-prevbutton:focus,.introjs-prevbutton:hover{background-image:url(img/introjs_arrow_step_prev.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right}.introjs-disabled,.introjs-disabled:focus,.introjs-disabled:hover{color:gray;background-color:#F0F8FC}.introjs-tooltiptext{font-size:13px;line-height:19px}.introjstooltipheader{font-size:13px;line-height:
19px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif}
\ No newline at end of file
+.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;opacity:.3;filter:alpha(opacity=30);content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100)}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;padding:4px 0;margin:0;list-style:none;background-color:#fff;border-color:#ccc;border-color:rgba(0,0,0,.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip
:padding-box;*border-right-width:2px;*border-bottom-width:2px}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff;*width:100%;*margin:-5px 0 5px}.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}.dropdown-menu .active>a,.dropdown-menu .active>a:hover,.dropdown-menu li>a:hover{color:#fff;text-decoration:none;background-color:#08c}.dropdown.open{*z-index:1000}.dropdown.open .dropdown-toggle{color:#fff;background:#ccc;background:rgba(0,0,0,.3)}.dropdown.open .dropdown-menu{display:block}.pull-right .dropdown-menu{left:auto;right:0}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdownContainingSubmenu .dropdown-menu{padding:0;margin-t
op:-4px;min-width:auto;background-color:#fff;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:4px 4px 16px rgba(0,0,0,.25);-moz-box-shadow:4px 4px 16px rgba(0,0,0,.25);box-shadow:4px 4px 16px rgba(0,0,0,.25);border-width:1px;border-top-width:4px;border-color:#bb2d16}.dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:7px 10px}.dropdownContainingSubmenu .dropdown-menu a:hover{color:#fff;background-color:#f03800}.dropdownContainingSubmenu .dropdown-menu .nav-header{background-color:#f0f0f0;margin-top:0;padding-left:10px}.dropdownContainingSubmenu .dropdown-menu .divider{margin:0}.navbar .dropdown-menu:after,.navbar .dropdown-menu:before{content:normal}#globalNav{margin-left:20px;background-color:transparent}#globalNav .dropdown-toggle{border-radius:3px;padding-top:3px;padding-bottom:3px;margin-top:7.5px;margin-bottom:7.5px}#globalNav .dropdown-toggle :hover{background-color:transparent}#globalNav.active .caret{opacity:.7}#globalNav.active :
hover .caret{opacity:1}#globalNav ul ul a{border-left:1px solid #bb2d16}#globalNav ul ul li{position:relative}#globalNav ul ul li:first-child{border-bottom:1px solid #bb2d16}#globalNav ul ul a:before{content:"";width:6px;height:32px;position:absolute;left:-6px;top:0}#globalNav ul ul .active a:before,#globalNav ul ul .active a:hover:before{background-image:url(images/triangleMenuItem_right.png)}#globalNav ul ul:hover a:before{background-image:none}#globalNav ul ul a:hover:before{background-image:url(images/triangleMenuItem_right_hover.png)}#globalNav ul ul li a:hover{border-color:transparent}#globalNav .dropdown-menu{width:400px}#globalNavDetail{padding:20px 10px 0;width:250px;height:100%;position:relative;top:0}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail>div.open{display:inline-block}#globalNavDetail>div .globalNavDetailApigeeLogo,#globalNavDetail>div .globalNavDetailDescr
iption,#globalNavDetail>div .globalNavDetailSubtitle,#globalNavDetail>div .globalNavDetailTitle{margin-left:80px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}#globalNavDetail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail #globalNavDetailAppServices{background-image:url(img/appswitcher/appServices_lg.png)}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailMobileAnalytics{background-image:url(img/appswitcher/max_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{ba
ckground-image:url(img/appswitcher/console_lg.png)}#globalNavSubmenuContainer{float:right}#globalNavSubmenuContainer ul{margin-left:0}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none}html{min-height:100%;position:relative;margin:0 auto;background:#fff;min-width:1100px}body{padding:0;background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif;height:100%;max-height:100%;overflow-x:hidden}a{cursor:pointer}@font-face{font-family:entypo;src:url(entypo/entypo.eot);src:url(entypo/entypo.eot?#iefix) format('embedded-opentype'),url(entypo/entypo.woff) format('woff'),url(entypo/entypo.ttf) format('truetype'),url(entypo/entypo.svg#entypo) format('svg');font-weight:400;font-style:normal}@font-face{font-family:marquette-medium;src:url(arsmarquette/ARSMaquettePro-Medium.otf),url(arsmarquette/ARSMaquettePro-Medium.otf) format('opentype')}@font-face{font-family:marquette-regular;src:url(arsmarquette/ARSMaquettePro-Regular.otf)
,url(arsmarquette/ARSMaquettePro-Regular.otf) format('opentype')}@font-face{font-family:marquette-light;src:url(arsmarquette/ARSMaquettePro-Light.otf),url(arsmarquette/ARSMaquettePro-Light.otf) format('opentype')}.bold{font-family:marquette-medium}.main-content{background-color:#fff;margin:0 0 0 200px}.side-menu{position:absolute;top:51px;left:0;bottom:0;width:200px;float:left;background-color:#eee}footer{padding-top:20px;clear:both}.zero-out{padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0}.modal-body{overflow-y:visible}.demo-holder{margin:0 -20px 0 -20px;position:relative}.alert-holder{position:fixed;right:0;margin:20px 20px 0 0;z-index:10500;width:302px}.alert,.alert.alert-demo{padding:9px 35px 5px 14px;margin-bottom:3px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#eee;border:1px solid #eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-transition:all 1s ease;-moz-transition:all 1s
ease;transition:all 1s ease;height:0;overflow:hidden;line-height:0;float:right}.alert.alert-demo{float:none}.alert{width:0}.alert.alert-success{background-color:rgba(155,198,144,.31);color:#1f6719;border-left:2px solid #1f6719}.alert.alert-warning{background-color:rgba(239,172,37,.2);color:#efac25;border-left:2px solid #efac25}.alert.alert-info{background-color:rgba(27,151,209,.2);color:#1b97d1;border-left:2px solid #1b97d1}.alert.alert-error{background-color:rgba(255,3,3,.2);color:#ff0303;border-left:2px solid #ff0303}.alert.alert-animate.alert-demo{height:20px;line-height:normal;opacity:1;width:100%;-moz-box-shadow:inset 0 2px 13px #b8b8b8;-webkit-box-shadow:inset 0 2px 13px #b8b8b8;box-shadow:inset 0 2px 13px #b8b8b8}.alert.alert-animate{height:auto;line-height:normal;opacity:.9;width:300px}@-webkit-keyframes alert-out{from{opacity:1}to{-webkit-transform:translateY(500px);opacity:0}}@keyframes alert-out{from{opacity:1}to{transform:translateY(500px);opacity:0}}.fade-out{-webkit-a
nimation-name:alert-out;-webkit-animation-duration:1s;-webkit-animation-timing-function:step-stop;-webkit-animation-direction:normal;-webkit-animation-iteration-count:1;animation-name:alert-out;animation-duration:1s;animation-timing-function:step-stop;animation-direction:normal;animation-iteration-count:1;opacity:.9}.margin-35{margin-top:35px}.modal-footer{background-color:transparent}.baloon{margin:20px;padding:20px 30px;position:fixed;bottom:0;top:auto;border-style:solid;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.8)}.baloon:after{content:"";position:absolute;width:10px;height:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-o-transform:rotate(45deg);-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.7071067811865473, M12=-0.7071067811865477, M21=0.7071067811865477, M22=0.7071067811865473, SizingMethod='auto expand')"}.north.baloon:after{top:-6px;left:30px;border-top-style:solid;border-left-style:solid;box-shadow:-2px -2px 3px -1px rgba(0,0,0,.5)}.so
uth.baloon:after{bottom:-6px;left:30px;border-bottom-style:solid;border-right-style:solid;box-shadow:2px 2px 3px -1px rgba(0,0,0,.5)}.left.baloon:after{top:10px;left:-6px;border-bottom-style:solid;border-left-style:solid;box-shadow:-2px 2px 3px -1px rgba(0,0,0,.5)}.right.baloon:after{bottom:10px;right:-6px;border-top-style:solid;border-right-style:solid;box-shadow:2px -2px 3px -1px rgba(0,0,0,.5)}.baloon,.baloon:after{font-family:sans-serif;font-weight:700;border-color:#f7f7f7;border-width:1px;background-color:#3ac62f;color:#fff}#globalNav{float:right;margin:15px 8px 0 9px;list-style:none;width:114px}#globalNav ul{list-style:none}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(../img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailAppServices{background-image:url(../img/appswitcher/appServices_lg.png)}#globalNav
Detail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(../img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{background-image:url(../img/appswitcher/console_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(../img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:13px 10px}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu .active a{color:#fff;background-color:#bb2d16}.navbar.navbar-static-top .dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}#
globalNav .dropdown-toggle{border-radius:3px;padding:3px 6px;margin:0}.dropdown-toggle{background-color:#bb2d16;padding:3px}.demo-holder .alert.alert-demo{background-color:rgba(196,196,196,.1);color:#777;padding:12px 35px 7px 14px}.demo-holder-content{position:absolute;right:50px}.demo-text{position:absolute;right:223px;left:0;padding:0 0 0 10px}.b{display:block}.toggle,.toggle-form{position:absolute;top:10px;right:173px;width:50px;height:23px;border-radius:100px;background-color:#ddd;overflow:hidden;box-shadow:inset 0 0 2px 1px rgba(0,0,0,.05)}.form-horizontal.configs .control-label{width:250px;padding:0 10px 0 0}.toggle-form{position:relative;right:auto;top:auto;display:inline-block}.toggle-form-label{display:inline-block}input[type=checkbox].check{position:absolute;display:block;cursor:pointer;top:0;left:0;width:100%;height:100%;opacity:0;z-index:6}.check:checked~.track{box-shadow:inset 0 0 0 20px #ff3b00}.toggle-form .check:checked~.track{box-shadow:inset 0 0 0 20px #82ce85}.che
ck:checked~.switch{right:2px;left:27px;transition:.4s ease;transition-property:left,right;transition-delay:.05s,0s}.switch{position:absolute;left:2px;top:2px;bottom:2px;right:27px;background-color:#fff;border-radius:36px;z-index:1;transition:.4s ease;transition-property:left,right;transition-delay:0s,.05s;box-shadow:0 1px 2px rgba(0,0,0,.2)}.track{position:absolute;left:0;top:0;right:0;bottom:0;transition:.4s ease;box-shadow:inset 0 0 0 2px rgba(0,0,0,.05);border-radius:40px}.add-app .pictogram,top-selector .pictogram{margin:0 3px 0 0}i.pictogram{font-family:entypo;display:inline-block;width:23px;margin:0 5px 0 0;font-size:2.5em;height:17px;line-height:.35;overflow:hidden;vertical-align:middle;padding:5px 0 0;font-style:normal;font-weight:100;-webkit-font-smoothing:antialiased}i.pictogram.sub{margin:0 0 0 10px;font-size:2.1em}i.pictogram.title{margin:0;font-size:2.1em}i.pictogram.chart{margin:0 0 0 3px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}i.pictogram.apichart{marg
in:0 0 0 11px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}[class*=" ma-icon-"],[class^=ma-icon-]{display:inline-block;width:23px;height:20px;margin:1px 3px 0 0;line-height:20px;vertical-align:text-top;background-image:url(../img/nav-sprites.png);background-position:14px 14px;background-repeat:no-repeat}[class*=" sdk-icon-"],[class^=sdk-icon-]{display:inline-block;width:32px;height:29px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites.png);background-position:14px 14px;background-repeat:no-repeat;cursor:pointer;overflow:hidden}[class*=" sdk-icon-large-"],[class^=sdk-icon-large-]{display:inline-block;width:86px;height:86px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites-large.png);background-position:14px 14px;background-repeat:no-repeat;border:1px solid #aaa;-moz-box-shadow:3px 3px 0 -1px #ccc;-webkit-box-shadow:3px 3px 0 -1px #ccc;box-shadow:3px 3px 0 -1px #ccc}.sdk-i
con-ios{background-position:-6px -4px}.sdk-icon-android{background-position:-59px -3px}.sdk-icon-js{background-position:-109px -4px}.sdk-icon-node{background-position:-154px -3px}.sdk-icon-ruby{background-position:-204px -3px}.sdk-icon-net{background-position:-256px -4px}.sdk-icon-large-ios{background-position:-6px -3px}.sdk-icon-large-android{background-position:-113px 0}.sdk-icon-large-js{background-position:-219px 0}.sdk-icon-large-node{background-position:-323px -3px}.sdk-icon-large-ruby{background-position:-431px 0}.sdk-icon-large-net{background-position:-537px -3px}body>header>.navbar{background-color:#ff3b00}body>header .navbar:first-child>a{height:22px;line-height:22px;padding:10px 20px 20px 13px}.navbar.navbar-static-top a{text-shadow:none;color:#fff}.navbar-text{color:#fff;margin:4px}.navbar-text .dropdown-menu a{color:#343434}.navbar-text.pull-left{margin-left:90px}.top-nav,ul.app-nav li,ul.org-nav li{background-color:#fff}.top-nav .btn-group{margin:9px 0 5px 5px}.nav .ap
p-selector .caret,.nav .app-selector:active .caret,.nav .app-selector:focus .caret,.nav .app-selector:hover .caret,.nav .org-selector .caret,.nav .org-selector:active .caret,.nav .org-selector:focus .caret,.nav .org-selector:hover .caret{border-top-color:#5f5f5f;border-bottom-color:transparent;margin-top:8px;position:absolute;right:10px}.org-options{margin:5px 2px -8px -5px;border-top:3px solid #e6e6e6;overflow:hidden}.navbar.secondary{margin:0 -20px 0 -21px;border-bottom:3px solid #e6e6e6}.navbar.secondary>.container-fluid{margin:0 -20px 0 -18px}.navbar.secondary .nav,.navbar.secondary>.container-fluid .nav-collapse.collapse.span9,.top-nav{margin:0}.top-nav>li,.top-nav>li>div{width:100%}.span9.button-area{margin-left:0}.navbar .nav a.btn-create i{margin:1px 0 0}.navbar .nav a.btn-create,.navbar .nav a.btn-create:hover{text-align:left;font-weight:400;color:#1b70a0;padding:0 0 0 10px;margin:4px 0 0 3px;display:block;width:140px;height:30px;line-height:30px;background-color:#f3f3f3}.n
avbar .nav a.btn-create:hover{color:#1b70a0}.navbar .nav a.btn-create:active{box-shadow:none}.sdks>ul>li.title label{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px;cursor:default}.sdks>ul>li.title a{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px}.sdks>ul{list-style:none;margin:0;height:32px;overflow:hidden}.sdks>ul>li{display:inline;margin:0 10px 0 0;line-height:11px}.navbar.secondary,.navbar.secondary .btn-group>.btn,.navbar.secondary .btn-group>.dropdown-menu,.side-menu .btn-group>.btn,.side-menu .dropdown-menu{text-transform:uppercase;font-family:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif;color:#5f5f5f;font-size:14px;-webkit-font-smoothing:antialiased}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover,.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{text-decoration:none;color:#fff;background-color:#5f
5f5f;background-image:-moz-linear-gradient(top,#5f5f5f,#787878);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5f5f5f),to(#787878));background-image:-webkit-linear-gradient(top,#5f5f5f,#787878);background-image:-o-linear-gradient(top,#5f5f5f,#787878);background-image:linear-gradient(to bottom,#5f5f5f,#787878);background-repeat:repeat-x}.btn-group.open .btn.dropdown-toggle.top-selector,.top-selector,.top-selector:active,.top-selector:focus,.top-selector:hover{color:#5f5f5f;padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0;width:100%;text-align:left}.dialog-body{padding:20px}h1.title{font-size:1.3em;font-family:marquette-medium,"Helvetica Neue",sans-serif;color:#686868;line-height:17px;display:inline-block;padding:0 10px 0 0}h2.title{text-transform:uppercase;font-size:1.2em;border-top:2px solid #eee;color:#828282}h2.title.chart{margin:10px 0 20px 10px;z-index:101;position:absolute;top:0;left:0;right:0}h3.title{t
ext-transform:uppercase;font-size:1.1em}.sidebar-nav .nav-list{padding:0}.nav-list .nav-header,.sidebar-nav .nav-list>li>a{margin-right:0}.sidebar-nav .nav-list.trans{max-height:100000px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;display:block;opacity:0}.sidebar-nav .nav-list li a{padding:10px 0 10px 25px;color:#5f5f5f;text-shadow:none;background-color:#eee;font-size:14px;text-transform:uppercase;position:relative}.sidebar-nav .nav-list li a.org-overview{background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif}.sidebar-nav .nav-list li a.org-overview:hover{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li{margin:0;height:39px;overflow:hidden}.sidebar-nav .nav-list:first-child>li.active{height:auto;overflow:visible}.sidebar-nav .nav-list:first-child>li>ul>li>a{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li.active>a,.sidebar-nav .nav-list:first-child>li>a:focus,.sidebar-nav .nav-list:first-child>li>a
:hover{color:#fff;text-shadow:none;background-color:#1b70a0;margin:0 0 0 -15px}.sidebar-nav .nav-list:first-child li.active>ul>li>a{background-color:#fff}.sidebar-nav .nav-list li.option>ul{overflow:hidden;opacity:0;height:auto;display:block;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;max-height:100000px}.sidebar-nav .nav-list li.option.active>ul{opacity:1}.sidebar-nav .nav-list li.active>ul>li a{border-bottom:1px solid #eee;color:#747474;text-transform:none;font-weight:300;padding:10px 0 10px 22px}.sidebar-nav .nav-list li.active>ul>li.active>a,.sidebar-nav .nav-list li.active>ul>li>a:focus,.sidebar-nav .nav-list li.active>ul>li>a:hover{color:#1b70a0;background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAKCAYAAAB4zEQNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIH
g6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NkEzQ0Y1MUI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NkEzQ0Y1MkI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU2QTNDRjRGQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU2QTNDRjUwQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+poqUzgAAAG1JREFUeNpilC5YwIADqLNgEWQG4kYg9mNCk1AE4sNAXA3iIEuGAPF5ILaECYAkeYB
4DhCvBmJ+ZGNAkt+B+CkQ/0W3nAkqWA/EblBFKJIwsA+IDYF4BzZJEHgNxJ5AXAbEv1hwBEA3EK8BCDAAwgoRW2zTv6EAAAAASUVORK5CYII=) no-repeat;background-position:206px 16px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif;border-bottom:1px solid #eee;text-shadow:none;-webkit-font-smoothing:antialiased}.sidebar-nav .nav-list li.option ul{list-style:none}.new-tag{border-radius:3px;display:inline-block;font-family:marquette-medium;font-size:.6em;background-color:rgba(26,26,26,.5);color:#fff;padding:3px;height:8px;line-height:8px;position:absolute;right:5px;top:13px}.sidebar-nav .nav-list li:active a{background-color:rgba(255,255,255,.5)}.app-creds dt{font-family:marquette-medium}.intro-container{position:relative;height:auto;-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;transition:all .5s ease-out;overflow:hidden}.sdk-intro{position:absolute;border:1px solid #aaa;background-color:#f4f4f4;-moz-box-shadow:inset 0 0 10px #ccc;-webkit-box-shadow:inset 0 0 10px #cc
c;box-shadow:inset 0 4px 10px #ccc;opacity:.4;top:0;left:6px;right:1px;bottom:0;height:auto;overflow:hidden}.sdk-intro-content{position:absolute;padding:10px 40px 10px 10px;top:0;left:6px;right:-20px;bottom:0;height:auto;overflow:auto}.sdk-intro-content .btn.normal{margin:19px 10px 0 0}.keys-creds h2{margin-bottom:-2px}.user-list{padding:0;margin:0;list-style:none;min-height:450px;float:left;width:100%}.user-list li{padding:10px;border-bottom:1px solid #c5c5c5;cursor:pointer}.user-list li .label{margin:0 0 0 22px}.user-list li input{margin:0 10px 0 0}.user-list li.selected{background-color:#eee}#user-panel{margin-top:20px}.user-col{border-right:1px solid #c5c5c5;-moz-box-shadow:inset -27px 1px 6px -27px #b8b8b8;-webkit-box-shadow:inset -27px 1px 6px -27px #b8b8b8;box-shadow:inset -27px 1px 6px -27px #b8b8b8}.user-profile-picture{width:40px;height:40px}.content-page>.well{padding:10px;height:40px}.table-header td{font-weight:800;color:#000}.user-header-title{font-size:13px;font-famil
y:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif}.tabbable>.tab-content{overflow:visible}.button-strip{float:right;margin-bottom:10px}a.notifications-links{color:#1b97d1}.notifications-header{height:50px;background-color:#eee;padding:10px;border-bottom:1px solid #aaa;position:relative;overflow:hidden}.groups-row td.details,.notifications-row td.details,.roles-row td.details,.users-row td.details{line-height:25px!important;border-right:1px solid #e5e5e5}.nav-tabs>li{cursor:pointer}.login-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.login-content form{margin:0}.login-content form h1{padding:10px 0 5px 20px}.login-holder{width:450px;border:1px solid #e5e5e5}.login-holder .form-actions{padding-left:30px;margin-bottom:0}.login-holder .form-actions .submit{padding:0 30px 0 0}.login-content .extra-actions{margin-top:10px;padding-left:30px;margin-bottom:0}.login-content .extra-actions .submit{padding:0 30px 0 0}.login-co
ntent .extra-actions .submit a{margin-left:3px;margin-right:3px}.signUp-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.signUp-content form{margin:0}.signUp-content form h1{padding:10px 0 5px 20px}.signUp-holder{width:450px;border:1px solid #e5e5e5}.signUp-holder .form-actions{margin-bottom:0}.signUp-holder .form-actions .submit{padding:0 30px 0 0}.table.collection-list{border:1px solid #eee}.formatted-json,.formatted-json ul{list-style:none}.formatted-json .key{font-family:marquette-medium}.formatted-json li{border-bottom:1px solid #eee;margin:3px 0}iframe[seamless]{background-color:transparent;border:0 none transparent;padding:0;overflow:visible;overflow-x:hidden;width:100%}.gravatar20{padding:7px 0 0 10px!important;margin:0;width:30px}#shell-panel *{font-family:monospace}#shell-panel .boxContent{font-family:monospace;font-size:14px;min-height:400px}#shell-panel input{font-family:monospace;overflow:auto;width:90%;margin-top:10px
}#shell-panel hr{margin:2px;border-color:#e1e1e1}form input.has-error{-webkit-animation:pulse-red 1s alternate infinite;-moz-animation:pulse-red 1s alternate infinite;border:1px solid rgba(255,3,3,.6)}.validator-error-message{color:#ff0303}@-webkit-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}@-moz-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}.modal-instructions{padding-top:5px;padding-bottom:5px}.dropdown-menu{width:100%}.modal{width:560px!important}.dropdown-backdrop{position:static}.title.with-icons a{display:inline-block;text-transform:lowercase;font-size:.8em;margin:0 5px 0 0}.span9.tab-content{margin:0}.span9.tab-content .content-page{padding:0 0 0 30px}.button-toolbar,.menu-toolbar{padding:10px 0;margin:0;width:1
00%}.menu-toolbar{padding:0 0 20px}.menu-toolbar>ul.inline{border-bottom:1px solid #c5c5c5;margin:0}.btn-group .filter-selector,.btn-group .filter-selector:active,.btn-group .filter-selector:focus,.btn-group .filter-selector:hover,.btn-group .filter-title,.btn-group .filter-title:active,.btn-group .filter-title:focus,.btn-group.open .btn.dropdown-toggle.filter-selector,.btn-group.open .btn.dropdown-toggle.filter-title,.btn-group>.filter-selector.btn:first-child,.btn-group>.filter-title.btn:first-child,.btn.btn-primary,.btn.normal,.modal-footer .btn{color:#fff;padding:3px 9px;text-shadow:none;background-color:#494949;background-image:none;border:1px solid #c5c5c5;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-bottom-left-radius:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;box-shadow:none}ul.inline>li.tab{margin:0;padding:0}li.tab .btn.btn-primary{background-color:#eee;border:0;color:#494949;box-shadow:none;margin:0 -1px -1px -1px;padding:3px 19px 3
px 16px;border-bottom:1px solid #c5c5c5}ul.inline>li.tab.selected{margin:0 0 -1px 0;border-bottom:1px solid #fff}li.tab.selected .btn.btn-primary.toolbar{color:#494949;border-left:1px solid #c5c5c5;border-right:1px solid #c5c5c5;border-top:1px solid #c5c5c5;border-bottom:0;background-color:#fff}.btn-group.compare .filter-selector.btn:first-child,.btn.btn-primary.toolbar{color:#494949;background-color:#f1f1f1}li.selected .btn.btn-primary.toolbar{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn.cancel,.btn.cancel:hover,.btn.normal.white,.btn.normal.white:hover{background-color:#fff;color:#5f5f5f}.btn-group .filter-selector:active,.btn-group .filter-title:hover,.btn-group.selected .filter-selector,.btn-group.selected>.filter-selector.btn:first-child,.btn.btn-primary:active,.btn.btn-primary:hover,.btn.normal:hover,.modal-footer .btn:active,.modal-footer .btn:hover{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn-group .filter-selector .caret{margin:8px
0 0 10px;border-top:4px solid #fff;border-right:4px solid transparent;border-left:4px solid transparent}.btn-group.header-button{margin:4px 0 0;text-transform:none}.page-filters{padding:0;margin:10px 0}.dropdown-menu{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;z-index:102}.modal{position:fixed;top:10%;left:50%;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.3);*border:1px solid #999;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,.3);box-shadow:0 3px 7px rgba(0,0,0,.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:0}.modal.fade{z-index:-200}.modal.fade.in{z-index:1050}.auto-update-container{padding:10px 0 0}.auto-updates{margin:0 10px 0 0}.super-help{font-size:9pt;vertical-align:super}.help_tooltip{font-size:9pt;text-transform:none}.helpButton{font-family:Helvetica,Arial,s
ans-serif;font-size:13px;font-weight:300;padding:5px 8px;text-align:center;vertical-align:middle;color:#ffd6ca;border:1px solid #ffbfab;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#ff3b00;width:110px;outline:0}.helpButton:hover{cursor:pointer;background-color:#FFB7A5;color:#dc3300;-webkit-transition:background-color .1s;-moz-transition:background-color .1s;-o-transition:background-color .1s;transition:background-color .1s}.helpButtonClicked{background-color:#FFB7A5;color:#dc3300;outline:0}.introjs-overlay{background:0 0;filter:none;-ms-filter:"alpha(Opacity=20)";filter:alpha(opacity=20);background-color:#fff;opacity:.2}.introjs-helperLayer{border-radius:0;box-shadow:none;border:1px solid rgba(0,0,0,.25)}.introjs-helperNumberLayer{top:-12px;left:-12px;font-family:"Open Sans",Arial,sans-serif;font-weight:400;border:0;filter:none;filter:none;box-shadow:none}.introjs-arrow{border:10px solid #fff}.introjs-arrow.top{top:-20px;border-bottom-color:#6d
bce3}.introjs-arrow.right{right:-20px;top:20px;border-left-color:#6dbce3}.introjs-arrow.bottom{bottom:-20px;border-top-color:#6dbce3}.introjs-arrow.left{left:-20px;top:20px;border-right-color:#6dbce3}.introjs-arrow:before{border:10px solid #fff;content:'';position:absolute}.introjs-arrow.top:before{top:-8px;left:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#F0F8FC;border-left-color:transparent}.introjs-arrow.right:before{right:-7px;top:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:#F0F8FC}.introjs-arrow.bottom:before{bottom:-9px;left:-10px;border-top-color:#F0F8FC;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.introjs-arrow.left:before{left:-7px;top:-10px;border-top-color:transparent;border-right-color:#F0F8FC;border-bottom-color:transparent;border-left-color:transparent}.introjs-tooltip{background-color:#F0F8FC;border-radius:0
;border:1px solid #6dbce3;box-shadow:0 1px 7px rgba(0,0,0,.3)}.introjs-button{text-shadow:none;font:12px/normal sans-serif;color:#1f77a3;background-color:#F0F8FC;background-image:none;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #d4d4d4}.introjs-button:hover{font-family:"Open Sans",Arial,sans-serif}.introjs-button:active,.introjs-button:focus{text-decoration:none;outline:0}.introjs-skipbutton{color:#1f77a3;text-decoration:none;font-family:"Open Sans",Arial,sans-serif;margin-right:35px;border:1px solid #6dbce3}.introjs-nextbutton{text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px;border-color:#6dbce3}.introjs-prevbutton{border-right:0;text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px;border-color:#6dbce3}.introjs-nextbutton.introjs-disabled,.introjs-nextbutton.introjs-disabled:active,.introjs-nextbutton.introjs-disabled:focus,.introjs-nextbutton.introjs-disabled:hover{background-image:url(img/introjs_
arrow_step_next_disabled.png);background-position:48px 5px;background-repeat:no-repeat;text-align:left;border-left:1px solid #6dbce3}.introjs-prevbutton.introjs-disabled,.introjs-prevbutton.introjs-disabled:active,.introjs-prevbutton.introjs-disabled:focus,.introjs-prevbutton.introjs-disabled:hover{background-image:url(img/introjs_arrow_step_prev_disabled.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right;border:1px solid #d4d4d4}.introjs-nextbutton,.introjs-nextbutton:active,.introjs-nextbutton:focus,.introjs-nextbutton:hover{background-image:url(img/introjs_arrow_step_next.png);background-position:48px 5px;background-repeat:no-repeat;text-align:left}.introjs-prevbutton,.introjs-prevbutton:active,.introjs-prevbutton:focus,.introjs-prevbutton:hover{background-image:url(img/introjs_arrow_step_prev.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right}.introjs-disabled,.introjs-disabled:focus,.introjs-disabled:hover{color:gray;backgro
und-color:#F0F8FC}.introjs-tooltiptext{font-size:13px;line-height:19px}.introjstooltipheader{font-size:13px;line-height:19px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d3017f28/portal/css/main.css
----------------------------------------------------------------------
diff --git a/portal/css/main.css b/portal/css/main.css
index 1726b9c..d2f46e4 100644
--- a/portal/css/main.css
+++ b/portal/css/main.css
@@ -1769,6 +1769,7 @@ li.selected .btn.btn-primary.toolbar {
border: 1px solid rgba(0,0,0,.1);
border-radius: 0;
box-shadow: none;
+ border: 1px solid rgba(0,0,0,.25);
}
.introjs-helperNumberLayer {
@@ -1859,8 +1860,7 @@ li.selected .btn.btn-primary.toolbar {
/* ----- button styles ----- */
.introjs-button {
- font-family: "Open Sans", Arial, sans-serif;
- border: 1px solid #6dbce3;
+ font-family: "Open Sans", Arial, sans-serif;
text-shadow: none;
font: 12px/normal sans-serif;
color: #1f77a3;
@@ -1869,10 +1869,10 @@ li.selected .btn.btn-primary.toolbar {
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
+ border: 1px solid #d4d4d4;
}
.introjs-button:hover {
- border-color: #6dbce3;
font-family: "Open Sans", Arial, sans-serif;
}
@@ -1886,6 +1886,8 @@ li.selected .btn.btn-primary.toolbar {
color: #1f77a3;
text-decoration: none;
font-family: "Open Sans", Arial, sans-serif;
+ margin-right: 35px;
+ border: 1px solid #6dbce3;
}
.introjs-nextbutton {
@@ -1893,7 +1895,7 @@ li.selected .btn.btn-primary.toolbar {
font-family: "Open Sans", Arial, sans-serif;
text-align: left;
width: 40px;
-
+ border-color: #6dbce3;
}
.introjs-prevbutton {
@@ -1902,6 +1904,7 @@ li.selected .btn.btn-primary.toolbar {
font-family: "Open Sans", Arial, sans-serif;
text-align: right;
width: 40px;
+ border-color: #6dbce3;
}
.introjs-nextbutton.introjs-disabled,
@@ -1912,6 +1915,7 @@ li.selected .btn.btn-primary.toolbar {
background-position: 48px 5px;
background-repeat: no-repeat;
text-align: left;
+ border-left: 1px solid #6dbce3;
}
.introjs-prevbutton.introjs-disabled,
@@ -1922,6 +1926,7 @@ li.selected .btn.btn-primary.toolbar {
background-position: 2px 5px;
background-repeat: no-repeat;
text-align: right;
+ border: 1px solid #d4d4d4;
}
.introjs-nextbutton,
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d3017f28/portal/dist/appsvc-ui.2.0.1.zip
----------------------------------------------------------------------
diff --git a/portal/dist/appsvc-ui.2.0.1.zip b/portal/dist/appsvc-ui.2.0.1.zip
index b10ff37..6fd3aff 100644
Binary files a/portal/dist/appsvc-ui.2.0.1.zip and b/portal/dist/appsvc-ui.2.0.1.zip differ
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d3017f28/portal/js/global/help-service.js
----------------------------------------------------------------------
diff --git a/portal/js/global/help-service.js b/portal/js/global/help-service.js
index 5e472a9..de067df 100644
--- a/portal/js/global/help-service.js
+++ b/portal/js/global/help-service.js
@@ -38,13 +38,13 @@ AppServices.Services.factory('help', function($rootScope, $http, $analytics) {
exitOnEsc: true,
nextLabel: 'Next',
prevLabel: 'Back',
- skipLabel: 'Got It',
- doneLabel: 'Got it'
+ skipLabel: 'Exit',
+ doneLabel: 'Done'
};
$rootScope.$on("$routeChangeSuccess", function(event, current) {
//hide the help buttons if not on org-overview page
- var path = current.$$route.originalPath;
+ var path = current.$$route ? current.$$route.originalPath : null;
if (path == '/org-overview') {
$rootScope.help.showHelpButtons = true;
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d3017f28/portal/js/libs/bootstrap/custom/css/bootstrap.css
----------------------------------------------------------------------
diff --git a/portal/js/libs/bootstrap/custom/css/bootstrap.css b/portal/js/libs/bootstrap/custom/css/bootstrap.css
index 0e465de..36b6468 100755
--- a/portal/js/libs/bootstrap/custom/css/bootstrap.css
+++ b/portal/js/libs/bootstrap/custom/css/bootstrap.css
@@ -4538,10 +4538,11 @@ a.thumbnail:focus {
.tooltip-inner {
max-width: 200px;
padding: 8px;
- color: #ffffff;
- text-align: center;
+ color: #000000;
+ text-align: left;
text-decoration: none;
- background-color: #000000;
+ background-color: #F0F8FC;
+ border: 1px solid #6dbce3;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
@@ -4558,28 +4559,28 @@ a.thumbnail:focus {
left: 50%;
margin-left: -5px;
border-width: 5px 5px 0;
- border-top-color: #000000;
+ border-top-color: #6dbce3;
}
.tooltip.right .tooltip-arrow {
top: 50%;
left: 0;
margin-top: -5px;
border-width: 5px 5px 5px 0;
- border-right-color: #000000;
+ border-right-color: #6dbce3;
}
.tooltip.left .tooltip-arrow {
top: 50%;
right: 0;
margin-top: -5px;
border-width: 5px 0 5px 5px;
- border-left-color: #000000;
+ border-left-color: #6dbce3;
}
.tooltip.bottom .tooltip-arrow {
top: 0;
left: 50%;
margin-left: -5px;
border-width: 0 5px 5px;
- border-bottom-color: #000000;
+ border-bottom-color: #6dbce3;
}
.popover {
position: absolute;
[10/34] git commit: fixed introjs hover border and spaced next/back
buttons
Posted by sn...@apache.org.
fixed introjs hover border and spaced next/back buttons
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/ad1e3b39
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/ad1e3b39
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/ad1e3b39
Branch: refs/heads/master
Commit: ad1e3b399f5f9e20065f8450ee01374745b3c43d
Parents: d3017f2
Author: amuramoto <am...@apigee.com>
Authored: Fri Mar 28 14:50:06 2014 -0700
Committer: amuramoto <am...@apigee.com>
Committed: Fri Mar 28 14:50:06 2014 -0700
----------------------------------------------------------------------
portal/css/dash.min.css | 2 +-
portal/css/main.css | 49 +++++++++++++++++++++++---------------------
2 files changed, 27 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ad1e3b39/portal/css/dash.min.css
----------------------------------------------------------------------
diff --git a/portal/css/dash.min.css b/portal/css/dash.min.css
index afe2e5f..62424d9 100644
--- a/portal/css/dash.min.css
+++ b/portal/css/dash.min.css
@@ -1 +1 @@
-.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;opacity:.3;filter:alpha(opacity=30);content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100)}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;padding:4px 0;margin:0;list-style:none;background-color:#fff;border-color:#ccc;border-color:rgba(0,0,0,.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip
:padding-box;*border-right-width:2px;*border-bottom-width:2px}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff;*width:100%;*margin:-5px 0 5px}.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}.dropdown-menu .active>a,.dropdown-menu .active>a:hover,.dropdown-menu li>a:hover{color:#fff;text-decoration:none;background-color:#08c}.dropdown.open{*z-index:1000}.dropdown.open .dropdown-toggle{color:#fff;background:#ccc;background:rgba(0,0,0,.3)}.dropdown.open .dropdown-menu{display:block}.pull-right .dropdown-menu{left:auto;right:0}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdownContainingSubmenu .dropdown-menu{padding:0;margin-t
op:-4px;min-width:auto;background-color:#fff;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:4px 4px 16px rgba(0,0,0,.25);-moz-box-shadow:4px 4px 16px rgba(0,0,0,.25);box-shadow:4px 4px 16px rgba(0,0,0,.25);border-width:1px;border-top-width:4px;border-color:#bb2d16}.dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:7px 10px}.dropdownContainingSubmenu .dropdown-menu a:hover{color:#fff;background-color:#f03800}.dropdownContainingSubmenu .dropdown-menu .nav-header{background-color:#f0f0f0;margin-top:0;padding-left:10px}.dropdownContainingSubmenu .dropdown-menu .divider{margin:0}.navbar .dropdown-menu:after,.navbar .dropdown-menu:before{content:normal}#globalNav{margin-left:20px;background-color:transparent}#globalNav .dropdown-toggle{border-radius:3px;padding-top:3px;padding-bottom:3px;margin-top:7.5px;margin-bottom:7.5px}#globalNav .dropdown-toggle :hover{background-color:transparent}#globalNav.active .caret{opacity:.7}#globalNav.active :
hover .caret{opacity:1}#globalNav ul ul a{border-left:1px solid #bb2d16}#globalNav ul ul li{position:relative}#globalNav ul ul li:first-child{border-bottom:1px solid #bb2d16}#globalNav ul ul a:before{content:"";width:6px;height:32px;position:absolute;left:-6px;top:0}#globalNav ul ul .active a:before,#globalNav ul ul .active a:hover:before{background-image:url(images/triangleMenuItem_right.png)}#globalNav ul ul:hover a:before{background-image:none}#globalNav ul ul a:hover:before{background-image:url(images/triangleMenuItem_right_hover.png)}#globalNav ul ul li a:hover{border-color:transparent}#globalNav .dropdown-menu{width:400px}#globalNavDetail{padding:20px 10px 0;width:250px;height:100%;position:relative;top:0}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail>div.open{display:inline-block}#globalNavDetail>div .globalNavDetailApigeeLogo,#globalNavDetail>div .globalNavDetailDescr
iption,#globalNavDetail>div .globalNavDetailSubtitle,#globalNavDetail>div .globalNavDetailTitle{margin-left:80px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}#globalNavDetail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail #globalNavDetailAppServices{background-image:url(img/appswitcher/appServices_lg.png)}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailMobileAnalytics{background-image:url(img/appswitcher/max_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{ba
ckground-image:url(img/appswitcher/console_lg.png)}#globalNavSubmenuContainer{float:right}#globalNavSubmenuContainer ul{margin-left:0}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none}html{min-height:100%;position:relative;margin:0 auto;background:#fff;min-width:1100px}body{padding:0;background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif;height:100%;max-height:100%;overflow-x:hidden}a{cursor:pointer}@font-face{font-family:entypo;src:url(entypo/entypo.eot);src:url(entypo/entypo.eot?#iefix) format('embedded-opentype'),url(entypo/entypo.woff) format('woff'),url(entypo/entypo.ttf) format('truetype'),url(entypo/entypo.svg#entypo) format('svg');font-weight:400;font-style:normal}@font-face{font-family:marquette-medium;src:url(arsmarquette/ARSMaquettePro-Medium.otf),url(arsmarquette/ARSMaquettePro-Medium.otf) format('opentype')}@font-face{font-family:marquette-regular;src:url(arsmarquette/ARSMaquettePro-Regular.otf)
,url(arsmarquette/ARSMaquettePro-Regular.otf) format('opentype')}@font-face{font-family:marquette-light;src:url(arsmarquette/ARSMaquettePro-Light.otf),url(arsmarquette/ARSMaquettePro-Light.otf) format('opentype')}.bold{font-family:marquette-medium}.main-content{background-color:#fff;margin:0 0 0 200px}.side-menu{position:absolute;top:51px;left:0;bottom:0;width:200px;float:left;background-color:#eee}footer{padding-top:20px;clear:both}.zero-out{padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0}.modal-body{overflow-y:visible}.demo-holder{margin:0 -20px 0 -20px;position:relative}.alert-holder{position:fixed;right:0;margin:20px 20px 0 0;z-index:10500;width:302px}.alert,.alert.alert-demo{padding:9px 35px 5px 14px;margin-bottom:3px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#eee;border:1px solid #eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-transition:all 1s ease;-moz-transition:all 1s
ease;transition:all 1s ease;height:0;overflow:hidden;line-height:0;float:right}.alert.alert-demo{float:none}.alert{width:0}.alert.alert-success{background-color:rgba(155,198,144,.31);color:#1f6719;border-left:2px solid #1f6719}.alert.alert-warning{background-color:rgba(239,172,37,.2);color:#efac25;border-left:2px solid #efac25}.alert.alert-info{background-color:rgba(27,151,209,.2);color:#1b97d1;border-left:2px solid #1b97d1}.alert.alert-error{background-color:rgba(255,3,3,.2);color:#ff0303;border-left:2px solid #ff0303}.alert.alert-animate.alert-demo{height:20px;line-height:normal;opacity:1;width:100%;-moz-box-shadow:inset 0 2px 13px #b8b8b8;-webkit-box-shadow:inset 0 2px 13px #b8b8b8;box-shadow:inset 0 2px 13px #b8b8b8}.alert.alert-animate{height:auto;line-height:normal;opacity:.9;width:300px}@-webkit-keyframes alert-out{from{opacity:1}to{-webkit-transform:translateY(500px);opacity:0}}@keyframes alert-out{from{opacity:1}to{transform:translateY(500px);opacity:0}}.fade-out{-webkit-a
nimation-name:alert-out;-webkit-animation-duration:1s;-webkit-animation-timing-function:step-stop;-webkit-animation-direction:normal;-webkit-animation-iteration-count:1;animation-name:alert-out;animation-duration:1s;animation-timing-function:step-stop;animation-direction:normal;animation-iteration-count:1;opacity:.9}.margin-35{margin-top:35px}.modal-footer{background-color:transparent}.baloon{margin:20px;padding:20px 30px;position:fixed;bottom:0;top:auto;border-style:solid;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.8)}.baloon:after{content:"";position:absolute;width:10px;height:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-o-transform:rotate(45deg);-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.7071067811865473, M12=-0.7071067811865477, M21=0.7071067811865477, M22=0.7071067811865473, SizingMethod='auto expand')"}.north.baloon:after{top:-6px;left:30px;border-top-style:solid;border-left-style:solid;box-shadow:-2px -2px 3px -1px rgba(0,0,0,.5)}.so
uth.baloon:after{bottom:-6px;left:30px;border-bottom-style:solid;border-right-style:solid;box-shadow:2px 2px 3px -1px rgba(0,0,0,.5)}.left.baloon:after{top:10px;left:-6px;border-bottom-style:solid;border-left-style:solid;box-shadow:-2px 2px 3px -1px rgba(0,0,0,.5)}.right.baloon:after{bottom:10px;right:-6px;border-top-style:solid;border-right-style:solid;box-shadow:2px -2px 3px -1px rgba(0,0,0,.5)}.baloon,.baloon:after{font-family:sans-serif;font-weight:700;border-color:#f7f7f7;border-width:1px;background-color:#3ac62f;color:#fff}#globalNav{float:right;margin:15px 8px 0 9px;list-style:none;width:114px}#globalNav ul{list-style:none}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(../img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailAppServices{background-image:url(../img/appswitcher/appServices_lg.png)}#globalNav
Detail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(../img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{background-image:url(../img/appswitcher/console_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(../img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:13px 10px}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu .active a{color:#fff;background-color:#bb2d16}.navbar.navbar-static-top .dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}#
globalNav .dropdown-toggle{border-radius:3px;padding:3px 6px;margin:0}.dropdown-toggle{background-color:#bb2d16;padding:3px}.demo-holder .alert.alert-demo{background-color:rgba(196,196,196,.1);color:#777;padding:12px 35px 7px 14px}.demo-holder-content{position:absolute;right:50px}.demo-text{position:absolute;right:223px;left:0;padding:0 0 0 10px}.b{display:block}.toggle,.toggle-form{position:absolute;top:10px;right:173px;width:50px;height:23px;border-radius:100px;background-color:#ddd;overflow:hidden;box-shadow:inset 0 0 2px 1px rgba(0,0,0,.05)}.form-horizontal.configs .control-label{width:250px;padding:0 10px 0 0}.toggle-form{position:relative;right:auto;top:auto;display:inline-block}.toggle-form-label{display:inline-block}input[type=checkbox].check{position:absolute;display:block;cursor:pointer;top:0;left:0;width:100%;height:100%;opacity:0;z-index:6}.check:checked~.track{box-shadow:inset 0 0 0 20px #ff3b00}.toggle-form .check:checked~.track{box-shadow:inset 0 0 0 20px #82ce85}.che
ck:checked~.switch{right:2px;left:27px;transition:.4s ease;transition-property:left,right;transition-delay:.05s,0s}.switch{position:absolute;left:2px;top:2px;bottom:2px;right:27px;background-color:#fff;border-radius:36px;z-index:1;transition:.4s ease;transition-property:left,right;transition-delay:0s,.05s;box-shadow:0 1px 2px rgba(0,0,0,.2)}.track{position:absolute;left:0;top:0;right:0;bottom:0;transition:.4s ease;box-shadow:inset 0 0 0 2px rgba(0,0,0,.05);border-radius:40px}.add-app .pictogram,top-selector .pictogram{margin:0 3px 0 0}i.pictogram{font-family:entypo;display:inline-block;width:23px;margin:0 5px 0 0;font-size:2.5em;height:17px;line-height:.35;overflow:hidden;vertical-align:middle;padding:5px 0 0;font-style:normal;font-weight:100;-webkit-font-smoothing:antialiased}i.pictogram.sub{margin:0 0 0 10px;font-size:2.1em}i.pictogram.title{margin:0;font-size:2.1em}i.pictogram.chart{margin:0 0 0 3px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}i.pictogram.apichart{marg
in:0 0 0 11px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}[class*=" ma-icon-"],[class^=ma-icon-]{display:inline-block;width:23px;height:20px;margin:1px 3px 0 0;line-height:20px;vertical-align:text-top;background-image:url(../img/nav-sprites.png);background-position:14px 14px;background-repeat:no-repeat}[class*=" sdk-icon-"],[class^=sdk-icon-]{display:inline-block;width:32px;height:29px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites.png);background-position:14px 14px;background-repeat:no-repeat;cursor:pointer;overflow:hidden}[class*=" sdk-icon-large-"],[class^=sdk-icon-large-]{display:inline-block;width:86px;height:86px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites-large.png);background-position:14px 14px;background-repeat:no-repeat;border:1px solid #aaa;-moz-box-shadow:3px 3px 0 -1px #ccc;-webkit-box-shadow:3px 3px 0 -1px #ccc;box-shadow:3px 3px 0 -1px #ccc}.sdk-i
con-ios{background-position:-6px -4px}.sdk-icon-android{background-position:-59px -3px}.sdk-icon-js{background-position:-109px -4px}.sdk-icon-node{background-position:-154px -3px}.sdk-icon-ruby{background-position:-204px -3px}.sdk-icon-net{background-position:-256px -4px}.sdk-icon-large-ios{background-position:-6px -3px}.sdk-icon-large-android{background-position:-113px 0}.sdk-icon-large-js{background-position:-219px 0}.sdk-icon-large-node{background-position:-323px -3px}.sdk-icon-large-ruby{background-position:-431px 0}.sdk-icon-large-net{background-position:-537px -3px}body>header>.navbar{background-color:#ff3b00}body>header .navbar:first-child>a{height:22px;line-height:22px;padding:10px 20px 20px 13px}.navbar.navbar-static-top a{text-shadow:none;color:#fff}.navbar-text{color:#fff;margin:4px}.navbar-text .dropdown-menu a{color:#343434}.navbar-text.pull-left{margin-left:90px}.top-nav,ul.app-nav li,ul.org-nav li{background-color:#fff}.top-nav .btn-group{margin:9px 0 5px 5px}.nav .ap
p-selector .caret,.nav .app-selector:active .caret,.nav .app-selector:focus .caret,.nav .app-selector:hover .caret,.nav .org-selector .caret,.nav .org-selector:active .caret,.nav .org-selector:focus .caret,.nav .org-selector:hover .caret{border-top-color:#5f5f5f;border-bottom-color:transparent;margin-top:8px;position:absolute;right:10px}.org-options{margin:5px 2px -8px -5px;border-top:3px solid #e6e6e6;overflow:hidden}.navbar.secondary{margin:0 -20px 0 -21px;border-bottom:3px solid #e6e6e6}.navbar.secondary>.container-fluid{margin:0 -20px 0 -18px}.navbar.secondary .nav,.navbar.secondary>.container-fluid .nav-collapse.collapse.span9,.top-nav{margin:0}.top-nav>li,.top-nav>li>div{width:100%}.span9.button-area{margin-left:0}.navbar .nav a.btn-create i{margin:1px 0 0}.navbar .nav a.btn-create,.navbar .nav a.btn-create:hover{text-align:left;font-weight:400;color:#1b70a0;padding:0 0 0 10px;margin:4px 0 0 3px;display:block;width:140px;height:30px;line-height:30px;background-color:#f3f3f3}.n
avbar .nav a.btn-create:hover{color:#1b70a0}.navbar .nav a.btn-create:active{box-shadow:none}.sdks>ul>li.title label{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px;cursor:default}.sdks>ul>li.title a{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px}.sdks>ul{list-style:none;margin:0;height:32px;overflow:hidden}.sdks>ul>li{display:inline;margin:0 10px 0 0;line-height:11px}.navbar.secondary,.navbar.secondary .btn-group>.btn,.navbar.secondary .btn-group>.dropdown-menu,.side-menu .btn-group>.btn,.side-menu .dropdown-menu{text-transform:uppercase;font-family:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif;color:#5f5f5f;font-size:14px;-webkit-font-smoothing:antialiased}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover,.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{text-decoration:none;color:#fff;background-color:#5f
5f5f;background-image:-moz-linear-gradient(top,#5f5f5f,#787878);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5f5f5f),to(#787878));background-image:-webkit-linear-gradient(top,#5f5f5f,#787878);background-image:-o-linear-gradient(top,#5f5f5f,#787878);background-image:linear-gradient(to bottom,#5f5f5f,#787878);background-repeat:repeat-x}.btn-group.open .btn.dropdown-toggle.top-selector,.top-selector,.top-selector:active,.top-selector:focus,.top-selector:hover{color:#5f5f5f;padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0;width:100%;text-align:left}.dialog-body{padding:20px}h1.title{font-size:1.3em;font-family:marquette-medium,"Helvetica Neue",sans-serif;color:#686868;line-height:17px;display:inline-block;padding:0 10px 0 0}h2.title{text-transform:uppercase;font-size:1.2em;border-top:2px solid #eee;color:#828282}h2.title.chart{margin:10px 0 20px 10px;z-index:101;position:absolute;top:0;left:0;right:0}h3.title{t
ext-transform:uppercase;font-size:1.1em}.sidebar-nav .nav-list{padding:0}.nav-list .nav-header,.sidebar-nav .nav-list>li>a{margin-right:0}.sidebar-nav .nav-list.trans{max-height:100000px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;display:block;opacity:0}.sidebar-nav .nav-list li a{padding:10px 0 10px 25px;color:#5f5f5f;text-shadow:none;background-color:#eee;font-size:14px;text-transform:uppercase;position:relative}.sidebar-nav .nav-list li a.org-overview{background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif}.sidebar-nav .nav-list li a.org-overview:hover{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li{margin:0;height:39px;overflow:hidden}.sidebar-nav .nav-list:first-child>li.active{height:auto;overflow:visible}.sidebar-nav .nav-list:first-child>li>ul>li>a{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li.active>a,.sidebar-nav .nav-list:first-child>li>a:focus,.sidebar-nav .nav-list:first-child>li>a
:hover{color:#fff;text-shadow:none;background-color:#1b70a0;margin:0 0 0 -15px}.sidebar-nav .nav-list:first-child li.active>ul>li>a{background-color:#fff}.sidebar-nav .nav-list li.option>ul{overflow:hidden;opacity:0;height:auto;display:block;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;max-height:100000px}.sidebar-nav .nav-list li.option.active>ul{opacity:1}.sidebar-nav .nav-list li.active>ul>li a{border-bottom:1px solid #eee;color:#747474;text-transform:none;font-weight:300;padding:10px 0 10px 22px}.sidebar-nav .nav-list li.active>ul>li.active>a,.sidebar-nav .nav-list li.active>ul>li>a:focus,.sidebar-nav .nav-list li.active>ul>li>a:hover{color:#1b70a0;background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAKCAYAAAB4zEQNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIH
g6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NkEzQ0Y1MUI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NkEzQ0Y1MkI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU2QTNDRjRGQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU2QTNDRjUwQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+poqUzgAAAG1JREFUeNpilC5YwIADqLNgEWQG4kYg9mNCk1AE4sNAXA3iIEuGAPF5ILaECYAkeYB
4DhCvBmJ+ZGNAkt+B+CkQ/0W3nAkqWA/EblBFKJIwsA+IDYF4BzZJEHgNxJ5AXAbEv1hwBEA3EK8BCDAAwgoRW2zTv6EAAAAASUVORK5CYII=) no-repeat;background-position:206px 16px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif;border-bottom:1px solid #eee;text-shadow:none;-webkit-font-smoothing:antialiased}.sidebar-nav .nav-list li.option ul{list-style:none}.new-tag{border-radius:3px;display:inline-block;font-family:marquette-medium;font-size:.6em;background-color:rgba(26,26,26,.5);color:#fff;padding:3px;height:8px;line-height:8px;position:absolute;right:5px;top:13px}.sidebar-nav .nav-list li:active a{background-color:rgba(255,255,255,.5)}.app-creds dt{font-family:marquette-medium}.intro-container{position:relative;height:auto;-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;transition:all .5s ease-out;overflow:hidden}.sdk-intro{position:absolute;border:1px solid #aaa;background-color:#f4f4f4;-moz-box-shadow:inset 0 0 10px #ccc;-webkit-box-shadow:inset 0 0 10px #cc
c;box-shadow:inset 0 4px 10px #ccc;opacity:.4;top:0;left:6px;right:1px;bottom:0;height:auto;overflow:hidden}.sdk-intro-content{position:absolute;padding:10px 40px 10px 10px;top:0;left:6px;right:-20px;bottom:0;height:auto;overflow:auto}.sdk-intro-content .btn.normal{margin:19px 10px 0 0}.keys-creds h2{margin-bottom:-2px}.user-list{padding:0;margin:0;list-style:none;min-height:450px;float:left;width:100%}.user-list li{padding:10px;border-bottom:1px solid #c5c5c5;cursor:pointer}.user-list li .label{margin:0 0 0 22px}.user-list li input{margin:0 10px 0 0}.user-list li.selected{background-color:#eee}#user-panel{margin-top:20px}.user-col{border-right:1px solid #c5c5c5;-moz-box-shadow:inset -27px 1px 6px -27px #b8b8b8;-webkit-box-shadow:inset -27px 1px 6px -27px #b8b8b8;box-shadow:inset -27px 1px 6px -27px #b8b8b8}.user-profile-picture{width:40px;height:40px}.content-page>.well{padding:10px;height:40px}.table-header td{font-weight:800;color:#000}.user-header-title{font-size:13px;font-famil
y:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif}.tabbable>.tab-content{overflow:visible}.button-strip{float:right;margin-bottom:10px}a.notifications-links{color:#1b97d1}.notifications-header{height:50px;background-color:#eee;padding:10px;border-bottom:1px solid #aaa;position:relative;overflow:hidden}.groups-row td.details,.notifications-row td.details,.roles-row td.details,.users-row td.details{line-height:25px!important;border-right:1px solid #e5e5e5}.nav-tabs>li{cursor:pointer}.login-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.login-content form{margin:0}.login-content form h1{padding:10px 0 5px 20px}.login-holder{width:450px;border:1px solid #e5e5e5}.login-holder .form-actions{padding-left:30px;margin-bottom:0}.login-holder .form-actions .submit{padding:0 30px 0 0}.login-content .extra-actions{margin-top:10px;padding-left:30px;margin-bottom:0}.login-content .extra-actions .submit{padding:0 30px 0 0}.login-co
ntent .extra-actions .submit a{margin-left:3px;margin-right:3px}.signUp-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.signUp-content form{margin:0}.signUp-content form h1{padding:10px 0 5px 20px}.signUp-holder{width:450px;border:1px solid #e5e5e5}.signUp-holder .form-actions{margin-bottom:0}.signUp-holder .form-actions .submit{padding:0 30px 0 0}.table.collection-list{border:1px solid #eee}.formatted-json,.formatted-json ul{list-style:none}.formatted-json .key{font-family:marquette-medium}.formatted-json li{border-bottom:1px solid #eee;margin:3px 0}iframe[seamless]{background-color:transparent;border:0 none transparent;padding:0;overflow:visible;overflow-x:hidden;width:100%}.gravatar20{padding:7px 0 0 10px!important;margin:0;width:30px}#shell-panel *{font-family:monospace}#shell-panel .boxContent{font-family:monospace;font-size:14px;min-height:400px}#shell-panel input{font-family:monospace;overflow:auto;width:90%;margin-top:10px
}#shell-panel hr{margin:2px;border-color:#e1e1e1}form input.has-error{-webkit-animation:pulse-red 1s alternate infinite;-moz-animation:pulse-red 1s alternate infinite;border:1px solid rgba(255,3,3,.6)}.validator-error-message{color:#ff0303}@-webkit-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}@-moz-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}.modal-instructions{padding-top:5px;padding-bottom:5px}.dropdown-menu{width:100%}.modal{width:560px!important}.dropdown-backdrop{position:static}.title.with-icons a{display:inline-block;text-transform:lowercase;font-size:.8em;margin:0 5px 0 0}.span9.tab-content{margin:0}.span9.tab-content .content-page{padding:0 0 0 30px}.button-toolbar,.menu-toolbar{padding:10px 0;margin:0;width:1
00%}.menu-toolbar{padding:0 0 20px}.menu-toolbar>ul.inline{border-bottom:1px solid #c5c5c5;margin:0}.btn-group .filter-selector,.btn-group .filter-selector:active,.btn-group .filter-selector:focus,.btn-group .filter-selector:hover,.btn-group .filter-title,.btn-group .filter-title:active,.btn-group .filter-title:focus,.btn-group.open .btn.dropdown-toggle.filter-selector,.btn-group.open .btn.dropdown-toggle.filter-title,.btn-group>.filter-selector.btn:first-child,.btn-group>.filter-title.btn:first-child,.btn.btn-primary,.btn.normal,.modal-footer .btn{color:#fff;padding:3px 9px;text-shadow:none;background-color:#494949;background-image:none;border:1px solid #c5c5c5;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-bottom-left-radius:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;box-shadow:none}ul.inline>li.tab{margin:0;padding:0}li.tab .btn.btn-primary{background-color:#eee;border:0;color:#494949;box-shadow:none;margin:0 -1px -1px -1px;padding:3px 19px 3
px 16px;border-bottom:1px solid #c5c5c5}ul.inline>li.tab.selected{margin:0 0 -1px 0;border-bottom:1px solid #fff}li.tab.selected .btn.btn-primary.toolbar{color:#494949;border-left:1px solid #c5c5c5;border-right:1px solid #c5c5c5;border-top:1px solid #c5c5c5;border-bottom:0;background-color:#fff}.btn-group.compare .filter-selector.btn:first-child,.btn.btn-primary.toolbar{color:#494949;background-color:#f1f1f1}li.selected .btn.btn-primary.toolbar{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn.cancel,.btn.cancel:hover,.btn.normal.white,.btn.normal.white:hover{background-color:#fff;color:#5f5f5f}.btn-group .filter-selector:active,.btn-group .filter-title:hover,.btn-group.selected .filter-selector,.btn-group.selected>.filter-selector.btn:first-child,.btn.btn-primary:active,.btn.btn-primary:hover,.btn.normal:hover,.modal-footer .btn:active,.modal-footer .btn:hover{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn-group .filter-selector .caret{margin:8px
0 0 10px;border-top:4px solid #fff;border-right:4px solid transparent;border-left:4px solid transparent}.btn-group.header-button{margin:4px 0 0;text-transform:none}.page-filters{padding:0;margin:10px 0}.dropdown-menu{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;z-index:102}.modal{position:fixed;top:10%;left:50%;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.3);*border:1px solid #999;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,.3);box-shadow:0 3px 7px rgba(0,0,0,.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:0}.modal.fade{z-index:-200}.modal.fade.in{z-index:1050}.auto-update-container{padding:10px 0 0}.auto-updates{margin:0 10px 0 0}.super-help{font-size:9pt;vertical-align:super}.help_tooltip{font-size:9pt;text-transform:none}.helpButton{font-family:Helvetica,Arial,s
ans-serif;font-size:13px;font-weight:300;padding:5px 8px;text-align:center;vertical-align:middle;color:#ffd6ca;border:1px solid #ffbfab;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#ff3b00;width:110px;outline:0}.helpButton:hover{cursor:pointer;background-color:#FFB7A5;color:#dc3300;-webkit-transition:background-color .1s;-moz-transition:background-color .1s;-o-transition:background-color .1s;transition:background-color .1s}.helpButtonClicked{background-color:#FFB7A5;color:#dc3300;outline:0}.introjs-overlay{background:0 0;filter:none;-ms-filter:"alpha(Opacity=20)";filter:alpha(opacity=20);background-color:#fff;opacity:.2}.introjs-helperLayer{border-radius:0;box-shadow:none;border:1px solid rgba(0,0,0,.25)}.introjs-helperNumberLayer{top:-12px;left:-12px;font-family:"Open Sans",Arial,sans-serif;font-weight:400;border:0;filter:none;filter:none;box-shadow:none}.introjs-arrow{border:10px solid #fff}.introjs-arrow.top{top:-20px;border-bottom-color:#6d
bce3}.introjs-arrow.right{right:-20px;top:20px;border-left-color:#6dbce3}.introjs-arrow.bottom{bottom:-20px;border-top-color:#6dbce3}.introjs-arrow.left{left:-20px;top:20px;border-right-color:#6dbce3}.introjs-arrow:before{border:10px solid #fff;content:'';position:absolute}.introjs-arrow.top:before{top:-8px;left:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#F0F8FC;border-left-color:transparent}.introjs-arrow.right:before{right:-7px;top:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:#F0F8FC}.introjs-arrow.bottom:before{bottom:-9px;left:-10px;border-top-color:#F0F8FC;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.introjs-arrow.left:before{left:-7px;top:-10px;border-top-color:transparent;border-right-color:#F0F8FC;border-bottom-color:transparent;border-left-color:transparent}.introjs-tooltip{background-color:#F0F8FC;border-radius:0
;border:1px solid #6dbce3;box-shadow:0 1px 7px rgba(0,0,0,.3)}.introjs-button{text-shadow:none;font:12px/normal sans-serif;color:#1f77a3;background-color:#F0F8FC;background-image:none;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #d4d4d4}.introjs-button:hover{font-family:"Open Sans",Arial,sans-serif}.introjs-button:active,.introjs-button:focus{text-decoration:none;outline:0}.introjs-skipbutton{color:#1f77a3;text-decoration:none;font-family:"Open Sans",Arial,sans-serif;margin-right:35px;border:1px solid #6dbce3}.introjs-nextbutton{text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px;border-color:#6dbce3}.introjs-prevbutton{border-right:0;text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px;border-color:#6dbce3}.introjs-nextbutton.introjs-disabled,.introjs-nextbutton.introjs-disabled:active,.introjs-nextbutton.introjs-disabled:focus,.introjs-nextbutton.introjs-disabled:hover{background-image:url(img/introjs_
arrow_step_next_disabled.png);background-position:48px 5px;background-repeat:no-repeat;text-align:left;border-left:1px solid #6dbce3}.introjs-prevbutton.introjs-disabled,.introjs-prevbutton.introjs-disabled:active,.introjs-prevbutton.introjs-disabled:focus,.introjs-prevbutton.introjs-disabled:hover{background-image:url(img/introjs_arrow_step_prev_disabled.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right;border:1px solid #d4d4d4}.introjs-nextbutton,.introjs-nextbutton:active,.introjs-nextbutton:focus,.introjs-nextbutton:hover{background-image:url(img/introjs_arrow_step_next.png);background-position:48px 5px;background-repeat:no-repeat;text-align:left}.introjs-prevbutton,.introjs-prevbutton:active,.introjs-prevbutton:focus,.introjs-prevbutton:hover{background-image:url(img/introjs_arrow_step_prev.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right}.introjs-disabled,.introjs-disabled:focus,.introjs-disabled:hover{color:gray;backgro
und-color:#F0F8FC}.introjs-tooltiptext{font-size:13px;line-height:19px}.introjstooltipheader{font-size:13px;line-height:19px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif}
\ No newline at end of file
+.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;opacity:.3;filter:alpha(opacity=30);content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100)}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;padding:4px 0;margin:0;list-style:none;background-color:#fff;border-color:#ccc;border-color:rgba(0,0,0,.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip
:padding-box;*border-right-width:2px;*border-bottom-width:2px}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff;*width:100%;*margin:-5px 0 5px}.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}.dropdown-menu .active>a,.dropdown-menu .active>a:hover,.dropdown-menu li>a:hover{color:#fff;text-decoration:none;background-color:#08c}.dropdown.open{*z-index:1000}.dropdown.open .dropdown-toggle{color:#fff;background:#ccc;background:rgba(0,0,0,.3)}.dropdown.open .dropdown-menu{display:block}.pull-right .dropdown-menu{left:auto;right:0}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdownContainingSubmenu .dropdown-menu{padding:0;margin-t
op:-4px;min-width:auto;background-color:#fff;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:4px 4px 16px rgba(0,0,0,.25);-moz-box-shadow:4px 4px 16px rgba(0,0,0,.25);box-shadow:4px 4px 16px rgba(0,0,0,.25);border-width:1px;border-top-width:4px;border-color:#bb2d16}.dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:7px 10px}.dropdownContainingSubmenu .dropdown-menu a:hover{color:#fff;background-color:#f03800}.dropdownContainingSubmenu .dropdown-menu .nav-header{background-color:#f0f0f0;margin-top:0;padding-left:10px}.dropdownContainingSubmenu .dropdown-menu .divider{margin:0}.navbar .dropdown-menu:after,.navbar .dropdown-menu:before{content:normal}#globalNav{margin-left:20px;background-color:transparent}#globalNav .dropdown-toggle{border-radius:3px;padding-top:3px;padding-bottom:3px;margin-top:7.5px;margin-bottom:7.5px}#globalNav .dropdown-toggle :hover{background-color:transparent}#globalNav.active .caret{opacity:.7}#globalNav.active :
hover .caret{opacity:1}#globalNav ul ul a{border-left:1px solid #bb2d16}#globalNav ul ul li{position:relative}#globalNav ul ul li:first-child{border-bottom:1px solid #bb2d16}#globalNav ul ul a:before{content:"";width:6px;height:32px;position:absolute;left:-6px;top:0}#globalNav ul ul .active a:before,#globalNav ul ul .active a:hover:before{background-image:url(images/triangleMenuItem_right.png)}#globalNav ul ul:hover a:before{background-image:none}#globalNav ul ul a:hover:before{background-image:url(images/triangleMenuItem_right_hover.png)}#globalNav ul ul li a:hover{border-color:transparent}#globalNav .dropdown-menu{width:400px}#globalNavDetail{padding:20px 10px 0;width:250px;height:100%;position:relative;top:0}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail>div.open{display:inline-block}#globalNavDetail>div .globalNavDetailApigeeLogo,#globalNavDetail>div .globalNavDetailDescr
iption,#globalNavDetail>div .globalNavDetailSubtitle,#globalNavDetail>div .globalNavDetailTitle{margin-left:80px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}#globalNavDetail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail #globalNavDetailAppServices{background-image:url(img/appswitcher/appServices_lg.png)}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailMobileAnalytics{background-image:url(img/appswitcher/max_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{ba
ckground-image:url(img/appswitcher/console_lg.png)}#globalNavSubmenuContainer{float:right}#globalNavSubmenuContainer ul{margin-left:0}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none}html{min-height:100%;position:relative;margin:0 auto;background:#fff;min-width:1100px}body{padding:0;background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif;height:100%;max-height:100%;overflow-x:hidden}a{cursor:pointer}@font-face{font-family:entypo;src:url(entypo/entypo.eot);src:url(entypo/entypo.eot?#iefix) format('embedded-opentype'),url(entypo/entypo.woff) format('woff'),url(entypo/entypo.ttf) format('truetype'),url(entypo/entypo.svg#entypo) format('svg');font-weight:400;font-style:normal}@font-face{font-family:marquette-medium;src:url(arsmarquette/ARSMaquettePro-Medium.otf),url(arsmarquette/ARSMaquettePro-Medium.otf) format('opentype')}@font-face{font-family:marquette-regular;src:url(arsmarquette/ARSMaquettePro-Regular.otf)
,url(arsmarquette/ARSMaquettePro-Regular.otf) format('opentype')}@font-face{font-family:marquette-light;src:url(arsmarquette/ARSMaquettePro-Light.otf),url(arsmarquette/ARSMaquettePro-Light.otf) format('opentype')}.bold{font-family:marquette-medium}.main-content{background-color:#fff;margin:0 0 0 200px}.side-menu{position:absolute;top:51px;left:0;bottom:0;width:200px;float:left;background-color:#eee}footer{padding-top:20px;clear:both}.zero-out{padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0}.modal-body{overflow-y:visible}.demo-holder{margin:0 -20px 0 -20px;position:relative}.alert-holder{position:fixed;right:0;margin:20px 20px 0 0;z-index:10500;width:302px}.alert,.alert.alert-demo{padding:9px 35px 5px 14px;margin-bottom:3px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#eee;border:1px solid #eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-transition:all 1s ease;-moz-transition:all 1s
ease;transition:all 1s ease;height:0;overflow:hidden;line-height:0;float:right}.alert.alert-demo{float:none}.alert{width:0}.alert.alert-success{background-color:rgba(155,198,144,.31);color:#1f6719;border-left:2px solid #1f6719}.alert.alert-warning{background-color:rgba(239,172,37,.2);color:#efac25;border-left:2px solid #efac25}.alert.alert-info{background-color:rgba(27,151,209,.2);color:#1b97d1;border-left:2px solid #1b97d1}.alert.alert-error{background-color:rgba(255,3,3,.2);color:#ff0303;border-left:2px solid #ff0303}.alert.alert-animate.alert-demo{height:20px;line-height:normal;opacity:1;width:100%;-moz-box-shadow:inset 0 2px 13px #b8b8b8;-webkit-box-shadow:inset 0 2px 13px #b8b8b8;box-shadow:inset 0 2px 13px #b8b8b8}.alert.alert-animate{height:auto;line-height:normal;opacity:.9;width:300px}@-webkit-keyframes alert-out{from{opacity:1}to{-webkit-transform:translateY(500px);opacity:0}}@keyframes alert-out{from{opacity:1}to{transform:translateY(500px);opacity:0}}.fade-out{-webkit-a
nimation-name:alert-out;-webkit-animation-duration:1s;-webkit-animation-timing-function:step-stop;-webkit-animation-direction:normal;-webkit-animation-iteration-count:1;animation-name:alert-out;animation-duration:1s;animation-timing-function:step-stop;animation-direction:normal;animation-iteration-count:1;opacity:.9}.margin-35{margin-top:35px}.modal-footer{background-color:transparent}.baloon{margin:20px;padding:20px 30px;position:fixed;bottom:0;top:auto;border-style:solid;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.8)}.baloon:after{content:"";position:absolute;width:10px;height:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-o-transform:rotate(45deg);-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.7071067811865473, M12=-0.7071067811865477, M21=0.7071067811865477, M22=0.7071067811865473, SizingMethod='auto expand')"}.north.baloon:after{top:-6px;left:30px;border-top-style:solid;border-left-style:solid;box-shadow:-2px -2px 3px -1px rgba(0,0,0,.5)}.so
uth.baloon:after{bottom:-6px;left:30px;border-bottom-style:solid;border-right-style:solid;box-shadow:2px 2px 3px -1px rgba(0,0,0,.5)}.left.baloon:after{top:10px;left:-6px;border-bottom-style:solid;border-left-style:solid;box-shadow:-2px 2px 3px -1px rgba(0,0,0,.5)}.right.baloon:after{bottom:10px;right:-6px;border-top-style:solid;border-right-style:solid;box-shadow:2px -2px 3px -1px rgba(0,0,0,.5)}.baloon,.baloon:after{font-family:sans-serif;font-weight:700;border-color:#f7f7f7;border-width:1px;background-color:#3ac62f;color:#fff}#globalNav{float:right;margin:15px 8px 0 9px;list-style:none;width:114px}#globalNav ul{list-style:none}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(../img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailAppServices{background-image:url(../img/appswitcher/appServices_lg.png)}#globalNav
Detail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(../img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{background-image:url(../img/appswitcher/console_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(../img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:13px 10px}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu .active a{color:#fff;background-color:#bb2d16}.navbar.navbar-static-top .dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}#
globalNav .dropdown-toggle{border-radius:3px;padding:3px 6px;margin:0}.dropdown-toggle{background-color:#bb2d16;padding:3px}.demo-holder .alert.alert-demo{background-color:rgba(196,196,196,.1);color:#777;padding:12px 35px 7px 14px}.demo-holder-content{position:absolute;right:50px}.demo-text{position:absolute;right:223px;left:0;padding:0 0 0 10px}.b{display:block}.toggle,.toggle-form{position:absolute;top:10px;right:173px;width:50px;height:23px;border-radius:100px;background-color:#ddd;overflow:hidden;box-shadow:inset 0 0 2px 1px rgba(0,0,0,.05)}.form-horizontal.configs .control-label{width:250px;padding:0 10px 0 0}.toggle-form{position:relative;right:auto;top:auto;display:inline-block}.toggle-form-label{display:inline-block}input[type=checkbox].check{position:absolute;display:block;cursor:pointer;top:0;left:0;width:100%;height:100%;opacity:0;z-index:6}.check:checked~.track{box-shadow:inset 0 0 0 20px #ff3b00}.toggle-form .check:checked~.track{box-shadow:inset 0 0 0 20px #82ce85}.che
ck:checked~.switch{right:2px;left:27px;transition:.4s ease;transition-property:left,right;transition-delay:.05s,0s}.switch{position:absolute;left:2px;top:2px;bottom:2px;right:27px;background-color:#fff;border-radius:36px;z-index:1;transition:.4s ease;transition-property:left,right;transition-delay:0s,.05s;box-shadow:0 1px 2px rgba(0,0,0,.2)}.track{position:absolute;left:0;top:0;right:0;bottom:0;transition:.4s ease;box-shadow:inset 0 0 0 2px rgba(0,0,0,.05);border-radius:40px}.add-app .pictogram,top-selector .pictogram{margin:0 3px 0 0}i.pictogram{font-family:entypo;display:inline-block;width:23px;margin:0 5px 0 0;font-size:2.5em;height:17px;line-height:.35;overflow:hidden;vertical-align:middle;padding:5px 0 0;font-style:normal;font-weight:100;-webkit-font-smoothing:antialiased}i.pictogram.sub{margin:0 0 0 10px;font-size:2.1em}i.pictogram.title{margin:0;font-size:2.1em}i.pictogram.chart{margin:0 0 0 3px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}i.pictogram.apichart{marg
in:0 0 0 11px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}[class*=" ma-icon-"],[class^=ma-icon-]{display:inline-block;width:23px;height:20px;margin:1px 3px 0 0;line-height:20px;vertical-align:text-top;background-image:url(../img/nav-sprites.png);background-position:14px 14px;background-repeat:no-repeat}[class*=" sdk-icon-"],[class^=sdk-icon-]{display:inline-block;width:32px;height:29px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites.png);background-position:14px 14px;background-repeat:no-repeat;cursor:pointer;overflow:hidden}[class*=" sdk-icon-large-"],[class^=sdk-icon-large-]{display:inline-block;width:86px;height:86px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites-large.png);background-position:14px 14px;background-repeat:no-repeat;border:1px solid #aaa;-moz-box-shadow:3px 3px 0 -1px #ccc;-webkit-box-shadow:3px 3px 0 -1px #ccc;box-shadow:3px 3px 0 -1px #ccc}.sdk-i
con-ios{background-position:-6px -4px}.sdk-icon-android{background-position:-59px -3px}.sdk-icon-js{background-position:-109px -4px}.sdk-icon-node{background-position:-154px -3px}.sdk-icon-ruby{background-position:-204px -3px}.sdk-icon-net{background-position:-256px -4px}.sdk-icon-large-ios{background-position:-6px -3px}.sdk-icon-large-android{background-position:-113px 0}.sdk-icon-large-js{background-position:-219px 0}.sdk-icon-large-node{background-position:-323px -3px}.sdk-icon-large-ruby{background-position:-431px 0}.sdk-icon-large-net{background-position:-537px -3px}body>header>.navbar{background-color:#ff3b00}body>header .navbar:first-child>a{height:22px;line-height:22px;padding:10px 20px 20px 13px}.navbar.navbar-static-top a{text-shadow:none;color:#fff}.navbar-text{color:#fff;margin:4px}.navbar-text .dropdown-menu a{color:#343434}.navbar-text.pull-left{margin-left:90px}.top-nav,ul.app-nav li,ul.org-nav li{background-color:#fff}.top-nav .btn-group{margin:9px 0 5px 5px}.nav .ap
p-selector .caret,.nav .app-selector:active .caret,.nav .app-selector:focus .caret,.nav .app-selector:hover .caret,.nav .org-selector .caret,.nav .org-selector:active .caret,.nav .org-selector:focus .caret,.nav .org-selector:hover .caret{border-top-color:#5f5f5f;border-bottom-color:transparent;margin-top:8px;position:absolute;right:10px}.org-options{margin:5px 2px -8px -5px;border-top:3px solid #e6e6e6;overflow:hidden}.navbar.secondary{margin:0 -20px 0 -21px;border-bottom:3px solid #e6e6e6}.navbar.secondary>.container-fluid{margin:0 -20px 0 -18px}.navbar.secondary .nav,.navbar.secondary>.container-fluid .nav-collapse.collapse.span9,.top-nav{margin:0}.top-nav>li,.top-nav>li>div{width:100%}.span9.button-area{margin-left:0}.navbar .nav a.btn-create i{margin:1px 0 0}.navbar .nav a.btn-create,.navbar .nav a.btn-create:hover{text-align:left;font-weight:400;color:#1b70a0;padding:0 0 0 10px;margin:4px 0 0 3px;display:block;width:140px;height:30px;line-height:30px;background-color:#f3f3f3}.n
avbar .nav a.btn-create:hover{color:#1b70a0}.navbar .nav a.btn-create:active{box-shadow:none}.sdks>ul>li.title label{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px;cursor:default}.sdks>ul>li.title a{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px}.sdks>ul{list-style:none;margin:0;height:32px;overflow:hidden}.sdks>ul>li{display:inline;margin:0 10px 0 0;line-height:11px}.navbar.secondary,.navbar.secondary .btn-group>.btn,.navbar.secondary .btn-group>.dropdown-menu,.side-menu .btn-group>.btn,.side-menu .dropdown-menu{text-transform:uppercase;font-family:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif;color:#5f5f5f;font-size:14px;-webkit-font-smoothing:antialiased}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover,.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{text-decoration:none;color:#fff;background-color:#5f
5f5f;background-image:-moz-linear-gradient(top,#5f5f5f,#787878);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5f5f5f),to(#787878));background-image:-webkit-linear-gradient(top,#5f5f5f,#787878);background-image:-o-linear-gradient(top,#5f5f5f,#787878);background-image:linear-gradient(to bottom,#5f5f5f,#787878);background-repeat:repeat-x}.btn-group.open .btn.dropdown-toggle.top-selector,.top-selector,.top-selector:active,.top-selector:focus,.top-selector:hover{color:#5f5f5f;padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0;width:100%;text-align:left}.dialog-body{padding:20px}h1.title{font-size:1.3em;font-family:marquette-medium,"Helvetica Neue",sans-serif;color:#686868;line-height:17px;display:inline-block;padding:0 10px 0 0}h2.title{text-transform:uppercase;font-size:1.2em;border-top:2px solid #eee;color:#828282}h2.title.chart{margin:10px 0 20px 10px;z-index:101;position:absolute;top:0;left:0;right:0}h3.title{t
ext-transform:uppercase;font-size:1.1em}.sidebar-nav .nav-list{padding:0}.nav-list .nav-header,.sidebar-nav .nav-list>li>a{margin-right:0}.sidebar-nav .nav-list.trans{max-height:100000px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;display:block;opacity:0}.sidebar-nav .nav-list li a{padding:10px 0 10px 25px;color:#5f5f5f;text-shadow:none;background-color:#eee;font-size:14px;text-transform:uppercase;position:relative}.sidebar-nav .nav-list li a.org-overview{background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif}.sidebar-nav .nav-list li a.org-overview:hover{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li{margin:0;height:39px;overflow:hidden}.sidebar-nav .nav-list:first-child>li.active{height:auto;overflow:visible}.sidebar-nav .nav-list:first-child>li>ul>li>a{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li.active>a,.sidebar-nav .nav-list:first-child>li>a:focus,.sidebar-nav .nav-list:first-child>li>a
:hover{color:#fff;text-shadow:none;background-color:#1b70a0;margin:0 0 0 -15px}.sidebar-nav .nav-list:first-child li.active>ul>li>a{background-color:#fff}.sidebar-nav .nav-list li.option>ul{overflow:hidden;opacity:0;height:auto;display:block;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;max-height:100000px}.sidebar-nav .nav-list li.option.active>ul{opacity:1}.sidebar-nav .nav-list li.active>ul>li a{border-bottom:1px solid #eee;color:#747474;text-transform:none;font-weight:300;padding:10px 0 10px 22px}.sidebar-nav .nav-list li.active>ul>li.active>a,.sidebar-nav .nav-list li.active>ul>li>a:focus,.sidebar-nav .nav-list li.active>ul>li>a:hover{color:#1b70a0;background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAKCAYAAAB4zEQNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIH
g6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NkEzQ0Y1MUI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NkEzQ0Y1MkI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU2QTNDRjRGQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU2QTNDRjUwQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+poqUzgAAAG1JREFUeNpilC5YwIADqLNgEWQG4kYg9mNCk1AE4sNAXA3iIEuGAPF5ILaECYAkeYB
4DhCvBmJ+ZGNAkt+B+CkQ/0W3nAkqWA/EblBFKJIwsA+IDYF4BzZJEHgNxJ5AXAbEv1hwBEA3EK8BCDAAwgoRW2zTv6EAAAAASUVORK5CYII=) no-repeat;background-position:206px 16px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif;border-bottom:1px solid #eee;text-shadow:none;-webkit-font-smoothing:antialiased}.sidebar-nav .nav-list li.option ul{list-style:none}.new-tag{border-radius:3px;display:inline-block;font-family:marquette-medium;font-size:.6em;background-color:rgba(26,26,26,.5);color:#fff;padding:3px;height:8px;line-height:8px;position:absolute;right:5px;top:13px}.sidebar-nav .nav-list li:active a{background-color:rgba(255,255,255,.5)}.app-creds dt{font-family:marquette-medium}.intro-container{position:relative;height:auto;-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;transition:all .5s ease-out;overflow:hidden}.sdk-intro{position:absolute;border:1px solid #aaa;background-color:#f4f4f4;-moz-box-shadow:inset 0 0 10px #ccc;-webkit-box-shadow:inset 0 0 10px #cc
c;box-shadow:inset 0 4px 10px #ccc;opacity:.4;top:0;left:6px;right:1px;bottom:0;height:auto;overflow:hidden}.sdk-intro-content{position:absolute;padding:10px 40px 10px 10px;top:0;left:6px;right:-20px;bottom:0;height:auto;overflow:auto}.sdk-intro-content .btn.normal{margin:19px 10px 0 0}.keys-creds h2{margin-bottom:-2px}.user-list{padding:0;margin:0;list-style:none;min-height:450px;float:left;width:100%}.user-list li{padding:10px;border-bottom:1px solid #c5c5c5;cursor:pointer}.user-list li .label{margin:0 0 0 22px}.user-list li input{margin:0 10px 0 0}.user-list li.selected{background-color:#eee}#user-panel{margin-top:20px}.user-col{border-right:1px solid #c5c5c5;-moz-box-shadow:inset -27px 1px 6px -27px #b8b8b8;-webkit-box-shadow:inset -27px 1px 6px -27px #b8b8b8;box-shadow:inset -27px 1px 6px -27px #b8b8b8}.user-profile-picture{width:40px;height:40px}.content-page>.well{padding:10px;height:40px}.table-header td{font-weight:800;color:#000}.user-header-title{font-size:13px;font-famil
y:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif}.tabbable>.tab-content{overflow:visible}.button-strip{float:right;margin-bottom:10px}a.notifications-links{color:#1b97d1}.notifications-header{height:50px;background-color:#eee;padding:10px;border-bottom:1px solid #aaa;position:relative;overflow:hidden}.groups-row td.details,.notifications-row td.details,.roles-row td.details,.users-row td.details{line-height:25px!important;border-right:1px solid #e5e5e5}.nav-tabs>li{cursor:pointer}.login-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.login-content form{margin:0}.login-content form h1{padding:10px 0 5px 20px}.login-holder{width:450px;border:1px solid #e5e5e5}.login-holder .form-actions{padding-left:30px;margin-bottom:0}.login-holder .form-actions .submit{padding:0 30px 0 0}.login-content .extra-actions{margin-top:10px;padding-left:30px;margin-bottom:0}.login-content .extra-actions .submit{padding:0 30px 0 0}.login-co
ntent .extra-actions .submit a{margin-left:3px;margin-right:3px}.signUp-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.signUp-content form{margin:0}.signUp-content form h1{padding:10px 0 5px 20px}.signUp-holder{width:450px;border:1px solid #e5e5e5}.signUp-holder .form-actions{margin-bottom:0}.signUp-holder .form-actions .submit{padding:0 30px 0 0}.table.collection-list{border:1px solid #eee}.formatted-json,.formatted-json ul{list-style:none}.formatted-json .key{font-family:marquette-medium}.formatted-json li{border-bottom:1px solid #eee;margin:3px 0}iframe[seamless]{background-color:transparent;border:0 none transparent;padding:0;overflow:visible;overflow-x:hidden;width:100%}.gravatar20{padding:7px 0 0 10px!important;margin:0;width:30px}#shell-panel *{font-family:monospace}#shell-panel .boxContent{font-family:monospace;font-size:14px;min-height:400px}#shell-panel input{font-family:monospace;overflow:auto;width:90%;margin-top:10px
}#shell-panel hr{margin:2px;border-color:#e1e1e1}form input.has-error{-webkit-animation:pulse-red 1s alternate infinite;-moz-animation:pulse-red 1s alternate infinite;border:1px solid rgba(255,3,3,.6)}.validator-error-message{color:#ff0303}@-webkit-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}@-moz-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}.modal-instructions{padding-top:5px;padding-bottom:5px}.dropdown-menu{width:100%}.modal{width:560px!important}.dropdown-backdrop{position:static}.title.with-icons a{display:inline-block;text-transform:lowercase;font-size:.8em;margin:0 5px 0 0}.span9.tab-content{margin:0}.span9.tab-content .content-page{padding:0 0 0 30px}.button-toolbar,.menu-toolbar{padding:10px 0;margin:0;width:1
00%}.menu-toolbar{padding:0 0 20px}.menu-toolbar>ul.inline{border-bottom:1px solid #c5c5c5;margin:0}.btn-group .filter-selector,.btn-group .filter-selector:active,.btn-group .filter-selector:focus,.btn-group .filter-selector:hover,.btn-group .filter-title,.btn-group .filter-title:active,.btn-group .filter-title:focus,.btn-group.open .btn.dropdown-toggle.filter-selector,.btn-group.open .btn.dropdown-toggle.filter-title,.btn-group>.filter-selector.btn:first-child,.btn-group>.filter-title.btn:first-child,.btn.btn-primary,.btn.normal,.modal-footer .btn{color:#fff;padding:3px 9px;text-shadow:none;background-color:#494949;background-image:none;border:1px solid #c5c5c5;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-bottom-left-radius:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;box-shadow:none}ul.inline>li.tab{margin:0;padding:0}li.tab .btn.btn-primary{background-color:#eee;border:0;color:#494949;box-shadow:none;margin:0 -1px -1px -1px;padding:3px 19px 3
px 16px;border-bottom:1px solid #c5c5c5}ul.inline>li.tab.selected{margin:0 0 -1px 0;border-bottom:1px solid #fff}li.tab.selected .btn.btn-primary.toolbar{color:#494949;border-left:1px solid #c5c5c5;border-right:1px solid #c5c5c5;border-top:1px solid #c5c5c5;border-bottom:0;background-color:#fff}.btn-group.compare .filter-selector.btn:first-child,.btn.btn-primary.toolbar{color:#494949;background-color:#f1f1f1}li.selected .btn.btn-primary.toolbar{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn.cancel,.btn.cancel:hover,.btn.normal.white,.btn.normal.white:hover{background-color:#fff;color:#5f5f5f}.btn-group .filter-selector:active,.btn-group .filter-title:hover,.btn-group.selected .filter-selector,.btn-group.selected>.filter-selector.btn:first-child,.btn.btn-primary:active,.btn.btn-primary:hover,.btn.normal:hover,.modal-footer .btn:active,.modal-footer .btn:hover{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn-group .filter-selector .caret{margin:8px
0 0 10px;border-top:4px solid #fff;border-right:4px solid transparent;border-left:4px solid transparent}.btn-group.header-button{margin:4px 0 0;text-transform:none}.page-filters{padding:0;margin:10px 0}.dropdown-menu{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;z-index:102}.modal{position:fixed;top:10%;left:50%;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.3);*border:1px solid #999;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,.3);box-shadow:0 3px 7px rgba(0,0,0,.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:0}.modal.fade{z-index:-200}.modal.fade.in{z-index:1050}.auto-update-container{padding:10px 0 0}.auto-updates{margin:0 10px 0 0}.super-help{font-size:9pt;vertical-align:super}.help_tooltip{font-size:9pt;text-transform:none}.helpButton{font-family:Helvetica,Arial,s
ans-serif;font-size:13px;font-weight:300;padding:5px 8px;text-align:center;vertical-align:middle;color:#ffd6ca;border:1px solid #ffbfab;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#ff3b00;width:110px;outline:0}.helpButton:hover{cursor:pointer;background-color:#FFB7A5;color:#dc3300;-webkit-transition:background-color .1s;-moz-transition:background-color .1s;-o-transition:background-color .1s;transition:background-color .1s}.helpButtonClicked{background-color:#FFB7A5;color:#dc3300;outline:0}.introjs-overlay{background:0 0;filter:none;-ms-filter:"alpha(Opacity=20)";filter:alpha(opacity=20);background-color:#fff;opacity:.2}.introjs-helperLayer{border-radius:0;box-shadow:none;border:1px solid rgba(0,0,0,.25)}.introjs-helperNumberLayer{top:-12px;left:-12px;font-family:"Open Sans",Arial,sans-serif;font-weight:400;border:0;filter:none;filter:none;box-shadow:none}.introjs-arrow{border:10px solid #fff}.introjs-arrow.top{top:-20px;border-bottom-color:#6d
bce3}.introjs-arrow.right{right:-20px;top:20px;border-left-color:#6dbce3}.introjs-arrow.bottom{bottom:-20px;border-top-color:#6dbce3}.introjs-arrow.left{left:-20px;top:20px;border-right-color:#6dbce3}.introjs-arrow:before{border:10px solid #fff;content:'';position:absolute}.introjs-arrow.top:before{top:-8px;left:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#F0F8FC;border-left-color:transparent}.introjs-arrow.right:before{right:-7px;top:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:#F0F8FC}.introjs-arrow.bottom:before{bottom:-9px;left:-10px;border-top-color:#F0F8FC;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.introjs-arrow.left:before{left:-7px;top:-10px;border-top-color:transparent;border-right-color:#F0F8FC;border-bottom-color:transparent;border-left-color:transparent}.introjs-tooltip{background-color:#F0F8FC;border-radius:0
;border:1px solid #6dbce3;box-shadow:0 1px 7px rgba(0,0,0,.3)}.introjs-button{text-shadow:none;font:12px/normal sans-serif;color:#1f77a3;background-color:#F0F8FC;background-image:none;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #d4d4d4}.introjs-button:hover{font-family:"Open Sans",Arial,sans-serif}.introjs-button:active,.introjs-button:focus{text-decoration:none;outline:0}.introjs-skipbutton{color:#1f77a3;text-decoration:none;font-family:"Open Sans",Arial,sans-serif;margin-right:32px;border:1px solid #6dbce3}.introjs-nextbutton{text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px;margin-left:3px}.introjs-prevbutton{text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px}.introjs-nextbutton,.introjs-nextbutton:active,.introjs-nextbutton:focus,.introjs-nextbutton:hover{background-image:url(img/introjs_arrow_step_next.png);background-position:48px 5px;background-repeat:no-repeat;text-align:left;border:1px soli
d #6dbce3}.introjs-prevbutton,.introjs-prevbutton:active,.introjs-prevbutton:focus,.introjs-prevbutton:hover{background-image:url(img/introjs_arrow_step_prev.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right;border:1px solid #6dbce3}.introjs-nextbutton.introjs-disabled,.introjs-nextbutton.introjs-disabled:active,.introjs-nextbutton.introjs-disabled:focus,.introjs-nextbutton.introjs-disabled:hover{background-image:url(img/introjs_arrow_step_next_disabled.png);background-position:48px 5px;background-repeat:no-repeat;text-align:left;border:1px solid #d4d4d4}.introjs-prevbutton.introjs-disabled,.introjs-prevbutton.introjs-disabled:active,.introjs-prevbutton.introjs-disabled:focus,.introjs-prevbutton.introjs-disabled:hover{background-image:url(img/introjs_arrow_step_prev_disabled.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right;border:1px solid #d4d4d4}.introjs-disabled,.introjs-disabled:focus,.introjs-disabled:hover{color:gray;bac
kground-color:#F0F8FC}.introjs-tooltiptext{font-size:13px;line-height:19px}.introjstooltipheader{font-size:13px;line-height:19px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ad1e3b39/portal/css/main.css
----------------------------------------------------------------------
diff --git a/portal/css/main.css b/portal/css/main.css
index d2f46e4..9c8ab5d 100644
--- a/portal/css/main.css
+++ b/portal/css/main.css
@@ -1886,7 +1886,7 @@ li.selected .btn.btn-primary.toolbar {
color: #1f77a3;
text-decoration: none;
font-family: "Open Sans", Arial, sans-serif;
- margin-right: 35px;
+ margin-right: 32px;
border: 1px solid #6dbce3;
}
@@ -1896,6 +1896,7 @@ li.selected .btn.btn-primary.toolbar {
text-align: left;
width: 40px;
border-color: #6dbce3;
+ margin-left: 3px;
}
.introjs-prevbutton {
@@ -1904,7 +1905,29 @@ li.selected .btn.btn-primary.toolbar {
font-family: "Open Sans", Arial, sans-serif;
text-align: right;
width: 40px;
- border-color: #6dbce3;
+ border-color: #6dbce3;
+}
+
+.introjs-nextbutton,
+.introjs-nextbutton:focus,
+.introjs-nextbutton:active,
+.introjs-nextbutton:hover {
+ background-image: url("img/introjs_arrow_step_next.png");
+ background-position: 48px 5px;
+ background-repeat: no-repeat;
+ text-align: left;
+ border: 1px solid #6dbce3;
+}
+
+.introjs-prevbutton,
+.introjs-prevbutton:focus,
+.introjs-prevbutton:active,
+.introjs-prevbutton:hover {
+ background-image: url("img/introjs_arrow_step_prev.png");
+ background-position: 2px 5px;
+ background-repeat: no-repeat;
+ text-align: right;
+ border: 1px solid #6dbce3;
}
.introjs-nextbutton.introjs-disabled,
@@ -1915,7 +1938,7 @@ li.selected .btn.btn-primary.toolbar {
background-position: 48px 5px;
background-repeat: no-repeat;
text-align: left;
- border-left: 1px solid #6dbce3;
+ border: 1px solid #d4d4d4;
}
.introjs-prevbutton.introjs-disabled,
@@ -1929,26 +1952,6 @@ li.selected .btn.btn-primary.toolbar {
border: 1px solid #d4d4d4;
}
-.introjs-nextbutton,
-.introjs-nextbutton:focus,
-.introjs-nextbutton:active,
-.introjs-nextbutton:hover {
- background-image: url("img/introjs_arrow_step_next.png");
- background-position: 48px 5px;
- background-repeat: no-repeat;
- text-align: left;
-}
-
-.introjs-prevbutton,
-.introjs-prevbutton:focus,
-.introjs-prevbutton:active,
-.introjs-prevbutton:hover {
- background-image: url("img/introjs_arrow_step_prev.png");
- background-position: 2px 5px;
- background-repeat: no-repeat;
- text-align: right;
-}
-
.introjs-disabled, .introjs-disabled:hover, .introjs-disabled:focus {
color: gray;
background-color: #F0F8FC;
[20/34] building changes updating bower
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/efe34294/portal/js/usergrid.min.js
----------------------------------------------------------------------
diff --git a/portal/js/usergrid.min.js b/portal/js/usergrid.min.js
index 804d348..eff99ea 100644
--- a/portal/js/usergrid.min.js
+++ b/portal/js/usergrid.min.js
@@ -1,4 +1,4 @@
-/*! usergrid@2.0.1 2014-03-27 */
+/*! usergrid@2.0.1 2014-03-28 */
!function(exports,global){function renderChart(chartsDefaults,chartdata){var newSettings={};$.extend(!0,newSettings,chartsDefaults,chartdata);new Highcharts.Chart(newSettings)}function menuBindClick(scope,lElement,cevent,menuContext){var currentSelection=angular.element(cevent.srcElement).parent(),previousSelection=scope[menuContext];previousSelection!==currentSelection&&(previousSelection&&angular.element(previousSelection).removeClass("active"),scope[menuContext]=currentSelection,scope.$apply(function(){currentSelection.addClass("active")}))}global["true"]=exports;var polyfills=function(window,Object){window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){window.setTimeout(callback,1e3/60)}}(),Object.defineProperty(Object.prototype,"clone",{enumerable:!1,writable:!0,value:function(){var i,newObj=this instanceof Arra
y?[]:{};for(i in this)"clone"!==i&&(newObj[i]=this[i]&&"object"==typeof this[i]?this[i].clone():this[i]);return newObj}}),Object.defineProperty(Object.prototype,"stringifyJSON",{enumerable:!1,writable:!0,value:function(){return JSON.stringify(this,null," ")}})};polyfills(window,Object);var global=global||this,AppServices=AppServices||{};global.AppServices=global.AppServices||AppServices,AppServices.Constants=angular.module("appservices.constants",[]),AppServices.Services=angular.module("appservices.services",[]),AppServices.Controllers=angular.module("appservices.controllers",[]),AppServices.Filters=angular.module("appservices.filters",[]),AppServices.Directives=angular.module("appservices.directives",[]),AppServices.Performance=angular.module("appservices.performance",[]),AppServices.MAX=angular.module("appservices.max",[]),angular.module("appservices",["ngRoute","ngResource","ngSanitize","ui.bootstrap","angulartics","angulartics.google.analytics","appservices.filters","appservices
.services","appservices.directives","appservices.constants","appservices.controllers","appservices.max","angular-intro"]).config(["$routeProvider","$locationProvider","$sceDelegateProvider","$analyticsProvider",function($routeProvider,$locationProvider,$sceDelegateProvider,$analyticsProvider){$routeProvider.when("/org-overview",{templateUrl:"org-overview/org-overview.html",controller:"OrgOverviewCtrl"}).when("/login",{templateUrl:"login/login.html",controller:"LoginCtrl"}).when("/login/loading",{templateUrl:"login/loading.html",controller:"LoginCtrl"}).when("/app-overview/summary",{templateUrl:"app-overview/app-overview.html",controller:"AppOverviewCtrl"}).when("/getting-started/setup",{templateUrl:"app-overview/getting-started.html",controller:"GettingStartedCtrl"}).when("/forgot-password",{templateUrl:"login/forgot-password.html",controller:"ForgotPasswordCtrl"}).when("/register",{templateUrl:"login/register.html",controller:"RegisterCtrl"}).when("/users",{templateUrl:"users/users
.html",controller:"UsersCtrl"}).when("/users/profile",{templateUrl:"users/users-profile.html",controller:"UsersProfileCtrl"}).when("/users/groups",{templateUrl:"users/users-groups.html",controller:"UsersGroupsCtrl"}).when("/users/activities",{templateUrl:"users/users-activities.html",controller:"UsersActivitiesCtrl"}).when("/users/feed",{templateUrl:"users/users-feed.html",controller:"UsersFeedCtrl"}).when("/users/graph",{templateUrl:"users/users-graph.html",controller:"UsersGraphCtrl"}).when("/users/roles",{templateUrl:"users/users-roles.html",controller:"UsersRolesCtrl"}).when("/groups",{templateUrl:"groups/groups.html",controller:"GroupsCtrl"}).when("/groups/details",{templateUrl:"groups/groups-details.html",controller:"GroupsDetailsCtrl"}).when("/groups/members",{templateUrl:"groups/groups-members.html",controller:"GroupsMembersCtrl"}).when("/groups/activities",{templateUrl:"groups/groups-activities.html",controller:"GroupsActivitiesCtrl"}).when("/groups/roles",{templateUrl:"gro
ups/groups-roles.html",controller:"GroupsRolesCtrl"}).when("/roles",{templateUrl:"roles/roles.html",controller:"RolesCtrl"}).when("/roles/settings",{templateUrl:"roles/roles-settings.html",controller:"RolesSettingsCtrl"}).when("/roles/users",{templateUrl:"roles/roles-users.html",controller:"RolesUsersCtrl"}).when("/roles/groups",{templateUrl:"roles/roles-groups.html",controller:"RolesGroupsCtrl"}).when("/data",{templateUrl:"data/data.html",controller:"DataCtrl"}).when("/data/entity",{templateUrl:"data/entity.html",controller:"EntityCtrl"}).when("/data/shell",{templateUrl:"data/shell.html",controller:"ShellCtrl"}).when("/profile/organizations",{templateUrl:"profile/organizations.html",controller:"OrgCtrl"}).when("/profile/profile",{templateUrl:"profile/profile.html",controller:"ProfileCtrl"}).when("/profile",{templateUrl:"profile/account.html",controller:"AccountCtrl"}).when("/activities",{templateUrl:"activities/activities.html",controller:"ActivitiesCtrl"}).when("/shell",{templateU
rl:"shell/shell.html",controller:"ShellCtrl"}).when("/logout",{templateUrl:"login/logout.html",controller:"LogoutCtrl"}).otherwise({redirectTo:"/org-overview"}),$locationProvider.html5Mode(!1).hashPrefix("!"),$sceDelegateProvider.resourceUrlWhitelist(["self","http://apigee-internal-prod.jupiter.apigee.net/**","http://apigee-internal-prod.mars.apigee.net/**","https://appservices.apigee.com/**","https://api.usergrid.com/**"]),$analyticsProvider.virtualPageviews(!1),$analyticsProvider.firstPageview(!1)}]),AppServices.Controllers.controller("ActivitiesCtrl",["ug","$scope","$rootScope","$location","$route",function(ug,$scope,$rootScope){$scope.$on("app-activities-received",function(evt,data){$scope.activities=data,$scope.$apply()}),$scope.$on("app-activities-error",function(){$rootScope.$broadcast("alert","error","Application failed to retreive activities data.")}),ug.getActivities()}]),AppServices.Controllers.controller("AppOverviewCtrl",["ug","charts","$scope","$rootScope","$log",funct
ion(ug,charts,$scope,$rootScope,$log){var createGradient=function(color1,color2){var perShapeGradient={x1:0,y1:0,x2:0,y2:1};return{linearGradient:perShapeGradient,stops:[[0,color1],[1,color2]]}};$scope.appOverview={},$scope.collections=[],$scope.graph="",$scope.$on("top-collections-received",function(event,collections){var dataDescription={bar1:{labels:["Total"],dataAttr:["title","count"],colors:[createGradient("rgba(36,151,212,0.6)","rgba(119,198,240,0.6)")],borderColor:"#1b97d1"}};$scope.collections=collections;var arr=[];for(var i in collections)collections.hasOwnProperty(i)&&arr.push(collections[i]);$scope.appOverview={},$rootScope.chartTemplate?($scope.appOverview.chart=angular.copy($rootScope.chartTemplate.pareto),$scope.appOverview.chart=charts.convertParetoChart(arr,$scope.appOverview.chart,dataDescription.bar1,"1h","NOW"),$scope.applyScope()):ug.httpGet(null,"js/charts/highcharts.json").then(function(success){$rootScope.chartTemplate=success,$scope.appOverview.chart=angular
.copy($rootScope.chartTemplate.pareto),$scope.appOverview.chart=charts.convertParetoChart(arr,$scope.appOverview.chart,dataDescription.bar1,"1h","NOW"),$scope.applyScope()},function(fail){$log.error("Problem getting chart template",fail)})}),$scope.$on("app-initialized",function(){ug.getTopCollections()}),$rootScope.activeUI&&ug.getTopCollections()}]),AppServices.Controllers.controller("GettingStartedCtrl",["ug","$scope","$rootScope","$location","$timeout","$anchorScroll",function(ug,$scope,$rootScope,$location,$timeout,$anchorScroll){$scope.collections=[],$scope.graph="",$scope.clientID="",$scope.clientSecret="";$scope.regenerateCredentialsDialog=function(modalId){$scope.orgAPICredentials={client_id:"regenerating...",client_secret:"regenerating..."},ug.regenerateAppCredentials(),$scope.hideModal(modalId)},$scope.$on("app-creds-updated",function(event,credentials){credentials?($scope.clientID=credentials.client_id,$scope.clientSecret=credentials.client_secret,$scope.$$phase||$scope.
$apply()):setTimeout(function(){ug.getAppCredentials()},5e3)}),ug.getAppCredentials(),$scope.contentTitle,$scope.showSDKDetail=function(name){var introContainer=document.getElementById("intro-container");if("nocontent"===name)return introContainer.style.height="0",!0;introContainer.style.opacity=.1,introContainer.style.height="0";var timeout=0;$scope.contentTitle&&(timeout=500),$timeout(function(){introContainer.style.height="1000px",introContainer.style.opacity=1},timeout),$scope.optionName=name,$scope.contentTitle=name,$scope.sdkLink="http://apigee.com/docs/content/"+name+"-sdk-redirect",$scope.docsLink="http://apigee.com/docs/app-services/content/installing-apigee-sdk-"+name,$scope.getIncludeURL=function(){return"app-overview/doc-includes/"+$scope.optionName+".html"}},$scope.scrollToElement=function(elem){return $location.hash(elem),$anchorScroll(),!1}}]),AppServices.Controllers.controller("ChartCtrl",["$scope","$location",function(){}]),AppServices.Directives.directive("chart",f
unction(){return{restrict:"E",scope:{chartdata:"=chartdata"},template:"<div></div>",replace:!0,controller:function(){},link:function(scope,element,attrs){scope.$watch("chartdata",function(chartdata){if(chartdata){var chartsDefaults={chart:{renderTo:element[0],type:attrs.type||null,height:attrs.height||null,width:attrs.width||null,reflow:!0,animation:!1,zoomType:"x"}};if("pie"===attrs.type&&(chartsDefaults.chart.margin=[0,0,0,0],chartsDefaults.chart.spacingLeft=0,chartsDefaults.chart.spacingRight=0,chartsDefaults.chart.spacingTop=0,chartsDefaults.chart.spacingBottom=0,attrs.titleimage&&(chartdata.title.text='<img src="'+attrs.titleimage+'">'),attrs.titleicon&&(chartdata.title.text='<i class="pictogram '+attrs.titleiconclass+'">'+attrs.titleicon+"</i>"),attrs.titlecolor&&(chartdata.title.style.color=attrs.titlecolor),attrs.titleimagetop&&(chartdata.title.style.marginTop=attrs.titleimagetop),attrs.titleimageleft&&(chartdata.title.style.marginLeft=attrs.titleimageleft)),"line"===attrs.t
ype&&(chartsDefaults.chart.marginTop=30,chartsDefaults.chart.spacingTop=50),"column"===attrs.type&&(chartsDefaults.chart.marginBottom=80),"area"===attrs.type&&(chartsDefaults.chart.spacingLeft=0,chartsDefaults.chart.spacingRight=0,chartsDefaults.chart.marginLeft=0,chartsDefaults.chart.marginRight=0),Highcharts.setOptions({global:{useUTC:!1},chart:{style:{fontFamily:"marquette-light, Helvetica, Arial, sans-serif"}}}),"line"===attrs.type){var xAxis1=chartdata.xAxis[0];xAxis1.labels.formatter||(xAxis1.labels.formatter=new Function(attrs.xaxislabel)),xAxis1.labels.step||(xAxis1.labels.step=attrs.xaxisstep)}chartdata.tooltip&&"string"==typeof chartdata.tooltip.formatter&&(chartdata.tooltip.formatter=new Function(chartdata.tooltip.formatter)),renderChart(chartsDefaults,chartdata)}},!0)}}}),AppServices.Services.factory("charts",function(){function sortJsonArrayByProperty(objArray,prop){if(arguments.length<2)throw new Error("sortJsonArrayByProp requires 2 arguments");var direct=arguments.le
ngth>2?arguments[2]:1;if(objArray&&objArray.constructor===Array){var propPath=prop.constructor===Array?prop:prop.split(".");objArray.sort(function(a,b){for(var p in propPath)a[propPath[p]]&&b[propPath[p]]&&(a=a[propPath[p]],b=b[propPath[p]]);return a=a.match(/^\d+$/)?+a:a,b=b.match(/^\d+$/)?+b:b,b>a?-1*direct:a>b?1*direct:0})}}var lineChart,areaChart,paretoChart,pieChart,xaxis,seriesIndex;return{convertLineChart:function(chartData,chartTemplate,dataDescription,settings,currentCompare){function plotData(counter,dPLength,dataPoints,dataAttrs,detailedView){for(var i=0;dPLength>i;i++)for(var dp=dataPoints[i],localCounter=counter,j=0;j<dataAttrs.length;j++)lineChart.series[localCounter].data.push("undefined"==typeof dp?[i,0]:[i,dp[dataAttrs[j]]]),detailedView||localCounter++}lineChart=chartTemplate,"undefined"==typeof chartData[0]&&(chartData[0]={},chartData[0].datapoints=[]);var label,dataPoints=chartData[0].datapoints,dPLength=dataPoints.length;"YESTERDAY"===currentCompare?(seriesIndex
=dataDescription.dataAttr.length,label="Yesterday "):"LAST_WEEK"===currentCompare?(seriesIndex=dataDescription.dataAttr.length,label="Last Week "):(lineChart=chartTemplate,seriesIndex=0,lineChart.series=[],label=""),xaxis=lineChart.xAxis[0],xaxis.categories=[],settings.xaxisformat&&(xaxis.labels.formatter=new Function(settings.xaxisformat)),settings.step&&(xaxis.labels.step=settings.step);for(var i=0;dPLength>i;i++){var dp=dataPoints[i];xaxis.categories.push(dp.timestamp)}if(chartData.length>1)for(var l=0;l<chartData.length;l++)chartData[l].chartGroupName&&(dataPoints=chartData[l].datapoints,lineChart.series[l]={},lineChart.series[l].data=[],lineChart.series[l].name=chartData[l].chartGroupName,lineChart.series[l].yAxis=0,lineChart.series[l].type="line",lineChart.series[l].color=dataDescription.colors[i],lineChart.series[l].dashStyle="solid",lineChart.series[l].yAxis.title.text=dataDescription.yAxisLabels,plotData(l,dPLength,dataPoints,dataDescription.detailDataAttr,!0));else{for(var
steadyCounter=0,i=seriesIndex;i<dataDescription.dataAttr.length+(seriesIndex>0?seriesIndex:0);i++){var yAxisIndex=dataDescription.multiAxis?steadyCounter:0;lineChart.series[i]={},lineChart.series[i].data=[],lineChart.series[i].name=label+dataDescription.labels[steadyCounter],lineChart.series[i].yAxis=yAxisIndex,lineChart.series[i].type="line",lineChart.series[i].color=dataDescription.colors[i],lineChart.series[i].dashStyle="solid",lineChart.yAxis[yAxisIndex].title.text=dataDescription.yAxisLabels[dataDescription.yAxisLabels>1?steadyCounter:0],steadyCounter++}plotData(seriesIndex,dPLength,dataPoints,dataDescription.dataAttr,!1)}return lineChart},convertAreaChart:function(chartData,chartTemplate,dataDescription,settings,currentCompare){function plotData(counter,dPLength,dataPoints,dataAttrs,detailedView){for(var i=0;dPLength>i;i++)for(var dp=dataPoints[i],localCounter=counter,j=0;j<dataAttrs.length;j++)areaChart.series[localCounter].data.push("undefined"==typeof dp?0:dp[dataAttrs[j]]
),detailedView||localCounter++}areaChart=angular.copy(areaChart),"undefined"==typeof chartData[0]&&(chartData[0]={},chartData[0].datapoints=[]);var label,dataPoints=chartData[0].datapoints,dPLength=dataPoints.length;"YESTERDAY"===currentCompare?(seriesIndex=dataDescription.dataAttr.length,label="Yesterday "):"LAST_WEEK"===currentCompare?(seriesIndex=dataDescription.dataAttr.length,label="Last Week "):(areaChart=chartTemplate,seriesIndex=0,areaChart.series=[],label=""),xaxis=areaChart.xAxis[0],xaxis.categories=[],settings.xaxisformat&&(xaxis.labels.formatter=new Function(settings.xaxisformat)),settings.step&&(xaxis.labels.step=settings.step);for(var i=0;dPLength>i;i++){var dp=dataPoints[i];xaxis.categories.push(dp.timestamp)}if(chartData.length>1)for(var l=0;l<chartData.length;l++)chartData[l].chartGroupName&&(dataPoints=chartData[l].datapoints,areaChart.series[l]={},areaChart.series[l].data=[],areaChart.series[l].fillColor=dataDescription.areaColors[l],areaChart.series[l].name=chart
Data[l].chartGroupName,areaChart.series[l].yAxis=0,areaChart.series[l].type="area",areaChart.series[l].pointInterval=1,areaChart.series[l].color=dataDescription.colors[l],areaChart.series[l].dashStyle="solid",areaChart.series[l].yAxis.title.text=dataDescription.yAxisLabels,plotData(l,dPLength,dataPoints,dataDescription.detailDataAttr,!0));else{for(var steadyCounter=0,i=seriesIndex;i<dataDescription.dataAttr.length+(seriesIndex>0?seriesIndex:0);i++){var yAxisIndex=dataDescription.multiAxis?steadyCounter:0;areaChart.series[i]={},areaChart.series[i].data=[],areaChart.series[i].fillColor=dataDescription.areaColors[i],areaChart.series[i].name=label+dataDescription.labels[steadyCounter],areaChart.series[i].yAxis=yAxisIndex,areaChart.series[i].type="area",areaChart.series[i].pointInterval=1,areaChart.series[i].color=dataDescription.colors[i],areaChart.series[i].dashStyle="solid",areaChart.yAxis[yAxisIndex].title.text=dataDescription.yAxisLabels[dataDescription.yAxisLabels>1?steadyCounter:0
],steadyCounter++}plotData(seriesIndex,dPLength,dataPoints,dataDescription.dataAttr,!1)}return areaChart},convertParetoChart:function(chartData,chartTemplate,dataDescription,settings,currentCompare){function getPreviousData(){for(var i=0;i<chartTemplate.series[0].data.length;i++)allParetoOptions.push(chartTemplate.xAxis.categories[i])}function createStackedBar(dataDescription,paretoChart){paretoChart.plotOptions={series:{shadow:!1,borderColor:dataDescription.borderColor,borderWidth:1},column:{stacking:"normal",dataLabels:{enabled:!0,color:Highcharts.theme&&Highcharts.theme.dataLabelsColor||"white"}}};var start=dataDescription.dataAttr[1].length,steadyCounter=0;compare&&(paretoChart.legend.enabled=!0);for(var f=seriesIndex;start+seriesIndex>f;f++)paretoChart.series[f]||(paretoChart.series[f]={data:[]}),paretoChart.series[f].data.push(bar[dataDescription.dataAttr[1][steadyCounter]]),paretoChart.series[f].name=""!==label?label+" "+dataDescription.labels[steadyCounter]:dataDescription.l
abels[steadyCounter],paretoChart.series[f].color=dataDescription.colors[f],paretoChart.series[f].stack=label,steadyCounter++}paretoChart=chartTemplate,"undefined"==typeof chartData&&(chartData=[]);var label,cdLength=chartData.length,compare=!1,allParetoOptions=[],stackedBar=!1;if(seriesIndex=0,"object"==typeof dataDescription.dataAttr[1]&&(stackedBar=!0),"YESTERDAY"===currentCompare?(label="Yesterday ",compare=!0,stackedBar&&(seriesIndex=dataDescription.dataAttr[1].length),getPreviousData()):"LAST_WEEK"===currentCompare?(label="Last Week ",compare=!0,stackedBar&&(seriesIndex=dataDescription.dataAttr[1].length),seriesIndex=getPreviousData()):(compare=!1,label="",paretoChart.xAxis.categories=[],paretoChart.series=[],paretoChart.series[0]={},paretoChart.series[0].data=[],paretoChart.legend.enabled=!1),paretoChart.plotOptions.series.borderColor=dataDescription.borderColor,compare&&!stackedBar){paretoChart.series[1]={},paretoChart.series[1].data=[];for(var i=0;i<allParetoOptions.length;i
++)paretoChart.series[1].data.push(0);paretoChart.legend.enabled=!0}for(var i=0;cdLength>i;i++){var bar=chartData[i];if(compare){var newLabel=bar[dataDescription.dataAttr[0]],newValue=bar[dataDescription.dataAttr[1]],previousIndex=allParetoOptions.indexOf(newLabel);previousIndex>-1&&("object"==typeof dataDescription.dataAttr[1]?createStackedBar(dataDescription,paretoChart,paretoChart.series.length):(paretoChart.series[1].data[previousIndex]=newValue,paretoChart.series[1].name=""!==label?label+" "+dataDescription.labels[0]:dataDescription.labels[0],paretoChart.series[1].color=dataDescription.colors[1]))}else paretoChart.xAxis.categories.push(bar[dataDescription.dataAttr[0]]),"object"==typeof dataDescription.dataAttr[1]?createStackedBar(dataDescription,paretoChart,paretoChart.series.length):(paretoChart.series[0].data.push(bar[dataDescription.dataAttr[1]]),paretoChart.series[0].name=dataDescription.labels[0],paretoChart.series[0].color=dataDescription.colors[0])}return paretoChart},co
nvertPieChart:function(chartData,chartTemplate,dataDescription,settings,currentCompare){var label,cdLength=chartData.length,compare=!1;pieChart=chartTemplate,"YESTERDAY"===currentCompare?(label="Yesterday ",compare=!1):"LAST_WEEK"===currentCompare?(label="Last Week ",compare=!1):(compare=!1,pieChart.series[0].data=[],pieChart.series[0].dataLabels&&"string"==typeof pieChart.series[0].dataLabels.formatter&&(pieChart.series[0].dataLabels.formatter=new Function(pieChart.series[0].dataLabels.formatter))),pieChart.plotOptions.pie.borderColor=dataDescription.borderColor,compare&&(pieChart.series[1].data=[],pieChart.series[1].dataLabels&&"string"==typeof pieChart.series[1].dataLabels.formatter&&(pieChart.series[1].dataLabels.formatter=new Function(pieChart.series[1].dataLabels.formatter)));for(var tempArray=[],i=0;cdLength>i;i++){var pie=chartData[i];tempArray.push({name:pie[dataDescription.dataAttr[0]],y:pie[dataDescription.dataAttr[1]],color:""})}sortJsonArrayByProperty(tempArray,"name");
for(var i=0;i<tempArray.length;i++)tempArray[i].color=dataDescription.colors[i];return compare?pieChart.series[1].data=tempArray:pieChart.series[0].data=tempArray,pieChart}}}),$(".sessions-bar").sparkline([3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,1],{type:"bar",barColor:"#c5c5c5",width:"800px",height:100,barWidth:12,barSpacing:"1px"}),AppServices.Controllers.controller("DataCtrl",["ug","$scope","$rootScope","$location",function(ug,$scope,$rootScope){var init=function(){$scope.verb="GET",$scope.display="",$scope.queryBodyDetail={},$scope.queryBodyDisplay="none",$scope.queryLimitDisplay="block",$scope.queryStringDisplay="block",$scope.entitySelected={},$scope.newCollection={},$rootScope.queryCollection={},$scope.data={},$scope.data.queryPath="",$scope.data.queryBody='{ "name":"value" }',$scope.data.searchString="",$scope.data.queryLimit=""},runQuery=function(verb){$scope.loading=!0;var queryPath=$scope.remove
FirstSlash($scope.data.queryPath||""),searchString=$scope.data.searchString||"",queryLimit=$scope.data.queryLimit||"",body=JSON.parse($scope.data.queryBody||"{}");"POST"==verb&&$scope.validateJson(!0)?ug.runDataPOSTQuery(queryPath,body):"PUT"==verb&&$scope.validateJson(!0)?ug.runDataPutQuery(queryPath,searchString,queryLimit,body):"DELETE"==verb?ug.runDataDeleteQuery(queryPath,searchString,queryLimit):ug.runDataQuery(queryPath,searchString,queryLimit)};$scope.$on("top-collections-received",function(event,collectionList){$scope.loading=!1;var ignoredCollections=["events"];ignoredCollections.forEach(function(ignoredCollection){collectionList.hasOwnProperty(ignoredCollection)&&delete collectionList[ignoredCollection]}),$scope.collectionList=collectionList,$scope.queryBoxesSelected=!1,$scope.queryPath||$scope.loadCollection("/"+collectionList[Object.keys(collectionList).sort()[0]].name),$scope.applyScope()}),$scope.$on("error-running-query",function(){$scope.loading=!1,runQuery("GET"),$
scope.applyScope()}),$scope.$on("entity-deleted",function(){$scope.deleteLoading=!1,$rootScope.$broadcast("alert","success","Entities deleted sucessfully"),$scope.queryBoxesSelected=!1,$scope.checkNextPrev(),$scope.applyScope()}),$scope.$on("entity-deleted-error",function(){$scope.deleteLoading=!1,runQuery("GET"),$scope.applyScope()}),$scope.$on("collection-created",function(){$scope.newCollection.name=""}),$scope.$on("query-received",function(event,collection){$scope.loading=!1,$rootScope.queryCollection=collection,ug.getIndexes($scope.data.queryPath),$scope.setDisplayType(),$scope.checkNextPrev(),$scope.applyScope(),$scope.queryBoxesSelected=!1}),$scope.$on("indexes-received",function(event,indexes){}),$scope.$on("app-changed",function(){init()}),$scope.setDisplayType=function(){$scope.display="generic"},$scope.deleteEntitiesDialog=function(modalId){$scope.deleteLoading=!1,$scope.deleteEntities($rootScope.queryCollection,"entity-deleted","error deleting entity"),$scope.hideModal(m
odalId)},$scope.newCollectionDialog=function(modalId){$scope.newCollection.name?(ug.createCollection($scope.newCollection.name),ug.getTopCollections(),$rootScope.$broadcast("alert","success","Collection created successfully."),$scope.hideModal(modalId)):$rootScope.$broadcast("alert","error","You must specify a collection name.")},$scope.addToPath=function(uuid){$scope.data.queryPath="/"+$rootScope.queryCollection._type+"/"+uuid},$scope.isDeep=function(item){return"[object Object]"===Object.prototype.toString.call(item)},$scope.loadCollection=function(type){$scope.data.queryPath="/"+type.substring(1,type.length),$scope.data.searchString="",$scope.data.queryLimit="",$scope.data.body='{ "name":"value" }',$scope.selectGET(),$scope.applyScope(),$scope.run()},$scope.selectGET=function(){$scope.queryBodyDisplay="none",$scope.queryLimitDisplay="block",$scope.queryStringDisplay="block",$scope.verb="GET"},$scope.selectPOST=function(){$scope.queryBodyDisplay="block",$scope.queryLimitDisplay="n
one",$scope.queryStringDisplay="none",$scope.verb="POST"},$scope.selectPUT=function(){$scope.queryBodyDisplay="block",$scope.queryLimitDisplay="block",$scope.queryStringDisplay="block",$scope.verb="PUT"},$scope.selectDELETE=function(){$scope.queryBodyDisplay="none",$scope.queryLimitDisplay="block",$scope.queryStringDisplay="block",$scope.verb="DELETE"},$scope.validateJson=function(skipMessage){var queryBody=$scope.data.queryBody;try{queryBody=JSON.parse(queryBody)}catch(e){return $rootScope.$broadcast("alert","error","JSON is not valid"),!1}return queryBody=JSON.stringify(queryBody,null,2),!skipMessage&&$rootScope.$broadcast("alert","success","JSON is valid"),$scope.data.queryBody=queryBody,!0},$scope.saveEntity=function(entity){if(!$scope.validateJson())return!1;var queryBody=entity._json;queryBody=JSON.parse(queryBody),$rootScope.selectedEntity.set(),$rootScope.selectedEntity.set(queryBody),$rootScope.selectedEntity.set("type",entity._data.type),$rootScope.selectedEntity.set("uuid
",entity._data.uuid),$rootScope.selectedEntity.save(function(err,data){err?$rootScope.$broadcast("alert","error","error: "+data.error_description):$rootScope.$broadcast("alert","success","entity saved")})},$scope.run=function(){$rootScope.queryCollection="";var verb=$scope.verb;runQuery(verb)},$scope.hasProperty=function(prop){var retval=!1;return"undefined"!=typeof $rootScope.queryCollection._list&&angular.forEach($rootScope.queryCollection._list,function(value){retval||value._data[prop]&&(retval=!0)}),retval},$scope.resetNextPrev=function(){$scope.previous_display="none",$scope.next_display="none"},$scope.checkNextPrev=function(){$scope.resetNextPrev(),$rootScope.queryCollection.hasPreviousPage()&&($scope.previous_display="default"),$rootScope.queryCollection.hasNextPage()&&($scope.next_display="default")},$scope.selectEntity=function(uuid){$rootScope.selectedEntity=$rootScope.queryCollection.getEntityByUUID(uuid),$scope.addToPath(uuid)},$scope.getJSONView=function(entity){var tem
pjson=entity.get(),queryBody=JSON.stringify(tempjson,null,2);queryBody=JSON.parse(queryBody),delete queryBody.metadata,delete queryBody.uuid,delete queryBody.created,delete queryBody.modified,delete queryBody.type,$scope.queryBody=JSON.stringify(queryBody,null,2)},$scope.getPrevious=function(){$rootScope.queryCollection.getPreviousPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting previous page of data"),$scope.checkNextPrev(),$scope.applyScope()})},$scope.getNext=function(){$rootScope.queryCollection.getNextPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting next page of data"),$scope.checkNextPrev(),$scope.applyScope()})},init(),$rootScope.queryCollection=$rootScope.queryCollection||{},$rootScope.selectedEntity={},$rootScope.queryCollection&&$rootScope.queryCollection._type&&($scope.loadCollection($rootScope.queryCollection._type),$scope.setDisplayType()),ug.getTopCollections(),$scope.resetNextPrev()}]),AppServices.Controllers.con
troller("EntityCtrl",["ug","$scope","$rootScope","$location",function(ug,$scope,$rootScope,$location){if(!$rootScope.selectedEntity)return void $location.path("/data");$scope.entityUUID=$rootScope.selectedEntity.get("uuid"),$scope.entityType=$rootScope.selectedEntity.get("type");var tempjson=$rootScope.selectedEntity.get(),queryBody=JSON.stringify(tempjson,null,2);queryBody=JSON.parse(queryBody),delete queryBody.metadata,delete queryBody.uuid,delete queryBody.created,delete queryBody.modified,delete queryBody.type,$scope.queryBody=JSON.stringify(queryBody,null,2),$scope.validateJson=function(){var queryBody=$scope.queryBody;try{queryBody=JSON.parse(queryBody)}catch(e){return $rootScope.$broadcast("alert","error","JSON is not valid"),!1}return queryBody=JSON.stringify(queryBody,null,2),$rootScope.$broadcast("alert","success","JSON is valid"),$scope.queryBody=queryBody,!0},$scope.saveEntity=function(){if(!$scope.validateJson())return!1;var queryBody=$scope.queryBody;queryBody=JSON.par
se(queryBody),$rootScope.selectedEntity.set(),$rootScope.selectedEntity.set(queryBody),$rootScope.selectedEntity.set("type",$scope.entityType),$rootScope.selectedEntity.set("uuid",$scope.entityUUID),$rootScope.selectedEntity.save(function(err,data){err?$rootScope.$broadcast("alert","error","error: "+data.error_description):$rootScope.$broadcast("alert","success","entity saved")})}}]),AppServices.Directives.directive("balloon",["$window","$timeout",function($window,$timeout){return{restrict:"ECA",scope:"=",template:'<div class="baloon {{direction}}" ng-transclude></div>',replace:!0,transclude:!0,link:function(scope,lElement,attrs){scope.direction=attrs.direction;var runScroll=!0,windowEl=angular.element($window);windowEl.on("scroll",function(){runScroll&&(lElement.addClass("fade-out"),$timeout(function(){lElement.addClass("hide")},1e3),runScroll=!1)})}}}]),AppServices.Directives.directive("bsmodal",["$rootScope",function($rootScope){return{restrict:"ECA",scope:{title:"@title",buttoni
d:"=buttonid",footertext:"=footertext",closelabel:"=closelabel"},transclude:!0,templateUrl:"dialogs/modal.html",replace:!0,link:function(scope,lElement,attrs,parentCtrl){scope.title=attrs.title,scope.footertext=attrs.footertext,scope.closelabel=attrs.closelabel,scope.close=attrs.close,scope.extrabutton=attrs.extrabutton,scope.extrabuttonlabel=attrs.extrabuttonlabel,scope.buttonId=attrs.buttonid,scope.closeDelegate=function(attr){scope.$parent[attr](attrs.id,scope)},scope.extraDelegate=function(attr){scope.dialogForm.$valid?(console.log(parentCtrl),scope.$parent[attr](attrs.id)):$rootScope.$broadcast("alert","error","Please check your form input and resubmit.")}}}}]),AppServices.Controllers.controller("AlertCtrl",["$scope","$rootScope","$timeout",function($scope,$rootScope,$timeout){$scope.alertDisplay="none",$scope.alerts=[],$scope.$on("alert",function(event,type,message,permanent){$scope.addAlert(type,message,permanent)}),$scope.$on("clear-alerts",function(){$scope.alerts=[]}),$sco
pe.addAlert=function(type,message,permanent){$scope.alertDisplay="block",$scope.alerts.push({type:type,msg:message}),$scope.applyScope(),permanent||$timeout(function(){$scope.alerts.shift()},5e3)},$scope.closeAlert=function(index){$scope.alerts.splice(index,1)}}]),AppServices.Directives.directive("alerti",["$rootScope","$timeout",function($rootScope,$timeout){return{restrict:"ECA",scope:{type:"=type",closeable:"@closeable",index:"&index"},template:'<div class="alert" ng-class="type && \'alert-\' + type"> <button ng-show="closeable" type="button" class="close" ng-click="closeAlert(index)">×</button> <i ng-if="type === \'warning\'" class="pictogram pull-left" style="font-size:3em;line-height:0.4">💥</i> <i ng-if="type === \'info\'" class="pictogram pull-left">ℹ</i> <i ng-if="type === \'error\'" class="pictogram pull-left">⚡</i> <i ng-if="type === \'success\'" class="pictogram pull-left">👍</i><div ng-transclude></div></div>',replace:!0,tr
ansclude:!0,link:function(scope,lElement,attrs){$timeout(function(){lElement.addClass("fade-out")},4e3),lElement.click(function(){attrs.index&&scope.$parent.closeAlert(attrs.index)}),setTimeout(function(){lElement.addClass("alert-animate")},10)}}}]),AppServices.Directives.directive("appswitcher",["$rootScope",function(){return{restrict:"ECA",scope:"=",templateUrl:"global/appswitcher-template.html",replace:!0,transclude:!0,link:function(){function globalNavDetail(){$("#globalNavDetail > div").removeClass(classNameOpen),$("#globalNavDetailApiPlatform").addClass(classNameOpen)}var classNameOpen="open";$("ul.nav li.dropdownContainingSubmenu").hover(function(){$(this).addClass(classNameOpen)},function(){$(this).removeClass(classNameOpen)}),$("#globalNav > a").mouseover(globalNavDetail),$("#globalNavDetail").mouseover(globalNavDetail),$("#globalNavSubmenuContainer ul li").mouseover(function(){$("#globalNavDetail > div").removeClass(classNameOpen),$("#"+this.getAttribute("data-globalNavDet
ail")).addClass(classNameOpen)})}}}]),AppServices.Services.factory("help",function($rootScope,$http,$analytics){$rootScope.help={},$rootScope.help.helpButtonStatus="Enable Help",$rootScope.help.helpTooltipsEnabled=!1,$rootScope.help.clicked=!1,$rootScope.help.showHelpButtons=!1;
var helpStartTime,introjs_step;$rootScope.help.sendTooltipGA=function(tooltipName){$analytics.eventTrack("tooltip - "+$rootScope.currentPath,{category:"App Services",label:tooltipName})},$rootScope.help.toggleTooltips=function(){0==$rootScope.help.helpTooltipsEnabled?($rootScope.help.helpButtonStatus="Disable Help",$rootScope.help.helpTooltipsEnabled=!0,showHelpModal("tooltips")):($rootScope.help.helpButtonStatus="Enable Help",$rootScope.help.helpTooltipsEnabled=!1)},$rootScope.help.IntroOptions={steps:[],showStepNumbers:!1,exitOnOverlayClick:!0,exitOnEsc:!0,nextLabel:"Next",prevLabel:"Back",skipLabel:"Got It",doneLabel:"Got it"},$rootScope.$on("$routeChangeSuccess",function(event,current){var path=current.$$route.originalPath;"/org-overview"==path?($rootScope.help.showHelpButtons=!0,getHelpJson(path).success(function(json){var helpJson=json;setHelpStrings(helpJson),showHelpModal("tour")})):$rootScope.help.showHelpButtons=!1});var showHelpModal=function(helpType){var shouldHelp=loca
tion.search.indexOf("noHelp")<=0;"tour"!=helpType||getHelpStatus(helpType)?"tooltips"!=helpType||getHelpStatus(helpType)||shouldHelp&&$rootScope.showModal("tooltips"):shouldHelp&&$rootScope.showModal("introjs")},setHelpStrings=function(helpJson){$rootScope.help.IntroOptions.steps=helpJson.introjs,angular.forEach(helpJson.tooltip,function(value,binding){$rootScope[binding]=value})};$rootScope.help.introjs_StartEvent=function(){helpStartTime=Date.now(),introjs_step=1},$rootScope.help.introjs_ExitEvent=function(){var introjs_time=Math.round((Date.now()-helpStartTime)/1e3);$analytics.eventTrack("introjs timing - "+$rootScope.currentPath,{category:"App Services",label:introjs_time+"s"}),$analytics.eventTrack("introjs exit - "+$rootScope.currentPath,{category:"App Services",label:"step"+introjs_step})},$rootScope.help.introjs_ChangeEvent=function(){introjs_step++};var getHelpJson=function(path){return $http.jsonp("http://sdk.apigee.com.s3.amazonaws.com/portal_help"+path+"/helpJson.json?ca
llback=JSON_CALLBACK")},getHelpStatus=function(helpType){var status;return"tour"==helpType?(status=localStorage.getItem("ftu_tour"),localStorage.setItem("ftu_tour","false")):"tooltips"==helpType&&(status=localStorage.getItem("ftu_tooltips"),localStorage.setItem("ftu_tooltips","false")),status}}),AppServices.Directives.directive("insecureBanner",["$rootScope","ug",function($rootScope,ug){return{restrict:"E",transclude:!0,templateUrl:"global/insecure-banner.html",link:function(scope){scope.securityWarning=!1,scope.$on("roles-received",function(evt,roles){scope.securityWarning=!1,roles&&roles._list&&roles._list.forEach(function(roleHolder){var role=roleHolder._data;"GUEST"===role.name.toUpperCase()&&roleHolder.getPermissions(function(err){err||roleHolder.permissions&&roleHolder.permissions.forEach(function(permission){permission.path.indexOf("/**")>=0&&(scope.securityWarning=!0,scope.applyScope())})})})});var initialized=!1;scope.$on("app-initialized",function(){!initialized&&ug.getRol
es(),initialized=!0}),scope.$on("app-changed",function(){scope.securityWarning=!1,ug.getRoles()})}}}]),AppServices.Constants.constant("configuration",{ITEMS_URL:"global/temp.json"}),AppServices.Controllers.controller("PageCtrl",["ug","help","utility","$scope","$rootScope","$location","$routeParams","$q","$route","$log","$analytics",function(ug,help,utility,$scope,$rootScope,$location,$routeParams,$q,$route,$log,$analytics){var initScopeVariables=function(){$scope.loadingText="Loading...",$scope.use_sso=!1,$scope.newApp={name:""},$scope.getPerm="",$scope.postPerm="",$scope.putPerm="",$scope.deletePerm="",$scope.usersTypeaheadValues=[],$scope.groupsTypeaheadValues=[],$scope.rolesTypeaheadValues=[],$rootScope.sdkActive=!1,$rootScope.demoData=!1,$scope.queryStringApplied=!1,$rootScope.autoUpdateTimer=Usergrid.config?Usergrid.config.autoUpdateTimer:61,$rootScope.requiresDeveloperKey=Usergrid.config?Usergrid.config.client.requiresDeveloperKey:!1,$rootScope.loaded=$rootScope.activeUI=!1;fo
r(var key in Usergrid.regex)$scope[key]=Usergrid.regex[key];$scope.options=Usergrid.options;var getQuery=function(){for(var m,result={},queryString=location.search.slice(1),re=/([^&=]+)=([^&]*)/g;m=re.exec(queryString);)result[decodeURIComponent(m[1])]=decodeURIComponent(m[2]);return result};$scope.queryString=getQuery()};initScopeVariables(),$rootScope.urls=function(){var urls=ug.getUrls();return $scope.apiUrl=urls.apiUrl,$scope.use_sso=urls.use_sso,urls},$rootScope.gotoPage=function(path){$location.path(path)};var notRegistration=function(){return"/forgot-password"!==$location.path()&&"/register"!==$location.path()},verifyUser=function(){"/login"!==$location.path().slice(0,"/login".length)&&($rootScope.currentPath=$location.path()),$routeParams.access_token&&$routeParams.admin_email&&$routeParams.uuid&&(ug.set("token",$routeParams.access_token),ug.set("email",$routeParams.admin_email),ug.set("uuid",$routeParams.uuid),$location.search("access_token",null),$location.search("admin_em
ail",null),$location.search("uuid",null)),ug.checkAuthentication(!0)};$scope.profile=function(){$scope.use_sso?window.location=$rootScope.urls().PROFILE_URL+"?callback="+encodeURIComponent($location.absUrl()):$location.path("/profile")},$rootScope.showModal=function(id){$("#"+id).modal("show")},$rootScope.hideModal=function(id){$("#"+id).modal("hide")},$scope.deleteEntities=function(collection,successBroadcast,errorMessage){collection.resetEntityPointer();for(var entitiesToDelete=[];collection.hasNextEntity();){var entity=collection.getNextEntity(),checked=entity.checked;checked&&entitiesToDelete.push(entity)}for(var count=0,success=!1,i=0;i<entitiesToDelete.length;i++){var entity=entitiesToDelete[i];collection.destroyEntity(entity,function(err){count++,err?($rootScope.$broadcast("alert","error",errorMessage),$rootScope.$broadcast(successBroadcast+"-error",err)):success=!0,count===entitiesToDelete.length&&(success&&$rootScope.$broadcast(successBroadcast),$scope.applyScope())})}},$sc
ope.selectAllEntities=function(list,that,varName,setValue){varName=varName||"master";var val=that[varName];void 0==setValue&&(setValue=!0),setValue&&(that[varName]=val=!val),list.forEach(function(entitiy){entitiy.checked=val})},$scope.createPermission=function(type,entity,path,permissions){"/"!=path.charAt(0)&&(path="/"+path);var ops="",s="";permissions.getPerm&&(ops="get",s=","),permissions.postPerm&&(ops=ops+s+"post",s=","),permissions.putPerm&&(ops=ops+s+"put",s=","),permissions.deletePerm&&(ops=ops+s+"delete",s=",");var permission=ops+":"+path;return permission},$scope.formatDate=function(date){return new Date(date).toUTCString()},$scope.clearCheckbox=function(id){$("#"+id).attr("checked")&&$("#"+id).click()},$scope.removeFirstSlash=function(path){return 0===path.indexOf("/")?path.substring(1,path.length):path},$scope.applyScope=function(cb){return cb="function"==typeof cb?cb:function(){},this.$$phase?void cb():this.$apply(cb)},$scope.valueSelected=function(list){return list&&li
st.some(function(item){return item.checked})},$scope.sendHelp=function(modalId){ug.jsonpRaw("apigeeuihelpemail","",{useremail:$rootScope.userEmail}).then(function(){$rootScope.$broadcast("alert","success","Email sent. Our team will be in touch with you shortly.")},function(){$rootScope.$broadcast("alert","error","Problem Sending Email. Try sending an email to mobile@apigee.com.")}),$scope.hideModal(modalId)},$scope.$on("users-typeahead-received",function(event,users){$scope.usersTypeaheadValues=users,$scope.$$phase||$scope.$apply()}),$scope.$on("groups-typeahead-received",function(event,groups){$scope.groupsTypeaheadValues=groups,$scope.$$phase||$scope.$apply()}),$scope.$on("roles-typeahead-received",function(event,roles){$scope.rolesTypeaheadValues=roles,$scope.$$phase||$scope.$apply()}),$scope.$on("checkAuthentication-success",function(){sessionStorage.setItem("authenticateAttempts",0),$scope.loaded=!0,$rootScope.activeUI=!0,$scope.applyScope(),$scope.queryStringApplied||($scope.q
ueryStringApplied=!0,setTimeout(function(){$scope.queryString.org&&$rootScope.$broadcast("change-org",$scope.queryString.org)},1e3)),$rootScope.$broadcast("app-initialized")}),$scope.$on("checkAuthentication-error",function(args,err,missingData,email){if($scope.loaded=!0,err&&!$scope.use_sso&¬Registration())ug.logout(),$location.path("/login"),$scope.applyScope();else if(missingData&¬Registration()){if(!email&&$scope.use_sso)return void(window.location=$rootScope.urls().LOGIN_URL+"?callback="+encodeURIComponent($location.absUrl().split("?")[0]));ug.reAuthenticate(email)}}),$scope.$on("reAuthenticate-success",function(args,err,data,user,organizations,applications){sessionStorage.setItem("authenticateAttempts",0),$rootScope.$broadcast("loginSuccesful",user,organizations,applications),$rootScope.$emit("loginSuccesful",user,organizations,applications),$rootScope.$broadcast("checkAuthentication-success"),$scope.applyScope(function(){$scope.deferredLogin.resolve(),$location.path("/o
rg-overview")})});var authenticateAttempts=parseInt(sessionStorage.getItem("authenticateAttempts")||0);$scope.$on("reAuthenticate-error",function(){if($scope.use_sso){if(authenticateAttempts++>5)return void $rootScope.$broadcast("alert","error","There is an issue with authentication. Please contact support.");console.error("Failed to login via sso "+authenticateAttempts),sessionStorage.setItem("authenticateAttempts",authenticateAttempts),window.location=$rootScope.urls().LOGIN_URL+"?callback="+encodeURIComponent($location.absUrl().split("?")[0])}else notRegistration()&&(ug.logout(),$location.path("/login"),$scope.applyScope())}),$scope.$on("loginSuccessful",function(){$rootScope.activeUI=!0}),$scope.$on("app-changed",function(args,oldVal,newVal,preventReload){newVal===oldVal||preventReload||$route.reload()}),$scope.$on("org-changed",function(){ug.getApplications(),$route.reload()}),$scope.$on("app-settings-received",function(){}),$scope.$on("request-times-slow",function(){$rootScope
.$broadcast("alert","info","We are experiencing performance issues on our server. Please click Get Help for support if this continues.")});var lastPage="";$scope.$on("$routeChangeSuccess",function(){verifyUser(),$scope.showDemoBar="/performance"===$location.path().slice(0,"/performance".length),$scope.showDemoBar||($rootScope.demoData=!1),setTimeout(function(){lastPage=""},50);var path=window.location.pathname.replace("index-debug.html","");""===lastPage&&$analytics.pageTrack((path+$location.path()).replace("//","/")),lastPage=$location.path()}),$scope.$on("applications-received",function(event,applications){$scope.applications=applications,$scope.hasApplications=Object.keys(applications).length>0}),ug.getAppSettings(),$rootScope.startFirstTimeUser=function(){$rootScope.hideModal("introjs"),$rootScope.help.introjs_StartEvent(),$scope.startHelp()}}]),AppServices.Directives.directive("pageTitle",["$rootScope","ug",function($rootScope){return{restrict:"E",transclude:!0,templateUrl:"gl
obal/page-title.html",link:function(scope,lElement,attrs){scope.title=attrs.title,scope.icon=attrs.icon,scope.showHelp=function(){$("#need-help").modal("show")},scope.sendHelp=function(){data.jsonp_raw("apigeeuihelpemail","",{useremail:$rootScope.userEmail}).then(function(){$rootScope.$broadcast("alert","success","Email sent. Our team will be in touch with you shortly.")},function(){$rootScope.$broadcast("alert","error","Problem Sending Email. Try sending an email to mobile@apigee.com.")}),$("#need-help").modal("hide")}}}}]),AppServices.Services.factory("ug",function(configuration,$rootScope,utility,$q,$http,$resource,$log,$analytics,$location){function reportError(data,config){try{$analytics.eventTrack("error",{category:"App Services",label:data+":"+config.url+":"+(sessionStorage.apigee_uuid||"na")})}catch(e){console.log(e)}}var requestTimes=[],running=!1,currentRequests={},getAccessToken=function(){return sessionStorage.getItem("accessToken")};return{get:function(prop,isObject){re
turn isObject?this.client().getObject(prop):this.client().get(prop)},set:function(prop,value){this.client().set(prop,value)},getUrls:function(){var host=$location.host(),qs=$location.search(),BASE_URL="",DATA_URL="",use_sso=!1;switch(!0){case"appservices.apigee.com"===host&&location.pathname.indexOf("/dit")>=0:BASE_URL="https://accounts.jupiter.apigee.net",DATA_URL="http://apigee-internal-prod.jupiter.apigee.net",use_sso=!0;break;case"appservices.apigee.com"===host&&location.pathname.indexOf("/mars")>=0:BASE_URL="https://accounts.mars.apigee.net",DATA_URL="http://apigee-internal-prod.mars.apigee.net",use_sso=!0;break;case"appservices.apigee.com"===host:DATA_URL=Usergrid.overrideUrl;break;case"apigee.com"===host:BASE_URL="https://accounts.apigee.com",DATA_URL="https://api.usergrid.com",use_sso=!0;break;case"usergrid.dev"===host:DATA_URL="https://api.usergrid.com";break;default:DATA_URL=Usergrid.overrideUrl}return DATA_URL=qs.api_url||DATA_URL,DATA_URL=DATA_URL.lastIndexOf("/")===DATA
_URL.length-1?DATA_URL.substring(0,DATA_URL.length-1):DATA_URL,{DATA_URL:DATA_URL,LOGIN_URL:BASE_URL+"/accounts/sign_in",PROFILE_URL:BASE_URL+"/accounts/my_account",LOGOUT_URL:BASE_URL+"/accounts/sign_out",apiUrl:DATA_URL,use_sso:use_sso}},orgLogin:function(username,password){var self=this;this.client().set("email",username),this.client().set("token",null),this.client().orgLogin(username,password,function(err,data,user,organizations,applications){err?$rootScope.$broadcast("loginFailed",err,data):self.initializeCurrentUser(function(){$rootScope.$broadcast("loginSuccesful",user,organizations,applications)})})},checkAuthentication:function(force){var ug=this,client=ug.client(),initialize=function(){ug.initializeCurrentUser(function(){$rootScope.userEmail=client.get("email"),$rootScope.organizations=client.getObject("organizations"),$rootScope.applications=client.getObject("applications"),$rootScope.currentOrg=client.get("orgName"),$rootScope.currentApp=client.get("appName");var key,siz
e=0;for(key in $rootScope.applications)$rootScope.applications.hasOwnProperty(key)&&size++;$rootScope.$broadcast("checkAuthentication-success",client.getObject("organizations"),client.getObject("applications"),client.get("orgName"),client.get("appName"),client.get("email"))})},isAuthenticated=function(){var authenticated=null!==client.get("token")&&null!==client.get("organizations");return authenticated&&initialize(),authenticated};if(!isAuthenticated()||force){if(!client.get("token"))return $rootScope.$broadcast("checkAuthentication-error","no token",{},client.get("email"));this.client().reAuthenticateLite(function(err){var missingData=err||!client.get("orgName")||!client.get("appName")||!client.getObject("organizations")||!client.getObject("applications"),email=client.get("email");err||missingData?$rootScope.$broadcast("checkAuthentication-error",err,missingData,email):initialize()})}},reAuthenticate:function(email,eventOveride){var ug=this;this.client().reAuthenticate(email,funct
ion(err,data,user,organizations,applications){err||($rootScope.currentUser=user),err||($rootScope.userEmail=user.get("email"),$rootScope.organizations=organizations,$rootScope.applications=applications,$rootScope.currentOrg=ug.get("orgName"),$rootScope.currentApp=ug.get("appName"),$rootScope.currentUser=user._data,$rootScope.currentUser.profileImg=utility.get_gravatar($rootScope.currentUser.email)),$rootScope.$broadcast((eventOveride||"reAuthenticate")+"-"+(err?"error":"success"),err,data,user,organizations,applications)})},logoutCallback:function(){$rootScope.$broadcast("userNotAuthenticated")},logout:function(){$rootScope.activeUI=!1,$rootScope.userEmail="user@apigee.com",$rootScope.organizations={noOrg:{name:"No Orgs Found"}},$rootScope.applications={noApp:{name:"No Apps Found"}},$rootScope.currentOrg="No Org Found",$rootScope.currentApp="No App Found",sessionStorage.setItem("accessToken",null),sessionStorage.setItem("userUUID",null),sessionStorage.setItem("userEmail",null),this.
client().logout(),this._client=null},client:function(){var options={buildCurl:!0,logging:!0};return Usergrid.options&&Usergrid.options.client&&(options.keys=Usergrid.options.client),this._client=this._client||new Usergrid.Client(options,$rootScope.urls().DATA_URL),this._client},setClientProperty:function(key,value){this.client().set(key,value)},getTopCollections:function(){var options={method:"GET",endpoint:""};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error getting collections");else{var collections=data.entities[0].metadata.collections;$rootScope.$broadcast("top-collections-received",collections)}})},createCollection:function(collectionName){var collections={};collections[collectionName]={};var metadata={metadata:{collections:collections}},options={method:"PUT",body:metadata,endpoint:""};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error creating collection"):$rootScope.$broadcast("colle
ction-created",collections)})},getApplications:function(){this.client().getApplications(function(err,applications){err?applications&&console.error(applications):$rootScope.$broadcast("applications-received",applications)})},getAdministrators:function(){this.client().getAdministrators(function(err,administrators){err&&$rootScope.$broadcast("alert","error","error getting administrators"),$rootScope.$broadcast("administrators-received",administrators)})},createApplication:function(appName){this.client().createApplication(appName,function(err,applications){err?$rootScope.$broadcast("alert","error","error creating application"):($rootScope.$broadcast("applications-created",applications,appName),$rootScope.$broadcast("applications-received",applications))})},createAdministrator:function(adminName){this.client().createAdministrator(adminName,function(err,administrators){err&&$rootScope.$broadcast("alert","error","error creating administrator"),$rootScope.$broadcast("administrators-received
",administrators)})},getFeed:function(){var options={method:"GET",endpoint:"management/organizations/"+this.client().get("orgName")+"/feed",mQuery:!0};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error getting feed");else{var feedData=data.entities,feed=[],i=0;for(i=0;i<feedData.length;i++){var date=new Date(feedData[i].created).toUTCString(),title=feedData[i].title,n=title.indexOf(">");title=title.substring(n+1,title.length),n=title.indexOf(">"),title=title.substring(n+1,title.length),feedData[i].actor&&(title=feedData[i].actor.displayName+" "+title),feed.push({date:date,title:title})}0===i&&feed.push({date:"",title:"No Activities found."}),$rootScope.$broadcast("feed-received",feed)}})},createGroup:function(path,title){var options={path:path,title:title},self=this;this.groupsCollection.addEntity(options,function(err){err?$rootScope.$broadcast("groups-create-error",err):($rootScope.$broadcast("groups-create-success",self.groupsColle
ction),$rootScope.$broadcast("groups-received",self.groupsCollection))})},createRole:function(name,title){var options={name:name,title:title},self=this;this.rolesCollection.addEntity(options,function(err){err?$rootScope.$broadcast("alert","error","error creating role"):$rootScope.$broadcast("roles-received",self.rolesCollection)})},createUser:function(username,name,email,password){var options={username:username,name:name,email:email,password:password},self=this;this.usersCollection.addEntity(options,function(err,data){err?"string"==typeof data?$rootScope.$broadcast("alert","error","error: "+data):$rootScope.$broadcast("alert","error","error creating user. the email address might already exist."):($rootScope.$broadcast("users-create-success",self.usersCollection),$rootScope.$broadcast("users-received",self.usersCollection))})},getCollection:function(type,path,orderBy,query,limit){var options={type:path,qs:{}};query&&(options.qs.ql=query),options.qs.ql=options.qs.ql?options.qs.ql+" or
der by "+(orderBy||"created desc"):" order by "+(orderBy||"created desc"),limit&&(options.qs.limit=limit),this.client().createCollection(options,function(err,collection,data){err?$rootScope.$broadcast("alert","error","error getting "+collection._type+": "+data.error_description):$rootScope.$broadcast(type+"-received",collection),$rootScope.$$phase||$rootScope.$apply()})},runDataQuery:function(queryPath,searchString,queryLimit){this.getCollection("query",queryPath,null,searchString,queryLimit)},runDataPOSTQuery:function(queryPath,body){var self=this,options={method:"POST",endpoint:queryPath,body:body};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error: "+data.error_description),$rootScope.$broadcast("error-running-query",data);else{var queryPath=data.path;self.getCollection("query",queryPath,null,"order by modified DESC",null)}})},runDataPutQuery:function(queryPath,searchString,queryLimit,body){var self=this,options={method:"PUT",endp
oint:queryPath,body:body};searchString&&(options.qs.ql=searchString),queryLimit&&(options.qs.queryLimit=queryLimit),this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error: "+data.error_description);else{var queryPath=data.path;self.getCollection("query",queryPath,null,"order by modified DESC",null)}})},runDataDeleteQuery:function(queryPath,searchString,queryLimit){var self=this,options={method:"DELETE",endpoint:queryPath};searchString&&(options.qs.ql=searchString),queryLimit&&(options.qs.queryLimit=queryLimit),this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error: "+data.error_description);else{var queryPath=data.path;self.getCollection("query",queryPath,null,"order by modified DESC",null)}})},getUsers:function(){this.getCollection("users","users","username");var self=this;$rootScope.$on("users-received",function(evt,users){self.usersCollection=users})},getGroups:function(){this.getCollectio
n("groups","groups","title");var self=this;$rootScope.$on("groups-received",function(event,roles){self.groupsCollection=roles})},getRoles:function(){this.getCollection("roles","roles","name");var self=this;$rootScope.$on("roles-received",function(event,roles){self.rolesCollection=roles})},getNotifiers:function(){var query="",limit="100",self=this;this.getCollection("notifiers","notifiers","created",query,limit),$rootScope.$on("notifiers-received",function(event,notifiers){self.notifiersCollection=notifiers})},getNotificationHistory:function(type){var query=null;type&&(query="select * where state = '"+type+"'"),this.getCollection("notifications","notifications","created desc",query);var self=this;$rootScope.$on("notifications-received",function(event,notifications){self.notificationCollection=notifications})},getNotificationReceipts:function(uuid){this.getCollection("receipts","notifications/"+uuid+"/receipts");var self=this;$rootScope.$on("receipts-received",function(event,receipts)
{self.receiptsCollection=receipts})},getIndexes:function(path){var options={method:"GET",endpoint:path.split("/").concat("indexes").filter(function(bit){return bit&&bit.length}).join("/")};this.client().request(options,function(err,data){err?$rootScope.$broadcast("alert","error","Problem getting indexes: "+data.error):$rootScope.$broadcast("indexes-received",data.data)})},sendNotification:function(path,body){var options={method:"POST",endpoint:path,body:body};this.client().request(options,function(err,data){err?$rootScope.$broadcast("alert","error","Problem creating notification: "+data.error):$rootScope.$broadcast("send-notification-complete")})},getRolesUsers:function(username){var options={type:"roles/users/"+username,qs:{ql:"order by username"}};this.client().createCollection(options,function(err,users){err?$rootScope.$broadcast("alert","error","error getting users"):$rootScope.$broadcast("users-received",users)})},getTypeAheadData:function(type,searchString,searchBy,orderBy){va
r search="",qs={limit:100};searchString&&(search="select * where "+searchBy+" = '"+searchString+"'"),orderBy&&(search=search+" order by "+orderBy),search&&(qs.ql=search);var options={method:"GET",endpoint:type,qs:qs};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error getting "+type);else{var entities=data.entities;$rootScope.$broadcast(type+"-typeahead-received",entities)}})},getUsersTypeAhead:function(searchString){this.getTypeAheadData("users",searchString,"username","username")},getGroupsTypeAhead:function(searchString){this.getTypeAheadData("groups",searchString,"path","path")},getRolesTypeAhead:function(searchString){this.getTypeAheadData("roles",searchString,"name","name")},getGroupsForUser:function(user){var options={type:"users/"+user+"/groups"};this.client().createCollection(options,function(err,groups){err?$rootScope.$broadcast("alert","error","error getting groups"):$rootScope.$broadcast("user-groups-received",groups)})},a
ddUserToGroup:function(user,group){var options={type:"users/"+user+"/groups/"+group};this.client().createEntity(options,function(err){err?$rootScope.$broadcast("alert","error","error adding user to group"):$rootScope.$broadcast("user-added-to-group-received")})},addUserToRole:function(user,role){var options={method:"POST",endpoint:"roles/"+role+"/users/"+user};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error adding user to role"):$rootScope.$broadcast("role-update-received")})},addGroupToRole:function(group,role){var options={method:"POST",endpoint:"roles/"+role+"/groups/"+group};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error adding group to role"):$rootScope.$broadcast("role-update-received")})},followUser:function(user){var username=$rootScope.selectedUser.get("uuid"),options={method:"POST",endpoint:"users/"+username+"/following/users/"+user};this.client().request(options,function(err){err?$r
ootScope.$broadcast("alert","error","error following user"):$rootScope.$broadcast("follow-user-received")})},newPermission:function(permission,type,entity){var options={method:"POST",endpoint:type+"/"+entity+"/permissions",body:{permission:permission}};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error adding permission"):$rootScope.$broadcast("permission-update-received")})},newUserPermission:function(permission,username){this.newPermission(permission,"users",username)},newGroupPermission:function(permission,path){this.newPermission(permission,"groups",path)},newRolePermission:function(permission,name){this.newPermission(permission,"roles",name)},deletePermission:function(permission,type,entity){var options={method:"DELETE",endpoint:type+"/"+entity+"/permissions",qs:{permission:permission}};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error deleting permission"):$rootScope.$broadcast("permission-upd
ate-received")})},deleteUserPermission:function(permission,user){this.deletePermission(permission,"users",user)},deleteGroupPermission:function(permission,group){this.deletePermission(permission,"groups",group)},deleteRolePermission:function(permission,rolename){this.deletePermission(permission,"roles",rolename)},removeUserFromRole:function(user,role){var options={method:"DELETE",endpoint:"roles/"+role+"/users/"+user};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error removing user from role"):$rootScope.$broadcast("role-update-received")})},removeUserFromGroup:function(group,role){var options={method:"DELETE",endpoint:"roles/"+role+"/groups/"+group};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error removing role from the group"):$rootScope.$broadcast("role-update-received")})},createAndroidNotifier:function(name,APIkey){var options={method:"POST",endpoint:"notifiers",body:{apiKey:APIkey,name:name,p
rovider:"google"}};this.client().request(options,function(err,data){err?(console.error(data),$rootScope.$broadcast("alert","error","error creating notifier ")):($rootScope.$broadcast("alert","success","New notifier created successfully."),$rootScope.$broadcast("notifier-update"))})},createAppleNotifier:function(file,name,environment,certificatePassword){var provider="apple",formData=new FormData;formData.append("p12Certificate",file),formData.append("name",name),formData.append("provider",provider),formData.append("environment",environment),formData.append("certificatePassword",certificatePassword||"");var options={method:"POST",endpoint:"notifiers",formData:formData};this.client().request(options,function(err,data){err?(console.error(data),$rootScope.$broadcast("alert","error",data.error_description||"error creating notifier")):($rootScope.$broadcast("alert","success","New notifier created successfully."),$rootScope.$broadcast("notifier-update"))})},deleteNotifier:function(name){va
r options={method:"DELETE",endpoint:"notifiers/"+name};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error deleting notifier"):$rootScope.$broadcast("notifier-update")})},initializeCurrentUser:function(callback){if(callback=callback||function(){},$rootScope.currentUser&&!$rootScope.currentUser.reset)return callback($rootScope.currentUser),$rootScope.$broadcast("current-user-initialized","");var options={method:"GET",endpoint:"management/users/"+this.client().get("email"),mQuery:!0};this.client().request(options,function(err,data){err?$rootScope.$broadcast("alert","error","Error getting user info"):($rootScope.currentUser=data.data,$rootScope.currentUser.profileImg=utility.get_gravatar($rootScope.currentUser.email),$rootScope.userEmail=$rootScope.currentUser.email,callback($rootScope.currentUser),$rootScope.$broadcast("current-user-initialized",$rootScope.currentUser))})},updateUser:function(user){var body=$rootScope.currentUser;body.username=
user.username,body.name=user.name,body.email=user.email;var options={method:"PUT",endpoint:"management/users/"+user.uuid+"/",mQuery:!0,body:body},self=this;this.client().request(options,function(err,data){return self.client().set("email",user.email),self.client().set("username",user.username),err?$rootScope.$broadcast("user-update-error",data):($rootScope.currentUser.reset=!0,void self.initializeCurrentUser(function(){$rootScope.$broadcast("user-update-success",$rootScope.currentUser)}))})},resetUserPassword:function(user){var pwdata={};pwdata.oldpassword=user.oldPassword,pwdata.newpassword=user.newPassword,pwdata.username=user.username;var options={method:"PUT",endpoint:"users/"+pwdata.uuid+"/",body:pwdata};this.client().request(options,function(err){return err?$rootScope.$broadcast("alert","error","Error resetting password"):($rootScope.currentUser.oldPassword="",$rootScope.currentUser.newPassword="",void $rootScope.$broadcast("user-reset-password-success",$rootScope.currentUser))
})},getOrgCredentials:function(){var options={method:"GET",endpoint:"management/organizations/"+this.client().get("orgName")+"/credentials",mQuery:!0};this.client().request(options,function(err,data){err&&data.credentials?$rootScope.$broadcast("alert","error","Error getting credentials"):$rootScope.$broadcast("org-creds-updated",data.credentials)})},regenerateOrgCredentials:function(){var options={method:"POST",endpoint:"management/organizations/"+this.client().get("orgName")+"/credentials",mQuery:!0};this.client().request(options,function(err,data){err&&data.credentials?$rootScope.$broadcast("alert","error","Error regenerating credentials"):($rootScope.$broadcast("alert","success","Regeneration of credentials complete."),$rootScope.$broadcast("org-creds-updated",data.credentials))})},getAppCredentials:function(){var options={method:"GET",endpoint:"credentials"};this.client().request(options,function(err,data){err&&data.credentials?$rootScope.$broadcast("alert","error","Error gettin
g credentials"):$rootScope.$broadcast("app-creds-updated",data.credentials)})},regenerateAppCredentials:function(){var options={method:"POST",endpoint:"credentials"};
this.client().request(options,function(err,data){err&&data.credentials?$rootScope.$broadcast("alert","error","Error regenerating credentials"):($rootScope.$broadcast("alert","success","Regeneration of credentials complete."),$rootScope.$broadcast("app-creds-updated",data.credentials))})},signUpUser:function(orgName,userName,name,email,password){var formData={organization:orgName,username:userName,name:name,email:email,password:password},options={method:"POST",endpoint:"management/organizations",body:formData,mQuery:!0},client=this.client();client.request(options,function(err,data){err?$rootScope.$broadcast("register-error",data):$rootScope.$broadcast("register-success",data)})},resendActivationLink:function(id){var options={method:"GET",endpoint:"management/users/"+id+"/reactivate",mQuery:!0};this.client().request(options,function(err,data){err?$rootScope.$broadcast("resend-activate-error",data):$rootScope.$broadcast("resend-activate-success",data)})},getAppSettings:function(){$root
Scope.$broadcast("app-settings-received",{})},getActivities:function(){this.client().request({method:"GET",endpoint:"activities",qs:{limit:200}},function(err,data){if(err)return $rootScope.$broadcast("app-activities-error",data);var entities=data.entities;entities.forEach(function(entity){entity.actor.picture?(entity.actor.picture=entity.actor.picture.replace(/^http:\/\/www.gravatar/i,"https://secure.gravatar"),entity.actor.picture=~entity.actor.picture.indexOf("http")?entity.actor.picture:"https://apigee.com/usergrid/img/user_profile.png"):entity.actor.picture=window.location.protocol+"//"+window.location.host+window.location.pathname+"img/user_profile.png"}),$rootScope.$broadcast("app-activities-received",data.entities)})},getEntityActivities:function(entity,isFeed){var route=isFeed?"feed":"activities",endpoint=entity.get("type")+"/"+entity.get("uuid")+"/"+route,options={method:"GET",endpoint:endpoint,qs:{limit:200}};this.client().request(options,function(err,data){err&&$rootScope
.$broadcast(entity.get("type")+"-"+route+"-error",data),data.entities.forEach(function(entityInstance){entityInstance.createdDate=new Date(entityInstance.created).toUTCString()}),$rootScope.$broadcast(entity.get("type")+"-"+route+"-received",data.entities)})},addUserActivity:function(user,content){var options={actor:{displayName:user.get("username"),uuid:user.get("uuid"),username:user.get("username")},verb:"post",content:content};this.client().createUserActivity(user.get("username"),options,function(err,activity){err?$rootScope.$broadcast("user-activity-add-error",err):$rootScope.$broadcast("user-activity-add-success",activity)})},runShellQuery:function(method,path,payload){var path=path.replace(/^\//,""),options={method:method,endpoint:path};payload&&(options.body=payload),this.client().request(options,function(err,data){err?$rootScope.$broadcast("shell-error",data):$rootScope.$broadcast("shell-success",data)})},addOrganization:function(user,orgName){var options={method:"POST",endp
oint:"management/users/"+user.uuid+"/organizations",body:{organization:orgName},mQuery:!0},client=this.client();client.request(options,function(err,data){err?$rootScope.$broadcast("user-add-org-error",data):$rootScope.$broadcast("user-add-org-success",$rootScope.organizations)})},leaveOrganization:function(user,org){var options={method:"DELETE",endpoint:"management/users/"+user.uuid+"/organizations/"+org.uuid,mQuery:!0};this.client().request(options,function(err,data){err?$rootScope.$broadcast("user-leave-org-error",data):(delete $rootScope.organizations[org.name],$rootScope.$broadcast("user-leave-org-success",$rootScope.organizations))})},httpGet:function(id,url){var deferred;return deferred=$q.defer(),$http.get(url||configuration.ITEMS_URL).success(function(data){var result;id?angular.forEach(data,function(obj){obj.id===id&&(result=obj)}):result=data,deferred.resolve(result)}).error(function(data,status,headers,config){$log.error(data,status,headers,config),reportError(data,config
),deferred.reject(data)}),deferred.promise},jsonp:function(objectType,criteriaId,params,successCallback){params||(params={}),params.demoApp=$rootScope.demoData,params.access_token=getAccessToken(),params.callback="JSON_CALLBACK";var uri=$rootScope.urls().DATA_URL+"/"+$rootScope.currentOrg+"/"+$rootScope.currentApp+"/apm/"+objectType+"/"+criteriaId;return this.jsonpRaw(objectType,criteriaId,params,uri,successCallback)},jsonpSimple:function(objectType,appId,params){var uri=$rootScope.urls().DATA_URL+"/"+$rootScope.currentOrg+"/"+$rootScope.currentApp+"/apm/"+objectType+"/"+appId;return this.jsonpRaw(objectType,appId,params,uri)},calculateAverageRequestTimes:function(){if(!running){var self=this;running=!0,setTimeout(function(){running=!1;var length=requestTimes.length<10?requestTimes.length:10,sum=requestTimes.slice(0,length).reduce(function(a,b){return a+b}),avg=sum/length;self.averageRequestTimes=avg/1e3,self.averageRequestTimes>5&&$rootScope.$broadcast("request-times-slow",self.ave
rageRequestTimes)},3e3)}},jsonpRaw:function(objectType,appId,params,uri,successCallback){"function"!=typeof successCallback&&(successCallback=null),uri=uri||$rootScope.urls().DATA_URL+"/"+$rootScope.currentOrg+"/"+$rootScope.currentApp+"/"+objectType,params||(params={});var start=(new Date).getTime(),self=this;params.access_token=getAccessToken(),params.callback="JSON_CALLBACK";var deferred=$q.defer(),diff=function(){currentRequests[uri]--,requestTimes.splice(0,0,(new Date).getTime()-start),self.calculateAverageRequestTimes()};successCallback&&$rootScope.$broadcast("ajax_loading",objectType);var reqCount=currentRequests[uri]||0;return self.averageRequestTimes>5&&reqCount>1?(setTimeout(function(){deferred.reject(new Error("query in progress"))},50),deferred):(currentRequests[uri]=(currentRequests[uri]||0)+1,$http.jsonp(uri,{params:params}).success(function(data,status,headers,config){diff(),successCallback&&(successCallback(data,status,headers,config),$rootScope.$broadcast("ajax_fini
shed",objectType)),deferred.resolve(data)}).error(function(data,status,headers,config){diff(),$log.error("ERROR: Could not get jsonp data. "+uri),reportError(data,config),deferred.reject(data)}),deferred.promise)},resource:function(params,isArray){return $resource($rootScope.urls().DATA_URL+"/:orgname/:appname/:username/:endpoint",{},{get:{method:"JSONP",isArray:isArray,params:params},login:{method:"GET",url:$rootScope.urls().DATA_URL+"/management/token",isArray:!1,params:params},save:{url:$rootScope.urls().DATA_URL+"/"+params.orgname+"/"+params.appname,method:"PUT",isArray:!1,params:params}})},httpPost:function(url,callback,payload,headers){var accessToken=getAccessToken();payload?payload.access_token=accessToken:payload={access_token:accessToken},headers||(headers={Bearer:accessToken}),$http({method:"POST",url:url,data:payload,headers:headers}).success(function(data){callback(data)}).error(function(data,status,headers,config){reportError(data,config),callback(data)})}}}),AppServic
es.Directives.directive("ngFocus",["$parse",function($parse){return function(scope,element,attr){var fn=$parse(attr.ngFocus);element.bind("focus",function(event){scope.$apply(function(){fn(scope,{$event:event})})})}}]),AppServices.Directives.directive("ngBlur",["$parse",function($parse){return function(scope,element,attr){var fn=$parse(attr.ngBlur);element.bind("blur",function(event){scope.$apply(function(){fn(scope,{$event:event})})})}}]),AppServices.Services.factory("utility",function(){return{keys:function(o){var a=[];for(var propertyName in o)a.push(propertyName);return a},get_gravatar:function(email,size){try{var size=size||50;return email.length?"https://secure.gravatar.com/avatar/"+MD5(email)+"?s="+size:"https://apigee.com/usergrid/img/user_profile.png"}catch(e){return"https://apigee.com/usergrid/img/user_profile.png"}},get_qs_params:function(){var queryParams={};if(window.location.search)for(var params=window.location.search.slice(1).split("&"),i=0;i<params.length;i++){var t
mp=params[i].split("=");queryParams[tmp[0]]=unescape(tmp[1])}return queryParams},safeApply:function(fn){var phase=this.$root.$$phase;"$apply"==phase||"$digest"==phase?fn&&"function"==typeof fn&&fn():this.$apply(fn)}}}),AppServices.Directives.directive("ugValidate",["$rootScope",function(){return{scope:!0,restrict:"A",require:"ng-model",replace:!0,link:function(scope,element,attrs,ctrl){var validate=function(){var id=element.attr("id"),validator=id+"-validator",title=element.attr("title");if(title=title&&title.length?title:"Please enter data",$("#"+validator).remove(),ctrl.$valid)element.removeClass("has-error"),$("#"+validator).remove();else{var validatorElem='<div id="'+validator+'"><span class="validator-error-message">'+title+"</span></div>";$("#"+id).after(validatorElem),element.addClass("has-error")}},firing=!1;element.bind("blur",function(){validate(scope,element,attrs,ctrl)}).bind("input",function(){firing||(firing=!0,setTimeout(function(){validate(scope,element,attrs,ctrl),
firing=!1},500))})}}}]),AppServices.Controllers.controller("GroupsActivitiesCtrl",["ug","$scope","$rootScope","$location",function(ug,$scope,$rootScope,$location){return $scope.activitiesSelected="active",$rootScope.selectedGroup?($rootScope.selectedGroup.activities=[],void $rootScope.selectedGroup.getActivities(function(err){err||$rootScope.$$phase||$rootScope.$apply()})):void $location.path("/groups")}]),AppServices.Controllers.controller("GroupsCtrl",["ug","$scope","$rootScope","$location","$route",function(ug,$scope,$rootScope,$location,$route){$scope.groupsCollection={},$rootScope.selectedGroup={},$scope.previous_display="none",$scope.next_display="none",$scope.hasGroups=!1,$scope.newGroup={path:"",title:""},ug.getGroups(),$scope.currentGroupsPage={},$scope.selectGroupPage=function(route){$scope.currentGroupsPage.template=$route.routes[route].templateUrl,$scope.currentGroupsPage.route=route},$scope.newGroupDialog=function(modalId){$scope.newGroup.path&&$scope.newGroup.title?(ug
.createGroup($scope.removeFirstSlash($scope.newGroup.path),$scope.newGroup.title),$scope.hideModal(modalId),$scope.newGroup={path:"",title:""}):$rootScope.$broadcast("alert","error","Missing required information.")},$scope.deleteGroupsDialog=function(modalId){$scope.deleteEntities($scope.groupsCollection,"group-deleted","error deleting group"),$scope.hideModal(modalId),$scope.newGroup={path:"",title:""}},$scope.$on("group-deleted",function(){$rootScope.$broadcast("alert","success","Group deleted successfully.")}),$scope.$on("group-deleted-error",function(){ug.getGroups()}),$scope.$on("groups-create-success",function(){$rootScope.$broadcast("alert","success","Group created successfully.")}),$scope.$on("groups-create-error",function(){$rootScope.$broadcast("alert","error","Error creating group. Make sure you don't have spaces in the path.")}),$scope.$on("groups-received",function(event,groups){$scope.groupBoxesSelected=!1,$scope.groupsCollection=groups,$scope.newGroup.path="",$scope.n
ewGroup.title="",!(groups._list.length>0)||$rootScope.selectedGroup._data&&groups._list.some(function(group){return $rootScope.selectedGroup._data.uuid===group._data.uuid})||$scope.selectGroup(groups._list[0]._data.uuid),$scope.hasGroups=groups._list.length>0,$scope.received=!0,$scope.checkNextPrev(),$scope.applyScope()}),$scope.resetNextPrev=function(){$scope.previous_display="none",$scope.next_display="none"},$scope.checkNextPrev=function(){$scope.resetNextPrev(),$scope.groupsCollection.hasPreviousPage()&&($scope.previous_display="block"),$scope.groupsCollection.hasNextPage()&&($scope.next_display="block")},$scope.selectGroup=function(uuid){$rootScope.selectedGroup=$scope.groupsCollection.getEntityByUUID(uuid),$scope.currentGroupsPage.template="groups/groups-details.html",$scope.currentGroupsPage.route="/groups/details",$rootScope.$broadcast("group-selection-changed",$rootScope.selectedGroup)},$scope.getPrevious=function(){$scope.groupsCollection.getPreviousPage(function(err){err&
&$rootScope.$broadcast("alert","error","error getting previous page of groups"),$scope.checkNextPrev(),$scope.applyScope()})},$scope.getNext=function(){$scope.groupsCollection.getNextPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting next page of groups"),$scope.checkNextPrev(),$scope.applyScope()})},$scope.$on("group-deleted",function(){$route.reload(),$scope.master=""})}]),AppServices.Controllers.controller("GroupsDetailsCtrl",["ug","$scope","$rootScope","$location",function(ug,$scope,$rootScope,$location){var selectedGroup=$rootScope.selectedGroup.clone();return $scope.detailsSelected="active",$scope.json=selectedGroup._json||selectedGroup._data.stringifyJSON(),$scope.group=selectedGroup._data,$scope.group.path=0!=$scope.group.path.indexOf("/")?"/"+$scope.group.path:$scope.group.path,$scope.group.title=$scope.group.title,$rootScope.selectedGroup?($scope.$on("group-selection-changed",function(evt,selectedGroup){$scope.group.path=0!=selectedGroup._data.pat
h.indexOf("/")?"/"+selectedGroup._data.path:selectedGroup._data.path,$scope.group.title=selectedGroup._data.title,$scope.detailsSelected="active",$scope.json=selectedGroup._json||selectedGroup._data.stringifyJSON()}),void($rootScope.saveSelectedGroup=function(){$rootScope.selectedGroup._data.title=$scope.group.title,$rootScope.selectedGroup._data.path=$scope.removeFirstSlash($scope.group.path),$rootScope.selectedGroup.save(function(err){err?$rootScope.$broadcast("alert","error","error saving group"):$rootScope.$broadcast("alert","success","group saved")})})):void $location.path("/groups")}]),AppServices.Controllers.controller("GroupsMembersCtrl",["ug","$scope","$rootScope","$location",function(ug,$scope,$rootScope,$location){return $scope.membersSelected="active",$scope.previous_display="none",$scope.next_display="none",$scope.user="",$scope.master="",$scope.hasMembers=!1,ug.getUsersTypeAhead(),$scope.usersTypeaheadValues=[],$scope.$on("users-typeahead-received",function(event,users
){$scope.usersTypeaheadValues=users,$scope.applyScope()}),$scope.addGroupToUserDialog=function(modalId){if($scope.user){var path=$rootScope.selectedGroup.get("path");ug.addUserToGroup($scope.user.uuid,path),$scope.user="",$scope.hideModal(modalId)}else $rootScope.$broadcast("alert","error","Please select a user.")},$scope.removeUsersFromGroupDialog=function(modalId){$scope.deleteEntities($scope.groupsCollection.users,"group-update-received","Error removing user from group"),$scope.hideModal(modalId)},$scope.get=function(){if($rootScope.selectedGroup.get){var options={type:"groups/"+$rootScope.selectedGroup.get("path")+"/users"};$scope.groupsCollection.addCollection("users",options,function(err){$scope.groupMembersSelected=!1,err?$rootScope.$broadcast("alert","error","error getting users for group"):($scope.hasMembers=$scope.groupsCollection.users._list.length>0,$scope.checkNextPrev(),$scope.applyScope())})}},$scope.resetNextPrev=function(){$scope.previous_display="none",$scope.next_
display="none"},$scope.checkNextPrev=function(){$scope.resetNextPrev(),$scope.groupsCollection.users.hasPreviousPage()&&($scope.previous_display="block"),$scope.groupsCollection.users.hasNextPage()&&($scope.next_display="block")},$rootScope.selectedGroup?($scope.get(),$scope.getPrevious=function(){$scope.groupsCollection.users.getPreviousPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting previous page of users"),$scope.checkNextPrev(),$rootScope.$$phase||$rootScope.$apply()})},$scope.getNext=function(){$scope.groupsCollection.users.getNextPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting next page of users"),$scope.checkNextPrev(),$rootScope.$$phase||$rootScope.$apply()})},$scope.$on("group-update-received",function(){$scope.get()}),void $scope.$on("user-added-to-group-received",function(){$scope.get()})):void $location.path("/groups")}]),AppServices.Controllers.controller("GroupsRolesCtrl",["ug","$scope","$rootScope","$location",
function(ug,$scope,$rootScope,$location){return $scope.rolesSelected="active",$scope.roles_previous_display="none",$scope.roles_next_display="none",$scope.name="",$scope.master="",$scope.hasRoles=!1,$scope.hasPermissions=!1,$scope.permissions={},$scope.addGroupToRoleDialog=function(modalId){if($scope.name){var path=$rootScope.selectedGroup.get("path");ug.addGroupToRole(path,$scope.name),$scope.hideModal(modalId),$scope.name=""}else $rootScope.$broadcast("alert","error","You must specify a role name.")},$scope.leaveRoleDialog=function(modalId){for(var path=$rootScope.selectedGroup.get("path"),roles=$scope.groupsCollection.roles._list,i=0;i<roles.length;i++)roles[i].checked&&ug.removeUserFromGroup(path,roles[i]._data.name);$scope.hideModal(modalId)},$scope.addGroupPermissionDialog=function(modalId){if($scope.permissions.path){var permission=$scope.createPermission(null,null,$scope.removeFirstSlash($scope.permissions.path),$scope.permissions),path=$rootScope.selectedGroup.get("path");u
g.newGroupPermission(permission,path),$scope.hideModal(modalId),$scope.permissions&&($scope.permissions={})}else $rootScope.$broadcast("alert","error","You must specify a name for the permission.")},$scope.deleteGroupPermissionDialog=function(modalId){for(var path=$rootScope.selectedGroup.get("path"),permissions=$rootScope.selectedGroup.permissions,i=0;i<permissions.length;i++)permissions[i].checked&&ug.deleteGroupPermission(permissions[i].perm,path);$scope.hideModal(modalId)},$scope.resetNextPrev=function(){$scope.roles_previous_display="none",$scope.roles_next_display="none",$scope.permissions_previous_display="none",$scope.permissions_next_display="none"},$scope.resetNextPrev(),$scope.checkNextPrevRoles=function(){$scope.resetNextPrev(),$scope.groupsCollection.roles.hasPreviousPage()&&($scope.roles_previous_display="block"),$scope.groupsCollection.roles.hasNextPage()&&($scope.roles_next_display="block")},$scope.checkNextPrevPermissions=function(){$scope.groupsCollection.permissio
ns.hasPreviousPage()&&($scope.permissions_previous_display="block"),$scope.groupsCollection.permissions.hasNextPage()&&($scope.permissions_next_display="block")},$scope.getRoles=function(){var path=$rootScope.selectedGroup.get("path"),options={type:"groups/"+path+"/roles"};$scope.groupsCollection.addCollection("roles",options,function(err){$scope.groupRoleSelected=!1,err?$rootScope.$broadcast("alert","error","error getting roles for group"):($scope.hasRoles=$scope.groupsCollection.roles._list.length>0,$scope.checkNextPrevRoles(),$scope.applyScope())})},$scope.getPermissions=function(){$rootScope.selectedGroup.permissions=[],$rootScope.selectedGroup.getPermissions(function(err){$scope.groupPermissionsSelected=!1,$scope.hasPermissions=$scope.selectedGroup.permissions.length,err||$scope.applyScope()})},$scope.getPreviousRoles=function(){$scope.groupsCollection.roles.getPreviousPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting previous page of roles"),$scope.c
heckNextPrevRoles(),$scope.applyScope()})},$scope.getNextRoles=function(){$scope.groupsCollection.roles.getNextPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting next page of roles"),$scope.checkNextPrevRoles(),$scope.applyScope()})},$scope.getPreviousPermissions=function(){$scope.groupsCollection.permissions.getPreviousPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting previous page of permissions"),$scope.checkNextPrevPermissions(),$scope.applyScope()})},$scope.getNextPermissions=function(){$scope.groupsCollection.permissions.getNextPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting next page of permissions"),$scope.checkNextPrevPermissions(),$scope.applyScope()})},$scope.$on("role-update-received",function(){$scope.getRoles()}),$scope.$on("permission-update-received",function(){$scope.getPermissions()}),$scope.$on("groups-received",function(evt,data){$scope.groupsCollection=data,$scope.getRoles(),$scope
.getPermissions()}),$rootScope.selectedGroup?(ug.getRolesTypeAhead(),void ug.getGroups()):void $location.path("/groups")}]),AppServices.Controllers.controller("ForgotPasswordCtrl",["ug","$scope","$rootScope","$location","$sce","utility",function(ug,$scope,$rootScope,$location,$sce){$rootScope.activeUI&&$location.path("/"),$scope.forgotPWiframeURL=$sce.trustAsResourceUrl($scope.apiUrl+"/management/users/resetpw")}]),AppServices.Controllers.controller("LoginCtrl",["ug","$scope","$rootScope","$routeParams","$location","utility",function(ug,$scope,$rootScope,$routeParams,$location){$scope.loading=!1,$scope.login={},$scope.activation={},$scope.requiresDeveloperKey=$scope.options.client.requiresDeveloperKey||!1,!$scope.requiresDeveloperKey&&$scope.options.client.apiKey&&ug.setClientProperty("developerkey",$scope.options.client.apiKey),$rootScope.gotoForgotPasswordPage=function(){$location.path("/forgot-password")},$rootScope.gotoSignUp=function(){$location.path("/register")},$scope.login=
function(){var username=$scope.login.username,password=$scope.login.password;$scope.loginMessage="",$scope.loading=!0,$scope.requiresDeveloperKey&&ug.setClientProperty("developerkey",$scope.login.developerkey),ug.orgLogin(username,password)},$scope.$on("loginFailed",function(){$scope.loading=!1,ug.setClientProperty("developerkey",null),$scope.loginMessage="Error: the username / password combination was not valid",$scope.applyScope()}),$scope.logout=function(){ug.logout(),ug.setClientProperty("developerkey",null),$scope.use_sso?window.location=$rootScope.urls().LOGOUT_URL+"?redirect=no&callback="+encodeURIComponent($location.absUrl().split("?")[0]):($location.path("/login"),$scope.applyScope())},$rootScope.$on("userNotAuthenticated",function(){"/forgot-password"!==$location.path()&&($location.path("/login"),$scope.logout()),$scope.applyScope()}),$scope.$on("loginSuccesful",function(){$scope.loading=!1,$scope.login={},$location.path("/login"===$rootScope.currentPath||"/login/loading"=
==$rootScope.currentPath||"undefined"==typeof $rootScope.currentPath?"/org-overview":$rootScope.currentPath),$scope.applyScope()}),$scope.resendActivationLink=function(modalId){var id=$scope.activation.id;ug.resendActivationLink(id),$scope.activation={},$scope.hideModal(modalId)},$scope.$on("resend-activate-success",function(){$scope.activationId="",$scope.$apply(),$rootScope.$broadcast("alert","success","Activation link sent successfully.")}),$scope.$on("resend-activate-error",function(){$rootScope.$broadcast("alert","error","Activation link failed to send.")})}]),AppServices.Controllers.controller("LogoutCtrl",["ug","$scope","$rootScope","$routeParams","$location","utility",function(ug,$scope,$rootScope,$routeParams,$location){ug.logout(),$scope.use_sso?window.location=$rootScope.urls().LOGOUT_URL+"?callback="+encodeURIComponent($location.absUrl().split("?")[0]):($location.path("/login"),$scope.applyScope())}]),AppServices.Controllers.controller("RegisterCtrl",["ug","$scope","$roo
tScope","$routeParams","$location","utility",function(ug,$scope,$rootScope,$routeParams,$location){$rootScope.activeUI&&$location.path("/");var init=function(){$scope.registeredUser={}};init(),$scope.cancel=function(){$location.path("/")},$scope.register=function(){var user=$scope.registeredUser.clone();user.password===user.confirmPassword?ug.signUpUser(user.orgName,user.userName,user.name,user.email,user.password):$rootScope.$broadcast("alert","error","Passwords do not match."+name)},$scope.$on("register-error",function(event,data){$scope.signUpSuccess=!1,$rootScope.$broadcast("alert","error","Error registering: "+(data&&data.error_description?data.error_description:name))}),$scope.$on("register-success",function(){$scope.registeredUser={},$scope.signUpSuccess=!0,init(),$scope.$apply()})}]),AppServices.Directives.directive("menu",["$location","$rootScope","$log",function($location,$rootScope,$log){return{link:function(scope,lElement,attrs){function setActiveElement(ele,locationPath
,$rootScope,isParentClick){ele.removeClass("active");var menuItem,parentMenuItem,newActiveElement=ele.parent().find('a[href*="#!'+locationPath+'"]');if(0===newActiveElement.length)parentMenuItem=ele;else{menuItem=newActiveElement.parent(),menuItem.hasClass("option")?parentMenuItem=menuItem[0]:1===menuItem.size()?(parentMenuItem=newActiveElement.parent().parent().parent(),parentMenuItem.addClass("active")):(parentMenuItem=menuItem[0],menuItem=menuItem[1]);try{var menuItemCompare=parentMenuItem[0]||parentMenuItem;ele[0]!==menuItemCompare&&isParentClick&&ele.find("ul")[0]&&(ele.find("ul")[0].style.height=0);var subMenuSizer=angular.element(parentMenuItem).find(".nav-list")[0];if(subMenuSizer){var heightChecker,clientHeight=subMenuSizer.getAttribute("data-height"),heightCounter=1;clientHeight||heightChecker?(menuItem.addClass("active"),subMenuSizer.style.height=clientHeight+"px")
<TRUNCATED>
[24/34] git commit: add sizzle
Posted by sn...@apache.org.
add sizzle
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/48fd11fc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/48fd11fc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/48fd11fc
Branch: refs/pull/86/merge
Commit: 48fd11fc2daef3e9392840779259ea2789c31fee
Parents: efe3429
Author: Shawn Feldman <sh...@gmail.com>
Authored: Fri Mar 28 17:15:17 2014 -0600
Committer: Shawn Feldman <sh...@gmail.com>
Committed: Fri Mar 28 17:15:17 2014 -0600
----------------------------------------------------------------------
portal/bower.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/48fd11fc/portal/bower.json
----------------------------------------------------------------------
diff --git a/portal/bower.json b/portal/bower.json
index ac827be..d7a6dce 100644
--- a/portal/bower.json
+++ b/portal/bower.json
@@ -23,7 +23,8 @@
"dependencies": {
"angularitics": "~0.8.7",
"apigee-sdk": "~2.0.8",
- "angular-intro.js": "*"
+ "angular-intro.js": "*",
+ "sizzle":"1.10.16"
},
"devDependencies": {},
"keywords": [
[05/34] minor css tweaks to embedded help and fix for if 25948route
is null
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d3017f28/portal/js/libs/usergrid-libs.min.js
----------------------------------------------------------------------
diff --git a/portal/js/libs/usergrid-libs.min.js b/portal/js/libs/usergrid-libs.min.js
index b8bb360..b69da61 100644
--- a/portal/js/libs/usergrid-libs.min.js
+++ b/portal/js/libs/usergrid-libs.min.js
@@ -1,4 +1,4 @@
-/*! usergrid@2.0.1 2014-03-27 */
+/*! usergrid@2.0.1 2014-03-28 */
!function(e,t){function M(e){var t=e.length,n=b.type(e);return b.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}function F(e){var t=_[e]={};return b.each(e.match(w)||[],function(e,n){t[n]=!0}),t}function P(e,n,r,i){if(b.acceptData(e)){var o,a,s=b.expando,u="string"==typeof n,l=e.nodeType,p=l?b.cache:e,f=l?e[s]:e[s]&&s;if(f&&p[f]&&(i||p[f].data)||!u||r!==t)return f||(l?e[s]=f=c.pop()||b.guid++:f=s),p[f]||(p[f]={},l||(p[f].toJSON=b.noop)),("object"==typeof n||"function"==typeof n)&&(i?p[f]=b.extend(p[f],n):p[f].data=b.extend(p[f].data,n)),o=p[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[b.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[b.camelCase(n)])):a=o,a}}function R(e,t,n){if(b.acceptData(e)){var r,i,o,a=e.nodeType,s=a?b.cache:e,u=a?e[b.expando]:b.expando;if(s[u]){if(t&&(o=n?s[u]:s[u].data)){b.isArray(t)?t=t.concat(b.map(t,b.camelCase)):t in o?t=[t]:(t=b.camelCase(t),t=t in o?[t]:t.split(" "));for(r=0,i=t.length;i>r;r++)dele
te o[t[r]];if(!(n?$:b.isEmptyObject)(o))return}(n||(delete s[u].data,$(s[u])))&&(a?b.cleanData([e],!0):b.support.deleteExpando||s!=s.window?delete s[u]:s[u]=null)}}}function W(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(B,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:O.test(r)?b.parseJSON(r):r}catch(o){}b.data(e,n,r)}else r=t}return r}function $(e){var t;for(t in e)if(("data"!==t||!b.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function it(){return!0}function ot(){return!1}function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function ft(e,t,n){if(t=t||0,b.isFunction(t))return b.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return b.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=b.grep(e,function(e){return 1===e.nodeType});if(ut.test(t))return b.filter(t,r,!n);t=b.filter(t,r)}return b.grep(e,function(e){return b.inArray(e,t)>=0==
=n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function Ht(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Mt(e,t){for(var n,r=0;null!=(n=e[r]);r++)b._data(n,"globalEval",!t||b._data(t[r],"globalEval"))}function _t(e,t){if(1===t.nodeType&&b.hasData(e)){var n,r,i,o=b._data(e),a=b._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)b.event.add(t,n,s[n][r])}a.data&&(a.data=b.extend({},a.data))}}function Ft(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!b.support.noCloneEvent&&t[b.expando]){i=b._data(t);for(r in i.events)b.removeEvent(t,r,i.handle);t.removeAttribute(b.expando)}"script"===n&&t.text!==e.text?(Ht(t
).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),b.support.html5Clone&&e.innerHTML&&!b.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Nt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function Ot(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||b.nodeName(o,n)?s.push(o):b.merge(s,Ot(o,n));return n===t||n&&b.nodeName(e,n)?b.merge([e],s):s}function Bt(e){Nt.test(e.type)&&(e.defaultChecked=e.checked)}function tn(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;i--;)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function
rn(e,t){for(var n,r,i,o=[],a=0,s=e.length;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(
e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(Pt||b("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=ln(e,t),Pt.detach()),Gt[e]=n),n}function ln(e,t){var n=b(t.createElement(e)).appendTo(t.body),r=b.css(n[0],"display");return n.remove(),r}function gn(e,t,n,r){var i;if(b.isArray(t))b.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==b.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(w)||[];if(
b.isFunction(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){function s(u){var l;return o[u]=!0,b.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||a||o[c]?a?!(l=c):t:(n.dataTypes.unshift(c),s(c),!1)}),l}var o={},a=e===jn;return s(n.dataTypes[0])||!o["*"]&&s("*")}function Mn(e,n){var r,i,o=b.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&b.extend(!0,e,r),e}function _n(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(s in c)s in r&&(n[c[s]]=r[s]);for(;"*"===l[0];)l.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in u)if(u[s]&&u[s].test(o)){l.unshift(s);break}if(l[0]in r)a=l[0];else{for(s in r){if(!l[0]||e.converters[s+" "+l[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function Fn(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataT
ype)),u[1])for(i in e.converters)a[i.toLowerCase()]=e.converters[i];for(;r=u[++s];)if("*"!==r){if("*"!==l&&l!==r){if(i=a[l+" "+r]||a["* "+r],!i)for(n in a)if(o=n.split(" "),o[1]===r&&(i=a[l+" "+o[0]]||a["* "+o[0]])){i===!0?i=a[n]:a[n]!==!0&&(r=o[0],u.splice(s--,0,r));break}if(i!==!0)if(i&&e["throws"])t=i(t);else try{t=i(t)}catch(c){return{state:"parsererror",error:i?c:"No conversion from "+l+" to "+r}}}l=r}return{state:"success",data:t}}function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function Kn(){return setTimeout(function(){Xn=t}),Xn=b.now()}function Zn(e,t){b.each(t,function(t,n){for(var r=(Qn[t]||[]).concat(Qn["*"]),i=0,o=r.length;o>i;i++)if(r[i].call(e,t,n))return})}function er(e,t,n){var r,i,o=0,a=Gn.length,s=b.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=Xn||Kn(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;u>a;a++)
l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:b.extend({},t),opts:b.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=b.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(tr(c,l.opts.specialEasing);a>o;o++)if(r=Gn[o].call(l,e,c,l.opts))return r;return Zn(l,c),b.isFunction(l.opts.start)&&l.opts.start.call(e,l),b.fx.timer(b.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function tr(e,t){var n,r,i,o,a;for(i in e)if(r=b.camelCase(i),o=t[r],n=e[i],b.isArray(n)&&(o=n[1],n=e[i]=n[0]),i!==r&&(e[r]=n,delete e[i]),a=b.css
Hooks[r],a&&"expand"in a){n=a.expand(n),delete e[r];for(i in n)i in e||(e[i]=n[i],t[i]=o)}else t[r]=o}function nr(e,t,n){var r,i,o,a,s,u,l,c,p,f=this,d=e.style,h={},g=[],m=e.nodeType&&nn(e);n.queue||(c=b._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,f.always(function(){f.always(function(){c.unqueued--,b.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===b.css(e,"display")&&"none"===b.css(e,"float")&&(b.support.inlineBlockNeedsLayout&&"inline"!==un(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",b.support.shrinkWrapBlocks||f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(i in t)if(a=t[i],Vn.exec(a)){if(delete t[i],u=u||"toggle"===a,a===(m?"hide":"show"))continue;g.push(i)}if(o=g.length){s=b._data(e,"fxshow")||b._data(e,"fxshow",
{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?b(e).show():f.done(function(){b(e).hide()}),f.done(function(){var t;b._removeData(e,"fxshow");for(t in h)b.style(e,t,h[t])});for(i=0;o>i;i++)r=g[i],l=f.createTween(r,m?s[r]:0),h[r]=s[r]||b.style(e,r),r in s||(s[r]=l.start,m&&(l.end=l.start,l.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function or(e){return b.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}var n,r,i=typeof t,o=e.document,a=e.location,s=e.jQuery,u=e.$,l={},c=[],p="1.9.1",f=c.concat,d=c.push,h=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,b=function(e,t){return new b.fn.init(e,t,r)},x=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^[\],
:{}\s]*$/,E=/(?:^|:|,)(?:\s*\[)+/g,S=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,j=/^-ms-/,D=/-([\da-z])/gi,L=function(e,t){return t.toUpperCase()},H=function(e){(o.addEventListener||"load"===e.type||"complete"===o.readyState)&&(q(),b.ready())},q=function(){o.addEventListener?(o.removeEventListener("DOMContentLoaded",H,!1),e.removeEventListener("load",H,!1)):(o.detachEvent("onreadystatechange",H),e.detachEvent("onload",H))};b.fn=b.prototype={jquery:p,constructor:b,init:function(e,n,r){var i,a;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof b?n[0]:n,b.merge(this,b.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,!0)),C.test(i[1])&&b.isPlainObject(n))for(i in n)b.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(a=o.getElementB
yId(i[2]),a&&a.parentNode){if(a.id!==i[2])return r.find(e);this.length=1,this[0]=a}return this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):b.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),b.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return h.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return b.each(this,e,t)},ready:function(e){return b.ready.promise().done(e),this},slice:function(){return this.pushStack(h.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(b.map(this,function(t,n){return e.cal
l(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:d,sort:[].sort,splice:[].splice},b.fn.init.prototype=b.fn,b.extend=b.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||b.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(o=arguments[u]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(b.isPlainObject(r)||(n=b.isArray(r)))?(n?(n=!1,a=e&&b.isArray(e)?e:[]):a=e&&b.isPlainObject(e)?e:{},s[i]=b.extend(c,a,r)):r!==t&&(s[i]=r));return s},b.extend({noConflict:function(t){return e.$===b&&(e.$=u),t&&e.jQuery===b&&(e.jQuery=s),b},isReady:!1,readyWait:1,holdReady:function(e){e?b.readyWait++:b.ready(!0)},ready:function(e){if(e===!0?!--b.readyWait:!b.isReady){if(!o.body)return setTimeout(b.ready);b.isReady=!0,e!==!0&&--b.readyWait>0||(n.resolveWith(o,[b]),b.fn.trigger&&b(o).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===b.type(e)},
isArray:Array.isArray||function(e){return"array"===b.type(e)},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(!e||"object"!==b.type(e)||e.nodeType||b.isWindow(e))return!1;try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||y.call(e,r)},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=b.buildFragment([e],t,i),i&&b(i).remove(),b.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.
replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&b.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(j,"ms-").replace(D,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a)for(;o>i&&(r=t.apply(e[i],n),r!==!1);i++);else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a)for(;o>i&&(r=t.call(e[i],i,e[i]),r!==!1);i++);else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:v&&!v.call(" ")?function(e){return
null==e?"":v.call(e)}:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?b.merge(n,"string"==typeof e?[e]:e):d.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(g)return g.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else for(;n[o]!==t;)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>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,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return f.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),b.isFunction(e)?(r=h.call(arguments,2),i=function(){return e.apply(n||this,r.concat(h.call(arguments)))},i.guid=e.guid=e.guid
||b.guid++,i):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===b.type(r)){o=!0;for(u in r)b.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,b.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(b(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),b.ready.promise=function(t){if(!n)if(n=b.Deferred(),"complete"===o.readyState)setTimeout(b.ready);else if(o.addEventListener)o.addEventListener("DOMContentLoaded",H,!1),e.addEventListener("load",H,!1);else{o.attachEvent("onreadystatechange",H),e.attachEvent("onload",H);var r=!1;try{r=null==e.frameElement&&o.documentElement}catch(i){}r&&r.doScroll&&function a(){if(!b.isReady){try{r.doScroll("left")}catch(e){return setTimeout(a,50)}q(),b.ready()}}()}return n.promise(t)},b.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.to
LowerCase()}),r=b(o);var _={};b.Callbacks=function(e){e="string"==typeof e?_[e]||F(e):b.extend({},e);var n,r,i,o,a,s,u=[],l=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=u.length,n=!0;u&&o>a;a++)if(u[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,u&&(l?l.length&&c(l.shift()):r?u=[]:p.disable())},p={add:function(){if(u){var t=u.length;!function i(t){b.each(t,function(t,n){var r=b.type(n);"function"===r?e.unique&&p.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})}(arguments),n?o=u.length:r&&(s=t,c(r))}return this},remove:function(){return u&&b.each(arguments,function(e,t){for(var r;(r=b.inArray(t,u,r))>-1;)u.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?b.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],this},disable:function(){return u=l=r=t,this},disabled:function(){return!u},lock:function(){return l=t,r||p.disable(),this},locked:function(){return!l},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u|
|i&&!l||(n?l.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},b.extend({Deferred:function(e){var t=[["resolve","done",b.Callbacks("once memory"),"resolved"],["reject","fail",b.Callbacks("once memory"),"rejected"],["notify","progress",b.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return b.Deferred(function(n){b.each(t,function(t,o){var a=o[0],s=b.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&b.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?b.extend(e,r):r}},i={};return r.pipe=r.then,b.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},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"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var s,u,l,t=0,n=h.call(arguments),r=n.length,i=1!==r||e&&b.isFunction(e.promise)?r:0,o=1===i?e:b.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?h.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}};if(r>1)for(s=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&b.isFunction(n[t].promise)?n[t].promise().done(a(t,l,n)).fail(o.reject).progress(a(t,u,s)):--i;return i||o.resolveWith(l,n),o.promise()}}),b.support=function(){var t,n,r,a,s,u,l,c,p,f,d=o.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{};s=o.createElement("select"),l=s.appendChild(o.createElement("option")),a=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t
={getSetAttribute:"t"!==d.className,leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:!!a.value,optSelected:l.selected,enctype:!!o.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==o.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===o.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!l.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}a=o.createElement("input"),a.setAttribute("value",""),t.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","t
"),a.setAttribute("name","t"),u=o.createDocumentFragment(),u.appendChild(a),t.appendChecked=a.checked,t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;return d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip,b(function(){var n,r,a,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",u=o.getElementsByTagName("body")[0];u&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",u.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",a=d.getElementsByTagName("td"),a[0].style.cssText="padding:0;margin:0;bo
rder:0;display:none",p=0===a[0].offsetHeight,a[0].style.display="",a[1].style.display="none",t.reliableHiddenOffsets=p&&0===a[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===d.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==u.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(o.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.fir
stChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(u.style.zoom=1)),u.removeChild(n),n=d=a=r=null)}),n=s=u=l=r=a=null,t}();var O=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,B=/([A-Z])/g;b.extend({cache:{},expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?b.cache[e[b.expando]]:e[b.expando],!!e&&!$(e)},data:function(e,t,n){return P(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return P(e,t,n,!0)},_removeData:function(e,t){return R(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&b.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),b.fn.extend({data:function(e,n){var r,i,o=this[0],a=0,s=null;if(e===t){if(this.length&&(s=b.data(o),1===o.nodeType&&!b._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>a;a++)i=r[a].name,i.indexOf(
"data-")||(i=b.camelCase(i.slice(5)),W(o,i,s[i]));b._data(o,"parsedAttrs",!0)}return s}return"object"==typeof e?this.each(function(){b.data(this,e)}):b.access(this,function(n){return n===t?o?W(o,e,b.data(o,e)):null:(this.each(function(){b.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}}),b.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=b._data(e,n),r&&(!i||b.isArray(r)?i=b._data(e,n,b.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=b.queue(e,t),r=n.length,i=n.shift(),o=b._queueHooks(e,t),a=function(){b.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return b._data(e,n)||b._data(e,n,{empty:b.Callbacks("once memory").add(function(){b._removeData(e,t+"queue"),b._removeData(e,n)})})}}),b.fn.extend({queue:function(e
,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?b.queue(this[0],e):n===t?this:this.each(function(){var t=b.queue(this,e,n);b._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&b.dequeue(this,e)})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(e,t){return e=b.fx?b.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,n){var r,i=1,o=b.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};for("string"!=typeof e&&(n=e,e=t),e=e||"fx";s--;)r=b._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var I,z,X=/[\t\r\n]/g,U=/\r/g,V=/^(?:input|select|textarea|button|object)$/i,Y=/^(?:a|area)$/i,J=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,G=/^(?:checked|selected)$/i,Q
=b.support.getSetAttribute,K=b.support.input;b.fn.extend({attr:function(e,t){return b.access(this,b.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,t){return b.access(this,b.prop,e,t,arguments.length>1)},removeProp:function(e){return e=b.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):" ")){for(o=0;i=t[o++];)0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=b.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||
"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):"")){for(o=0;i=t[o++];)for(;r.indexOf(" "+i+" ")>=0;)r=r.replace(" "+i+" "," ");n.className=e?b.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return this.each(b.isFunction(e)?function(n){b(this).toggleClass(e.call(this,n,this.className,t),t)}:function(){if("string"===n)for(var o,a=0,s=b(this),u=t,l=e.match(w)||[];o=l[a++];)u=r?u:!s.hasClass(o),s[u?"addClass":"removeClass"](o);else(n===i||"boolean"===n)&&(this.className&&b._data(this,"__className__",this.className),this.className=this.className||e===!1?"":b._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(X," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];return arguments.length?(i=b.isFunction(e),this.each(function(n){var o,a=b(this);1===this.nodeType
&&(o=i?e.call(this,n,a.val()):e,null==o?o="":"number"==typeof o?o+="":b.isArray(o)&&(o=b.map(o,function(e){return null==e?"":e+""})),r=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))})):o?(r=b.valHooks[o.type]||b.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(U,""):null==n?"":n)):void 0}}),b.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(b.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&b.nodeName(n.parentNode,"optgroup"))){if(t=b(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=b.makeArray(t);return b(e).find("option").each(function(){this.selected=b.inA
rray(b(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var o,a,s,u=e.nodeType;return e&&3!==u&&8!==u&&2!==u?typeof e.getAttribute===i?b.prop(e,n,r):(a=1!==u||!b.isXMLDoc(e),a&&(n=n.toLowerCase(),o=b.attrHooks[n]||(J.test(n)?z:I)),r===t?o&&a&&"get"in o&&null!==(s=o.get(e,n))?s:(typeof e.getAttribute!==i&&(s=e.getAttribute(n)),null==s?t:s):null!==r?o&&a&&"set"in o&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r):(b.removeAttr(e,n),t)):void 0},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)for(;n=o[i++];)r=b.propFix[n]||n,J.test(n)?!Q&&G.test(n)?e[b.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:b.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!b.support.radioValue&&"radio"===t&&b.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpad
ding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;return e&&3!==s&&8!==s&&2!==s?(a=1!==s||!b.isXMLDoc(e),a&&(n=b.propFix[n]||n,o=b.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]):void 0},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):V.test(e.nodeName)||Y.test(e.nodeName)&&e.href?0:t}}}}),z={get:function(e,n){var r=b.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?K&&Q?null!=i:G.test(n)?e[b.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?b.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&b.propFix[n]||n,n):e[b.camelCase("default-"+n)]=e[n]=!0,n}},K&&Q||(b.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return b.
nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t},set:function(e,n,r){return b.nodeName(e,"input")?(e.defaultValue=n,t):I&&I.set(e,n,r)
}}),Q||(I=b.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},b.attrHooks.contenteditable={get:I.get,set:function(e,t,n){I.set(e,""===t?!1:t,n)}},b.each(["width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),b.support.hrefNormalized||(b.each(["href","src","width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),b.each(["href","src"],function(e,t){b.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),b.support.style||(b.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),b.support.optSelected|
|(b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),b.support.enctype||(b.propFix.enctype="encoding"),b.support.checkOn||b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,n){return b.isArray(n)?e.checked=b.inArray(b(e).val(),n)>=0:t}})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;b.event={global:{},add:function(e,n,r,o,a){var s,u,l,c,p,f,d,h,g,m,y,v=b._data(e);if(v){for(r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=b.guid++),(u=v.events)||(u=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof b===i||e&&b.event.triggered===e.type?t:b.event.dispatch.apply(f.elem,arguments)},f
.elem=e),n=(n||"").match(w)||[""],l=n.length;l--;)s=rt.exec(n[l])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),p=b.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=b.event.special[g]||{},d=b.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&b.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=u[g])||(h=u[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),b.event.global[g]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,p,f,d,h,g,m=b.hasData(e)&&b._data(e);if(m&&(c=m.events)){for(t=(t||"").match(w)||[""],l=t.length;l--;)if(s=rt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){for(p=b.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=f.l
ength;o--;)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||b.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)b.event.remove(e,d+t[l],n,r,!0);b.isEmptyObject(c)&&(delete m.handle,b._removeData(e,"events"))}},trigger:function(n,r,i,a){var s,u,l,c,p,f,d,h=[i||o],g=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];if(l=f=i=i||o,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+b.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),u=0>g.indexOf(":")&&"on"+g,n=n[b.expando]?n:new b.Event(g,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:b.makeArray(r,[n]),p=b.event.special[g]||{},a||!p.trigger||
p.trigger.apply(i,r)!==!1)){if(!a&&!p.noBubble&&!b.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(l=l.parentNode);l;l=l.parentNode)h.push(l),f=l;f===(i.ownerDocument||o)&&h.push(f.defaultView||f.parentWindow||e)}for(d=0;(l=h[d++])&&!n.isPropagationStopped();)n.type=d>1?c:p.bindType||g,s=(b._data(l,"events")||{})[n.type]&&b._data(l,"handle"),s&&s.apply(l,r),s=u&&l[u],s&&b.acceptData(l)&&s.apply&&s.apply(l,r)===!1&&n.preventDefault();if(n.type=g,!(a||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===g&&b.nodeName(i,"a")||!b.acceptData(i)||!u||!i[g]||b.isWindow(i))){f=i[u],f&&(i[u]=null),b.event.triggered=g;try{i[g]()}catch(v){}b.event.triggered=t,f&&(i[u]=f)}return n.result}},dispatch:function(e){e=b.event.fix(e);var n,r,i,o,a,s=[],u=h.call(arguments),l=(b._data(this,"events")||{})[e.type]||[],c=b.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){for(s=b.event.handlers.call(this,e,l),n=
0;(o=s[n++])&&!e.isPropagationStopped();)for(e.currentTarget=o.elem,a=0;(i=o.handlers[a++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((b.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,u),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(o=[],a=0;u>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?b(r,this).index(l)>=0:b.find(r,this,null,[l]).length),o[r]&&o.push(i);o.length&&s.push({elem:l,handlers:o})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[b.expando])return e;var t,n,r,i=e.type,a=e,s=this.fixHooks[i];for(s||(this.fixHooks[i]=s=tt.test(i)?this.mouse
Hooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new b.Event(a),t=r.length;t--;)n=r[t],e[n]=a[n];return e.target||(e.target=a.srcElement||o),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,a):e},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 fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,a,s=n.button,u=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||o,a=i.documentElement,r=i.body,e.pageX=n.clientX+(a&&a.scrollLeft||r&&r.scrollLeft||0)-(a&&a.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(a&&a.scrollTop||r&&r.sc
rollTop||0)-(a&&a.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&u&&(e.relatedTarget=u===e.target?n.toElement:u),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return b.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==o.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===o.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=b.extend(new b.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?b.event.trigger(i,null,t):b.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},b.removeEvent=o.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof
e[r]===i&&(e[r]=null),e.detachEvent(r,n))},b.Event=function(e,n){return this instanceof b.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&b.extend(this,n),this.timeStamp=e&&e.timeStamp||b.now(),this[b.expando]=!0,t):new b.Event(e,n)},b.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){b.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i
=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&b.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return b.nodeName(this,"form")?!1:(b.event.remove(this,"._submit"),t)}}),b.support.changeBubbles||(b.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(b.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this.
_just_changed=!0)}),b.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),b.event.simulate("change",this,e,!0)})),!1):(b.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!b._data(t,"changeBubbles")&&(b.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||b.event.simulate("change",this.parentNode,e,!0)}),b._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return b.event.remove(this,"._change"),!Z.test(this.nodeName)}}),b.support.focusinBubbles||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){b.event.simulate(t,e.target,b.event.fix(e),!0)};b.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}})
,b.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return b().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=b.guid++)),this.each(function(){b.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,b(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){b.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undeleg
ate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?b.event.trigger(e,n,r,!0):t}}),function(e,t){function rt(e){return Y.test(e+"")}function it(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>i.cacheLength&&delete e[t.shift()],e[n]=r}}function ot(e){return e[x]=!0,e}function at(e){var t=p.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function st(e,t,n,r){var i,o,a,s,u,l,f,g,m,v;if((t?t.ownerDocument||t:w)!==p&&c(t),t=t||p,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!d&&!r){if(i=J.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&y(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return H.apply(n,q.call(t.getElementsByTagName(e
),0)),n;if((a=i[3])&&T.getByClassName&&t.getElementsByClassName)return H.apply(n,q.call(t.getElementsByClassName(a),0)),n}if(T.qsa&&!h.test(e)){if(f=!0,g=x,m=t,v=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(l=ft(e),(f=t.getAttribute("id"))?g=f.replace(K,"\\$&"):t.setAttribute("id",g),g="[id='"+g+"'] ",u=l.length;u--;)l[u]=g+dt(l[u]);m=V.test(e)&&t.parentNode||t,v=l.join(",")}if(v)try{return H.apply(n,q.call(m.querySelectorAll(v),0)),n}catch(b){}finally{f||t.removeAttribute("id")}}}return wt(e.replace(W,"$1"),t,n,r)}function ut(e,t){var n=t&&e,r=n&&(~t.sourceIndex||j)-(~e.sourceIndex||j);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ct(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pt(e){return ot(function(t){return t=+t,ot(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;
)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ft(e,t){var n,r,o,a,s,u,l,c=E[e+" "];if(c)return t?0:c.slice(0);for(s=e,u=[],l=i.preFilter;s;){(!n||(r=$.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(o=[])),n=!1,(r=I.exec(s))&&(n=r.shift(),o.push({value:n,type:r[0].replace(W," ")}),s=s.slice(n.length));for(a in i.filter)!(r=U[a].exec(s))||l[a]&&!(r=l[a](r))||(n=r.shift(),o.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?st.error(e):E(e,u).slice(0)}function dt(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function ht(e,t,n){var i=t.dir,o=n&&"parentNode"===i,a=C++;return t.first?function(t,n,r){for(;t=t[i];)if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,s){var u,l,c,p=N+" "+a;if(s){for(;t=t[i];)if((1===t.nodeType||o)&&e(t,n,s))return!0}else for(;t=t[i];)if(1===t.nodeType||o)if(c=t[x]||(t[x]={}),(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,s)||r,l[1]===!0)return!0}}function gt(e){return
e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function mt(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function yt(e,t,n,r,i,o){return r&&!r[x]&&(r=yt(r)),i&&!i[x]&&(i=yt(i,o)),ot(function(o,a,s,u){var l,c,p,f=[],d=[],h=a.length,g=o||xt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:mt(g,f,e,s,u),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,u),r)for(l=mt(y,d),r(l,[],s,u),c=l.length;c--;)(p=l[c])&&(y[d[c]]=!(m[d[c]]=p));if(o){if(i||e){if(i){for(l=[],c=y.length;c--;)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}for(c=y.length;c--;)(p=y[c])&&(l=i?M.call(o,p):f[c])>-1&&(o[l]=!(a[l]=p))}}else y=mt(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)})}function vt(e){for(var t,n,r,o=e.length,a=i.relative[e[0].type],s=a||i.relative[" "],u=a?1:0,c=ht(function(e){return e===t},s,!0),p=ht(function(e){return M.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==l)||((t=n).nodeTyp
e?c(e,n,r):p(e,n,r))}];o>u;u++)if(n=i.relative[e[u].type])f=[ht(gt(f),n)];else{if(n=i.filter[e[u].type].apply(null,e[u].matches),n[x]){for(r=++u;o>r&&!i.relative[e[r].type];r++);return yt(u>1&>(f),u>1&&dt(e.slice(0,u-1)).replace(W,"$1"),n,r>u&&vt(e.slice(u,r)),o>r&&vt(e=e.slice(r)),o>r&&dt(e))}f.push(n)}return gt(f)}function bt(e,t){var n=0,o=t.length>0,a=e.length>0,s=function(s,u,c,f,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,T=l,C=s||a&&i.find.TAG("*",d&&u.parentNode||u),k=N+=null==T?1:Math.random()||.1;for(w&&(l=u!==p&&u,r=n);null!=(h=C[b]);b++){if(a&&h){for(g=0;m=e[g++];)if(m(h,u,c)){f.push(h);break}w&&(N=k,r=++n)}o&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,o&&b!==v){for(g=0;m=t[g++];)m(x,y,u,c);if(s){if(v>0)for(;b--;)x[b]||y[b]||(y[b]=L.call(f));y=mt(y)}H.apply(f,y),w&&!s&&y.length>0&&v+t.length>1&&st.uniqueSort(f)}return w&&(N=k,l=T),x};return o?ot(s):s}function xt(e,t,n){for(var r=0,i=t.length;i>r;r++)st(e,t[r],n);return n}function wt(e,t,n,r){var o,a,u,l,c,p=ft(e);if(!r&&1
===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(u=a[0]).type&&9===t.nodeType&&!d&&i.relative[a[1].type]){if(t=i.find.ID(u.matches[0].replace(et,tt),t)[0],!t)return n;e=e.slice(a.shift().value.length)}for(o=U.needsContext.test(e)?0:a.length;o--&&(u=a[o],!i.relative[l=u.type]);)if((c=i.find[l])&&(r=c(u.matches[0].replace(et,tt),V.test(a[0].type)&&t.parentNode||t))){if(a.splice(o,1),e=r.length&&dt(a),!e)return H.apply(n,q.call(r,0)),n;break}}return s(e,p)(r,t,d,n,V.test(e)),n}function Tt(){}var n,r,i,o,a,s,u,l,c,p,f,d,h,g,m,y,v,x="sizzle"+-new Date,w=e.document,T={},N=0,C=0,k=it(),E=it(),S=it(),A=typeof t,j=1<<31,D=[],L=D.pop,H=D.push,q=D.slice,M=D.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},_="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=F.replace("w","w#"),B="([*^$|!~]?=)",P="\\["+_+"*("+F+")"+_+"*(?:"+B+_+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+O+")|)|)"+_+"*\\]",R=":("+F+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((
?:\\\\.|[^\\\\()[\\]]|"+P.replace(3,8)+")*)|.*)\\)|)",W=RegExp("^"+_+"+|((?:^|[^\\\\])(?:\\\\.)*)"+_+"+$","g"),$=RegExp("^"+_+"*,"+_+"*"),I=RegExp("^"+_+"*([\\x20\\t\\r\\n\\f>+~])"+_+"*"),z=RegExp(R),X=RegExp("^"+O+"$"),U={ID:RegExp("^#("+F+")"),CLASS:RegExp("^\\.("+F+")"),NAME:RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:RegExp("^("+F.replace("w","w*")+")"),ATTR:RegExp("^"+P),PSEUDO:RegExp("^"+R),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+_+"*(even|odd|(([+-]|)(\\d*)n|)"+_+"*(?:([+-]|)"+_+"*(\\d+)|))"+_+"*\\)|)","i"),needsContext:RegExp("^"+_+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+_+"*((?:-\\d)?\\d*)"+_+"*\\)|)(?=[^-]|$)","i")},V=/[\x20\t\r\n\f]*[+~]/,Y=/^[^{]+\{\s*\[native code/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/'|\\/g,Z=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,et=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n
+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{q.call(w.documentElement.childNodes,0)[0].nodeType}catch(nt){q=function(e){for(var t,n=[];t=this[e++];)n.push(t);return n}}a=st.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},c=st.setDocument=function(e){var n=e?e.ownerDocument||e:w;return n!==p&&9===n.nodeType&&n.documentElement?(p=n,f=n.documentElement,d=a(n),T.tagNameNoComments=at(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),T.attributes=at(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),T.getByClassName=at(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),T.getByName=at(function(e){e.id=x+0,e.innerHTML="<a name='"+x+"'></a>
<div name='"+x+"'></div>",f.insertBefore(e,f.firstChild);var t=n.getElementsByName&&n.getElementsByName(x).length===2+n.getElementsByName(x+0).length;return T.getIdNotName=!n.getElementById(x),f.removeChild(e),t}),i.attrHandle=at(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==A&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},T.getIdNotName?(i.find.ID=function(e,t){if(typeof t.getElementById!==A&&!d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(i.find.ID=function(e,n){if(typeof n.getElementById!==A&&!d){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==A&&r.getAttributeNode("id").value===e?[r]:t:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!==A&
&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=T.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==A?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},i.find.NAME=T.getByName&&function(e,n){return typeof n.getElementsByName!==A?n.getElementsByName(name):t},i.find.CLASS=T.getByClassName&&function(e,n){return typeof n.getElementsByClassName===A||d?t:n.getElementsByClassName(e)},g=[],h=[":focus"],(T.qsa=rt(n.querySelectorAll))&&(at(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||h.push("\\["+_+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||h.push(":checked")}),at(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&h.push("[*^$]="+_+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length|
|h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(T.matchesSelector=rt(m=f.matchesSelector||f.mozMatchesSelector||f.webkitMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&at(function(e){T.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",R)}),h=RegExp(h.join("|")),g=RegExp(g.join("|")),y=rt(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)for(;t=t.parentNode;)if(t===e)return!0;return!1},v=f.compareDocumentPosition?function(e,t){var r;return e===t?(u=!0,0):(r=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&r||e.parentNode&&11===e.parentNode.nodeType?e===n||y(w,e)?-1:t===n||y(w,t)?1:0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t
];if(e===t)return u=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:0;if(o===a)return ut(e,t);for(r=e;r=r.parentNode;)s.unshift(r);for(r=t;r=r.parentNode;)l.unshift(r);for(;s[i]===l[i];)i++;return i?ut(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},u=!1,[0,0].sort(v),T.detectDuplicates=u,p):p},st.matches=function(e,t){return st(e,null,null,t)},st.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Z,"='$1']"),!(!T.matchesSelector||d||g&&g.test(t)||h.test(t)))try{var n=m.call(e,t);if(n||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return st(t,p,null,[e]).length>0},st.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},st.attr=function(e,t){var n;return(e.ownerDocument||e)!==p&&c(e),d||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):d||T.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},st.error=function(e){throw Error("Syntax error, unrecognized expression: "
+e)},st.uniqueSort=function(e){var t,n=[],r=1,i=0;if(u=!T.detectDuplicates,e.sort(v),u){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));for(;i--;)e.splice(n[i],1)}return e},o=st.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=st.selectors={cacheLength:50,createPseudo:ot,match:U,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),"~="===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]||st.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]&&st.error(e[0]),e},PSEUDO:function(e
){var t,n=!e[5]&&e[2];return U.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&z.test(n)&&(t=ft(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){return"*"===e?function(){return!0}:(e=e.replace(et,tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[e+" "];return t||(t=RegExp("(^|"+_+")"+e+"("+_+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=st.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),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u
){var l,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){for(;g;){for(p=t;p=p[g];)if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){for(c=m[x]||(m[x]={}),l=c[e]||[],d=l[0]===N&&l[1],f=l[0]===N&&l[2],p=d&&m.childNodes[d];p=++d&&p&&p[g]||(f=d=0)||h.pop();)if(1===p.nodeType&&++f&&p===t){c[e]=[N,d,f];break}}else if(v&&(l=(t[x]||(t[x]={}))[e])&&l[0]===N)f=l[1];else for(;(p=++d&&p&&p[g]||(f=d=0)||h.pop())&&((s?p.nodeName.toLowerCase()!==y:1!==p.nodeType)||!++f||(v&&((p[x]||(p[x]={}))[e]=[N,f]),p!==t)););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()]||st.error("unsupported pseudo: "+e);return r[x]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ot(function(e,n){for(var i,o=r(e,t),a=o.length;a--;)i=M.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){r
eturn r(e,0,n)}):r}},pseudos:{not:ot(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[x]?ot(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ot(function(e){return function(t){return st(e,t).length>0}}),contains:ot(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ot(function(e){return X.test(e||"")||st.error("unsupported lang: "+e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=d?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.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 Q.test(e.nodeName)},input:function(e){return G.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:pt(function(){return[0]}),last:pt(function(e,t){return[t-1]}),eq:pt(function(e,t,n){return[0>n?n+t:n]}),even:pt(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:pt(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:pt(function(e,t,n){for(var r
=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:pt(function(e,t,n){for(var r=0>n?n+t:n;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[n]=lt(n);for(n in{submit:!0,reset:!0})i.pseudos[n]=ct(n);s=st.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){for(t||(t=ft(e)),n=t.length;n--;)o=vt(t[n]),o[x]?r.push(o):i.push(o);o=S(e,bt(i,r))}return o},i.pseudos.nth=i.pseudos.eq,i.filters=Tt.prototype=i.pseudos,i.setFilters=new Tt,c(),st.attr=b.attr,b.find=st,b.expr=st.selectors,b.expr[":"]=b.expr.pseudos,b.unique=st.uniqueSort,b.text=st.getText,b.isXMLDoc=st.isXML,b.contains=st.contains}(e);var at=/Until$/,st=/^(?:parents|prev(?:Until|All))/,ut=/^.[^:#\[\.,]*$/,lt=b.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};b.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return r=this,this.pushStack(b(e).filter(function(){for(t=0;i>t;t++)if(b.contains(r[t],this))return!0}));for(n=[],t=0;i>t;t++)b.find(e,th
is[t],n);return n=this.pushStack(i>1?b.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=b(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(b.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1))},filter:function(e){return this.pushStack(ft(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?lt.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=lt.test(e)||"string"!=typeof e?b(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n.ownerDocument&&n!==t&&11!==n.nodeType;){if(a?a.index(n)>-1:b.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}return this.pushStack(o.length>1?b.unique(o):o)},index:function(e){return e?"string"==typeof e?b.inArray(this[0],b(e)):b.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==type
of e?b(e,t):b.makeArray(e&&e.nodeType?[e]:e),r=b.merge(this.get(),n);return this.pushStack(b.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),b.fn.andSelf=b.fn.addBack,b.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(e,t,n){return b.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(e,t,n){return b.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return b.dir(e,"previousSibling",n)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.merge([],e.childNodes)}},function(e,t){b.
fn[e]=function(n,r){var i=b.map(this,t,n);return at.test(e)||(r=n),r&&"string"==typeof r&&(i=b.filter(r,i)),i=this.length>1&&!ct[e]?b.unique(i):i,this.length>1&&st.test(e)&&(i=i.reverse()),this.pushStack(i)
}}),b.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?b.find.matchesSelector(t[0],e)?[t[0]]:[]:b.find.matches(e,t)},dir:function(e,n,r){for(var i=[],o=e[n];o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!b(o).is(r));)1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Nt=/^(?:checkbox|radio)$/i,Ct=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,
"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:b.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(o),Dt=jt.appendChild(o.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,b.fn.extend({text:function(e){return b.access(this,function(e){return e===t?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e))return this.each(function(t){b(this).wrapAll(e.call(this,t))});if(this[0]){var t=b(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return t
his},wrapInner:function(e){return this.each(b.isFunction(e)?function(t){b(this).wrapInner(e.call(this,t))}:function(){var t=b(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=b.isFunction(e);return this.each(function(n){b(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){b.nodeName(this,"body")||b(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function
(e,t){for(var n,r=0;null!=(n=this[r]);r++)(!e||b.filter(e,[n]).length>0)&&(t||1!==n.nodeType||b.cleanData(Ot(n)),n.parentNode&&(t&&b.contains(n.ownerDocument,n)&&Mt(Ot(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&b.cleanData(Ot(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&b.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return b.clone(this,e,t)})},html:function(e){return b.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!b.support.htmlSerialize&&mt.test(e)||!b.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(b.cleanData(Ot(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)}
,null,e,arguments.length)},replaceWith:function(e){var t=b.isFunction(e);return t||"string"==typeof e||(e=b(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;n&&(b(this).remove(),n.insertBefore(e,t))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=f.apply([],e);var i,o,a,s,u,l,c=0,p=this.length,d=this,h=p-1,g=e[0],m=b.isFunction(g);if(m||!(1>=p||"string"!=typeof g||b.support.checkClone)&&Ct.test(g))return this.each(function(i){var o=d.eq(i);m&&(e[0]=g.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(p&&(l=b.buildFragment(e,this[0].ownerDocument,!1,this),i=l.firstChild,1===l.childNodes.length&&(l=i),i)){for(n=n&&b.nodeName(i,"tr"),s=b.map(Ot(l,"script"),Ht),a=s.length;p>c;c++)o=l,c!==h&&(o=b.clone(o,!0,!0),a&&b.merge(s,Ot(o,"script"))),r.call(n&&b.nodeName(this[c],"table")?Lt(this[c],"tbody"):this[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,b.map(s,qt),c=0;a>c;c++)o=s[c],kt.test(o.type||"")&&!b._data(o,"glo
balEval")&&b.contains(u,o)&&(o.src?b.ajax({url:o.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):b.globalEval((o.text||o.textContent||o.innerHTML||"").replace(St,"")));l=i=null}return this}}),b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){b.fn[e]=function(e){for(var n,r=0,i=[],o=b(e),a=o.length-1;a>=r;r++)n=r===a?this:this.clone(!0),b(o[r])[t](n),d.apply(i,n.get());return this.pushStack(i)}}),b.extend({clone:function(e,t,n){var r,i,o,a,s,u=b.contains(e.ownerDocument,e);if(b.support.html5Clone||b.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(b.support.noCloneEvent&&b.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||b.isXMLDoc(e)))for(r=Ot(o),s=Ot(e),a=0;null!=(i=s[a]);++a)r[a]&&Ft(i,r[a]);if(t)if(n)for(s=s||Ot(e),r=r||Ot(o),a=0;null!=(i=s[a]);a++)_t(i,r[a]);else _t(e,o);return r=Ot(o,"script"),r.length>0&
&Mt(r,!u&&Ot(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){for(var i,o,a,s,u,l,c,p=e.length,f=dt(t),d=[],h=0;p>h;h++)if(o=e[h],o||0===o)if("object"===b.type(o))b.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){for(s=s||f.appendChild(t.createElement("div")),u=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[u]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];i--;)s=s.lastChild;if(!b.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!b.support.tbody)for(o="table"!==u||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;i--;)b.nodeName(l=o.childNodes[i],"tbody")&&!l.childNodes.length&&o.removeChild(l);for(b.merge(d,s.childNodes),s.textContent="";s.firstChild;)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));for(s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;o=d[h++];)if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),
"script"),a&&Mt(s),n))for(i=0;o=s[i++];)kt.test(o.type||"")&&n.push(o);return s=null,f},cleanData:function(e,t){for(var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n.length;
i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px"),b.sup
port.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=fu
nction(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u}),b.each(["height","width"],function(e,n){b.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(b.css(e,"display"))?b.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,i),i):0)}}}),b.support.opacity||(b.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=b.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===b.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),
""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),b(function(){b.support.reliableMarginRight||(b.cssHooks.marginRight={get:function(e,n){return n?b.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!b.support.pixelPosition&&b.fn.position&&b.each(["top","left"],function(e,n){b.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?b(e).position()[n]+"px":r):t}}})}),b.expr&&b.expr.filters&&(b.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!b.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||b.css(e,"display"))},b.expr.filters.visible=function(e){return!b.expr.filters.hidden(e)}),b.each({margin:"",padding:"",border:"Width"},function(e,t){b.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(b.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:i
nput|select|textarea|keygen)/i;b.fn.extend({serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=b.prop(this,"elements");return e?b.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!b(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Nt.test(e))}).map(function(e,t){var n=b(this).val();return null==n?null:b.isArray(n)?b.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),b.param=function(e,n){var r,i=[],o=function(e,t){t=b.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=b.ajaxSettings&&b.ajaxSettings.traditional),b.isArray(e)||e.jquery&&!b.isPlainObject(e))b.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")},b.each("blur focus focusin focusout load resize scroll unload click dblclick moused
own mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){b.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),b.fn.hover=function(e,t){return this.mouseenter(e).mouseleave(t||e)};var mn,yn,vn=b.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Nn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Cn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=b.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=a.href}catch(Ln){yn=o.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[],b.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),b.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&b.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o
=arguments,s.html(i?b("<div>").append(b.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},b.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){b.fn[t]=function(e){return this.on(t,e)}}),b.each(["get","post"],function(e,n){b[n]=function(e,r,i,o){return b.isFunction(r)&&(o=o||i,i=r,r=t),b.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),b.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Nn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t
){return t?Mn(Mn(e,b.ajaxSettings),t):Mn(b.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){function k(e,n,r,i){var c,y,v,w,T,C=n;2!==x&&(x=2,s&&clearTimeout(s),l=t,a=i||"",N.readyState=e>0?4:0,r&&(w=_n(p,N,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=N.getResponseHeader("Last-Modified"),T&&(b.lastModified[o]=T),T=N.getResponseHeader("etag"),T&&(b.etag[o]=T)),204===e?(c=!0,C="nocontent"):304===e?(c=!0,C="notmodified"):(c=Fn(p,w),C=c.state,y=c.data,v=c.error,c=!v)):(v=C,(e||!C)&&(C="error",0>e&&(e=0))),N.status=e,N.statusText=(n||C)+"",c?h.resolveWith(f,[y,C,N]):h.rejectWith(f,[N,C,v]),N.statusCode(m),m=t,u&&d.trigger(c?"ajaxSuccess":"ajaxError",[N,p,c?y:v]),g.fireWith(f,[N,C]),u&&(d.trigger("ajaxComplete",[N,p]),--b.active||b.event.trigger("ajaxStop")))}"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,u,l,c,p=b.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?b(f):b.event,h=b.Deferred(),g=b.Callbacks("once memory"),m=p.statusCode||{}
,y={},v={},x=0,T="canceled",N={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!c)for(c={};t=Tn.exec(a);)c[t[1].toLowerCase()]=t[2];t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)m[t]=[m[t],e[t]];else N.always(e[N.status]);return this},abort:function(e){var t=e||T;return l&&l.abort(t),k(0,t),this}};if(h.promise(N).complete=g.add,N.success=N.done,N.error=N.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=b.trim(p.dataType||"*").toLowerCase().match(w)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?80:443))==(mn[3]||("http:"===mn[1]?80:443)))),p.data&&p.processData&&
"string"!=typeof p.data&&(p.data=b.param(p.data,p.traditional)),qn(An,p,n,N),2===x)return N;u=p.global,u&&0===b.active++&&b.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Cn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(b.lastModified[o]&&N.setRequestHeader("If-Modified-Since",b.lastModified[o]),b.etag[o]&&N.setRequestHeader("If-None-Match",b.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&N.setRequestHeader("Content-Type",p.contentType),N.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)N.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,N,p)===!1||2===x))return N.abort();T="abort";for(i in{success:1,error:1,complete:1})N[i](p[i]);if(l=qn(j
n,p,n,N)){N.readyState=1,u&&d.trigger("ajaxSend",[N,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){N.abort("timeout")},p.timeout));try{x=1,l.send(y,k)}catch(C){if(!(2>x))throw C;k(-1,C)}}else k(-1,"No Transport");return N},getScript:function(e,n){return b.get(e,t,n,"script")},getJSON:function(e,t,n){return b.get(e,t,n,"json")}}),b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return b.globalEval(e),e}}}),b.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),b.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=o.head||b("head")[0]||o.documentElement;return{send:function(t,i){n=o.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&
&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var On=[],Bn=/(=)\?(?=&|$)|\?\?/;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=On.pop()||b.expando+"_"+vn++;return this[e]=!0,e}}),b.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=b.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||b.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,On.push(o)),s&&b.isFunction(a)&&a(s[0]),s=
a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};b.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=b.ajaxSettings.xhr(),b.support.cors=!!Rn&&"withCredentials"in Rn,Rn=b.support.ajax=!!Rn,Rn&&b.ajaxTransport(function(n){if(!n.crossDomain||b.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=b.noop,$n&&delete Pn[a]),i)4!==u.readyState&&u.abort();else{p={},s=u.status,l=u.getAllResponseHeaders(),"string"==typeof u.responseText&&(p.te
xt=u.responseText);try{c=u.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,l)},n.async?4===u.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},b(e).unload($n)),Pn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+x+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yn.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(b.cssNumber[e]?"":"px"),"px"!==r&&s){s=b.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,b.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};b.Animation=b.extend(er,{tweener:function(e,t){b.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}}),b.Tween=rr,rr.prototype={constructor:rr,init
:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(b.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?b.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=b.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){b.fx.step[e.prop]?b.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[b.cssProps[e.prop]]||b.cssHooks[e.prop])?b.style(e.elem,e.prop,e.now+e.unit):e.el
em[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},b.each(["toggle","show","hide"],function(e,t){var n=b.fn[t];b.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),b.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=b.isEmptyObject(e),o=b.speed(t,n,r),a=function(){var t=er(this,b.extend({},e),o);a.finish=function(){t.stop(!0)},(i||b._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=b.timers,a=b._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n
)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&b.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=b._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=b.timers,a=r?r.length:0;for(n.finish=!0,b.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),b.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){b.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),b.speed=function(e,t,n){var r=e&&"object"==typeof e?b.extend({},e):{complete:n||!n&&t||b.isFunction(e)&&e,duration:e,easing:n&&t||t&&!b.isFunction(t)&&t};return r.duration
<TRUNCATED>
[15/34] building changes updating bower
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/efe34294/portal/js/usergrid-dev.min.js
----------------------------------------------------------------------
diff --git a/portal/js/usergrid-dev.min.js b/portal/js/usergrid-dev.min.js
index f79f9dc..4b4d84f 100644
--- a/portal/js/usergrid-dev.min.js
+++ b/portal/js/usergrid-dev.min.js
@@ -1,4 +1,4 @@
-/*! usergrid@2.0.1 2014-03-27 */
+/*! usergrid@2.0.1 2014-03-28 */
(function(exports, global) {
global["true"] = exports;
"use strict";
[13/34] building changes updating bower
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/efe34294/portal/test/coverage/instrument/js/usergrid-coverage.min.js
----------------------------------------------------------------------
diff --git a/portal/test/coverage/instrument/js/usergrid-coverage.min.js b/portal/test/coverage/instrument/js/usergrid-coverage.min.js
index b02fa5f..2a10462 100644
--- a/portal/test/coverage/instrument/js/usergrid-coverage.min.js
+++ b/portal/test/coverage/instrument/js/usergrid-coverage.min.js
@@ -1,4 +1,4 @@
-/*! usergrid@2.0.1 2014-03-27 */
+/*! usergrid@2.0.1 2014-03-28 */
angular.module("appservices").run(["$templateCache",function($templateCache){"use strict";$templateCache.put("activities/activities.html",'<section class="row-fluid">\n'+' <div class="span12">\n'+' <div class="page-filters">\n'+' <h1 class="title" class="pull-left"><i class="pictogram title">📱</i> Activities</h1>\n'+" </div>\n"+" </div>\n"+"\n"+"</section>\n"+'<section class="row-fluid">\n'+' <div class="span12 tab-content">\n'+' <table class="table table-striped">\n'+" <tbody>\n"+' <tr class="table-header">\n'+" <td>Date</td>\n"+" <td></td>\n"+" <td>User</td>\n"+" <td>Content</td>\n"+" <td>Verb</td>\n"+" <td>UUID</td>\n"+" </tr>\n"+' <tr class="zebraRows" ng-repeat="activity in activities">\n'+" <td>{{formatDate(activity.created)}}</td>\n"+' <td class="gravatar20"> <img ng-src="{{activity.actor.picture}}"/>\n'+" </td>\n"+" <td>{{activity.actor.displayName}}</td>\n"+"
<td>{{activity.content}}</td>\n"+" <td>{{activity.verb}}</td>\n"+" <td>{{activity.uuid}}</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"+" </div>\n"+"</section>");$templateCache.put("app-overview/app-overview.html",'<div class="app-overview-content" >\n'+' <section class="row-fluid">\n'+"\n"+' <page-title title=" Summary" icon="📱"></page-title>\n'+' <section class="row-fluid">\n'+' <h2 class="title" id="app-overview-title">{{currentApp}}</h2>\n'+" </section>\n"+' <section class="row-fluid">\n'+"\n"+' <div class="span6">\n'+' <chart id="appOverview"\n'+' chartdata="appOverview.chart"\n'+' type="column"></chart>\n'+" </div>\n"+"\n"+' <div class="span6">\n'+' <table class="table table-striped">\n'+' <tr class="table-header">\n'+" <td>Path</td>\n"+" <td>Title</td>\n"+" </tr>\n"+' <tr class="zebraRows" ng-repeat="(k,v) in collections">\n'+" <td
>{{v.title}}</td>\n"+" <td>{{v.count}}</td>\n"+" </tr>\n"+" </table>\n"+" </div>\n"+"\n"+" </section>\n"+"</div>");$templateCache.put("app-overview/doc-includes/android.html","<h2>1. Integrate the SDK into your project</h2>\n"+"<p>You can integrate Apigee features into your app by including the SDK in your project. You can do one of the following:</p>\n"+"\n"+'<ul class="nav nav-tabs" id="myTab">\n'+' <li class="active"><a data-toggle="tab" href="#existing_project">Existing project</a></li>\n'+' <li><a data-toggle="tab" href="#new_project">New project</a></li>\n'+"</ul>\n"+"\n"+'<div class="tab-content">\n'+' <div class="tab-pane active" id="existing_project">\n'+' <a class="jumplink" name="add_the_sdk_to_an_existing_project"></a>\n'+" <p>If you've already got an Android project, you can integrate the Apigee SDK into your project as you normally would:</p>\n"+' <div id="collapse">\n'+' <a href="#jar_collapse" class="btn" d
ata-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a> \n'+" </div>\n"+' <div id="jar_collapse" class="collapse">\n'+" <p>Add <code>apigee-android-<version>.jar</code> to your class path by doing the following:</p>\n"+" \n"+" <h3>Android 4.0 (or later) projects</h3>\n"+" <p>Copy the jar file into the <code>/libs</code> folder in your project.</p>\n"+" \n"+" <h3>Android 3.0 (or earlier) projects</h3>\n"+" <ol>\n"+" <li>In the Eclipse <strong>Package Explorer</strong>, select your application's project folder.</li>\n"+" <li>Click the <strong>File > Properties</strong> menu.</li>\n"+" <li>In the <strong>Java Build Path</strong> section, click the <strong>Libraries</strong> tab, click <strong>Add External JARs</strong>.</li>\n"+" <li>Browse to <code>apigee-android-<version>.jar</code>, then click <strong>Open</strong>.</li>\n"+" <li>Order the <code>apigee-android-<version>.jar</code> at the t
op of the class path:\n"+" <ol>\n"+" <li>In the Eclipse <strong>Package Explorer</strong>, select your application's project folder.</li>\n"+" <li>Click the <strong>File > Properties</strong> menu.</li>\n"+" <li>In the properties dialog, in the <strong>Java Build Path</strong> section, click the <strong>Order and Export</strong> tab.</li>\n"+" <li>\n"+" <p><strong>IMPORTANT:</strong> Select the checkbox for <code>apigee-android-<version>.jar</code>, then click the <strong>Top</strong> button.</p>\n"+" </li>\n"+" </ol>\n"+" </li>\n"+" </ol>\n"+' <div class="warning">\n'+" <h3>Applications using Ant</h3>\n"+" <p>If you are using Ant to build your application, you must also copy <code>apigee-android-<version>.jar</code> to the <code>/libs</code> folder in your application.</p>\n"+" </div>\n"+" </div>\n"+" </div>\n"+' <div class="tab-pane" id="new_project">\n'+' <a class="jumplink" name=
"create_a_new_project_based_on_the_SDK"></a>\n'+" <p>If you don't have a project yet, you can begin by using the project template included with the SDK. The template includes support for SDK features.</p>\n"+" <ul>\n"+" <li>Locate the project template in the expanded SDK. It should be at the following location:\n"+" <pre><sdk_root>/new-project-template</pre>\n"+" </li>\n"+" </ul>\n"+" </div>\n"+"</div>\n"+"<h2>2. Update permissions in AndroidManifest.xml</h2>\n"+"<p>Add the following Internet permissions to your application's <code>AndroidManifest.xml</code> file if they have not already been added. Note that with the exception of INTERNET, enabling all other permissions are optional.</p>\n"+"<pre>\n"+'<uses-permission android:name="android.permission.INTERNET" />\n'+'<uses-permission android:name="android.permission.READ_PHONE_STATE" />\n'+'<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />\n'+'<uses-permission andro
id:name="android.permission.ACCESS_FINE_LOCATION" />\n'+'<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />\n'+"</pre>\n"+"<h2>3. Initialize the SDK</h2>\n"+"<p>To initialize the App Services SDK, you must instantiate the <code>ApigeeClient</code> class. There are multiple ways to handle this step, but we recommend that you do the following:</p>\n"+"<ol>\n"+" <li>Subclass the <code>Application</code> class, and add an instance variable for the <code>ApigeeClient</code> to it, along with getter and setter methods.\n"+" <pre>\n"+"public class YourApplication extends Application\n"+"{\n"+" \n"+" private ApigeeClient apigeeClient;\n"+" \n"+" public YourApplication()\n"+" {\n"+" this.apigeeClient = null;\n"+" }\n"+" \n"+" public ApigeeClient getApigeeClient()\n"+" {\n"+" return this.apigeeClient;\n"+" }\n"+" \n"+" public void setApigeeClien
t(ApigeeClient apigeeClient)\n"+" {\n"+" this.apigeeClient = apigeeClient;\n"+" }\n"+"} \n"+" </pre>\n"+" </li>\n"+" <li>Declare the <code>Application</code> subclass in your <code>AndroidManifest.xml</code>. For example:\n"+" <pre>\n"+"<application>\n"+' android:allowBackup="true"\n'+' android:icon="@drawable/ic_launcher"\n'+' android:label="@string/app_name"\n'+' android:name=".YourApplication"\n'+" …\n"+"</application> \n"+" </pre>\n"+" </li>\n"+" <li>Instantiate the <code>ApigeeClient</code> class in the <code>onCreate</code> method of your first <code>Activity</code> class:\n"+" <pre>\n"+"import com.apigee.sdk.ApigeeClient;\n"+"\n"+"@Override\n"+"protected void onCreate(Bundle savedInstanceState) {\n"+" super.onCreate(savedInstanceState); \n"+" \n"+' String ORGNAME = "{{currentOrg}}";\n'+' String APPNAME = "{{currentApp}}";\n'+" \n"+" ApigeeClient apigeeClient = new ApigeeClient(ORGNAME,APPNAME,this.getBaseConte
xt());\n"+"\n"+" // hold onto the ApigeeClient instance in our application object.\n"+" yourApp = (YourApplication) getApplication;\n"+" yourApp.setApigeeClient(apigeeClient); \n"+"}\n"+" </pre>\n"+" <p>This will make the instance of <code>ApigeeClient</code> available to your <code>Application</code> class.</p>\n"+" </li>\n"+"</ol>\n"+"<h2>4. Import additional SDK classes</h2>\n"+"<p>The following classes will enable you to call common SDK methods:</p>\n"+"<pre>\n"+"import com.apigee.sdk.data.client.DataClient; //App Services data methods\n"+"import com.apigee.sdk.apm.android.MonitoringClient; //App Monitoring methods\n"+"import com.apigee.sdk.data.client.callbacks.ApiResponseCallback; //API response handling\n"+"import com.apigee.sdk.data.client.response.ApiResponse; //API response object\n"+"</pre>\n"+" \n"+"<h2>5. Verify SDK installation</h2>\n"+"\n"+"<p>Once initialized, App Services will also automatically instantiate the <code>MonitoringClient</code> class and begin logg
ing usage, crash and error metrics for your app.</p>\n"+'<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n'+"<p>To verify that the SDK has been properly initialized, run your app, then go to 'Monitoring' > 'App Usage' in the <a href=\"https://www.apigee.com/usergrid\">App Services admin portal</a> to verify that data is being sent.</p>\n"+'<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n'+"\n"+"<h2>Installation complete! Try these next steps</h2>\n"+"<ul>\n"+" <li>\n"+" <h3><strong>Call additional SDK methods in your code</strong></h3>\n"+" <p>The <code>DataClient</code> and <code>MonitoringClient</code> classes are also automatically instantiated for you, and accessible with the following accessors:</p>\n"+" <ul>\n"+" <li>\n"+" <pre>DataClient dataClient = apigeeClient.getDataClient();</pre>\n"+" <p>Use this object to access the data methods of the App Services SDK, inclu
ding those for push notifications, data store, and geolocation.</p>\n"+" </li>\n"+" <li>\n"+" <pre>MonitoringClient monitoringClient = apigeeClient.getMonitoringClient();</pre>\n"+" <p>Use this object to access the app configuration and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</p>\n"+" </li>\n"+" </ul>\n"+" </li> \n"+" <li> \n"+" <h3><strong>Add App Services features to your app</strong></h3>\n"+" <p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these links to get started with a few of our most popular features:</p>\n"+" <ul>\n"+' <li><strong><a href="http://apigee.com/docs/node/8410">Push notifications</a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per month for free!</li>\
n'+' <li><strong>App Monitoring</strong>: When you initialize the App Services SDK, a suite of valuable, <a href="http://apigee.com/docs/node/13190">customizable</a> application monitoring features are automatically enabled that deliver the data you need to fine tune performance, analyze issues, and improve user experience.\n'+" <ul>\n"+' <li><strong><a href="http://apigee.com/docs/node/13176">App Usage Monitoring</a></strong>: Visit the <a href="https://apigee.com/usergrid">App Services admin portal</a> to view usage data for your app, including data on device models, platforms and OS versions running your app.</li> \n'+' <li><strong><a href="http://apigee.com/docs/node/12861">API Performance Monitoring</a></strong>: Network performance is key to a solid user experience. In the <a href="https://apigee.com/usergrid">App Services admin portal</a> you can view key metrics, including response time, number of requests and raw API request logs.</li> \n'+' <li><strong>
<a href="http://apigee.com/docs/node/13177">Error & Crash Monitoring</a></strong>: Get alerted to any errors or crashes, then view them in the <a href="https://apigee.com/usergrid">App Services admin portal</a>, where you can also analyze raw error and crash logs.</li>\n'+" </ul> \n"+" </li>\n"+' <li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Target users or return result sets based on user location to keep your app highly-relevant.</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about dealing with a database ever again.</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement user registration, as well as OAuth 2.0-compliant login and authentication.</li>\n'+" </ul>\n"+" </li>\n"+" <li>
\n"+" <h3><strong>Check out the sample apps</strong></h3>\n"+" <p>The SDK includes samples that illustrate Apigee features. You'll find the samples in the following location in your SDK download:</p>\n"+" <pre>\n"+"apigee-android-sdk-<version>\n"+" ...\n"+" /samples\n"+" </pre>\n"+' <div id="collapse">\n'+' <a href="#samples_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n'+" </div>\n"+' <div id="samples_collapse" class="collapse">\n'+" <p>The samples include the following:</p>\n"+' <table class="table">\n'+" <thead>\n"+" <tr>\n"+' <th scope="col">Sample</th>\n'+' <th scope="col">Description</th>\n'+" </tr>\n"+" </thead>\n"+" <tbody>\n"+" <tr>\n"+" <td>books</td>\n"+" <td>An app for storing a list of books that shows Apigee database operations such as reading, creating, and deleting.</td>\n"+" </tr>\n"+" <tr>\n"+" <td>messagee</td>\n"+" <td>An app
for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n"+" </tr>\n"+" <tr>\n"+" <td>push</td>\n"+" <td>An app that uses the push feature to send notifications to the devices of users who have subscribed for them.</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"+" </div>\n"+" </li>\n"+"</ul>\n");$templateCache.put("app-overview/doc-includes/ios.html","<h2>1. Integrate ApigeeiOSSDK.framework</h2>\n"+'<a class="jumplink" name="add_the_sdk_to_an_existing_project"></a>\n'+'<ul class="nav nav-tabs" id="myTab">\n'+' <li class="active"><a data-toggle="tab" href="#existing_project">Existing project</a></li>\n'+' <li><a data-toggle="tab" href="#new_project">New project</a></li>\n'+"</ul>\n"+'<div class="tab-content">\n'+' <div class="tab-pane active" id="existing_project">\n'+" <p>If you've already got an Xcode iOS project, add it into your project as you normally would.</p>\n"+' <div id="collapse"><a class="btn" d
ata-toggle="collapse" href="#framework_collapse">Details</a></div>\n'+' <div class="collapse" id="framework_collapse">\n'+" <ol>\n"+" <li>\n"+" <p>Locate the SDK framework file so you can add it to your project. For example, you'll find the file at the following path:</p>\n"+" <pre>\n"+"<sdk_root>/bin/ApigeeiOSSDK.framework</pre>\n"+" </li>\n"+" <li>In the <strong>Project Navigator</strong>, click on your project file, and then the <strong>Build Phases</strong> tab. Expand <strong>Link Binary With Libraries</strong>.</li>\n"+" <li>Link the Apigee iOS SDK into your project.\n"+" <ul>\n"+" <li>Drag ApigeeiOSSDK.framework into the Frameworks group created by Xcode.</li>\n"+" </ul>\n"+" <p>OR</p>\n"+" <ol>\n"+" <li>At the bottom of the <strong>Link Binary With Libraries</strong> group, click the <strong>+</strong> button. Then click <strong>Add Other</strong>.</li>\n"+" <li>Navigate to the directory that contains ApigeeiOS
SDK.framework, and choose the ApigeeiOSSDK.framework folder.</li>\n"+" </ol>\n"+" </li>\n"+" </ol>\n"+" </div>\n"+" </div>\n"+' <div class="tab-pane" id="new_project"><a class="jumplink" name="create_a_new_project_based_on_the_SDK"></a>\n'+" <p>If you're starting with a clean slate (you don't have a project yet), you can begin by using the project template included with the SDK. The template includes support for SDK features.</p>\n"+" <ol>\n"+" <li>\n"+" <p>Locate the project template in the expanded SDK. It should be at the following location:</p>\n"+" <pre>\n"+"<sdk_root>/new-project-template</pre>\n"+" </li>\n"+" <li>In the project template directory, open the project file: Apigee App Services iOS Template.xcodeproj.</li>\n"+" <li>Get acquainted with the template by looking at its readme file.</li>\n"+" </ol>\n"+" </div>\n"+"</div>\n"+"<h2>2. Add required iOS frameworks</h2>\n"+"<p>Ensure that the following iOS frameworks are part of you
r project. To add them, under the <strong>Link Binary With Libraries</strong> group, click the <strong>+</strong> button, type the name of the framework you want to add, select the framework found by Xcode, then click <strong>Add</strong>.</p>\n"+"<ul>\n"+" <li>QuartzCore.framework</li>\n"+" <li>CoreLocation.framework</li>\n"+" <li>CoreTelephony.framework </li>\n"+" <li>Security.framework</li>\n"+" <li>SystemConfiguration.framework</li>\n"+" <li>UIKit.framework</li>\n"+"</ul>\n"+"<h2>3. Update 'Other Linker Flags'</h2>\n"+"<p>In the <strong>Build Settings</strong> panel, add the following under <strong>Other Linker Flags</strong>:</p>\n"+"<pre>\n"+"-ObjC -all_load</pre>\n"+"<p>Confirm that flags are set for both <strong>DEBUG</strong> and <strong>RELEASE</strong>.</p>\n"+"<h2>4. Initialize the SDK</h2>\n"+'<p>The <em>ApigeeClient</em> class initializes the App Services SDK. To do this you will need your organization name and application name, which are available in the <em>Gett
ing Started</em> tab of the <a href="https://www.apigee.com/usergrid/">App Service admin portal</a>, under <strong>Mobile SDK Keys</strong>.</p>\n'+"<ol>\n"+" <li>Import the SDK\n"+" <p>Add the following to your source code to import the SDK:</p>\n"+" <pre>\n"+"#import <ApigeeiOSSDK/Apigee.h></pre>\n"+" </li>\n"+" <li>\n"+" <p>Declare the following properties in <code>AppDelegate.h</code>:</p>\n"+" <pre>\n"+"@property (strong, nonatomic) ApigeeClient *apigeeClient; \n"+"@property (strong, nonatomic) ApigeeMonitoringClient *monitoringClient;\n"+"@property (strong, nonatomic) ApigeeDataClient *dataClient; \n"+" </pre>\n"+" </li>\n"+" <li>\n"+" <p>Instantiate the <code>ApigeeClient</code> class inside the <code>didFinishLaunching</code> method of <code>AppDelegate.m</code>:</p>\n"+" <pre>\n"+"//Replace 'AppDelegate' with the name of your app delegate class to instantiate it\n"+"AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];\n"+"\n"
+"//Sepcify your App Services organization and application names\n"+'NSString *orgName = @"{{currentOrg}}";\n'+'NSString *appName = @"{{currentApp}}";\n'+"\n"+"//Instantiate ApigeeClient to initialize the SDK\n"+"appDelegate.apigeeClient = [[ApigeeClient alloc]\n"+" initWithOrganizationId:orgName\n"+" applicationId:appName];\n"+" \n"+"//Retrieve instances of ApigeeClient.monitoringClient and ApigeeClient.dataClient\n"+"self.monitoringClient = [appDelegate.apigeeClient monitoringClient]; \n"+"self.dataClient = [appDelegate.apigeeClient dataClient]; \n"+" </pre>\n"+" </li>\n"+"</ol>\n"+"\n"+"<h2>5. Verify SDK installation</h2>\n"+"\n"+"<p>Once initialized, App Services will also automatically instantiate the <code>ApigeeMonitoringClient</code> class and begin logging usage, crash and error metrics for your app.</p>\n"+"\n"+"<p>To verify that the SDK has been properly initialized, run your app, then go to
<strong>'Monitoring' > 'App Usage'</strong> in the <a href=\"https://www.apigee.com/usergrid\">App Services admin portal</a> to verify that data is being sent.</p>\n"+'<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n'+'<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n'+"\n"+"<h2>Installation complete! Try these next steps</h2>\n"+"<ul> \n"+" <li>\n"+" <h3><strong>Call additional SDK methods in your code</strong></h3>\n"+" <p>Create an instance of the AppDelegate class, then use <code>appDelegate.dataClient</code> or <code>appDelegate.monitoringClient</code> to call SDK methods:</p>\n"+' <div id="collapse"><a class="btn" data-toggle="collapse" href="#client_collapse">Details</a></div>\n'+' <div class="collapse" id="client_collapse">\n'+" <ul>\n"+" <li><code>appDelegate.dataClient</code>: Used to access the data methods of the App Services SDK, including those for push notifi
cations, data store, and geolocation.</li>\n"+" <li><code>appDelegate.monitoringClient</code>: Used to access the app configuration and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</li>\n"+" </ul>\n"+" <h3>Example</h3>\n"+" <p>For example, you could create a new entity with the following:</p>\n"+" <pre>\n"+"AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];\n"+"ApigeeClientResponse *response = [appDelegate.dataClient createEntity:entity];\n"+" </pre>\n"+" </div>\n"+"\n"+" </li>\n"+" <li>\n"+" <h3><strong>Add App Services features to your app</strong></h3>\n"+" <p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these links to get started with a few of our most popular features:</p>\n"+" <ul>\n"+' <li><strong><a href="http://apigee.com/docs/node/8410">Push notifications<
/a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per month for free!</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Target users or return result sets based on user location to keep your app highly-relevant.</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about dealing with a database ever again.</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement user registration, as well as OAuth 2.0-compliant login and authentication.</li>\n'+" </ul>\n"+" </li>\n"+" <li>\n"+" <h3><strong>Check out the sample apps</strong></h3>\n"+' <p>The SDK includes samples that illust
rate Apigee features. To look at them, open the .xcodeproj file for each in Xcode. To get a sample app running, open its project file, then follow the steps described in the section, <a target="_blank" href="http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios">Add the SDK to an existing project</a>.</p>\n'+" <p>You'll find the samples in the following location in your SDK download:</p>\n"+" <pre>\n"+"apigee-ios-sdk-<version>\n"+" ...\n"+" /samples\n"+" </pre>\n"+' <div id="collapse"><a class="btn" data-toggle="collapse" href="#samples_collapse">Details</a></div>\n'+' <div class="collapse" id="samples_collapse">\n'+" <p>The samples include the following:</p>\n"+' <table class="table">\n'+" <thead>\n"+" <tr>\n"+' <th scope="col">Sample</th>\n'+' <th scope="col">Description</th>\n'+" </tr>\n"+" </thead>\n"+" <tbody>\n"+" <tr>\n"+" <td>books</td>\n"+" <td>An app for storing a list of books that shows Ap
igee database operations such as reading, creating, and deleting.</td>\n"+" </tr>\n"+" <tr>\n"+" <td>messagee</td>\n"+" <td>An app for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n"+" </tr>\n"+" <tr>\n"+" <td>push</td>\n"+" <td>An app that uses the push feature to send notifications to the devices of users who have subscribed for them.</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"+" </div>\n"+" <p> </p>\n"+" </li>\n"+"</ul>\n");$templateCache.put("app-overview/doc-includes/javascript.html","<h2>1. Import the SDK into your HTML</h2>\n"+"<p>To enable support for Apigee-related functions in your HTML, you'll need to include <code>apigee.js</code> in your app. To do this, add the following to the <code>head</code> block of your HTML:</p>\n"+"<pre>\n"+'<script type="text/javascript" src="path/to/js/sdk/apigee.js"></script>\n'+"</pre>\n"+"<h2>2. Instantiate Apigee.Clien
t</h2>\n"+"<p>Apigee.Client initializes the App Services SDK, and gives you access to all of the App Services SDK methods.</p>\n"+"<p>You will need to pass a JSON object with the UUID or name for your App Services organization and application when you instantiate it.</p>\n"+"<pre>\n"+"//Apigee account credentials, available in the App Services admin portal \n"+"var client_creds = {\n"+" orgName:'{{currentOrg}}',\n"+" appName:'{{currentApp}}'\n"+" }\n"+"\n"+"//Initializes the SDK. Also instantiates Apigee.MonitoringClient\n"+"var dataClient = new Apigee.Client(client_creds); \n"+"</pre>\n"+"\n"+"<h2>3. Verify SDK installation</h2>\n"+"\n"+"<p>Once initialized, App Services will also automatically instantiate <code>Apigee.MonitoringClient</code> and begin logging usage, crash and error metrics for your app.</p>\n"+"\n"+"<p>To verify that the SDK has been properly initialized, run your app, then go to <strong>'Monitoring' > 'App Usage'</strong> in the <a href=\"https:
//www.apigee.com/usergrid\">App Services admin portal</a> to verify that data is being sent.</p>\n"+'<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n'+'<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n'+"\n"+"<h2>Installation complete! Try these next steps</h2>\n"+"<ul>\n"+" <li> \n"+" <h3><strong>Call additional SDK methods in your code</strong></h3>\n"+" <p>Use <code>dataClient</code> or <code>dataClient.monitor</code> to call SDK methods:</p>\n"+' <div id="collapse">\n'+' <a href="#client_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n'+" </div>\n"+' <div id="client_collapse" class="collapse">\n'+" <ul>\n"+" <li><code>dataClient</code>: Used to access the data methods of the App Services SDK, including those for push notifications, data store, and geolocation.</li>\n"+" <li><code>dataClient.monitor</code>: Used
to access the app configuration and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</li>\n"+" </ul>\n"+" </div>\n"+" </li> \n"+" <li>\n"+" <h3><strong>Add App Services features to your app</strong></h3>\n"+" <p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these links to get started with a few of our most popular features:</p>\n"+" <ul>\n"+' <li><strong><a href="http://apigee.com/docs/node/8410">Push notifications</a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per month for free!</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Keep your app highly-relevant by targeting users or returning result sets based on user location.</li>\n'+' <li><strong>
<a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about dealing with a database ever again.</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement registration, login and OAuth 2.0-compliant authentication.</li>\n'+" </ul>\n"+" </li>\n"+" <li>\n"+" <h3><strong>Check out the sample apps</strong></h3>\n"+" <p>The SDK includes samples that illustrate Apigee features. To look at them, open the .xcodeproj file for each in Xcode. You'll find the samples in the following location in your SDK download:</p>\n"+" <pre>\n"+"apigee-javascript-sdk-master\n"+" ...\n"+" /samples \n"+" </pre>\n"+' <div id="collapse">\n'+' <a href="#samples_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n'+" </div>\
n"+' <div id="samples_collapse" class="collapse">\n'+" <p>The samples include the following:</p>\n"+' <table class="table">\n'+" <thead>\n"+" <tr>\n"+' <th scope="col">Sample</th>\n'+' <th scope="col">Description</th>\n'+" </tr>\n"+" </thead>\n"+" <tbody>\n"+" <tr>\n"+" <td>booksSample.html</td>\n"+" <td>An app for storing a list of books that shows Apigee database operations such as reading, creating, and deleting.</td>\n"+" </tr>\n"+" <tr>\n"+" <td>messagee</td>\n"+" <td>An app for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n"+" </tr>\n"+" <tr>\n"+" <td>monitoringSample.html</td>\n"+" <td>Shows basic configuration and initialization of the HTML5 app monitoring functionality. Works in browser, PhoneGap, Appcelerator, and Trigger.io.</td>\n"+" </tr>\n"+" <tr>\n"+" <td>readmeSample.html</td>\n"+" <td>A simple app for reading data from
an Apigee database.</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"+" </div> \n"+" </li> \n"+"</ul>\n");$templateCache.put("app-overview/doc-includes/net.html","");$templateCache.put("app-overview/doc-includes/node.html","");$templateCache.put("app-overview/doc-includes/ruby.html","");$templateCache.put("app-overview/getting-started.html",'<div class="setup-sdk-content" >\n'+"\n"+' <bsmodal id="regenerateCredentials"\n'+' title="Confirmation"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="regenerateCredentialsDialog"\n'+' extrabuttonlabel="Yes"\n'+" ng-cloak>\n"+" Are you sure you want to regenerate the credentials?\n"+" </bsmodal>\n"+"\n"+' <page-title icon="🚀" title="Getting Started"></page-title>\n'+"\n"+' <section class="row-fluid">\n'+"\n"+"\n"+"\n"+"\n"+' <div class="span8">\n'+"\n"+' <h2 class="title">Install the SDK for app {{currentApp}}</h2>\n'+" <p>Cli
ck on a platform icon below to view SDK installation instructions for that platform.</p>\n"+' <ul class="inline unstyled">\n'+' <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#ios"><i class="sdk-icon-large-ios"></i></a></li>-->\n'+' <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#android"><i class="sdk-icon-large-android"></i></a></li>-->\n'+' <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#javascript"><i class="sdk-icon-large-js"></i></a></li>-->\n'+"\n"+"\n"+" <li ng-click=\"showSDKDetail('ios')\"\n"+' analytics-on="click"\n'+' analytics-label="App Services"\n'+' analytics-category="Getting Started"\n'+' analytics-event="iOS SDK"><i class="sdk-icon-large-ios"></i></li>\n'+" <li ng-click=\"showSDKDetail('android')\"\n"+' analytics-on="click"\n'+' anal
ytics-label="App Services"\n'+' analytics-category="Getting Started"\n'+' analytics-event="Android SDK"><i class="sdk-icon-large-android"></i></li>\n'+" <li ng-click=\"showSDKDetail('javascript')\"\n"+' analytics-on="click"\n'+' analytics-label="App Services"\n'+' analytics-category="Getting Started"\n'+' analytics-event="JS SDK"><i class="sdk-icon-large-js"></i></li>\n'+' <li><a target="_blank"\n'+" ng-click=\"showSDKDetail('nocontent')\"\n"+' href="http://apigee.com/docs/usergrid/content/sdks-and-examples#nodejs"\n'+' analytics-on="click"\n'+' analytics-label="App Services"\n'+' analytics-category="Getting Started"\n'+' analytics-event="Node SDK"><i class="sdk-icon-large-node"></i></a></li>\n'+' <li><a target="_blank"\n'+" ng-click=\"showSDKDetail('nocontent')\"\n"+' href="http://apige
e.com/docs/usergrid/content/sdks-and-examples#ruby"\n'+' analytics-on="click"\n'+' analytics-label="App Services"\n'+' analytics-category="Getting Started"\n'+' analytics-event="Ruby SDK"><i class="sdk-icon-large-ruby"></i></a></li>\n'+' <li><a target="_blank"\n'+" ng-click=\"showSDKDetail('nocontent')\"\n"+' href="http://apigee.com/docs/usergrid/content/sdks-and-examples#c"\n'+' analytics-on="click"\n'+' analytics-label="App Services"\n'+' analytics-category="Getting Started"\n'+' analytics-event="DotNet SDK"><i class="sdk-icon-large-net"></i></a></li>\n'+" </ul>\n"+"\n"+' <section id="intro-container" class="row-fluid intro-container">\n'+"\n"+' <div class="sdk-intro">\n'+" </div>\n"+"\n"+' <div class="sdk-intro-content">\n'+"\n"+' <a class="btn normal white pull-right" ng-href="{{sdkLink}}" targ
et="_blank">\n'+" Download SDK\n"+" </a>\n"+' <a class="btn normal white pull-right" ng-href="{{docsLink}}" target="_blank">\n'+" More Docs\n"+" </a>\n"+' <h3 class="title"><i class="pictogram">📕</i>{{contentTitle}}</h3>\n'+"\n"+' <div ng-include="getIncludeURL()"></div>\n'+" </div>\n"+"\n"+" </section>\n"+" </div>\n"+"\n"+' <div class="span4 keys-creds">\n'+' <h2 class="title">Mobile sdk keys</h2>\n'+" <p>For mobile SDK initialization.</p>\n"+' <dl class="app-creds">\n'+" <dt>Org Name</dt>\n"+" <dd>{{currentOrg}}</dd>\n"+" <dt>App Name</dt>\n"+" <dd>{{currentApp}}</dd>\n"+" </dl>\n"+' <h2 class="title">Server app credentials</h2>\n'+" <p>For authenticating from a server side app (i.e. Ruby, .NET, etc.)</p>\n"+' <dl class="app-creds">\n'+" <dt>Client ID</dt>\n"+" <dd>{{clientID}}</dd>\n"+" <dt>Client Secret</
dt>\n"+" <dd>{{clientSecret}}</dd>\n"+" <dt>\n"+" \n"+" </dt>\n"+" <dd> </dd>\n"+"\n"+" <dt>\n"+' <a class="btn filter-selector" ng-click="showModal(\'regenerateCredentials\')">Regenerate</a>\n'+" </dt>\n"+" <dd></dd>\n"+" </dl>\n"+"\n"+" </div>\n"+"\n"+" </section>\n"+"</div>");
$templateCache.put("data/data.html",'<div class="content-page">\n'+"\n"+' <bsmodal id="newCollection"\n'+' title="Create new collection"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="newCollectionDialog"\n'+' extrabuttonlabel="Create"\n'+' buttonid="collection"\n'+" ng-cloak>\n"+" <fieldset>\n"+' <div class="control-group">\n'+' <label for="new-collection-name">Collection Name:</label>\n'+' <div class="controls">\n'+' <input type="text" ug-validate required ng-pattern="collectionNameRegex" ng-attr-title="{{collectionNameRegexDescription}}" ng-model="$parent.newCollection.name" name="collection" id="new-collection-name" class="input-xlarge"/>\n'+' <p class="help-block hide"></p>\n'+" </div>\n"+" </div>\n"+" </fieldset>\n"+" </bsmodal>\n"+"\n"+' <page-title title=" Collections" icon="📾"></page-title>\n'+"\n"+' <section class="row-
fluid">\n'+' <div class="span3 user-col">\n'+' <a class="btn btn-primary" id="new-collection-link" ng-click="showModal(\'newCollection\')">New Collection</a>\n'+' <ul class="user-list">\n'+" <li ng-class=\"queryCollection._type === entity.name ? 'selected' : ''\" ng-repeat=\"entity in collectionList\" ng-click=\"loadCollection('/'+entity.name);\">\n"+' <a id="collection-{{entity.name}}-link" href="javaScript:void(0)">/{{entity.name}} </a>\n'+" </li>\n"+" </ul>\n"+"\n"+" </div>\n"+"\n"+' <div class="span9 tab-content">\n'+' <div class="content-page">\n'+' <form name="dataForm" ng-submit="run();">\n'+" <fieldset>\n"+' <div class="control-group">\n'+' <div class="" data-toggle="buttons-radio">\n'+' <!--a class="btn" id="button-query-back">◀ Back</a-->\n'+" <!--Added disabled class to change the way button looks but their functionality is as usual -->\n"+'
<label class="control-label" style="display:none"><strong>Method</strong> <a id="query-method-help" href="#" class="help-link">get help</a></label>\n'+' <input type="radio" id="create-rb" name="query-action" style="margin-top: -2px;" ng-click="selectPOST();" ng-checked="verb==\'POST\'"> CREATE \n'+' <input type="radio" id="read-rb" name="query-action" style="margin-top: -2px;" ng-click="selectGET();" ng-checked="verb==\'GET\'"> READ \n'+' <input type="radio" id="update-rb" name="query-action" style="margin-top: -2px;" ng-click="selectPUT();" ng-checked="verb==\'PUT\'"> UPDATE \n'+' <input type="radio" id="delete-rb" name="query-action" style="margin-top: -2px;" ng-click="selectDELETE();" ng-checked="verb==\'DELETE\'"> DELETE\n'+" </div>\n"+" </div>\n"+"\n"+' <div class="control-group">\n'+" <strong>Path </strong>\n"+' <div class="contr
ols">\n'+' <input ng-model="data.queryPath" type="text" ug-validate id="pathDataQuery" ng-attr-title="{{pathRegexDescription}}" ng-pattern="pathRegex" class="span6" autocomplete="off" placeholder="ex: /users" required/>\n'+" </div>\n"+" </div>\n"+' <div class="control-group">\n'+' <a id="back-to-collection" class="outside-link" style="display:none">Back to collection</a>\n'+" </div>\n"+' <div class="control-group">\n'+" <strong>Query</strong>\n"+' <div class="controls">\n'+' <input ng-model="data.searchString" type="text" class="span6" autocomplete="off" placeholder="ex: select * where name=\'fred\'"/>\n'+' <div style="display:none">\n'+' <a class="btn dropdown-toggle " data-toggle="dropdown">\n'+' <span id="query-collections-caret" class="caret"></span>\n'+" </a>\n"+' <ul id="query-collections-indexes-li
st" class="dropdown-menu ">\n'+" </ul>\n"+" </div>\n"+" </div>\n"+" </div>\n"+"\n"+"\n"+" <div class=\"control-group\" ng-show=\"verb=='GET' || verb=='DELETE'\">\n"+' <label class="control-label" for="query-limit"><strong>Limit</strong> <a id="query-limit-help" href="#" ng-show="false" class="help-link">get help</a></label>\n'+' <div class="controls">\n'+' <div class="input-append">\n'+' <input ng-model="data.queryLimit" type="text" class="span5" id="query-limit" placeholder="ex: 10">\n'+" </div>\n"+" </div>\n"+" </div>\n"+"\n"+' <div class="control-group" style="display:{{queryBodyDisplay}}">\n'+' <label class="control-label" for="query-source"><strong>JSON Body</strong> <a id="query-json-help" href="#" ng-show="false" class="help-link">get help</a></label>\n'+' <div class="controls">\n'+' <textarea ng-
model="data.queryBody" id="query-source" class="span6 pull-left" rows="4">\n'+' { "name":"value" }\n'+" </textarea>\n"+" <br>\n"+' <a class="btn pull-left" ng-click="validateJson();">Validate JSON</a>\n'+" </div>\n"+" </div>\n"+' <div style="clear: both; height: 10px;"></div>\n'+' <div class="control-group">\n'+' <input type="submit" ng-disabled="!dataForm.$valid || loading" class="btn btn-primary" id="button-query" value="{{loading ? loadingText : \'Run Query\'}}"/>\n'+" </div>\n"+" </fieldset>\n"+" </form>\n"+" <div ng-include=\"display=='generic' ? 'data/display-generic.html' : ''\"></div>\n"+" <div ng-include=\"display=='users' ? 'data/display-users.html' : ''\"></div>\n"+" <div ng-include=\"display=='groups' ? 'data/display-groups.html' : ''\"></div>\n"+" <div ng-include=\"display=='roles' ? 'data/display-roles.html' : ''\"></div>\n"+"\n"+"
</div>\n"+"\n"+" </div>\n"+" </section>\n"+"\n"+"\n"+"\n"+"\n"+"</div>\n"+"\n");$templateCache.put("data/display-generic.html","\n"+"\n"+'<bsmodal id="deleteEntities"\n'+' title="Are you sure you want to delete the entities(s)?"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="deleteEntitiesDialog"\n'+' extrabuttonlabel="Delete"\n'+' buttonid="del-entity"\n'+" ng-cloak>\n"+" <fieldset>\n"+' <div class="control-group">\n'+" </div>\n"+" </fieldset>\n"+"</bsmodal>\n"+"\n"+'<span class="button-strip">\n'+' <button class="btn btn-primary" ng-disabled="!valueSelected(queryCollection._list) || deleteLoading" ng-click="deleteEntitiesDialog()">{{deleteLoading ? loadingText : \'Delete Entity(s)\'}}</button>\n'+"</span>\n"+'<table class="table table-striped collection-list">\n'+" <thead>\n"+' <tr class="table-header">\n'+' <th><input type="checkbox" ng-show="queryCollection._list.l
ength > 0" id="selectAllCheckbox" ng-model="queryBoxesSelected" ng-click="selectAllEntities(queryCollection._list,$parent,\'queryBoxesSelected\',true)"></th>\n'+" <th ng-if=\"hasProperty('name')\">Name</th>\n"+" <th>UUID</th>\n"+" <th></th>\n"+" </tr>\n"+" </thead>\n"+' <tbody ng-repeat="entity in queryCollection._list">\n'+' <tr class="zebraRows" >\n'+" <td>\n"+" <input\n"+' type="checkbox"\n'+' id="entity-{{entity._data.name}}-cb"\n'+' ng-value="entity._data.uuid"\n'+' ng-model="entity.checked"\n'+" >\n"+" </td>\n"+" <td ng-if=\"hasProperty('name')\">{{entity._data.name}}</td>\n"+" <td>{{entity._data.uuid}}</td>\n"+" <td><a href=\"javaScript:void(0)\" ng-click=\"entitySelected[$index] = !entitySelected[$index];selectEntity(entity._data.uuid)\">{{entitySelected[$index] ? 'Hide' : 'View'}} Details</a></td>\n"+" </tr>\n"+' <tr ng-if="entitySelected[$index]">\n'+' <td colspan="5">\n'+"\n"+"\n"+' <h4 style="m
argin: 0 0 20px 0">Entity Detail</h4>\n'+"\n"+"\n"+' <ul class="formatted-json">\n'+' <li ng-repeat="(k,v) in entity._data track by $index">\n'+' <span class="key">{{k}} :</span>\n'+" <!--todo - doing manual recursion to get this out the door for launch, please fix-->\n"+' <span ng-switch on="isDeep(v)">\n'+' <ul ng-switch-when="true">\n'+' <li ng-repeat="(k2,v2) in v"><span class="key">{{k2}} :</span>\n'+"\n"+' <span ng-switch on="isDeep(v2)">\n'+' <ul ng-switch-when="true">\n'+' <li ng-repeat="(k3,v3) in v2"><span class="key">{{k3}} :</span><span class="value">{{v3}}</span></li>\n'+" </ul>\n"+' <span ng-switch-when="false">\n'+' <span class="value">{{v2}}</span>\n'+" </span>\n"+" </span>\n"+" </li>\n"+" </ul>\n"+' <span ng-switch-when="false">\n'+'
<span class="value">{{v}}</span>\n'+" </span>\n"+" </span>\n"+" </li>\n"+" </ul>\n"+"\n"+' <div class="control-group">\n'+' <h4 style="margin: 20px 0 20px 0">Edit Entity</h4>\n'+' <div class="controls">\n'+' <textarea ng-model="entity._json" class="span12" rows="12"></textarea>\n'+" <br>\n"+' <a class="btn btn-primary toolbar pull-left" ng-click="validateJson();">Validate JSON</a><button type="button" class="btn btn-primary pull-right" id="button-query" ng-click="saveEntity(entity);">Save</button>\n'+" </div>\n"+" </div>\n"+" </td>\n"+" </tr>\n"+"\n"+' <tr ng-show="queryCollection._list.length == 0">\n'+' <td colspan="4">No data found</td>\n'+" </tr>\n"+" </tbody>\n"+"</table>\n"+'<div style="padding: 10px 5px 10px 5px">\n'+' <button class="btn btn-primary toolbar" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous</button>\n'+' <button class="btn btn-primary toolbar"
ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n'+"</div>\n"+"\n");$templateCache.put("data/display-groups.html","");$templateCache.put("data/display-roles.html","roles---------------------------------");$templateCache.put("data/display-users.html","\n"+'<table id="query-response-table" class="table">\n'+" <tbody>\n"+' <tr class="zebraRows users-row">\n'+' <td class="checkboxo">\n'+' <input type="checkbox" onclick="Usergrid.console.selectAllEntities(this);"></td>\n'+' <td class="gravatar50-td"> </td>\n'+' <td class="user-details bold-header">Username</td>\n'+' <td class="user-details bold-header">Display Name</td>\n'+' <td class="user-details bold-header">UUID</td>\n'+' <td class="view-details"> </td>\n'+" </tr>\n"+' <tr class="zebraRows users-row">\n'+' <td class="checkboxo">\n'+' <input class="listItem" type="checkbox" name="/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf
44-236d2eee13a7" value="bf9a95da-d508-11e2-bf44-236d2eee13a7">\n'+" </td>\n"+' <td class="gravatar50-td">\n'+' <img src="http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e" class="gravatar50">\n'+" </td>\n"+' <td class="details">\n'+" <a onclick=\"Usergrid.console.getCollection('GET', '/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/'+'bf9a95da-d508-11e2-bf44-236d2eee13a7'); $('#data-explorer').show(); return false;\" class=\"view-details\">10</a>\n"+" </td>\n"+' <td class="details"> #"><img src=x onerror=prompt(1);> </td>\n'+' <td class="details"> bf9a95da-d508-11e2-bf44-236d2eee13a7 </td>\n'+' <td class="view-details">\n'+' <a href="" onclick="$(\'#query-row-bf9a95da-d508-11e2-bf44-236d2eee13a7\').toggle(); $(\'#data-explorer\').show(); return false;" class="view-details">Details</a>\n'+" </td>\n"+" </tr>\n"+' <tr id="query-row-bf9a95da-d508-11e2-bf44-236d2eee13a7" style="display:none">\n'+' <t
d colspan="5">\n'+" <div>\n"+' <div style="padding-bottom: 10px;">\n'+' <button type="button" class="btn btn-small query-button active" id="button-query-show-row-JSON" onclick="Usergrid.console.activateQueryRowJSONButton(); $(\'#query-row-JSON-bf9a95da-d508-11e2-bf44-236d2eee13a7\').show(); $(\'#query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7\').hide(); return false;">JSON</button>\n'+' <button type="button" class="btn btn-small query-button disabled" id="button-query-show-row-content" onclick="Usergrid.console.activateQueryRowContentButton();$(\'#query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7\').show(); $(\'#query-row-JSON-bf9a95da-d508-11e2-bf44-236d2eee13a7\').hide(); return false;">Content</button>\n'+" </div>\n"+' <div id="query-row-JSON-bf9a95da-d508-11e2-bf44-236d2eee13a7">\n'+" <pre>{\n"+' "picture": "http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e",\n'+' "uuid": "bf9a95da-d508-11e2-bf4
4-236d2eee13a7",\n'+' "type": "user",\n'+' "name": "#"><img src=x onerror=prompt(1);>",\n'+' "created": 1371224432557,\n'+' "modified": 1371851347024,\n'+' "username": "10",\n'+' "email": "fdsafdsa@ookfd.com",\n'+' "activated": "true",\n'+' "adr": {\n'+' "addr1": "",\n'+' "addr2": "",\n'+' "city": "",\n'+' "state": "",\n'+' "zip": "",\n'+' "country": ""\n'+" },\n"+' "metadata": {\n'+' "path": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7",\n'+' "sets": {\n'+' "rolenames": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/rolenames",\n'+' "permissions": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/permissions"\n'+" },\n"+' "collections": {\n'+' "activities": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/activities",\n'+' "devices": "/user
s/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/devices",\n'+' "feed": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/feed",\n'+' "groups": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/groups",\n'+' "roles": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/roles",\n'+' "following": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/following",\n'+' "followers": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/followers"\n'+" }\n"+" },\n"+' "title": "#"><img src=x onerror=prompt(1);>"\n'+"}</pre>\n"+" </div>\n"+' <div id="query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7" style="display:none">\n'+" <table>\n"+" <tbody>\n"+" <tr>\n"+"
<td>picture</td>\n"+' <td>http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e</td></tr><tr><td>uuid</td><td>bf9a95da-d508-11e2-bf44-236d2eee13a7</td></tr><tr><td>type</td><td>user</td></tr><tr><td>name</td><td>#&quot;&gt;&lt;img src=x onerror=prompt(1);&gt;</td></tr><tr><td>created</td><td>1371224432557</td></tr><tr><td>modified</td><td>1371851347024</td></tr><tr><td>username</td><td>10</td></tr><tr><td>email</td><td>fdsafdsa@ookfd.com</td></tr><tr><td>activated</td><td>true</td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>addr1</td><td></td></tr><tr><td>addr2</td><td></td></tr><tr><td>city</td><td></td></tr><tr><td>state</td><td></td></tr><tr><td>zip</td><td></td></tr><tr><td>country</td><td></td></tr></tbody></table></td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>path</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7</td></tr><tr><td>
</td><td style="padding: 0"><table><tbody><tr></tr><tr><td>rolenames</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/rolenames</td></tr><tr><td>permissions</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/permissions</td></tr></tbody></table></td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>activities</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/activities</td></tr><tr><td>devices</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/devices</td></tr><tr><td>feed</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/feed</td></tr><tr><td>groups</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/groups</td></tr><tr><td>roles</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031
a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/roles</td></tr><tr><td>following</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/following</td></tr><tr><td>followers</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/followers</td></tr></tbody></table></td></tr></tbody></table></td></tr><tr><td>title</td><td>#&quot;&gt;&lt;img src=x onerror=prompt(1);&gt;</td>\n'+" </tr>\n"+" </tbody>\n"+" </table>\n"+" </div>\n"+" </div>\n"+" </td>\n"+" </tr>\n"+" </tbody>\n"+"</table>");$templateCache.put("data/entity.html",'<div class="content-page">\n'+"\n"+" <h4>Entity Detail</h4>\n"+' <div class="well">\n'+' <a href="#!/data" class="outside-link"><< Back to collection</a>\n'+" </div>\n"+" <fieldset>\n"+' <div class="control-group">\n'+" <strong>Path </strong>\n"+' <div class="controls">\n'+" {{entityT
ype}}/{{entityUUID}}\n"+" </div>\n"+" </div>\n"+"\n"+' <div class="control-group">\n'+' <label class="control-label" for="query-source"><strong>JSON Body</strong></label>\n'+' <div class="controls">\n'+' <textarea ng-model="queryBody" class="span6 pull-left" rows="12">{{queryBody}}</textarea>\n'+" <br>\n"+' <a class="btn pull-left" ng-click="validateJson();">Validate JSON</a>\n'+" </div>\n"+" </div>\n"+' <div style="clear: both; height: 10px;"></div>\n'+' <div class="control-group">\n'+' <button type="button" class="btn btn-primary" id="button-query" ng-click="saveEntity();">Save</button>\n'+' <!--button type="button" class="btn btn-primary" id="button-query" ng-click="run();">Delete</button-->\n'+" </div>\n"+" </fieldset>\n"+"\n"+"</div>\n"+"\n");$templateCache.put("data/shell.html",'<div class="content-page">\n'+' <div class="well">\n'+" <h2>Interactive Shell</h2>\n"+' <div style="float:right"><a target="
_blank" href="http://apigee.com/docs/usergrid/content/usergrid-admin-portal" class="notifications-links">Learn more in our docs</a></div>\n'+" </div>\n"+"\n"+' <div class="console-section-contents">\n'+' <div id="shell-input-div">\n'+' <p> Type "help" to view a list of the available commands.</p><hr>\n'+" <span> >> </span>\n"+' <!--textarea id="shell-input" rows="2" autofocus="autofocus"></textarea-->\n'+" </div>\n"+' <pre id="shell-output" class="prettyprint lang-js" style="overflow-x: auto; height: 400px;"><span class="pln"> </span><p><span class="pln"> </span><span class="typ">Response</span><span class="pun">:</span></p><hr><span class="pln">\n'+" </span></pre>\n"+" </div>\n"+"</div>");$templateCache.put("dialogs/modal.html",' <div class="modal show fade" tabindex="-1" role="dialog" aria-hidden="true">\n'+' <form ng-submit="extraDelegate(extrabutton)" name="dialogForm" novalidate>\n'+"\n"+' <div cl
ass="modal-header">\n'+' <h1 class="title">{{title}}</h1>\n'+" </div>\n"+"\n"+' <div class="modal-body" ng-transclude></div>\n'+' <div class="modal-footer">\n'+" {{footertext}}\n"+' <input type="submit" class="btn" id="dialogButton-{{buttonId}}" ng-if="extrabutton" ng-disabled="!dialogForm.$valid" aria-hidden="true" ng-value="extrabuttonlabel"/>\n'+' <button class="btn cancel pull-left" data-dismiss="modal" aria-hidden="true"\n'+' ng-click="closeDelegate(close)">{{closelabel}}\n'+" </button>\n"+" </div>\n"+" </form> </div>\n");$templateCache.put("global/appswitcher-template.html",'<li id="globalNav" class="dropdown dropdownContainingSubmenu active">\n'+' <a class="dropdown-toggle" data-toggle="dropdown">API Platform<b class="caret"></b></a>\n'+' <ul class="dropdown-menu pull-right">\n'+' <li id="globalNavSubmenuContainer">\n'+" <ul>\n"+' <li data-globalNav
Detail="globalNavDetailApigeeHome"><a target="_blank" href="http://apigee.com">Apigee Home</a></li>\n'+' <li data-globalNavDetail="globalNavDetailAppServices" class="active"><a target="_blank" href="https://apigee.com/usergrid/">App Services</a></li>\n'+' <li data-globalNavDetail="globalNavDetailApiPlatform" ><a target="_blank" href="https://enterprise.apigee.com">API Platform</a></li>\n'+' <li data-globalNavDetail="globalNavDetailApiConsoles"><a target="_blank" href="http://apigee.com/providers">API Consoles</a></li>\n'+" </ul>\n"+" </li>\n"+' <li id="globalNavDetail">\n'+' <div id="globalNavDetailApigeeHome">\n'+' <div class="globalNavDetailApigeeLogo"></div>\n'+' <div class="globalNavDetailDescription">You need apps and apps need APIs. Apigee is the leading API platform for enterprises and developers.</div>\n'+" </div>\n"+' <div id="globalNavDetailAppServices">\n'+' <div class="globalNavDetailSubtitle">For App De
velopers</div>\n'+' <div class="globalNavDetailTitle">App Services</div>\n'+' <div class="globalNavDetailDescription">Build engaging applications, store data, manage application users, and more.</div>\n'+" </div>\n"+' <div id="globalNavDetailApiPlatform">\n'+' <div class="globalNavDetailSubtitle">For API Developers</div>\n'+' <div class="globalNavDetailTitle">API Platform</div>\n'+' <div class="globalNavDetailDescription">Create, configure, manage and analyze your APIs and resources.</div>\n'+" </div>\n"+' <div id="globalNavDetailApiConsoles">\n'+' <div class="globalNavDetailSubtitle">For API Developers</div>\n'+' <div class="globalNavDetailTitle">API Consoles</div>\n'+' <div class="globalNavDetailDescription">Explore over 100 APIs with the Apigee API Console, or create and embed your own API Console.</div>\n'+" </div>\n"+" </li>\n"+" </ul>\n"+"</li>");$templateCache.put("global/insecure-banner.html
",'<div ng-if="securityWarning" ng-cloak class="demo-holder">\n'+' <div class="alert alert-demo alert-animate">\n'+' <div class="alert-text">\n'+' <i class="pictogram">⚠</i>Warning: This application has "sandbox" permissions and is not production ready. <a target="_blank" href="http://apigee.com/docs/app-services/content/securing-your-app">Please go to our security documentation to find out more.</a></span>\n'+" </div>\n"+" </div>\n"+"</div>");$templateCache.put("global/page-title.html",'<section class="row-fluid">\n'+' <div class="span12">\n'+' <div class="page-filters">\n'+' <h1 class="title pull-left" id="pageTitle"><i class="pictogram title" style="padding-right: 5px;">{{icon}}</i>{{title}} <a class="super-help" href="http://community.apigee.com/content/apigee-customer-support" target="_blank" >(need help?)</a></h1>\n'+" </div>\n"+" </div>\n"+' <bsmodal id="need-help"\n'+' title="Need Help?"\n'+'
close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="sendHelp"\n'+' extrabuttonlabel="Get Help"\n'+" ng-cloak>\n"+" <p>Do you want to contact support? Support will get in touch with you as soon as possible.</p>\n"+" </bsmodal>\n"+"</section>\n"+"\n");$templateCache.put("groups/groups-activities.html",'<div class="content-page" ng-controller="GroupsActivitiesCtrl">\n'+"\n"+" <br>\n"+" <div>\n"+' <table class="table table-striped">\n'+" <tbody>\n"+' <tr class="table-header">\n'+" <td>Date</td>\n"+" <td>Content</td>\n"+" <td>Verb</td>\n"+" <td>UUID</td>\n"+" </tr>\n"+' <tr class="zebraRows" ng-repeat="activity in selectedGroup.activities">\n'+" <td>{{activity.createdDate}}</td>\n"+" <td>{{activity.content}}</td>\n"+" <td>{{activity.verb}}</td>\n"+" <td>{{activity.uuid}}</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"
+" </div>\n"+"\n"+"\n"+"</div>");$templateCache.put("groups/groups-details.html",'<div class="content-page" ng-controller="GroupsDetailsCtrl">\n'+"\n"+" <div>\n"+' <form name="updateGroupDetailForm" ng-submit="saveSelectedGroup()" novalidate>\n'+' <div style="float: left; padding-right: 30px;">\n'+' <h4 class="ui-dform-legend">Group Information</h4>\n'+' <label for="group-title" class="ui-dform-label">Group Title</label>\n'+' <input type="text" id="group-title" ng-pattern="titleRegex" ng-attr-title="{{titleRegexDescription}}" required class="ui-dform-text" ng-model="group.title" ug-validate>\n'+" <br/>\n"+' <label for="group-path" class="ui-dform-label">Group Path</label>\n'+' <input type="text" id="group-path" required ng-attr-title="{{pathRegexDescription}}" placeholder="ex: /mydata" ng-pattern="pathRegex" class="ui-dform-text" ng-model="group.path" ug-validate>\n'+" <br/>\n"+"
</div>\n"+' <br style="clear:both"/>\n'+"\n"+' <div style="width:100%;float:left;padding: 20px 0">\n'+' <input type="submit" value="Save Group" style="margin-right: 15px;" ng-disabled="!updateGroupDetailForm.$valid" class="btn btn-primary" />\n'+" </div>\n"+"\n"+' <div class="content-container">\n'+" <h4>JSON Group Object</h4>\n"+" <pre>{{json}}</pre>\n"+" </div>\n"+" </form>\n"+" </div>\n"+"\n"+"\n"+"</div>");$templateCache.put("groups/groups-members.html",'<div class="content-page" ng-controller="GroupsMembersCtrl">\n'+"\n"+"\n"+' <bsmodal id="removeFromGroup"\n'+' title="Confirmation"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="removeUsersFromGroupDialog"\n'+' extrabuttonlabel="Delete"\n'+" ng-cloak>\n"+" <p>Are you sure you want to remove the users from the seleted group(s)?</p>\n"+" </bsmodal>\n"+"
\n"+' <bsmodal id="addGroupToUser"\n'+' title="Add user to group"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="addGroupToUserDialog"\n'+' extrabuttonlabel="Add"\n'+" ng-cloak>\n"+' <div class="btn-group">\n'+' <a class="btn dropdown-toggle filter-selector" data-toggle="dropdown">\n'+" <span class=\"filter-label\">{{$parent.user != '' ? $parent.user.username : 'Select a user...'}}</span>\n"+' <span class="caret"></span>\n'+" </a>\n"+' <ul class="dropdown-menu">\n'+' <li ng-repeat="user in $parent.usersTypeaheadValues" class="filterItem"><a ng-click="$parent.$parent.user = user">{{user.username}}</a></li>\n'+" </ul>\n"+" </div>\n"+" </bsmodal>\n"+"\n"+"\n"+' <div class="button-strip">\n'+' <button class="btn btn-primary" ng-click="showModal(\'addGroupToUser\')">Add User to Group</button>\n'+' <button class="btn btn-primary" ng-disabled="!hasMembers
|| !valueSelected(groupsCollection.users._list)" ng-click="showModal(\'removeFromGroup\')">Remove User(s) from Group</button>\n'+" </div>\n"+' <table class="table table-striped">\n'+' <tr class="table-header">\n'+' <td style="width: 30px;"><input type="checkbox" ng-show="hasMembers" id="selectAllCheckbox" ng-model="groupMembersSelected" ng-click="selectAllEntities(groupsCollection.users._list,this,\'groupMembersSelected\')"></td>\n'+' <td style="width: 50px;"></td>\n'+" <td>Username</td>\n"+" <td>Display Name</td>\n"+" </tr>\n"+' <tr class="zebraRows" ng-repeat="user in groupsCollection.users._list">\n'+" <td>\n"+" <input\n"+' type="checkbox"\n'+' ng-model="user.checked"\n'+" >\n"+" </td>\n"+' <td><img style="width:30px;height:30px;" ng-src="{{user._portal_image_icon}}"></td>\n'+" <td>{{user.get('username')}}</td>\n"+" <td>{{user.get('name')}}</td>\n"+" </tr>\n"+" </table>\n"+' <div style=
"padding: 10px 5px 10px 5px">\n'+' <button class="btn btn-primary" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous</button>\n'+' <button class="btn btn-primary" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n'+" </div>\n"+"</div>");$templateCache.put("groups/groups-roles.html",'<div class="content-page" ng-controller="GroupsRolesCtrl">\n'+"\n"+' <bsmodal id="addGroupToRole"\n'+' title="Add group to role"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="addGroupToRoleDialog"\n'+' extrabuttonlabel="Add"\n'+" ng-cloak>\n"+' <div class="btn-group">\n'+' <a class="btn dropdown-toggle filter-selector" data-toggle="dropdown">\n'+" <span class=\"filter-label\">{{$parent.name != '' ? $parent.name : 'Role name...'}}</span>\n"+' <span class="caret"></span>\n'+" </a>\n"+' <ul class="dropdown-menu">\n'+' <li ng-
repeat="role in $parent.rolesTypeaheadValues" class="filterItem"><a ng-click="$parent.$parent.name = role.name">{{role.name}}</a></li>\n'+" </ul>\n"+" </div>\n"+" </bsmodal>\n"+"\n"+' <bsmodal id="leaveRoleFromGroup"\n'+' title="Confirmation"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="leaveRoleDialog"\n'+' extrabuttonlabel="Leave"\n'+" ng-cloak>\n"+" <p>Are you sure you want to remove the group from the role(s)?</p>\n"+" </bsmodal>\n"+"\n"+"\n"+' <div class="button-strip">\n'+' <button class="btn btn-primary" ng-click="showModal(\'addGroupToRole\')">Add Role to Group</button>\n'+' <button class="btn btn-primary" ng-disabled="!hasRoles || !valueSelected(groupsCollection.roles._list)" ng-click="showModal(\'leaveRoleFromGroup\')">Remove Role(s) from Group</button>\n'+" </div>\n"+" <h4>Roles</h4>\n"+' <table class="table table-striped">\n'+" <tbody>\n"+' <tr class="table-head
er">\n'+' <td style="width: 30px;"><input type="checkbox" ng-show="hasRoles" id="groupsSelectAllCheckBox" ng-model="groupRoleSelected" ng-click="selectAllEntities(groupsCollection.roles._list,this,\'groupRoleSelected\')" ></td>\n'+" <td>Role Name</td>\n"+" <td>Role title</td>\n"+" </tr>\n"+' <tr class="zebraRows" ng-repeat="role in groupsCollection.roles._list">\n'+" <td>\n"+" <input\n"+' type="checkbox"\n'+' ng-model="role.checked"\n'+" >\n"+" </td>\n"+" <td>{{role._data.name}}</td>\n"+" <td>{{role._data.title}}</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"+' <div style="padding: 10px 5px 10px 5px">\n'+' <button class="btn btn-primary" ng-click="getPreviousRoles()" style="display:{{roles_previous_display}}">< Previous</button>\n'+' <button class="btn btn-primary" ng-click="getNextRoles()" style="display:{{roles_next_display}};float:right;">Next ></button>\n'+" </div>\n"+"\n"+"\n"+' <bsmodal
id="deletePermission"\n'+' title="Confirmation"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="deleteGroupPermissionDialog"\n'+' extrabuttonlabel="Delete"\n'+" ng-cloak>\n"+" <p>Are you sure you want to delete the permission(s)?</p>\n"+" </bsmodal>\n"+"\n"+"\n"+' <bsmodal id="addPermission"\n'+' title="New Permission"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="addGroupPermissionDialog"\n'+' extrabuttonlabel="Add"\n'+" ng-cloak>\n"+' <p>Path: <input ng-model="$parent.permissions.path" placeholder="ex: /mydata" id="groupsrolespermissions" type="text" ng-pattern="pathRegex" ng-attr-title="{{pathRegexDescription}}" required ug-validate /></p>\n'+' <div class="control-group">\n'+' <input type="checkbox" ng-model="$parent.permissions.getPerm"> GET\n'+" </div>\n"+' <div class="control-group">\n'+' <inpu
t type="checkbox" ng-model="$parent.permissions.postPerm"> POST\n'+" </div>\n"+' <div class="control-group">\n'+' <input type="checkbox" ng-model="$parent.permissions.putPerm"> PUT\n'+" </div>\n"+' <div class="control-group">\n'+' <input type="checkbox" ng-model="$parent.permissions.deletePerm"> DELETE\n'+" </div>\n"+" </bsmodal>\n"+"\n"+"\n"+' <div class="button-strip">\n'+' <button class="btn btn-primary" ng-click="showModal(\'addPermission\')">Add Permission</button>\n'+' <button class="btn btn-primary" ng-disabled="!hasPermissions || !valueSelected(selectedGroup.permissions)" ng-click="showModal(\'deletePermission\')">Delete Permission(s)</button>\n'+" </div>\n"+" <h4>Permissions</h4>\n"+' <table class="table table-striped">\n'+" <tbody>\n"+' <tr class="table-header">\n'+' <td style="width: 30px;"><input ng-show="hasPermissions" type="checkbox" id="permissionsSelectAllCheckBox" ng-model="groupPermissionsSelected" ng-click="selectAll
Entities(selectedGroup.permissions,this,\'groupPermissionsSelected\')" ></td>\n'+" <td>Path</td>\n"+" <td>GET</td>\n"+" <td>POST</td>\n"+" <td>PUT</td>\n"+" <td>DELETE</td>\n"+" </tr>\n"+' <tr class="zebraRows" ng-repeat="permission in selectedGroup.permissions">\n'+" <td>\n"+" <input\n"+' type="checkbox"\n'+' ng-model="permission.checked"\n'+" >\n"+" </td>\n"+" <td>{{permission.path}}</td>\n"+" <td>{{permission.operations.get}}</td>\n"+" <td>{{permission.operations.post}}</td>\n"+" <td>{{permission.operations.put}}</td>\n"+" <td>{{permission.operations.delete}}</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"+"\n"+"</div>");
$templateCache.put("groups/groups-tabs.html",'<div class="content-page">\n'+"\n"+' <section class="row-fluid">\n'+"\n"+' <div class="span12">\n'+' <div class="page-filters">\n'+' <h1 class="title" class="pull-left"><i class="pictogram title">👥</i> Groups</h1>\n'+" </div>\n"+" </div>\n"+"\n"+" </section>\n"+"\n"+' <div id="user-panel" class="panel-buffer">\n'+' <ul id="user-panel-tab-bar" class="nav nav-tabs">\n'+' <li><a href="javaScript:void(0);" ng-click="gotoPage(\'groups\')">Group List</a></li>\n'+' <li ng-class="detailsSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/details\')">Details</a></li>\n'+' <li ng-class="membersSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/members\')">Users</a></li>\n'+' <li ng-class="activitiesSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/activities\')">Activities</a></li>\n'+' <li ng-class="rolesSelected"><a href="javaScript:v
oid(0);" ng-click="gotoPage(\'groups/roles\')">Roles & Permissions</a></li>\n'+" </ul>\n"+" </div>\n"+"\n"+' <div style="float: left; margin-right: 10px;">\n'+' <div style="float: left;">\n'+" <div class=\"user-header-title\"><strong>Group Path: </strong>{{selectedGroup.get('path')}}</div>\n"+" <div class=\"user-header-title\"><strong>Group Title: </strong>{{selectedGroup.get('title')}}</div>\n"+" </div>\n"+" </div>\n"+"</div>\n"+"<br>\n"+"<br>\n");$templateCache.put("groups/groups.html",'<div class="content-page">\n'+"\n"+' <page-title title=" Groups" icon="👥"></page-title>\n'+' <bsmodal id="newGroup"\n'+' title="New Group"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="newGroupDialog"\n'+' extrabuttonlabel="Add"\n'+' ng-model="dialog"\n'+" ng-cloak>\n"+" <fieldset>\n"+' <div class="control-group">\n'+' <label for="title">Title</label>\n'+'
<div class="controls">\n'+' <input type="text" id="title" ng-pattern="titleRegex" ng-attr-title="{{titleRegexDescription}}" required ng-model="newGroup.title"class="input-xlarge" ug-validate/>\n'+" </div>\n"+" </div>\n"+' <div class="control-group">\n'+' <label for="path">Path</label>\n'+' <div class="controls">\n'+' <input id="path" type="text" ng-attr-title="{{pathRegexDescription}}" placeholder="ex: /mydata" ng-pattern="pathRegex" required ng-model="newGroup.path" class="input-xlarge" ug-validate/>\n'+" </div>\n"+" </div>\n"+" </fieldset>\n"+" </bsmodal>\n"+"\n"+' <bsmodal id="deleteGroup"\n'+' title="Delete Group"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="deleteGroupsDialog"\n'+' extrabuttonlabel="Delete"\n'+" ng-cloak>\n"+" <p>Are you sure you want to delete the group(s)?</p>\n"+" </bsmodal>\n"+"\n"+"\n"+' <section class=
"row-fluid">\n'+' <div class="span3 user-col">\n'+"\n"+' <div class="button-toolbar span12">\n'+' <a title="Select All" class="btn btn-primary select-all toolbar" ng-show="hasGroups" ng-click="selectAllEntities(groupsCollection._list,this,\'groupBoxesSelected\',true)"> <i class="pictogram">⊟</i></a>\n'+' <button title="Delete" class="btn btn-primary toolbar" ng-disabled="!hasGroups || !valueSelected(groupsCollection._list)" ng-click="showModal(\'deleteGroup\')"><i class="pictogram">☕</i></button>\n'+' <button title="Add" class="btn btn-primary toolbar" ng-click="showModal(\'newGroup\')"><i class="pictogram"></i></button>\n'+" </div>\n"+' <ul class="user-list">\n'+' <li ng-class="selectedGroup._data.uuid === group._data.uuid ? \'selected\' : \'\'" ng-repeat="group in groupsCollection._list" ng-click="selectGroup(group._data.uuid)">\n'+" <input\n"+' type="checkbox"\n'+' ng-value="group
._data.uuid"\n'+' ng-checked="group.checked"\n'+' ng-model="group.checked"\n'+" >\n"+" <a href=\"javaScript:void(0)\" >{{group.get('title')}}</a>\n"+" <br/>\n"+" <span ng-if=\"group.get('path')\" class=\"label\">Path:</span>/{{group.get('path')}}\n"+" </li>\n"+" </ul>\n"+"\n"+"\n"+' <div style="padding: 10px 5px 10px 5px">\n'+' <button class="btn btn-primary" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous</button>\n'+' <button class="btn btn-primary" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n'+" </div>\n"+"\n"+" </div>\n"+"\n"+' <div class="span9 tab-content" ng-show="selectedGroup.get" >\n'+' <div class="menu-toolbar">\n'+' <ul class="inline" >\n'+' <li class="tab" ng-class="currentGroupsPage.route === \'/groups/details\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click
="selectGroupPage(\'/groups/details\')"><i class="pictogram"></i>Details</a></li>\n'+' <li class="tab" ng-class="currentGroupsPage.route === \'/groups/members\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/members\')"><i class="pictogram">👥</i>Users</a></li>\n'+' <li class="tab" ng-class="currentGroupsPage.route === \'/groups/activities\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/activities\')"><i class="pictogram"></i>Activities</a></li>\n'+' <li class="tab" ng-class="currentGroupsPage.route === \'/groups/roles\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/roles\')"><i class="pictogram">🌎</i>Roles & Permissions</a></li>\n'+" </ul>\n"+" </div>\n"+' <span ng-include="currentGroupsPage.template"></span>\n'+"\n"+" </section>\n"+"</div>\n");$templateCache.put
("login/forgot-password.html",'<div class="login-content" ng-controller="ForgotPasswordCtrl">\n'+' <iframe class="container" ng-src="{{forgotPWiframeURL}}" id="forgot-password-frame" border="0" style="border:0;width:600px;height:620px;">\n'+' <p>Email Address: <input id="resetPasswordEmail" name="resetPasswordEmail" /></p>\n'+' <button class="btn btn-primary" ng-click="">Reset Password</button>\n'+"</div>\n");$templateCache.put("login/loading.html","\n"+"\n"+"<h1>Loading...</h1>");$templateCache.put("login/login.html",'<div class="login-content">\r'+"\n"+' <bsmodal id="sendActivationLink"\r'+"\n"+' title="Resend Activation Link"\r'+"\n"+' close="hideModal"\r'+"\n"+' closelabel="Cancel"\r'+"\n"+' extrabutton="resendActivationLink"\r'+"\n"+' extrabuttonlabel="Send Activation"\r'+"\n"+" ng-cloak>\r"+"\n"+" <fieldset>\r"+"\n"+' <p>Email to send to: <input type="email" required ng-model="$parent.activation.id" ng-patter
n="emailRegex" ng-attr-title="{{emailRegexDescription}}" name="activationId" id="user-activationId" class="input-xlarge"/></p>\r'+"\n"+" </fieldset>\r"+"\n"+" </bsmodal>\r"+"\n"+' <div class="login-holder">\r'+"\n"+' <form name="loginForm" id="login-form" ng-submit="login()" class="form-horizontal" novalidate>\r'+"\n"+' <h1 class="title">Enter your credentials</h1>\r'+"\n"+' <div class="alert-error" id="loginError" ng-if="loginMessage">{{loginMessage}}</div>\r'+"\n"+' <div class="control-group">\r'+"\n"+' <label class="control-label" for="login-username">Email or Username:</label>\r'+"\n"+' <div class="controls">\r'+"\n"+' <input type="text" ng-model="login.username" title="Please add a username or email." class="" id="login-username" required ng-value="login.username" size="20" ug-validate>\r'+"\n"+" </div>\r"+"\n"+" </div>\r"+"\n"+' <div class="control-group">\r'+"\n"+' <label class="control-label" for="login-password">Password:</
label>\r'+"\n"+' <div class="controls">\r'+"\n"+' <input type="password" ng-model="login.password" required id="login-password" class="" ng-value="login.password" size="20" ug-validate>\r'+"\n"+" </div>\r"+"\n"+" </div>\r"+"\n"+' <div class="control-group" ng-show="requiresDeveloperKey">\r'+"\n"+' <label class="control-label" for="login-developerkey">Developer Key:</label>\r'+"\n"+' <div class="controls">\r'+"\n"+' <input type="text" ng-model="login.developerkey" id="login-developerkey" class="" ng-value="login.developerkey" size="20" ug-validate>\r'+"\n"+" </div>\r"+"\n"+" </div>\r"+"\n"+' <div class="form-actions">\r'+"\n"+' <div class="submit">\r'+"\n"+' <input type="submit" name="button-login" id="button-login" ng-disabled="!loginForm.$valid || loading" value="{{loading ? loadingText : \'Log In\'}}" class="btn btn-primary pull-right">\r'+"\n"+" </div>\r"+"\n"+" </div>\r"+"\n"+" </form>\r"+"\n"+" </div>\r"+
"\n"+' <div class="extra-actions">\r'+"\n"+' <div class="submit">\r'+"\n"+' <a ng-click="gotoSignUp()" name="button-signUp" id="button-signUp" value="Sign Up"\r'+"\n"+' class="btn btn-primary pull-left">Register</a>\r'+"\n"+" </div>\r"+"\n"+' <div class="submit">\r'+"\n"+' <a ng-click="gotoForgotPasswordPage()" name="button-forgot-password" id="button-forgot-password"\r'+"\n"+' value="" class="btn btn-primary pull-left">Forgot Password?</a>\r'+"\n"+" </div>\r"+"\n"+' <a ng-click="showModal(\'sendActivationLink\')" name="button-resend-activation" id="button-resend-activation"\r'+"\n"+' value="" class="btn btn-primary pull-left">Resend Activation Link</a>\r'+"\n"+" </div>\r"+"\n"+' <div id="gtm" style="width: 450px;margin-top: 4em;" />\r'+"\n"+"</div>\r"+"\n");$templateCache.put("login/logout.html",'<div id="logut">Logging out...</div>');$templateCache.put("login/register.html",'<div class="signUp-content">\n'+' <div class="signUp-
holder">\n'+' <form name="signUpform" id="signUp-form" ng-submit="register()" class="form-horizontal" ng-show="!signUpSuccess" novalidate>\n'+' <h1 class="title">Register</h1>\n'+"\n"+' <div class="alert" ng-if="loginMessage">{{loginMessage}}</div>\n'+' <div class="control-group">\n'+' <label class="control-label" for="register-orgName">Organization:</label>\n'+"\n"+' <div class="controls">\n'+' <input type="text" ng-model="registeredUser.orgName" id="register-orgName" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" ug-validate required class="" size="20">\n'+" </div>\n"+" </div>\n"+"\n"+' <div class="control-group">\n'+' <label class="control-label" for="register-name">Name:</label>\n'+"\n"+' <div class="controls">\n'+' <input type="text" ng-model="registeredUser.name" id="register-name" ng-pattern="nameRegex" ng-attr-title="{{nameRegexDescription}}" ug-validate required class=""
size="20">\n'+" </div>\n"+" </div>\n"+"\n"+' <div class="control-group">\n'+' <label class="control-label" for="register-userName">Username:</label>\n'+"\n"+' <div class="controls">\n'+' <input type="text" ng-model="registeredUser.userName" id="register-userName" ng-pattern="usernameRegex" ng-attr-title="{{usernameRegexDescription}}" ug-validate required class="" size="20">\n'+" </div>\n"+" </div>\n"+"\n"+' <div class="control-group">\n'+' <label class="control-label" for="register-email">Email:</label>\n'+"\n"+' <div class="controls">\n'+' <input type="email" ng-model="registeredUser.email" id="register-email" ng-pattern="emailRegex" ng-attr-title="{{emailRegexDescription}}" required class="" ug-validate size="20">\n'+" </div>\n"+" </div>\n"+"\n"+"\n"+' <div class="control-group">\n'+' <label class="control-label" for="register-password">Password:</label>\n'+"\n"+' <div
class="controls">\n'+' <input type="password" ng-pattern="passwordRegex" ng-attr-title="{{passwordRegexDescription}}" ug-validate ng-model="registeredUser.password" id="register-password" required class=""\n'+' size="20">\n'+" </div>\n"+" </div>\n"+' <div class="control-group">\n'+' <label class="control-label" for="register-confirmPassword">Re-enter Password:</label>\n'+"\n"+' <div class="controls">\n'+' <input type="password" ng-model="registeredUser.confirmPassword" required id="register-confirmPassword" ug-validate class="" size="20">\n'+" </div>\n"+" </div>\n"+' <div class="form-actions">\n'+' <div class="submit">\n'+' <input type="submit" name="button-login" ng-disabled="!signUpform.$valid" id="button-login" value="Register"\n'+' class="btn btn-primary pull-right">\n'+" </div>\n"+' <div class="submit">\n'+' <a ng-click="cancel()" type="submi
t" name="button-cancel" id="button-cancel"\n'+' class="btn btn-primary pull-right">Cancel</a>\n'+" </div>\n"+" </div>\n"+" </form>\n"+' <div class="console-section well thingy" ng-show="signUpSuccess">\n'+' <span class="title">We\'re holding a seat for you!</span>\n'+" <br><br>\n"+"\n"+" <p>Thanks for signing up for a spot on our private beta. We will send you an email as soon as we're ready for\n"+" you!</p>\n"+"\n"+" <p>In the mean time, you can stay up to date with App Services on our <a\n"+' href="https://groups.google.com/forum/?fromgroups#!forum/usergrid">GoogleGroup</a>.</p>\n'+"\n"+' <p> <a href="#!/login">Back to login</a></p>\n'+" </div>\n"+" </div>\n"+"\n"+"</div>\n");$templateCache.put("menus/appMenu.html",'<ul id="app-menu" class="nav top-nav span12">\n'+' <li class="span7">\n'+' <bsmodal id="newApplication"\n'+' title="Create New Application"\n'+' close="hideM
odal"\n'+' closelabel="Cancel"\n'+' extrabutton="newApplicationDialog"\n'+' extrabuttonlabel="Create"\n'+' buttonid="app"\n'+" ng-cloak>\n"+' <div ng-show="!hasApplications" class="modal-instructions" >You have no applications, please create one.</div>\n'+' <div ng-show="hasCreateApplicationError" class="alert-error">Application already exists!</div>\n'+' <p>New application name: <input ng-model="$parent.newApp.name" id="app-name-input" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" type="text" required ug-validate /></p>\n'+" </bsmodal>\n"+' <div class="btn-group">\n'+' <a class="btn dropdown-toggle top-selector app-selector" id="current-app-selector" data-toggle="dropdown">\n'+' <i class="pictogram">⚙</i> {{myApp.currentApp}}\n'+' <span class="caret"></span>\n'+" </a>\n"+' <ul class="dro
pdown-menu app-nav">\n'+' <li name="app-selector" ng-repeat="app in applications">\n'+' <a id="app-{{app.name}}-link-id" ng-click="appChange(app.name)">{{app.name}}</a>\n'+" </li>\n"+" </ul>\n"+" </div>\n"+" </li>\n"+' <li class="span5">\n'+' <a ng-if="activeUI"\n'+' class="btn btn-create zero-out pull-right"\n'+" ng-click=\"showModal('newApplication')\"\n"+' analytics-on="click"\n'+' analytics-category="App Services"\n'+' analytics-label="Button"\n'+' analytics-event="Add New App"\n'+" >\n"+' <i class="pictogram">⊞</i>\n'+" Add New App\n"+" </a>\n"+" </li>\n"+"</ul>");$templateCache.put("menus/orgMenu.html",'<ul class="nav top-nav org-nav">\n'+" <li>\n"+'<div class="btn-group ">\n'+' <a class="btn dropdown-toggle top-selector org-selector" id="current-org-selector" data-toggle="dropdown">\n'+' <i class="pictogram
">📁</i> {{currentOrg}}<span class="caret"></span>\n'+" </a>\n"+' <ul class="dropdown-menu org-nav">\n'+' <li name="org-selector" ng-repeat="(k,v) in organizations">\n'+' <a id="org-{{v.name}}-selector" class="org-overview" ng-click="orgChange(v.name)"> {{v.name}}</a>\n'+" </li>\n"+" </ul>\n"+" </div>\n"+" </li></ul>");$templateCache.put("org-overview/org-overview.html",'<div class="org-overview-content" ng-show="activeUI">\n'+"\n"+' <page-title title=" Org Administration" icon="🕪"></page-title>\n'+"\n"+' <section class="row-fluid">\n'+"\n"+' <div class="span6">\n'+' <bsmodal id="introjs"\n'+' title="Welcome to the API BaaS Admin Portal"\n'+' close="hideModal"\n'+' closelabel="Skip"\n'+' extrabutton="startFirstTimeUser"\n'+' extrabuttonlabel="Take the tour"\n'+" ng-cloak>\n"+" <p>To get started, click 'Take the tour' for a full walkth
rough of the admin portal, or click 'Skip' to start working right away.</p>\n"+" </bsmodal>\n"+' <div id="intro-4-current-org"> \n'+' <h2 class="title">Current Organization <a class="help_tooltip" ng-mouseover="help.sendTooltipGA(\'current org\')" ng-show="help.helpTooltipsEnabled" href="#" ng-attr-tooltip="{{tooltip_current_org}}" tooltip-placement="right">(?)</a></h2>\n'+' <table class="table table-striped">\n'+" <tr>\n"+' <td id="org-overview-name">{{currentOrganization.name}}</td>\n'+' <td style="text-align: right">{{currentOrganization.uuid}}</td>\n'+" </tr>\n"+" </table>\n"+" </div>\n"+"\n"+' <bsmodal id="newApplication"\n'+' title="Create New Application"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="newApplicationDialog"\n'+' extrabuttonlabel="Create"\n'+" ng-cloak>\n"+' <p>New application name: <input ng-model="$parent.newApp.name"
ug-validate required type="text" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" /></p>\n'+" </bsmodal>\n"+' <div id="intro-5-applications"> \n'+' <h2 class="title" > Applications <a class="help_tooltip" ng-show="help.helpTooltipsEnabled" ng-mouseover="help.sendTooltipGA(\'applications\')" href="#" ng-attr-tooltip="{{tooltip_applications}}" tooltip-placement="right">(?)</a>\n'+' <div class="header-button btn-group pull-right">\n'+" <a class=\"btn filter-selector\" style=\"{{applicationsSize === 10 ? 'width:290px':''}}\" ng-click=\"showModal('newApplication')\">\n"+' <span class="filter-label">Add New App</span>\n'+" </a>\n"+" </div>\n"+" </h2>\n"+" \n"+' <table class="table table-striped">\n'+' <tr ng-repeat="application in applications">\n'+" <td>{{application.name}}</td>\n"+' <td style="text-align: right">{{application.uuid}}</td>\n'+" </tr>\n"+" </table>\n"+" </div>\n
"+' <bsmodal id="regenerateCredentials"\n'+'
<TRUNCATED>
[16/34] building changes updating bower
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/efe34294/portal/js/libs/usergrid-libs.min.js
----------------------------------------------------------------------
diff --git a/portal/js/libs/usergrid-libs.min.js b/portal/js/libs/usergrid-libs.min.js
index b8bb360..0899b2b 100644
--- a/portal/js/libs/usergrid-libs.min.js
+++ b/portal/js/libs/usergrid-libs.min.js
@@ -1,4 +1,4 @@
-/*! usergrid@2.0.1 2014-03-27 */
+/*! usergrid@2.0.1 2014-03-28 */
!function(e,t){function M(e){var t=e.length,n=b.type(e);return b.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}function F(e){var t=_[e]={};return b.each(e.match(w)||[],function(e,n){t[n]=!0}),t}function P(e,n,r,i){if(b.acceptData(e)){var o,a,s=b.expando,u="string"==typeof n,l=e.nodeType,p=l?b.cache:e,f=l?e[s]:e[s]&&s;if(f&&p[f]&&(i||p[f].data)||!u||r!==t)return f||(l?e[s]=f=c.pop()||b.guid++:f=s),p[f]||(p[f]={},l||(p[f].toJSON=b.noop)),("object"==typeof n||"function"==typeof n)&&(i?p[f]=b.extend(p[f],n):p[f].data=b.extend(p[f].data,n)),o=p[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[b.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[b.camelCase(n)])):a=o,a}}function R(e,t,n){if(b.acceptData(e)){var r,i,o,a=e.nodeType,s=a?b.cache:e,u=a?e[b.expando]:b.expando;if(s[u]){if(t&&(o=n?s[u]:s[u].data)){b.isArray(t)?t=t.concat(b.map(t,b.camelCase)):t in o?t=[t]:(t=b.camelCase(t),t=t in o?[t]:t.split(" "));for(r=0,i=t.length;i>r;r++)dele
te o[t[r]];if(!(n?$:b.isEmptyObject)(o))return}(n||(delete s[u].data,$(s[u])))&&(a?b.cleanData([e],!0):b.support.deleteExpando||s!=s.window?delete s[u]:s[u]=null)}}}function W(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(B,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:O.test(r)?b.parseJSON(r):r}catch(o){}b.data(e,n,r)}else r=t}return r}function $(e){var t;for(t in e)if(("data"!==t||!b.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function it(){return!0}function ot(){return!1}function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function ft(e,t,n){if(t=t||0,b.isFunction(t))return b.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return b.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=b.grep(e,function(e){return 1===e.nodeType});if(ut.test(t))return b.filter(t,r,!n);t=b.filter(t,r)}return b.grep(e,function(e){return b.inArray(e,t)>=0==
=n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function Ht(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Mt(e,t){for(var n,r=0;null!=(n=e[r]);r++)b._data(n,"globalEval",!t||b._data(t[r],"globalEval"))}function _t(e,t){if(1===t.nodeType&&b.hasData(e)){var n,r,i,o=b._data(e),a=b._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)b.event.add(t,n,s[n][r])}a.data&&(a.data=b.extend({},a.data))}}function Ft(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!b.support.noCloneEvent&&t[b.expando]){i=b._data(t);for(r in i.events)b.removeEvent(t,r,i.handle);t.removeAttribute(b.expando)}"script"===n&&t.text!==e.text?(Ht(t
).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),b.support.html5Clone&&e.innerHTML&&!b.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Nt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function Ot(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||b.nodeName(o,n)?s.push(o):b.merge(s,Ot(o,n));return n===t||n&&b.nodeName(e,n)?b.merge([e],s):s}function Bt(e){Nt.test(e.type)&&(e.defaultChecked=e.checked)}function tn(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;i--;)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function
rn(e,t){for(var n,r,i,o=[],a=0,s=e.length;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(
e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(Pt||b("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=ln(e,t),Pt.detach()),Gt[e]=n),n}function ln(e,t){var n=b(t.createElement(e)).appendTo(t.body),r=b.css(n[0],"display");return n.remove(),r}function gn(e,t,n,r){var i;if(b.isArray(t))b.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==b.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(w)||[];if(
b.isFunction(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){function s(u){var l;return o[u]=!0,b.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||a||o[c]?a?!(l=c):t:(n.dataTypes.unshift(c),s(c),!1)}),l}var o={},a=e===jn;return s(n.dataTypes[0])||!o["*"]&&s("*")}function Mn(e,n){var r,i,o=b.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&b.extend(!0,e,r),e}function _n(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(s in c)s in r&&(n[c[s]]=r[s]);for(;"*"===l[0];)l.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in u)if(u[s]&&u[s].test(o)){l.unshift(s);break}if(l[0]in r)a=l[0];else{for(s in r){if(!l[0]||e.converters[s+" "+l[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function Fn(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataT
ype)),u[1])for(i in e.converters)a[i.toLowerCase()]=e.converters[i];for(;r=u[++s];)if("*"!==r){if("*"!==l&&l!==r){if(i=a[l+" "+r]||a["* "+r],!i)for(n in a)if(o=n.split(" "),o[1]===r&&(i=a[l+" "+o[0]]||a["* "+o[0]])){i===!0?i=a[n]:a[n]!==!0&&(r=o[0],u.splice(s--,0,r));break}if(i!==!0)if(i&&e["throws"])t=i(t);else try{t=i(t)}catch(c){return{state:"parsererror",error:i?c:"No conversion from "+l+" to "+r}}}l=r}return{state:"success",data:t}}function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function Kn(){return setTimeout(function(){Xn=t}),Xn=b.now()}function Zn(e,t){b.each(t,function(t,n){for(var r=(Qn[t]||[]).concat(Qn["*"]),i=0,o=r.length;o>i;i++)if(r[i].call(e,t,n))return})}function er(e,t,n){var r,i,o=0,a=Gn.length,s=b.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=Xn||Kn(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;u>a;a++)
l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:b.extend({},t),opts:b.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=b.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(tr(c,l.opts.specialEasing);a>o;o++)if(r=Gn[o].call(l,e,c,l.opts))return r;return Zn(l,c),b.isFunction(l.opts.start)&&l.opts.start.call(e,l),b.fx.timer(b.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function tr(e,t){var n,r,i,o,a;for(i in e)if(r=b.camelCase(i),o=t[r],n=e[i],b.isArray(n)&&(o=n[1],n=e[i]=n[0]),i!==r&&(e[r]=n,delete e[i]),a=b.css
Hooks[r],a&&"expand"in a){n=a.expand(n),delete e[r];for(i in n)i in e||(e[i]=n[i],t[i]=o)}else t[r]=o}function nr(e,t,n){var r,i,o,a,s,u,l,c,p,f=this,d=e.style,h={},g=[],m=e.nodeType&&nn(e);n.queue||(c=b._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,f.always(function(){f.always(function(){c.unqueued--,b.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===b.css(e,"display")&&"none"===b.css(e,"float")&&(b.support.inlineBlockNeedsLayout&&"inline"!==un(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",b.support.shrinkWrapBlocks||f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(i in t)if(a=t[i],Vn.exec(a)){if(delete t[i],u=u||"toggle"===a,a===(m?"hide":"show"))continue;g.push(i)}if(o=g.length){s=b._data(e,"fxshow")||b._data(e,"fxshow",
{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?b(e).show():f.done(function(){b(e).hide()}),f.done(function(){var t;b._removeData(e,"fxshow");for(t in h)b.style(e,t,h[t])});for(i=0;o>i;i++)r=g[i],l=f.createTween(r,m?s[r]:0),h[r]=s[r]||b.style(e,r),r in s||(s[r]=l.start,m&&(l.end=l.start,l.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function or(e){return b.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}var n,r,i=typeof t,o=e.document,a=e.location,s=e.jQuery,u=e.$,l={},c=[],p="1.9.1",f=c.concat,d=c.push,h=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,b=function(e,t){return new b.fn.init(e,t,r)},x=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^[\],
:{}\s]*$/,E=/(?:^|:|,)(?:\s*\[)+/g,S=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,j=/^-ms-/,D=/-([\da-z])/gi,L=function(e,t){return t.toUpperCase()},H=function(e){(o.addEventListener||"load"===e.type||"complete"===o.readyState)&&(q(),b.ready())},q=function(){o.addEventListener?(o.removeEventListener("DOMContentLoaded",H,!1),e.removeEventListener("load",H,!1)):(o.detachEvent("onreadystatechange",H),e.detachEvent("onload",H))};b.fn=b.prototype={jquery:p,constructor:b,init:function(e,n,r){var i,a;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof b?n[0]:n,b.merge(this,b.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,!0)),C.test(i[1])&&b.isPlainObject(n))for(i in n)b.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(a=o.getElementB
yId(i[2]),a&&a.parentNode){if(a.id!==i[2])return r.find(e);this.length=1,this[0]=a}return this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):b.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),b.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return h.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return b.each(this,e,t)},ready:function(e){return b.ready.promise().done(e),this},slice:function(){return this.pushStack(h.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(b.map(this,function(t,n){return e.cal
l(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:d,sort:[].sort,splice:[].splice},b.fn.init.prototype=b.fn,b.extend=b.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||b.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(o=arguments[u]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(b.isPlainObject(r)||(n=b.isArray(r)))?(n?(n=!1,a=e&&b.isArray(e)?e:[]):a=e&&b.isPlainObject(e)?e:{},s[i]=b.extend(c,a,r)):r!==t&&(s[i]=r));return s},b.extend({noConflict:function(t){return e.$===b&&(e.$=u),t&&e.jQuery===b&&(e.jQuery=s),b},isReady:!1,readyWait:1,holdReady:function(e){e?b.readyWait++:b.ready(!0)},ready:function(e){if(e===!0?!--b.readyWait:!b.isReady){if(!o.body)return setTimeout(b.ready);b.isReady=!0,e!==!0&&--b.readyWait>0||(n.resolveWith(o,[b]),b.fn.trigger&&b(o).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===b.type(e)},
isArray:Array.isArray||function(e){return"array"===b.type(e)},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(!e||"object"!==b.type(e)||e.nodeType||b.isWindow(e))return!1;try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||y.call(e,r)},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=b.buildFragment([e],t,i),i&&b(i).remove(),b.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.
replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&b.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(j,"ms-").replace(D,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a)for(;o>i&&(r=t.apply(e[i],n),r!==!1);i++);else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a)for(;o>i&&(r=t.call(e[i],i,e[i]),r!==!1);i++);else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:v&&!v.call(" ")?function(e){return
null==e?"":v.call(e)}:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?b.merge(n,"string"==typeof e?[e]:e):d.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(g)return g.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else for(;n[o]!==t;)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>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,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return f.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),b.isFunction(e)?(r=h.call(arguments,2),i=function(){return e.apply(n||this,r.concat(h.call(arguments)))},i.guid=e.guid=e.guid
||b.guid++,i):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===b.type(r)){o=!0;for(u in r)b.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,b.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(b(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),b.ready.promise=function(t){if(!n)if(n=b.Deferred(),"complete"===o.readyState)setTimeout(b.ready);else if(o.addEventListener)o.addEventListener("DOMContentLoaded",H,!1),e.addEventListener("load",H,!1);else{o.attachEvent("onreadystatechange",H),e.attachEvent("onload",H);var r=!1;try{r=null==e.frameElement&&o.documentElement}catch(i){}r&&r.doScroll&&function a(){if(!b.isReady){try{r.doScroll("left")}catch(e){return setTimeout(a,50)}q(),b.ready()}}()}return n.promise(t)},b.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.to
LowerCase()}),r=b(o);var _={};b.Callbacks=function(e){e="string"==typeof e?_[e]||F(e):b.extend({},e);var n,r,i,o,a,s,u=[],l=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=u.length,n=!0;u&&o>a;a++)if(u[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,u&&(l?l.length&&c(l.shift()):r?u=[]:p.disable())},p={add:function(){if(u){var t=u.length;!function i(t){b.each(t,function(t,n){var r=b.type(n);"function"===r?e.unique&&p.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})}(arguments),n?o=u.length:r&&(s=t,c(r))}return this},remove:function(){return u&&b.each(arguments,function(e,t){for(var r;(r=b.inArray(t,u,r))>-1;)u.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?b.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],this},disable:function(){return u=l=r=t,this},disabled:function(){return!u},lock:function(){return l=t,r||p.disable(),this},locked:function(){return!l},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u|
|i&&!l||(n?l.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},b.extend({Deferred:function(e){var t=[["resolve","done",b.Callbacks("once memory"),"resolved"],["reject","fail",b.Callbacks("once memory"),"rejected"],["notify","progress",b.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return b.Deferred(function(n){b.each(t,function(t,o){var a=o[0],s=b.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&b.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?b.extend(e,r):r}},i={};return r.pipe=r.then,b.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},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"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var s,u,l,t=0,n=h.call(arguments),r=n.length,i=1!==r||e&&b.isFunction(e.promise)?r:0,o=1===i?e:b.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?h.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}};if(r>1)for(s=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&b.isFunction(n[t].promise)?n[t].promise().done(a(t,l,n)).fail(o.reject).progress(a(t,u,s)):--i;return i||o.resolveWith(l,n),o.promise()}}),b.support=function(){var t,n,r,a,s,u,l,c,p,f,d=o.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{};s=o.createElement("select"),l=s.appendChild(o.createElement("option")),a=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t
={getSetAttribute:"t"!==d.className,leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:!!a.value,optSelected:l.selected,enctype:!!o.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==o.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===o.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!l.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}a=o.createElement("input"),a.setAttribute("value",""),t.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","t
"),a.setAttribute("name","t"),u=o.createDocumentFragment(),u.appendChild(a),t.appendChecked=a.checked,t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;return d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip,b(function(){var n,r,a,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",u=o.getElementsByTagName("body")[0];u&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",u.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",a=d.getElementsByTagName("td"),a[0].style.cssText="padding:0;margin:0;bo
rder:0;display:none",p=0===a[0].offsetHeight,a[0].style.display="",a[1].style.display="none",t.reliableHiddenOffsets=p&&0===a[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===d.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==u.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(o.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.fir
stChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(u.style.zoom=1)),u.removeChild(n),n=d=a=r=null)}),n=s=u=l=r=a=null,t}();var O=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,B=/([A-Z])/g;b.extend({cache:{},expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?b.cache[e[b.expando]]:e[b.expando],!!e&&!$(e)},data:function(e,t,n){return P(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return P(e,t,n,!0)},_removeData:function(e,t){return R(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&b.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),b.fn.extend({data:function(e,n){var r,i,o=this[0],a=0,s=null;if(e===t){if(this.length&&(s=b.data(o),1===o.nodeType&&!b._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>a;a++)i=r[a].name,i.indexOf(
"data-")||(i=b.camelCase(i.slice(5)),W(o,i,s[i]));b._data(o,"parsedAttrs",!0)}return s}return"object"==typeof e?this.each(function(){b.data(this,e)}):b.access(this,function(n){return n===t?o?W(o,e,b.data(o,e)):null:(this.each(function(){b.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}}),b.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=b._data(e,n),r&&(!i||b.isArray(r)?i=b._data(e,n,b.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=b.queue(e,t),r=n.length,i=n.shift(),o=b._queueHooks(e,t),a=function(){b.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return b._data(e,n)||b._data(e,n,{empty:b.Callbacks("once memory").add(function(){b._removeData(e,t+"queue"),b._removeData(e,n)})})}}),b.fn.extend({queue:function(e
,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?b.queue(this[0],e):n===t?this:this.each(function(){var t=b.queue(this,e,n);b._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&b.dequeue(this,e)})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(e,t){return e=b.fx?b.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,n){var r,i=1,o=b.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};for("string"!=typeof e&&(n=e,e=t),e=e||"fx";s--;)r=b._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var I,z,X=/[\t\r\n]/g,U=/\r/g,V=/^(?:input|select|textarea|button|object)$/i,Y=/^(?:a|area)$/i,J=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,G=/^(?:checked|selected)$/i,Q
=b.support.getSetAttribute,K=b.support.input;b.fn.extend({attr:function(e,t){return b.access(this,b.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,t){return b.access(this,b.prop,e,t,arguments.length>1)},removeProp:function(e){return e=b.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):" ")){for(o=0;i=t[o++];)0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=b.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||
"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):"")){for(o=0;i=t[o++];)for(;r.indexOf(" "+i+" ")>=0;)r=r.replace(" "+i+" "," ");n.className=e?b.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return this.each(b.isFunction(e)?function(n){b(this).toggleClass(e.call(this,n,this.className,t),t)}:function(){if("string"===n)for(var o,a=0,s=b(this),u=t,l=e.match(w)||[];o=l[a++];)u=r?u:!s.hasClass(o),s[u?"addClass":"removeClass"](o);else(n===i||"boolean"===n)&&(this.className&&b._data(this,"__className__",this.className),this.className=this.className||e===!1?"":b._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(X," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];return arguments.length?(i=b.isFunction(e),this.each(function(n){var o,a=b(this);1===this.nodeType
&&(o=i?e.call(this,n,a.val()):e,null==o?o="":"number"==typeof o?o+="":b.isArray(o)&&(o=b.map(o,function(e){return null==e?"":e+""})),r=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))})):o?(r=b.valHooks[o.type]||b.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(U,""):null==n?"":n)):void 0}}),b.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(b.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&b.nodeName(n.parentNode,"optgroup"))){if(t=b(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=b.makeArray(t);return b(e).find("option").each(function(){this.selected=b.inA
rray(b(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var o,a,s,u=e.nodeType;return e&&3!==u&&8!==u&&2!==u?typeof e.getAttribute===i?b.prop(e,n,r):(a=1!==u||!b.isXMLDoc(e),a&&(n=n.toLowerCase(),o=b.attrHooks[n]||(J.test(n)?z:I)),r===t?o&&a&&"get"in o&&null!==(s=o.get(e,n))?s:(typeof e.getAttribute!==i&&(s=e.getAttribute(n)),null==s?t:s):null!==r?o&&a&&"set"in o&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r):(b.removeAttr(e,n),t)):void 0},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)for(;n=o[i++];)r=b.propFix[n]||n,J.test(n)?!Q&&G.test(n)?e[b.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:b.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!b.support.radioValue&&"radio"===t&&b.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpad
ding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;return e&&3!==s&&8!==s&&2!==s?(a=1!==s||!b.isXMLDoc(e),a&&(n=b.propFix[n]||n,o=b.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]):void 0},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):V.test(e.nodeName)||Y.test(e.nodeName)&&e.href?0:t}}}}),z={get:function(e,n){var r=b.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?K&&Q?null!=i:G.test(n)?e[b.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?b.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&b.propFix[n]||n,n):e[b.camelCase("default-"+n)]=e[n]=!0,n}},K&&Q||(b.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return b.
nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t},set:function(e,n,r){return b.nodeName(e,"input")?(e.defaultValue=n,t):I&&I.set(e,n,r)
}}),Q||(I=b.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},b.attrHooks.contenteditable={get:I.get,set:function(e,t,n){I.set(e,""===t?!1:t,n)}},b.each(["width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),b.support.hrefNormalized||(b.each(["href","src","width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),b.each(["href","src"],function(e,t){b.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),b.support.style||(b.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),b.support.optSelected|
|(b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),b.support.enctype||(b.propFix.enctype="encoding"),b.support.checkOn||b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,n){return b.isArray(n)?e.checked=b.inArray(b(e).val(),n)>=0:t}})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;b.event={global:{},add:function(e,n,r,o,a){var s,u,l,c,p,f,d,h,g,m,y,v=b._data(e);if(v){for(r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=b.guid++),(u=v.events)||(u=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof b===i||e&&b.event.triggered===e.type?t:b.event.dispatch.apply(f.elem,arguments)},f
.elem=e),n=(n||"").match(w)||[""],l=n.length;l--;)s=rt.exec(n[l])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),p=b.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=b.event.special[g]||{},d=b.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&b.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=u[g])||(h=u[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),b.event.global[g]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,p,f,d,h,g,m=b.hasData(e)&&b._data(e);if(m&&(c=m.events)){for(t=(t||"").match(w)||[""],l=t.length;l--;)if(s=rt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){for(p=b.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=f.l
ength;o--;)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||b.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)b.event.remove(e,d+t[l],n,r,!0);b.isEmptyObject(c)&&(delete m.handle,b._removeData(e,"events"))}},trigger:function(n,r,i,a){var s,u,l,c,p,f,d,h=[i||o],g=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];if(l=f=i=i||o,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+b.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),u=0>g.indexOf(":")&&"on"+g,n=n[b.expando]?n:new b.Event(g,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:b.makeArray(r,[n]),p=b.event.special[g]||{},a||!p.trigger||
p.trigger.apply(i,r)!==!1)){if(!a&&!p.noBubble&&!b.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(l=l.parentNode);l;l=l.parentNode)h.push(l),f=l;f===(i.ownerDocument||o)&&h.push(f.defaultView||f.parentWindow||e)}for(d=0;(l=h[d++])&&!n.isPropagationStopped();)n.type=d>1?c:p.bindType||g,s=(b._data(l,"events")||{})[n.type]&&b._data(l,"handle"),s&&s.apply(l,r),s=u&&l[u],s&&b.acceptData(l)&&s.apply&&s.apply(l,r)===!1&&n.preventDefault();if(n.type=g,!(a||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===g&&b.nodeName(i,"a")||!b.acceptData(i)||!u||!i[g]||b.isWindow(i))){f=i[u],f&&(i[u]=null),b.event.triggered=g;try{i[g]()}catch(v){}b.event.triggered=t,f&&(i[u]=f)}return n.result}},dispatch:function(e){e=b.event.fix(e);var n,r,i,o,a,s=[],u=h.call(arguments),l=(b._data(this,"events")||{})[e.type]||[],c=b.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){for(s=b.event.handlers.call(this,e,l),n=
0;(o=s[n++])&&!e.isPropagationStopped();)for(e.currentTarget=o.elem,a=0;(i=o.handlers[a++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((b.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,u),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(o=[],a=0;u>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?b(r,this).index(l)>=0:b.find(r,this,null,[l]).length),o[r]&&o.push(i);o.length&&s.push({elem:l,handlers:o})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[b.expando])return e;var t,n,r,i=e.type,a=e,s=this.fixHooks[i];for(s||(this.fixHooks[i]=s=tt.test(i)?this.mouse
Hooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new b.Event(a),t=r.length;t--;)n=r[t],e[n]=a[n];return e.target||(e.target=a.srcElement||o),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,a):e},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 fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,a,s=n.button,u=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||o,a=i.documentElement,r=i.body,e.pageX=n.clientX+(a&&a.scrollLeft||r&&r.scrollLeft||0)-(a&&a.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(a&&a.scrollTop||r&&r.sc
rollTop||0)-(a&&a.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&u&&(e.relatedTarget=u===e.target?n.toElement:u),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return b.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==o.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===o.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=b.extend(new b.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?b.event.trigger(i,null,t):b.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},b.removeEvent=o.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof
e[r]===i&&(e[r]=null),e.detachEvent(r,n))},b.Event=function(e,n){return this instanceof b.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&b.extend(this,n),this.timeStamp=e&&e.timeStamp||b.now(),this[b.expando]=!0,t):new b.Event(e,n)},b.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){b.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i
=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&b.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return b.nodeName(this,"form")?!1:(b.event.remove(this,"._submit"),t)}}),b.support.changeBubbles||(b.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(b.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this.
_just_changed=!0)}),b.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),b.event.simulate("change",this,e,!0)})),!1):(b.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!b._data(t,"changeBubbles")&&(b.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||b.event.simulate("change",this.parentNode,e,!0)}),b._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return b.event.remove(this,"._change"),!Z.test(this.nodeName)}}),b.support.focusinBubbles||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){b.event.simulate(t,e.target,b.event.fix(e),!0)};b.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}})
,b.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return b().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=b.guid++)),this.each(function(){b.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,b(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){b.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undeleg
ate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?b.event.trigger(e,n,r,!0):t}}),function(e,t){function rt(e){return Y.test(e+"")}function it(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>i.cacheLength&&delete e[t.shift()],e[n]=r}}function ot(e){return e[x]=!0,e}function at(e){var t=p.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function st(e,t,n,r){var i,o,a,s,u,l,f,g,m,v;if((t?t.ownerDocument||t:w)!==p&&c(t),t=t||p,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!d&&!r){if(i=J.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&y(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return H.apply(n,q.call(t.getElementsByTagName(e
),0)),n;if((a=i[3])&&T.getByClassName&&t.getElementsByClassName)return H.apply(n,q.call(t.getElementsByClassName(a),0)),n}if(T.qsa&&!h.test(e)){if(f=!0,g=x,m=t,v=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(l=ft(e),(f=t.getAttribute("id"))?g=f.replace(K,"\\$&"):t.setAttribute("id",g),g="[id='"+g+"'] ",u=l.length;u--;)l[u]=g+dt(l[u]);m=V.test(e)&&t.parentNode||t,v=l.join(",")}if(v)try{return H.apply(n,q.call(m.querySelectorAll(v),0)),n}catch(b){}finally{f||t.removeAttribute("id")}}}return wt(e.replace(W,"$1"),t,n,r)}function ut(e,t){var n=t&&e,r=n&&(~t.sourceIndex||j)-(~e.sourceIndex||j);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ct(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pt(e){return ot(function(t){return t=+t,ot(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;
)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ft(e,t){var n,r,o,a,s,u,l,c=E[e+" "];if(c)return t?0:c.slice(0);for(s=e,u=[],l=i.preFilter;s;){(!n||(r=$.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(o=[])),n=!1,(r=I.exec(s))&&(n=r.shift(),o.push({value:n,type:r[0].replace(W," ")}),s=s.slice(n.length));for(a in i.filter)!(r=U[a].exec(s))||l[a]&&!(r=l[a](r))||(n=r.shift(),o.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?st.error(e):E(e,u).slice(0)}function dt(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function ht(e,t,n){var i=t.dir,o=n&&"parentNode"===i,a=C++;return t.first?function(t,n,r){for(;t=t[i];)if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,s){var u,l,c,p=N+" "+a;if(s){for(;t=t[i];)if((1===t.nodeType||o)&&e(t,n,s))return!0}else for(;t=t[i];)if(1===t.nodeType||o)if(c=t[x]||(t[x]={}),(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,s)||r,l[1]===!0)return!0}}function gt(e){return
e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function mt(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function yt(e,t,n,r,i,o){return r&&!r[x]&&(r=yt(r)),i&&!i[x]&&(i=yt(i,o)),ot(function(o,a,s,u){var l,c,p,f=[],d=[],h=a.length,g=o||xt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:mt(g,f,e,s,u),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,u),r)for(l=mt(y,d),r(l,[],s,u),c=l.length;c--;)(p=l[c])&&(y[d[c]]=!(m[d[c]]=p));if(o){if(i||e){if(i){for(l=[],c=y.length;c--;)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}for(c=y.length;c--;)(p=y[c])&&(l=i?M.call(o,p):f[c])>-1&&(o[l]=!(a[l]=p))}}else y=mt(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)})}function vt(e){for(var t,n,r,o=e.length,a=i.relative[e[0].type],s=a||i.relative[" "],u=a?1:0,c=ht(function(e){return e===t},s,!0),p=ht(function(e){return M.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==l)||((t=n).nodeTyp
e?c(e,n,r):p(e,n,r))}];o>u;u++)if(n=i.relative[e[u].type])f=[ht(gt(f),n)];else{if(n=i.filter[e[u].type].apply(null,e[u].matches),n[x]){for(r=++u;o>r&&!i.relative[e[r].type];r++);return yt(u>1&>(f),u>1&&dt(e.slice(0,u-1)).replace(W,"$1"),n,r>u&&vt(e.slice(u,r)),o>r&&vt(e=e.slice(r)),o>r&&dt(e))}f.push(n)}return gt(f)}function bt(e,t){var n=0,o=t.length>0,a=e.length>0,s=function(s,u,c,f,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,T=l,C=s||a&&i.find.TAG("*",d&&u.parentNode||u),k=N+=null==T?1:Math.random()||.1;for(w&&(l=u!==p&&u,r=n);null!=(h=C[b]);b++){if(a&&h){for(g=0;m=e[g++];)if(m(h,u,c)){f.push(h);break}w&&(N=k,r=++n)}o&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,o&&b!==v){for(g=0;m=t[g++];)m(x,y,u,c);if(s){if(v>0)for(;b--;)x[b]||y[b]||(y[b]=L.call(f));y=mt(y)}H.apply(f,y),w&&!s&&y.length>0&&v+t.length>1&&st.uniqueSort(f)}return w&&(N=k,l=T),x};return o?ot(s):s}function xt(e,t,n){for(var r=0,i=t.length;i>r;r++)st(e,t[r],n);return n}function wt(e,t,n,r){var o,a,u,l,c,p=ft(e);if(!r&&1
===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(u=a[0]).type&&9===t.nodeType&&!d&&i.relative[a[1].type]){if(t=i.find.ID(u.matches[0].replace(et,tt),t)[0],!t)return n;e=e.slice(a.shift().value.length)}for(o=U.needsContext.test(e)?0:a.length;o--&&(u=a[o],!i.relative[l=u.type]);)if((c=i.find[l])&&(r=c(u.matches[0].replace(et,tt),V.test(a[0].type)&&t.parentNode||t))){if(a.splice(o,1),e=r.length&&dt(a),!e)return H.apply(n,q.call(r,0)),n;break}}return s(e,p)(r,t,d,n,V.test(e)),n}function Tt(){}var n,r,i,o,a,s,u,l,c,p,f,d,h,g,m,y,v,x="sizzle"+-new Date,w=e.document,T={},N=0,C=0,k=it(),E=it(),S=it(),A=typeof t,j=1<<31,D=[],L=D.pop,H=D.push,q=D.slice,M=D.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},_="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=F.replace("w","w#"),B="([*^$|!~]?=)",P="\\["+_+"*("+F+")"+_+"*(?:"+B+_+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+O+")|)|)"+_+"*\\]",R=":("+F+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((
?:\\\\.|[^\\\\()[\\]]|"+P.replace(3,8)+")*)|.*)\\)|)",W=RegExp("^"+_+"+|((?:^|[^\\\\])(?:\\\\.)*)"+_+"+$","g"),$=RegExp("^"+_+"*,"+_+"*"),I=RegExp("^"+_+"*([\\x20\\t\\r\\n\\f>+~])"+_+"*"),z=RegExp(R),X=RegExp("^"+O+"$"),U={ID:RegExp("^#("+F+")"),CLASS:RegExp("^\\.("+F+")"),NAME:RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:RegExp("^("+F.replace("w","w*")+")"),ATTR:RegExp("^"+P),PSEUDO:RegExp("^"+R),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+_+"*(even|odd|(([+-]|)(\\d*)n|)"+_+"*(?:([+-]|)"+_+"*(\\d+)|))"+_+"*\\)|)","i"),needsContext:RegExp("^"+_+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+_+"*((?:-\\d)?\\d*)"+_+"*\\)|)(?=[^-]|$)","i")},V=/[\x20\t\r\n\f]*[+~]/,Y=/^[^{]+\{\s*\[native code/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/'|\\/g,Z=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,et=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n
+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{q.call(w.documentElement.childNodes,0)[0].nodeType}catch(nt){q=function(e){for(var t,n=[];t=this[e++];)n.push(t);return n}}a=st.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},c=st.setDocument=function(e){var n=e?e.ownerDocument||e:w;return n!==p&&9===n.nodeType&&n.documentElement?(p=n,f=n.documentElement,d=a(n),T.tagNameNoComments=at(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),T.attributes=at(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),T.getByClassName=at(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),T.getByName=at(function(e){e.id=x+0,e.innerHTML="<a name='"+x+"'></a>
<div name='"+x+"'></div>",f.insertBefore(e,f.firstChild);var t=n.getElementsByName&&n.getElementsByName(x).length===2+n.getElementsByName(x+0).length;return T.getIdNotName=!n.getElementById(x),f.removeChild(e),t}),i.attrHandle=at(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==A&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},T.getIdNotName?(i.find.ID=function(e,t){if(typeof t.getElementById!==A&&!d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(i.find.ID=function(e,n){if(typeof n.getElementById!==A&&!d){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==A&&r.getAttributeNode("id").value===e?[r]:t:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!==A&
&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=T.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==A?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},i.find.NAME=T.getByName&&function(e,n){return typeof n.getElementsByName!==A?n.getElementsByName(name):t},i.find.CLASS=T.getByClassName&&function(e,n){return typeof n.getElementsByClassName===A||d?t:n.getElementsByClassName(e)},g=[],h=[":focus"],(T.qsa=rt(n.querySelectorAll))&&(at(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||h.push("\\["+_+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||h.push(":checked")}),at(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&h.push("[*^$]="+_+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length|
|h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(T.matchesSelector=rt(m=f.matchesSelector||f.mozMatchesSelector||f.webkitMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&at(function(e){T.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",R)}),h=RegExp(h.join("|")),g=RegExp(g.join("|")),y=rt(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)for(;t=t.parentNode;)if(t===e)return!0;return!1},v=f.compareDocumentPosition?function(e,t){var r;return e===t?(u=!0,0):(r=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&r||e.parentNode&&11===e.parentNode.nodeType?e===n||y(w,e)?-1:t===n||y(w,t)?1:0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t
];if(e===t)return u=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:0;if(o===a)return ut(e,t);for(r=e;r=r.parentNode;)s.unshift(r);for(r=t;r=r.parentNode;)l.unshift(r);for(;s[i]===l[i];)i++;return i?ut(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},u=!1,[0,0].sort(v),T.detectDuplicates=u,p):p},st.matches=function(e,t){return st(e,null,null,t)},st.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Z,"='$1']"),!(!T.matchesSelector||d||g&&g.test(t)||h.test(t)))try{var n=m.call(e,t);if(n||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return st(t,p,null,[e]).length>0},st.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},st.attr=function(e,t){var n;return(e.ownerDocument||e)!==p&&c(e),d||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):d||T.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},st.error=function(e){throw Error("Syntax error, unrecognized expression: "
+e)},st.uniqueSort=function(e){var t,n=[],r=1,i=0;if(u=!T.detectDuplicates,e.sort(v),u){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));for(;i--;)e.splice(n[i],1)}return e},o=st.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=st.selectors={cacheLength:50,createPseudo:ot,match:U,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),"~="===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]||st.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]&&st.error(e[0]),e},PSEUDO:function(e
){var t,n=!e[5]&&e[2];return U.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&z.test(n)&&(t=ft(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){return"*"===e?function(){return!0}:(e=e.replace(et,tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[e+" "];return t||(t=RegExp("(^|"+_+")"+e+"("+_+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=st.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),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u
){var l,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){for(;g;){for(p=t;p=p[g];)if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){for(c=m[x]||(m[x]={}),l=c[e]||[],d=l[0]===N&&l[1],f=l[0]===N&&l[2],p=d&&m.childNodes[d];p=++d&&p&&p[g]||(f=d=0)||h.pop();)if(1===p.nodeType&&++f&&p===t){c[e]=[N,d,f];break}}else if(v&&(l=(t[x]||(t[x]={}))[e])&&l[0]===N)f=l[1];else for(;(p=++d&&p&&p[g]||(f=d=0)||h.pop())&&((s?p.nodeName.toLowerCase()!==y:1!==p.nodeType)||!++f||(v&&((p[x]||(p[x]={}))[e]=[N,f]),p!==t)););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()]||st.error("unsupported pseudo: "+e);return r[x]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ot(function(e,n){for(var i,o=r(e,t),a=o.length;a--;)i=M.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){r
eturn r(e,0,n)}):r}},pseudos:{not:ot(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[x]?ot(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ot(function(e){return function(t){return st(e,t).length>0}}),contains:ot(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ot(function(e){return X.test(e||"")||st.error("unsupported lang: "+e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=d?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.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 Q.test(e.nodeName)},input:function(e){return G.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:pt(function(){return[0]}),last:pt(function(e,t){return[t-1]}),eq:pt(function(e,t,n){return[0>n?n+t:n]}),even:pt(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:pt(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:pt(function(e,t,n){for(var r
=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:pt(function(e,t,n){for(var r=0>n?n+t:n;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[n]=lt(n);for(n in{submit:!0,reset:!0})i.pseudos[n]=ct(n);s=st.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){for(t||(t=ft(e)),n=t.length;n--;)o=vt(t[n]),o[x]?r.push(o):i.push(o);o=S(e,bt(i,r))}return o},i.pseudos.nth=i.pseudos.eq,i.filters=Tt.prototype=i.pseudos,i.setFilters=new Tt,c(),st.attr=b.attr,b.find=st,b.expr=st.selectors,b.expr[":"]=b.expr.pseudos,b.unique=st.uniqueSort,b.text=st.getText,b.isXMLDoc=st.isXML,b.contains=st.contains}(e);var at=/Until$/,st=/^(?:parents|prev(?:Until|All))/,ut=/^.[^:#\[\.,]*$/,lt=b.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};b.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return r=this,this.pushStack(b(e).filter(function(){for(t=0;i>t;t++)if(b.contains(r[t],this))return!0}));for(n=[],t=0;i>t;t++)b.find(e,th
is[t],n);return n=this.pushStack(i>1?b.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=b(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(b.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1))},filter:function(e){return this.pushStack(ft(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?lt.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=lt.test(e)||"string"!=typeof e?b(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n.ownerDocument&&n!==t&&11!==n.nodeType;){if(a?a.index(n)>-1:b.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}return this.pushStack(o.length>1?b.unique(o):o)},index:function(e){return e?"string"==typeof e?b.inArray(this[0],b(e)):b.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==type
of e?b(e,t):b.makeArray(e&&e.nodeType?[e]:e),r=b.merge(this.get(),n);return this.pushStack(b.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),b.fn.andSelf=b.fn.addBack,b.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(e,t,n){return b.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(e,t,n){return b.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return b.dir(e,"previousSibling",n)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.merge([],e.childNodes)}},function(e,t){b.
fn[e]=function(n,r){var i=b.map(this,t,n);return at.test(e)||(r=n),r&&"string"==typeof r&&(i=b.filter(r,i)),i=this.length>1&&!ct[e]?b.unique(i):i,this.length>1&&st.test(e)&&(i=i.reverse()),this.pushStack(i)
}}),b.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?b.find.matchesSelector(t[0],e)?[t[0]]:[]:b.find.matches(e,t)},dir:function(e,n,r){for(var i=[],o=e[n];o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!b(o).is(r));)1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Nt=/^(?:checkbox|radio)$/i,Ct=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,
"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:b.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(o),Dt=jt.appendChild(o.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,b.fn.extend({text:function(e){return b.access(this,function(e){return e===t?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e))return this.each(function(t){b(this).wrapAll(e.call(this,t))});if(this[0]){var t=b(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return t
his},wrapInner:function(e){return this.each(b.isFunction(e)?function(t){b(this).wrapInner(e.call(this,t))}:function(){var t=b(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=b.isFunction(e);return this.each(function(n){b(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){b.nodeName(this,"body")||b(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function
(e,t){for(var n,r=0;null!=(n=this[r]);r++)(!e||b.filter(e,[n]).length>0)&&(t||1!==n.nodeType||b.cleanData(Ot(n)),n.parentNode&&(t&&b.contains(n.ownerDocument,n)&&Mt(Ot(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&b.cleanData(Ot(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&b.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return b.clone(this,e,t)})},html:function(e){return b.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!b.support.htmlSerialize&&mt.test(e)||!b.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(b.cleanData(Ot(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)}
,null,e,arguments.length)},replaceWith:function(e){var t=b.isFunction(e);return t||"string"==typeof e||(e=b(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;n&&(b(this).remove(),n.insertBefore(e,t))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=f.apply([],e);var i,o,a,s,u,l,c=0,p=this.length,d=this,h=p-1,g=e[0],m=b.isFunction(g);if(m||!(1>=p||"string"!=typeof g||b.support.checkClone)&&Ct.test(g))return this.each(function(i){var o=d.eq(i);m&&(e[0]=g.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(p&&(l=b.buildFragment(e,this[0].ownerDocument,!1,this),i=l.firstChild,1===l.childNodes.length&&(l=i),i)){for(n=n&&b.nodeName(i,"tr"),s=b.map(Ot(l,"script"),Ht),a=s.length;p>c;c++)o=l,c!==h&&(o=b.clone(o,!0,!0),a&&b.merge(s,Ot(o,"script"))),r.call(n&&b.nodeName(this[c],"table")?Lt(this[c],"tbody"):this[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,b.map(s,qt),c=0;a>c;c++)o=s[c],kt.test(o.type||"")&&!b._data(o,"glo
balEval")&&b.contains(u,o)&&(o.src?b.ajax({url:o.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):b.globalEval((o.text||o.textContent||o.innerHTML||"").replace(St,"")));l=i=null}return this}}),b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){b.fn[e]=function(e){for(var n,r=0,i=[],o=b(e),a=o.length-1;a>=r;r++)n=r===a?this:this.clone(!0),b(o[r])[t](n),d.apply(i,n.get());return this.pushStack(i)}}),b.extend({clone:function(e,t,n){var r,i,o,a,s,u=b.contains(e.ownerDocument,e);if(b.support.html5Clone||b.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(b.support.noCloneEvent&&b.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||b.isXMLDoc(e)))for(r=Ot(o),s=Ot(e),a=0;null!=(i=s[a]);++a)r[a]&&Ft(i,r[a]);if(t)if(n)for(s=s||Ot(e),r=r||Ot(o),a=0;null!=(i=s[a]);a++)_t(i,r[a]);else _t(e,o);return r=Ot(o,"script"),r.length>0&
&Mt(r,!u&&Ot(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){for(var i,o,a,s,u,l,c,p=e.length,f=dt(t),d=[],h=0;p>h;h++)if(o=e[h],o||0===o)if("object"===b.type(o))b.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){for(s=s||f.appendChild(t.createElement("div")),u=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[u]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];i--;)s=s.lastChild;if(!b.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!b.support.tbody)for(o="table"!==u||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;i--;)b.nodeName(l=o.childNodes[i],"tbody")&&!l.childNodes.length&&o.removeChild(l);for(b.merge(d,s.childNodes),s.textContent="";s.firstChild;)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));for(s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;o=d[h++];)if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),
"script"),a&&Mt(s),n))for(i=0;o=s[i++];)kt.test(o.type||"")&&n.push(o);return s=null,f},cleanData:function(e,t){for(var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n.length;
i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px"),b.sup
port.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=fu
nction(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u}),b.each(["height","width"],function(e,n){b.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(b.css(e,"display"))?b.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,i),i):0)}}}),b.support.opacity||(b.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=b.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===b.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),
""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),b(function(){b.support.reliableMarginRight||(b.cssHooks.marginRight={get:function(e,n){return n?b.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!b.support.pixelPosition&&b.fn.position&&b.each(["top","left"],function(e,n){b.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?b(e).position()[n]+"px":r):t}}})}),b.expr&&b.expr.filters&&(b.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!b.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||b.css(e,"display"))},b.expr.filters.visible=function(e){return!b.expr.filters.hidden(e)}),b.each({margin:"",padding:"",border:"Width"},function(e,t){b.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(b.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:i
nput|select|textarea|keygen)/i;b.fn.extend({serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=b.prop(this,"elements");return e?b.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!b(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Nt.test(e))}).map(function(e,t){var n=b(this).val();return null==n?null:b.isArray(n)?b.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),b.param=function(e,n){var r,i=[],o=function(e,t){t=b.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=b.ajaxSettings&&b.ajaxSettings.traditional),b.isArray(e)||e.jquery&&!b.isPlainObject(e))b.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")},b.each("blur focus focusin focusout load resize scroll unload click dblclick moused
own mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){b.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),b.fn.hover=function(e,t){return this.mouseenter(e).mouseleave(t||e)};var mn,yn,vn=b.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Nn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Cn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=b.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=a.href}catch(Ln){yn=o.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[],b.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),b.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&b.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o
=arguments,s.html(i?b("<div>").append(b.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},b.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){b.fn[t]=function(e){return this.on(t,e)}}),b.each(["get","post"],function(e,n){b[n]=function(e,r,i,o){return b.isFunction(r)&&(o=o||i,i=r,r=t),b.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),b.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Nn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t
){return t?Mn(Mn(e,b.ajaxSettings),t):Mn(b.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){function k(e,n,r,i){var c,y,v,w,T,C=n;2!==x&&(x=2,s&&clearTimeout(s),l=t,a=i||"",N.readyState=e>0?4:0,r&&(w=_n(p,N,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=N.getResponseHeader("Last-Modified"),T&&(b.lastModified[o]=T),T=N.getResponseHeader("etag"),T&&(b.etag[o]=T)),204===e?(c=!0,C="nocontent"):304===e?(c=!0,C="notmodified"):(c=Fn(p,w),C=c.state,y=c.data,v=c.error,c=!v)):(v=C,(e||!C)&&(C="error",0>e&&(e=0))),N.status=e,N.statusText=(n||C)+"",c?h.resolveWith(f,[y,C,N]):h.rejectWith(f,[N,C,v]),N.statusCode(m),m=t,u&&d.trigger(c?"ajaxSuccess":"ajaxError",[N,p,c?y:v]),g.fireWith(f,[N,C]),u&&(d.trigger("ajaxComplete",[N,p]),--b.active||b.event.trigger("ajaxStop")))}"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,u,l,c,p=b.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?b(f):b.event,h=b.Deferred(),g=b.Callbacks("once memory"),m=p.statusCode||{}
,y={},v={},x=0,T="canceled",N={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!c)for(c={};t=Tn.exec(a);)c[t[1].toLowerCase()]=t[2];t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)m[t]=[m[t],e[t]];else N.always(e[N.status]);return this},abort:function(e){var t=e||T;return l&&l.abort(t),k(0,t),this}};if(h.promise(N).complete=g.add,N.success=N.done,N.error=N.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=b.trim(p.dataType||"*").toLowerCase().match(w)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?80:443))==(mn[3]||("http:"===mn[1]?80:443)))),p.data&&p.processData&&
"string"!=typeof p.data&&(p.data=b.param(p.data,p.traditional)),qn(An,p,n,N),2===x)return N;u=p.global,u&&0===b.active++&&b.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Cn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(b.lastModified[o]&&N.setRequestHeader("If-Modified-Since",b.lastModified[o]),b.etag[o]&&N.setRequestHeader("If-None-Match",b.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&N.setRequestHeader("Content-Type",p.contentType),N.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)N.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,N,p)===!1||2===x))return N.abort();T="abort";for(i in{success:1,error:1,complete:1})N[i](p[i]);if(l=qn(j
n,p,n,N)){N.readyState=1,u&&d.trigger("ajaxSend",[N,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){N.abort("timeout")},p.timeout));try{x=1,l.send(y,k)}catch(C){if(!(2>x))throw C;k(-1,C)}}else k(-1,"No Transport");return N},getScript:function(e,n){return b.get(e,t,n,"script")},getJSON:function(e,t,n){return b.get(e,t,n,"json")}}),b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return b.globalEval(e),e}}}),b.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),b.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=o.head||b("head")[0]||o.documentElement;return{send:function(t,i){n=o.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&
&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var On=[],Bn=/(=)\?(?=&|$)|\?\?/;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=On.pop()||b.expando+"_"+vn++;return this[e]=!0,e}}),b.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=b.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||b.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,On.push(o)),s&&b.isFunction(a)&&a(s[0]),s=
a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};b.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=b.ajaxSettings.xhr(),b.support.cors=!!Rn&&"withCredentials"in Rn,Rn=b.support.ajax=!!Rn,Rn&&b.ajaxTransport(function(n){if(!n.crossDomain||b.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=b.noop,$n&&delete Pn[a]),i)4!==u.readyState&&u.abort();else{p={},s=u.status,l=u.getAllResponseHeaders(),"string"==typeof u.responseText&&(p.te
xt=u.responseText);try{c=u.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,l)},n.async?4===u.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},b(e).unload($n)),Pn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+x+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yn.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(b.cssNumber[e]?"":"px"),"px"!==r&&s){s=b.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,b.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};b.Animation=b.extend(er,{tweener:function(e,t){b.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}}),b.Tween=rr,rr.prototype={constructor:rr,init
:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(b.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?b.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=b.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){b.fx.step[e.prop]?b.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[b.cssProps[e.prop]]||b.cssHooks[e.prop])?b.style(e.elem,e.prop,e.now+e.unit):e.el
em[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},b.each(["toggle","show","hide"],function(e,t){var n=b.fn[t];b.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),b.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=b.isEmptyObject(e),o=b.speed(t,n,r),a=function(){var t=er(this,b.extend({},e),o);a.finish=function(){t.stop(!0)},(i||b._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=b.timers,a=b._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n
)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&b.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=b._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=b.timers,a=r?r.length:0;for(n.finish=!0,b.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),b.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){b.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),b.speed=function(e,t,n){var r=e&&"object"==typeof e?b.extend({},e):{complete:n||!n&&t||b.isFunction(e)&&e,duration:e,easing:n&&t||t&&!b.isFunction(t)&&t};return r.duration
<TRUNCATED>
[17/34] git commit: building changes updating bower
Posted by sn...@apache.org.
building changes
updating bower
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/efe34294
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/efe34294
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/efe34294
Branch: refs/pull/86/head
Commit: efe34294213c60265cebe5a1ff8a71d9ca648429
Parents: 9e43523
Author: Shawn Feldman <sh...@gmail.com>
Authored: Fri Mar 28 17:00:47 2014 -0600
Committer: Shawn Feldman <sh...@gmail.com>
Committed: Fri Mar 28 17:00:47 2014 -0600
----------------------------------------------------------------------
portal/bower.json | 6 +--
portal/dist/appsvc-ui.2.0.1.zip | Bin 17166351 -> 17166526 bytes
portal/index-debug.html | 39 +++++++++++++++++--
portal/index.html | 39 +++++++++++++++++--
portal/js/libs/usergrid-libs.min.js | 2 +-
portal/js/usergrid-dev.min.js | 2 +-
portal/js/usergrid.min.js | 2 +-
.../instrument/js/usergrid-coverage.min.js | 2 +-
.../test/coverage/instrument/js/usergrid.min.js | 2 +-
9 files changed, 80 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/efe34294/portal/bower.json
----------------------------------------------------------------------
diff --git a/portal/bower.json b/portal/bower.json
index 85c9d35..ac827be 100644
--- a/portal/bower.json
+++ b/portal/bower.json
@@ -1,6 +1,6 @@
{
- "name": "usergrid-portal-nomax",
- "version": "2.0.42",
+ "name": "usergrid-portal",
+ "version": "2.0.1",
"ignore": [
".jshintrc",
"**/*.txt",
@@ -8,7 +8,7 @@
"css/",
"img/",
"archive/",
- "dist/archive",
+ "dist/appsvc-ui/archive",
"bower_components/",
"scripts/",
"sdk/",
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/efe34294/portal/dist/appsvc-ui.2.0.1.zip
----------------------------------------------------------------------
diff --git a/portal/dist/appsvc-ui.2.0.1.zip b/portal/dist/appsvc-ui.2.0.1.zip
index b10ff37..8cec035 100644
Binary files a/portal/dist/appsvc-ui.2.0.1.zip and b/portal/dist/appsvc-ui.2.0.1.zip differ
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/efe34294/portal/index-debug.html
----------------------------------------------------------------------
diff --git a/portal/index-debug.html b/portal/index-debug.html
index 3435072..cfc70bd 100644
--- a/portal/index-debug.html
+++ b/portal/index-debug.html
@@ -61,9 +61,42 @@
</div>
<div id="intro-3-side-menu">
- <div class="nav-collapse collapse" id="sideMenu">
- <ul class="nav nav-list" menu="sideMenu"><li class="option active" ng-cloak=""><a data-ng-href="#!/org-overview"><i class="pictogram">🕪</i>Org Administration</a></li><li class="option " ng-cloak=""><a data-ng-href="#!/getting-started/setup"><i class="pictogram">🚀</i>Getting Started</a></li><li class="option " ng-cloak=""><a data-ng-href="#!/app-overview/summary"><i class="pictogram"></i>App Overview</a><ul class="nav nav-list"><li><a data-ng-href="#!/app-overview/summary"><i class="pictogram sub">📱</i>Summary</a></li></ul></li><li class="option " ng-cloak=""><a data-ng-href="#!/users"><i class="pictogram">👤</i>Users</a><ul class="nav nav-list"><li><a data-ng-href="#!/users"><i class="pictogram sub">👤</i>Users</a></li></ul><ul class="nav nav-list"><li><a data-ng-href="#!/groups"><i class="pictogram sub">👥</i>Groups</a></li></ul><ul class="nav nav-list"><li><a data-ng-href="#!/roles"><i class="pictogram sub"></i>Role
s</a></li></ul></li><li class="option " ng-cloak=""><a data-ng-href="#!/data"><i class="pictogram">📸</i>Data</a><ul class="nav nav-list"><li><a data-ng-href="#!/data"><i class="pictogram sub">📾</i>Collections</a></li></ul></li><li class="option " ng-cloak=""><a data-ng-href="#!/activities"><i class="pictogram"></i>Activities</a></li><li class="option " ng-cloak=""><a data-ng-href="#!/shell"><i class="pictogram">⌨</i>Shell</a></li></ul></div>
- </div>
+ <div class="nav-collapse collapse" id="sideMenu">
+ <ul class="nav nav-list" menu="sideMenu">
+ <li class="option active" ng-cloak=""><a data-ng-href="#!/org-overview"><i class="pictogram">
+ 🕪</i>Org Administration</a></li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/getting-started/setup"><i class="pictogram">
+ 🚀</i>Getting Started</a></li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/app-overview/summary"><i class="pictogram">
+ </i>App Overview</a>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/app-overview/summary"><i class="pictogram sub">📱</i>Summary</a>
+ </li>
+ </ul>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/users"><i class="pictogram">👤</i>Users</a>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/users"><i class="pictogram sub">👤</i>Users</a></li>
+ </ul>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/groups"><i class="pictogram sub">👥</i>Groups</a></li>
+ </ul>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/roles"><i class="pictogram sub"></i>Roles</a></li>
+ </ul>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/data"><i class="pictogram">📸</i>Data</a>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/data"><i class="pictogram sub">📾</i>Collections</a></li>
+ </ul>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/activities"><i class="pictogram"></i>Activities</a>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/shell"><i class="pictogram">⌨</i>Shell</a>
+ </li>
+ </ul>
+ </div>
+ </div>
</div>
</section>
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/efe34294/portal/index.html
----------------------------------------------------------------------
diff --git a/portal/index.html b/portal/index.html
index 883c077..de8090f 100644
--- a/portal/index.html
+++ b/portal/index.html
@@ -61,9 +61,42 @@
</div>
<div id="intro-3-side-menu">
- <div class="nav-collapse collapse" id="sideMenu">
- <ul class="nav nav-list" menu="sideMenu"><li class="option active" ng-cloak=""><a data-ng-href="#!/org-overview"><i class="pictogram">🕪</i>Org Administration</a></li><li class="option " ng-cloak=""><a data-ng-href="#!/getting-started/setup"><i class="pictogram">🚀</i>Getting Started</a></li><li class="option " ng-cloak=""><a data-ng-href="#!/app-overview/summary"><i class="pictogram"></i>App Overview</a><ul class="nav nav-list"><li><a data-ng-href="#!/app-overview/summary"><i class="pictogram sub">📱</i>Summary</a></li></ul></li><li class="option " ng-cloak=""><a data-ng-href="#!/users"><i class="pictogram">👤</i>Users</a><ul class="nav nav-list"><li><a data-ng-href="#!/users"><i class="pictogram sub">👤</i>Users</a></li></ul><ul class="nav nav-list"><li><a data-ng-href="#!/groups"><i class="pictogram sub">👥</i>Groups</a></li></ul><ul class="nav nav-list"><li><a data-ng-href="#!/roles"><i class="pictogram sub"></i>Role
s</a></li></ul></li><li class="option " ng-cloak=""><a data-ng-href="#!/data"><i class="pictogram">📸</i>Data</a><ul class="nav nav-list"><li><a data-ng-href="#!/data"><i class="pictogram sub">📾</i>Collections</a></li></ul></li><li class="option " ng-cloak=""><a data-ng-href="#!/activities"><i class="pictogram"></i>Activities</a></li><li class="option " ng-cloak=""><a data-ng-href="#!/shell"><i class="pictogram">⌨</i>Shell</a></li></ul></div>
- </div>
+ <div class="nav-collapse collapse" id="sideMenu">
+ <ul class="nav nav-list" menu="sideMenu">
+ <li class="option active" ng-cloak=""><a data-ng-href="#!/org-overview"><i class="pictogram">
+ 🕪</i>Org Administration</a></li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/getting-started/setup"><i class="pictogram">
+ 🚀</i>Getting Started</a></li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/app-overview/summary"><i class="pictogram">
+ </i>App Overview</a>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/app-overview/summary"><i class="pictogram sub">📱</i>Summary</a>
+ </li>
+ </ul>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/users"><i class="pictogram">👤</i>Users</a>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/users"><i class="pictogram sub">👤</i>Users</a></li>
+ </ul>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/groups"><i class="pictogram sub">👥</i>Groups</a></li>
+ </ul>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/roles"><i class="pictogram sub"></i>Roles</a></li>
+ </ul>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/data"><i class="pictogram">📸</i>Data</a>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/data"><i class="pictogram sub">📾</i>Collections</a></li>
+ </ul>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/activities"><i class="pictogram"></i>Activities</a>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/shell"><i class="pictogram">⌨</i>Shell</a>
+ </li>
+ </ul>
+ </div>
+ </div>
</div>
</section>
[21/34] building changes updating bower
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/efe34294/portal/js/usergrid-dev.min.js
----------------------------------------------------------------------
diff --git a/portal/js/usergrid-dev.min.js b/portal/js/usergrid-dev.min.js
index f79f9dc..4b4d84f 100644
--- a/portal/js/usergrid-dev.min.js
+++ b/portal/js/usergrid-dev.min.js
@@ -1,4 +1,4 @@
-/*! usergrid@2.0.1 2014-03-27 */
+/*! usergrid@2.0.1 2014-03-28 */
(function(exports, global) {
global["true"] = exports;
"use strict";
[03/34] minor css tweaks to embedded help and fix for if 25948route
is null
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d3017f28/portal/js/usergrid.min.js
----------------------------------------------------------------------
diff --git a/portal/js/usergrid.min.js b/portal/js/usergrid.min.js
index 804d348..1a578a1 100644
--- a/portal/js/usergrid.min.js
+++ b/portal/js/usergrid.min.js
@@ -1,6 +1,6 @@
-/*! usergrid@2.0.1 2014-03-27 */
+/*! usergrid@2.0.1 2014-03-28 */
!function(exports,global){function renderChart(chartsDefaults,chartdata){var newSettings={};$.extend(!0,newSettings,chartsDefaults,chartdata);new Highcharts.Chart(newSettings)}function menuBindClick(scope,lElement,cevent,menuContext){var currentSelection=angular.element(cevent.srcElement).parent(),previousSelection=scope[menuContext];previousSelection!==currentSelection&&(previousSelection&&angular.element(previousSelection).removeClass("active"),scope[menuContext]=currentSelection,scope.$apply(function(){currentSelection.addClass("active")}))}global["true"]=exports;var polyfills=function(window,Object){window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){window.setTimeout(callback,1e3/60)}}(),Object.defineProperty(Object.prototype,"clone",{enumerable:!1,writable:!0,value:function(){var i,newObj=this instanceof Arra
y?[]:{};for(i in this)"clone"!==i&&(newObj[i]=this[i]&&"object"==typeof this[i]?this[i].clone():this[i]);return newObj}}),Object.defineProperty(Object.prototype,"stringifyJSON",{enumerable:!1,writable:!0,value:function(){return JSON.stringify(this,null," ")}})};polyfills(window,Object);var global=global||this,AppServices=AppServices||{};global.AppServices=global.AppServices||AppServices,AppServices.Constants=angular.module("appservices.constants",[]),AppServices.Services=angular.module("appservices.services",[]),AppServices.Controllers=angular.module("appservices.controllers",[]),AppServices.Filters=angular.module("appservices.filters",[]),AppServices.Directives=angular.module("appservices.directives",[]),AppServices.Performance=angular.module("appservices.performance",[]),AppServices.MAX=angular.module("appservices.max",[]),angular.module("appservices",["ngRoute","ngResource","ngSanitize","ui.bootstrap","angulartics","angulartics.google.analytics","appservices.filters","appservices
.services","appservices.directives","appservices.constants","appservices.controllers","appservices.max","angular-intro"]).config(["$routeProvider","$locationProvider","$sceDelegateProvider","$analyticsProvider",function($routeProvider,$locationProvider,$sceDelegateProvider,$analyticsProvider){$routeProvider.when("/org-overview",{templateUrl:"org-overview/org-overview.html",controller:"OrgOverviewCtrl"}).when("/login",{templateUrl:"login/login.html",controller:"LoginCtrl"}).when("/login/loading",{templateUrl:"login/loading.html",controller:"LoginCtrl"}).when("/app-overview/summary",{templateUrl:"app-overview/app-overview.html",controller:"AppOverviewCtrl"}).when("/getting-started/setup",{templateUrl:"app-overview/getting-started.html",controller:"GettingStartedCtrl"}).when("/forgot-password",{templateUrl:"login/forgot-password.html",controller:"ForgotPasswordCtrl"}).when("/register",{templateUrl:"login/register.html",controller:"RegisterCtrl"}).when("/users",{templateUrl:"users/users
.html",controller:"UsersCtrl"}).when("/users/profile",{templateUrl:"users/users-profile.html",controller:"UsersProfileCtrl"}).when("/users/groups",{templateUrl:"users/users-groups.html",controller:"UsersGroupsCtrl"}).when("/users/activities",{templateUrl:"users/users-activities.html",controller:"UsersActivitiesCtrl"}).when("/users/feed",{templateUrl:"users/users-feed.html",controller:"UsersFeedCtrl"}).when("/users/graph",{templateUrl:"users/users-graph.html",controller:"UsersGraphCtrl"}).when("/users/roles",{templateUrl:"users/users-roles.html",controller:"UsersRolesCtrl"}).when("/groups",{templateUrl:"groups/groups.html",controller:"GroupsCtrl"}).when("/groups/details",{templateUrl:"groups/groups-details.html",controller:"GroupsDetailsCtrl"}).when("/groups/members",{templateUrl:"groups/groups-members.html",controller:"GroupsMembersCtrl"}).when("/groups/activities",{templateUrl:"groups/groups-activities.html",controller:"GroupsActivitiesCtrl"}).when("/groups/roles",{templateUrl:"gro
ups/groups-roles.html",controller:"GroupsRolesCtrl"}).when("/roles",{templateUrl:"roles/roles.html",controller:"RolesCtrl"}).when("/roles/settings",{templateUrl:"roles/roles-settings.html",controller:"RolesSettingsCtrl"}).when("/roles/users",{templateUrl:"roles/roles-users.html",controller:"RolesUsersCtrl"}).when("/roles/groups",{templateUrl:"roles/roles-groups.html",controller:"RolesGroupsCtrl"}).when("/data",{templateUrl:"data/data.html",controller:"DataCtrl"}).when("/data/entity",{templateUrl:"data/entity.html",controller:"EntityCtrl"}).when("/data/shell",{templateUrl:"data/shell.html",controller:"ShellCtrl"}).when("/profile/organizations",{templateUrl:"profile/organizations.html",controller:"OrgCtrl"}).when("/profile/profile",{templateUrl:"profile/profile.html",controller:"ProfileCtrl"}).when("/profile",{templateUrl:"profile/account.html",controller:"AccountCtrl"}).when("/activities",{templateUrl:"activities/activities.html",controller:"ActivitiesCtrl"}).when("/shell",{templateU
rl:"shell/shell.html",controller:"ShellCtrl"}).when("/logout",{templateUrl:"login/logout.html",controller:"LogoutCtrl"}).otherwise({redirectTo:"/org-overview"}),$locationProvider.html5Mode(!1).hashPrefix("!"),$sceDelegateProvider.resourceUrlWhitelist(["self","http://apigee-internal-prod.jupiter.apigee.net/**","http://apigee-internal-prod.mars.apigee.net/**","https://appservices.apigee.com/**","https://api.usergrid.com/**"]),$analyticsProvider.virtualPageviews(!1),$analyticsProvider.firstPageview(!1)}]),AppServices.Controllers.controller("ActivitiesCtrl",["ug","$scope","$rootScope","$location","$route",function(ug,$scope,$rootScope){$scope.$on("app-activities-received",function(evt,data){$scope.activities=data,$scope.$apply()}),$scope.$on("app-activities-error",function(){$rootScope.$broadcast("alert","error","Application failed to retreive activities data.")}),ug.getActivities()}]),AppServices.Controllers.controller("AppOverviewCtrl",["ug","charts","$scope","$rootScope","$log",funct
ion(ug,charts,$scope,$rootScope,$log){var createGradient=function(color1,color2){var perShapeGradient={x1:0,y1:0,x2:0,y2:1};return{linearGradient:perShapeGradient,stops:[[0,color1],[1,color2]]}};$scope.appOverview={},$scope.collections=[],$scope.graph="",$scope.$on("top-collections-received",function(event,collections){var dataDescription={bar1:{labels:["Total"],dataAttr:["title","count"],colors:[createGradient("rgba(36,151,212,0.6)","rgba(119,198,240,0.6)")],borderColor:"#1b97d1"}};$scope.collections=collections;var arr=[];for(var i in collections)collections.hasOwnProperty(i)&&arr.push(collections[i]);$scope.appOverview={},$rootScope.chartTemplate?($scope.appOverview.chart=angular.copy($rootScope.chartTemplate.pareto),$scope.appOverview.chart=charts.convertParetoChart(arr,$scope.appOverview.chart,dataDescription.bar1,"1h","NOW"),$scope.applyScope()):ug.httpGet(null,"js/charts/highcharts.json").then(function(success){$rootScope.chartTemplate=success,$scope.appOverview.chart=angular
.copy($rootScope.chartTemplate.pareto),$scope.appOverview.chart=charts.convertParetoChart(arr,$scope.appOverview.chart,dataDescription.bar1,"1h","NOW"),$scope.applyScope()},function(fail){$log.error("Problem getting chart template",fail)})}),$scope.$on("app-initialized",function(){ug.getTopCollections()}),$rootScope.activeUI&&ug.getTopCollections()}]),AppServices.Controllers.controller("GettingStartedCtrl",["ug","$scope","$rootScope","$location","$timeout","$anchorScroll",function(ug,$scope,$rootScope,$location,$timeout,$anchorScroll){$scope.collections=[],$scope.graph="",$scope.clientID="",$scope.clientSecret="";$scope.regenerateCredentialsDialog=function(modalId){$scope.orgAPICredentials={client_id:"regenerating...",client_secret:"regenerating..."},ug.regenerateAppCredentials(),$scope.hideModal(modalId)},$scope.$on("app-creds-updated",function(event,credentials){credentials?($scope.clientID=credentials.client_id,$scope.clientSecret=credentials.client_secret,$scope.$$phase||$scope.
$apply()):setTimeout(function(){ug.getAppCredentials()},5e3)}),ug.getAppCredentials(),$scope.contentTitle,$scope.showSDKDetail=function(name){var introContainer=document.getElementById("intro-container");if("nocontent"===name)return introContainer.style.height="0",!0;introContainer.style.opacity=.1,introContainer.style.height="0";var timeout=0;$scope.contentTitle&&(timeout=500),$timeout(function(){introContainer.style.height="1000px",introContainer.style.opacity=1},timeout),$scope.optionName=name,$scope.contentTitle=name,$scope.sdkLink="http://apigee.com/docs/content/"+name+"-sdk-redirect",$scope.docsLink="http://apigee.com/docs/app-services/content/installing-apigee-sdk-"+name,$scope.getIncludeURL=function(){return"app-overview/doc-includes/"+$scope.optionName+".html"}},$scope.scrollToElement=function(elem){return $location.hash(elem),$anchorScroll(),!1}}]),AppServices.Controllers.controller("ChartCtrl",["$scope","$location",function(){}]),AppServices.Directives.directive("chart",f
unction(){return{restrict:"E",scope:{chartdata:"=chartdata"},template:"<div></div>",replace:!0,controller:function(){},link:function(scope,element,attrs){scope.$watch("chartdata",function(chartdata){if(chartdata){var chartsDefaults={chart:{renderTo:element[0],type:attrs.type||null,height:attrs.height||null,width:attrs.width||null,reflow:!0,animation:!1,zoomType:"x"}};if("pie"===attrs.type&&(chartsDefaults.chart.margin=[0,0,0,0],chartsDefaults.chart.spacingLeft=0,chartsDefaults.chart.spacingRight=0,chartsDefaults.chart.spacingTop=0,chartsDefaults.chart.spacingBottom=0,attrs.titleimage&&(chartdata.title.text='<img src="'+attrs.titleimage+'">'),attrs.titleicon&&(chartdata.title.text='<i class="pictogram '+attrs.titleiconclass+'">'+attrs.titleicon+"</i>"),attrs.titlecolor&&(chartdata.title.style.color=attrs.titlecolor),attrs.titleimagetop&&(chartdata.title.style.marginTop=attrs.titleimagetop),attrs.titleimageleft&&(chartdata.title.style.marginLeft=attrs.titleimageleft)),"line"===attrs.t
ype&&(chartsDefaults.chart.marginTop=30,chartsDefaults.chart.spacingTop=50),"column"===attrs.type&&(chartsDefaults.chart.marginBottom=80),"area"===attrs.type&&(chartsDefaults.chart.spacingLeft=0,chartsDefaults.chart.spacingRight=0,chartsDefaults.chart.marginLeft=0,chartsDefaults.chart.marginRight=0),Highcharts.setOptions({global:{useUTC:!1},chart:{style:{fontFamily:"marquette-light, Helvetica, Arial, sans-serif"}}}),"line"===attrs.type){var xAxis1=chartdata.xAxis[0];xAxis1.labels.formatter||(xAxis1.labels.formatter=new Function(attrs.xaxislabel)),xAxis1.labels.step||(xAxis1.labels.step=attrs.xaxisstep)}chartdata.tooltip&&"string"==typeof chartdata.tooltip.formatter&&(chartdata.tooltip.formatter=new Function(chartdata.tooltip.formatter)),renderChart(chartsDefaults,chartdata)}},!0)}}}),AppServices.Services.factory("charts",function(){function sortJsonArrayByProperty(objArray,prop){if(arguments.length<2)throw new Error("sortJsonArrayByProp requires 2 arguments");var direct=arguments.le
ngth>2?arguments[2]:1;if(objArray&&objArray.constructor===Array){var propPath=prop.constructor===Array?prop:prop.split(".");objArray.sort(function(a,b){for(var p in propPath)a[propPath[p]]&&b[propPath[p]]&&(a=a[propPath[p]],b=b[propPath[p]]);return a=a.match(/^\d+$/)?+a:a,b=b.match(/^\d+$/)?+b:b,b>a?-1*direct:a>b?1*direct:0})}}var lineChart,areaChart,paretoChart,pieChart,xaxis,seriesIndex;return{convertLineChart:function(chartData,chartTemplate,dataDescription,settings,currentCompare){function plotData(counter,dPLength,dataPoints,dataAttrs,detailedView){for(var i=0;dPLength>i;i++)for(var dp=dataPoints[i],localCounter=counter,j=0;j<dataAttrs.length;j++)lineChart.series[localCounter].data.push("undefined"==typeof dp?[i,0]:[i,dp[dataAttrs[j]]]),detailedView||localCounter++}lineChart=chartTemplate,"undefined"==typeof chartData[0]&&(chartData[0]={},chartData[0].datapoints=[]);var label,dataPoints=chartData[0].datapoints,dPLength=dataPoints.length;"YESTERDAY"===currentCompare?(seriesIndex
=dataDescription.dataAttr.length,label="Yesterday "):"LAST_WEEK"===currentCompare?(seriesIndex=dataDescription.dataAttr.length,label="Last Week "):(lineChart=chartTemplate,seriesIndex=0,lineChart.series=[],label=""),xaxis=lineChart.xAxis[0],xaxis.categories=[],settings.xaxisformat&&(xaxis.labels.formatter=new Function(settings.xaxisformat)),settings.step&&(xaxis.labels.step=settings.step);for(var i=0;dPLength>i;i++){var dp=dataPoints[i];xaxis.categories.push(dp.timestamp)}if(chartData.length>1)for(var l=0;l<chartData.length;l++)chartData[l].chartGroupName&&(dataPoints=chartData[l].datapoints,lineChart.series[l]={},lineChart.series[l].data=[],lineChart.series[l].name=chartData[l].chartGroupName,lineChart.series[l].yAxis=0,lineChart.series[l].type="line",lineChart.series[l].color=dataDescription.colors[i],lineChart.series[l].dashStyle="solid",lineChart.series[l].yAxis.title.text=dataDescription.yAxisLabels,plotData(l,dPLength,dataPoints,dataDescription.detailDataAttr,!0));else{for(var
steadyCounter=0,i=seriesIndex;i<dataDescription.dataAttr.length+(seriesIndex>0?seriesIndex:0);i++){var yAxisIndex=dataDescription.multiAxis?steadyCounter:0;lineChart.series[i]={},lineChart.series[i].data=[],lineChart.series[i].name=label+dataDescription.labels[steadyCounter],lineChart.series[i].yAxis=yAxisIndex,lineChart.series[i].type="line",lineChart.series[i].color=dataDescription.colors[i],lineChart.series[i].dashStyle="solid",lineChart.yAxis[yAxisIndex].title.text=dataDescription.yAxisLabels[dataDescription.yAxisLabels>1?steadyCounter:0],steadyCounter++}plotData(seriesIndex,dPLength,dataPoints,dataDescription.dataAttr,!1)}return lineChart},convertAreaChart:function(chartData,chartTemplate,dataDescription,settings,currentCompare){function plotData(counter,dPLength,dataPoints,dataAttrs,detailedView){for(var i=0;dPLength>i;i++)for(var dp=dataPoints[i],localCounter=counter,j=0;j<dataAttrs.length;j++)areaChart.series[localCounter].data.push("undefined"==typeof dp?0:dp[dataAttrs[j]]
),detailedView||localCounter++}areaChart=angular.copy(areaChart),"undefined"==typeof chartData[0]&&(chartData[0]={},chartData[0].datapoints=[]);var label,dataPoints=chartData[0].datapoints,dPLength=dataPoints.length;"YESTERDAY"===currentCompare?(seriesIndex=dataDescription.dataAttr.length,label="Yesterday "):"LAST_WEEK"===currentCompare?(seriesIndex=dataDescription.dataAttr.length,label="Last Week "):(areaChart=chartTemplate,seriesIndex=0,areaChart.series=[],label=""),xaxis=areaChart.xAxis[0],xaxis.categories=[],settings.xaxisformat&&(xaxis.labels.formatter=new Function(settings.xaxisformat)),settings.step&&(xaxis.labels.step=settings.step);for(var i=0;dPLength>i;i++){var dp=dataPoints[i];xaxis.categories.push(dp.timestamp)}if(chartData.length>1)for(var l=0;l<chartData.length;l++)chartData[l].chartGroupName&&(dataPoints=chartData[l].datapoints,areaChart.series[l]={},areaChart.series[l].data=[],areaChart.series[l].fillColor=dataDescription.areaColors[l],areaChart.series[l].name=chart
Data[l].chartGroupName,areaChart.series[l].yAxis=0,areaChart.series[l].type="area",areaChart.series[l].pointInterval=1,areaChart.series[l].color=dataDescription.colors[l],areaChart.series[l].dashStyle="solid",areaChart.series[l].yAxis.title.text=dataDescription.yAxisLabels,plotData(l,dPLength,dataPoints,dataDescription.detailDataAttr,!0));else{for(var steadyCounter=0,i=seriesIndex;i<dataDescription.dataAttr.length+(seriesIndex>0?seriesIndex:0);i++){var yAxisIndex=dataDescription.multiAxis?steadyCounter:0;areaChart.series[i]={},areaChart.series[i].data=[],areaChart.series[i].fillColor=dataDescription.areaColors[i],areaChart.series[i].name=label+dataDescription.labels[steadyCounter],areaChart.series[i].yAxis=yAxisIndex,areaChart.series[i].type="area",areaChart.series[i].pointInterval=1,areaChart.series[i].color=dataDescription.colors[i],areaChart.series[i].dashStyle="solid",areaChart.yAxis[yAxisIndex].title.text=dataDescription.yAxisLabels[dataDescription.yAxisLabels>1?steadyCounter:0
],steadyCounter++}plotData(seriesIndex,dPLength,dataPoints,dataDescription.dataAttr,!1)}return areaChart},convertParetoChart:function(chartData,chartTemplate,dataDescription,settings,currentCompare){function getPreviousData(){for(var i=0;i<chartTemplate.series[0].data.length;i++)allParetoOptions.push(chartTemplate.xAxis.categories[i])}function createStackedBar(dataDescription,paretoChart){paretoChart.plotOptions={series:{shadow:!1,borderColor:dataDescription.borderColor,borderWidth:1},column:{stacking:"normal",dataLabels:{enabled:!0,color:Highcharts.theme&&Highcharts.theme.dataLabelsColor||"white"}}};var start=dataDescription.dataAttr[1].length,steadyCounter=0;compare&&(paretoChart.legend.enabled=!0);for(var f=seriesIndex;start+seriesIndex>f;f++)paretoChart.series[f]||(paretoChart.series[f]={data:[]}),paretoChart.series[f].data.push(bar[dataDescription.dataAttr[1][steadyCounter]]),paretoChart.series[f].name=""!==label?label+" "+dataDescription.labels[steadyCounter]:dataDescription.l
abels[steadyCounter],paretoChart.series[f].color=dataDescription.colors[f],paretoChart.series[f].stack=label,steadyCounter++}paretoChart=chartTemplate,"undefined"==typeof chartData&&(chartData=[]);var label,cdLength=chartData.length,compare=!1,allParetoOptions=[],stackedBar=!1;if(seriesIndex=0,"object"==typeof dataDescription.dataAttr[1]&&(stackedBar=!0),"YESTERDAY"===currentCompare?(label="Yesterday ",compare=!0,stackedBar&&(seriesIndex=dataDescription.dataAttr[1].length),getPreviousData()):"LAST_WEEK"===currentCompare?(label="Last Week ",compare=!0,stackedBar&&(seriesIndex=dataDescription.dataAttr[1].length),seriesIndex=getPreviousData()):(compare=!1,label="",paretoChart.xAxis.categories=[],paretoChart.series=[],paretoChart.series[0]={},paretoChart.series[0].data=[],paretoChart.legend.enabled=!1),paretoChart.plotOptions.series.borderColor=dataDescription.borderColor,compare&&!stackedBar){paretoChart.series[1]={},paretoChart.series[1].data=[];for(var i=0;i<allParetoOptions.length;i
++)paretoChart.series[1].data.push(0);paretoChart.legend.enabled=!0}for(var i=0;cdLength>i;i++){var bar=chartData[i];if(compare){var newLabel=bar[dataDescription.dataAttr[0]],newValue=bar[dataDescription.dataAttr[1]],previousIndex=allParetoOptions.indexOf(newLabel);previousIndex>-1&&("object"==typeof dataDescription.dataAttr[1]?createStackedBar(dataDescription,paretoChart,paretoChart.series.length):(paretoChart.series[1].data[previousIndex]=newValue,paretoChart.series[1].name=""!==label?label+" "+dataDescription.labels[0]:dataDescription.labels[0],paretoChart.series[1].color=dataDescription.colors[1]))}else paretoChart.xAxis.categories.push(bar[dataDescription.dataAttr[0]]),"object"==typeof dataDescription.dataAttr[1]?createStackedBar(dataDescription,paretoChart,paretoChart.series.length):(paretoChart.series[0].data.push(bar[dataDescription.dataAttr[1]]),paretoChart.series[0].name=dataDescription.labels[0],paretoChart.series[0].color=dataDescription.colors[0])}return paretoChart},co
nvertPieChart:function(chartData,chartTemplate,dataDescription,settings,currentCompare){var label,cdLength=chartData.length,compare=!1;pieChart=chartTemplate,"YESTERDAY"===currentCompare?(label="Yesterday ",compare=!1):"LAST_WEEK"===currentCompare?(label="Last Week ",compare=!1):(compare=!1,pieChart.series[0].data=[],pieChart.series[0].dataLabels&&"string"==typeof pieChart.series[0].dataLabels.formatter&&(pieChart.series[0].dataLabels.formatter=new Function(pieChart.series[0].dataLabels.formatter))),pieChart.plotOptions.pie.borderColor=dataDescription.borderColor,compare&&(pieChart.series[1].data=[],pieChart.series[1].dataLabels&&"string"==typeof pieChart.series[1].dataLabels.formatter&&(pieChart.series[1].dataLabels.formatter=new Function(pieChart.series[1].dataLabels.formatter)));for(var tempArray=[],i=0;cdLength>i;i++){var pie=chartData[i];tempArray.push({name:pie[dataDescription.dataAttr[0]],y:pie[dataDescription.dataAttr[1]],color:""})}sortJsonArrayByProperty(tempArray,"name");
for(var i=0;i<tempArray.length;i++)tempArray[i].color=dataDescription.colors[i];return compare?pieChart.series[1].data=tempArray:pieChart.series[0].data=tempArray,pieChart}}}),$(".sessions-bar").sparkline([3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,1],{type:"bar",barColor:"#c5c5c5",width:"800px",height:100,barWidth:12,barSpacing:"1px"}),AppServices.Controllers.controller("DataCtrl",["ug","$scope","$rootScope","$location",function(ug,$scope,$rootScope){var init=function(){$scope.verb="GET",$scope.display="",$scope.queryBodyDetail={},$scope.queryBodyDisplay="none",$scope.queryLimitDisplay="block",$scope.queryStringDisplay="block",$scope.entitySelected={},$scope.newCollection={},$rootScope.queryCollection={},$scope.data={},$scope.data.queryPath="",$scope.data.queryBody='{ "name":"value" }',$scope.data.searchString="",$scope.data.queryLimit=""},runQuery=function(verb){$scope.loading=!0;var queryPath=$scope.remove
FirstSlash($scope.data.queryPath||""),searchString=$scope.data.searchString||"",queryLimit=$scope.data.queryLimit||"",body=JSON.parse($scope.data.queryBody||"{}");"POST"==verb&&$scope.validateJson(!0)?ug.runDataPOSTQuery(queryPath,body):"PUT"==verb&&$scope.validateJson(!0)?ug.runDataPutQuery(queryPath,searchString,queryLimit,body):"DELETE"==verb?ug.runDataDeleteQuery(queryPath,searchString,queryLimit):ug.runDataQuery(queryPath,searchString,queryLimit)};$scope.$on("top-collections-received",function(event,collectionList){$scope.loading=!1;var ignoredCollections=["events"];ignoredCollections.forEach(function(ignoredCollection){collectionList.hasOwnProperty(ignoredCollection)&&delete collectionList[ignoredCollection]}),$scope.collectionList=collectionList,$scope.queryBoxesSelected=!1,$scope.queryPath||$scope.loadCollection("/"+collectionList[Object.keys(collectionList).sort()[0]].name),$scope.applyScope()}),$scope.$on("error-running-query",function(){$scope.loading=!1,runQuery("GET"),$
scope.applyScope()}),$scope.$on("entity-deleted",function(){$scope.deleteLoading=!1,$rootScope.$broadcast("alert","success","Entities deleted sucessfully"),$scope.queryBoxesSelected=!1,$scope.checkNextPrev(),$scope.applyScope()}),$scope.$on("entity-deleted-error",function(){$scope.deleteLoading=!1,runQuery("GET"),$scope.applyScope()}),$scope.$on("collection-created",function(){$scope.newCollection.name=""}),$scope.$on("query-received",function(event,collection){$scope.loading=!1,$rootScope.queryCollection=collection,ug.getIndexes($scope.data.queryPath),$scope.setDisplayType(),$scope.checkNextPrev(),$scope.applyScope(),$scope.queryBoxesSelected=!1}),$scope.$on("indexes-received",function(event,indexes){}),$scope.$on("app-changed",function(){init()}),$scope.setDisplayType=function(){$scope.display="generic"},$scope.deleteEntitiesDialog=function(modalId){$scope.deleteLoading=!1,$scope.deleteEntities($rootScope.queryCollection,"entity-deleted","error deleting entity"),$scope.hideModal(m
odalId)},$scope.newCollectionDialog=function(modalId){$scope.newCollection.name?(ug.createCollection($scope.newCollection.name),ug.getTopCollections(),$rootScope.$broadcast("alert","success","Collection created successfully."),$scope.hideModal(modalId)):$rootScope.$broadcast("alert","error","You must specify a collection name.")},$scope.addToPath=function(uuid){$scope.data.queryPath="/"+$rootScope.queryCollection._type+"/"+uuid},$scope.isDeep=function(item){return"[object Object]"===Object.prototype.toString.call(item)},$scope.loadCollection=function(type){$scope.data.queryPath="/"+type.substring(1,type.length),$scope.data.searchString="",$scope.data.queryLimit="",$scope.data.body='{ "name":"value" }',$scope.selectGET(),$scope.applyScope(),$scope.run()},$scope.selectGET=function(){$scope.queryBodyDisplay="none",$scope.queryLimitDisplay="block",$scope.queryStringDisplay="block",$scope.verb="GET"},$scope.selectPOST=function(){$scope.queryBodyDisplay="block",$scope.queryLimitDisplay="n
one",$scope.queryStringDisplay="none",$scope.verb="POST"},$scope.selectPUT=function(){$scope.queryBodyDisplay="block",$scope.queryLimitDisplay="block",$scope.queryStringDisplay="block",$scope.verb="PUT"},$scope.selectDELETE=function(){$scope.queryBodyDisplay="none",$scope.queryLimitDisplay="block",$scope.queryStringDisplay="block",$scope.verb="DELETE"},$scope.validateJson=function(skipMessage){var queryBody=$scope.data.queryBody;try{queryBody=JSON.parse(queryBody)}catch(e){return $rootScope.$broadcast("alert","error","JSON is not valid"),!1}return queryBody=JSON.stringify(queryBody,null,2),!skipMessage&&$rootScope.$broadcast("alert","success","JSON is valid"),$scope.data.queryBody=queryBody,!0},$scope.saveEntity=function(entity){if(!$scope.validateJson())return!1;var queryBody=entity._json;queryBody=JSON.parse(queryBody),$rootScope.selectedEntity.set(),$rootScope.selectedEntity.set(queryBody),$rootScope.selectedEntity.set("type",entity._data.type),$rootScope.selectedEntity.set("uuid
",entity._data.uuid),$rootScope.selectedEntity.save(function(err,data){err?$rootScope.$broadcast("alert","error","error: "+data.error_description):$rootScope.$broadcast("alert","success","entity saved")})},$scope.run=function(){$rootScope.queryCollection="";var verb=$scope.verb;runQuery(verb)},$scope.hasProperty=function(prop){var retval=!1;return"undefined"!=typeof $rootScope.queryCollection._list&&angular.forEach($rootScope.queryCollection._list,function(value){retval||value._data[prop]&&(retval=!0)}),retval},$scope.resetNextPrev=function(){$scope.previous_display="none",$scope.next_display="none"},$scope.checkNextPrev=function(){$scope.resetNextPrev(),$rootScope.queryCollection.hasPreviousPage()&&($scope.previous_display="default"),$rootScope.queryCollection.hasNextPage()&&($scope.next_display="default")},$scope.selectEntity=function(uuid){$rootScope.selectedEntity=$rootScope.queryCollection.getEntityByUUID(uuid),$scope.addToPath(uuid)},$scope.getJSONView=function(entity){var tem
pjson=entity.get(),queryBody=JSON.stringify(tempjson,null,2);queryBody=JSON.parse(queryBody),delete queryBody.metadata,delete queryBody.uuid,delete queryBody.created,delete queryBody.modified,delete queryBody.type,$scope.queryBody=JSON.stringify(queryBody,null,2)},$scope.getPrevious=function(){$rootScope.queryCollection.getPreviousPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting previous page of data"),$scope.checkNextPrev(),$scope.applyScope()})},$scope.getNext=function(){$rootScope.queryCollection.getNextPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting next page of data"),$scope.checkNextPrev(),$scope.applyScope()})},init(),$rootScope.queryCollection=$rootScope.queryCollection||{},$rootScope.selectedEntity={},$rootScope.queryCollection&&$rootScope.queryCollection._type&&($scope.loadCollection($rootScope.queryCollection._type),$scope.setDisplayType()),ug.getTopCollections(),$scope.resetNextPrev()}]),AppServices.Controllers.con
troller("EntityCtrl",["ug","$scope","$rootScope","$location",function(ug,$scope,$rootScope,$location){if(!$rootScope.selectedEntity)return void $location.path("/data");$scope.entityUUID=$rootScope.selectedEntity.get("uuid"),$scope.entityType=$rootScope.selectedEntity.get("type");var tempjson=$rootScope.selectedEntity.get(),queryBody=JSON.stringify(tempjson,null,2);queryBody=JSON.parse(queryBody),delete queryBody.metadata,delete queryBody.uuid,delete queryBody.created,delete queryBody.modified,delete queryBody.type,$scope.queryBody=JSON.stringify(queryBody,null,2),$scope.validateJson=function(){var queryBody=$scope.queryBody;try{queryBody=JSON.parse(queryBody)}catch(e){return $rootScope.$broadcast("alert","error","JSON is not valid"),!1}return queryBody=JSON.stringify(queryBody,null,2),$rootScope.$broadcast("alert","success","JSON is valid"),$scope.queryBody=queryBody,!0},$scope.saveEntity=function(){if(!$scope.validateJson())return!1;var queryBody=$scope.queryBody;queryBody=JSON.par
se(queryBody),$rootScope.selectedEntity.set(),$rootScope.selectedEntity.set(queryBody),$rootScope.selectedEntity.set("type",$scope.entityType),$rootScope.selectedEntity.set("uuid",$scope.entityUUID),$rootScope.selectedEntity.save(function(err,data){err?$rootScope.$broadcast("alert","error","error: "+data.error_description):$rootScope.$broadcast("alert","success","entity saved")})}}]),AppServices.Directives.directive("balloon",["$window","$timeout",function($window,$timeout){return{restrict:"ECA",scope:"=",template:'<div class="baloon {{direction}}" ng-transclude></div>',replace:!0,transclude:!0,link:function(scope,lElement,attrs){scope.direction=attrs.direction;var runScroll=!0,windowEl=angular.element($window);windowEl.on("scroll",function(){runScroll&&(lElement.addClass("fade-out"),$timeout(function(){lElement.addClass("hide")},1e3),runScroll=!1)})}}}]),AppServices.Directives.directive("bsmodal",["$rootScope",function($rootScope){return{restrict:"ECA",scope:{title:"@title",buttoni
d:"=buttonid",footertext:"=footertext",closelabel:"=closelabel"},transclude:!0,templateUrl:"dialogs/modal.html",replace:!0,link:function(scope,lElement,attrs,parentCtrl){scope.title=attrs.title,scope.footertext=attrs.footertext,scope.closelabel=attrs.closelabel,scope.close=attrs.close,scope.extrabutton=attrs.extrabutton,scope.extrabuttonlabel=attrs.extrabuttonlabel,scope.buttonId=attrs.buttonid,scope.closeDelegate=function(attr){scope.$parent[attr](attrs.id,scope)},scope.extraDelegate=function(attr){scope.dialogForm.$valid?(console.log(parentCtrl),scope.$parent[attr](attrs.id)):$rootScope.$broadcast("alert","error","Please check your form input and resubmit.")}}}}]),AppServices.Controllers.controller("AlertCtrl",["$scope","$rootScope","$timeout",function($scope,$rootScope,$timeout){$scope.alertDisplay="none",$scope.alerts=[],$scope.$on("alert",function(event,type,message,permanent){$scope.addAlert(type,message,permanent)}),$scope.$on("clear-alerts",function(){$scope.alerts=[]}),$sco
pe.addAlert=function(type,message,permanent){$scope.alertDisplay="block",$scope.alerts.push({type:type,msg:message}),$scope.applyScope(),permanent||$timeout(function(){$scope.alerts.shift()},5e3)},$scope.closeAlert=function(index){$scope.alerts.splice(index,1)}}]),AppServices.Directives.directive("alerti",["$rootScope","$timeout",function($rootScope,$timeout){return{restrict:"ECA",scope:{type:"=type",closeable:"@closeable",index:"&index"},template:'<div class="alert" ng-class="type && \'alert-\' + type"> <button ng-show="closeable" type="button" class="close" ng-click="closeAlert(index)">×</button> <i ng-if="type === \'warning\'" class="pictogram pull-left" style="font-size:3em;line-height:0.4">💥</i> <i ng-if="type === \'info\'" class="pictogram pull-left">ℹ</i> <i ng-if="type === \'error\'" class="pictogram pull-left">⚡</i> <i ng-if="type === \'success\'" class="pictogram pull-left">👍</i><div ng-transclude></div></div>',replace:!0,tr
ansclude:!0,link:function(scope,lElement,attrs){$timeout(function(){lElement.addClass("fade-out")},4e3),lElement.click(function(){attrs.index&&scope.$parent.closeAlert(attrs.index)}),setTimeout(function(){lElement.addClass("alert-animate")},10)}}}]),AppServices.Directives.directive("appswitcher",["$rootScope",function(){return{restrict:"ECA",scope:"=",templateUrl:"global/appswitcher-template.html",replace:!0,transclude:!0,link:function(){function globalNavDetail(){$("#globalNavDetail > div").removeClass(classNameOpen),$("#globalNavDetailApiPlatform").addClass(classNameOpen)}var classNameOpen="open";$("ul.nav li.dropdownContainingSubmenu").hover(function(){$(this).addClass(classNameOpen)},function(){$(this).removeClass(classNameOpen)}),$("#globalNav > a").mouseover(globalNavDetail),$("#globalNavDetail").mouseover(globalNavDetail),$("#globalNavSubmenuContainer ul li").mouseover(function(){$("#globalNavDetail > div").removeClass(classNameOpen),$("#"+this.getAttribute("data-globalNavDet
ail")).addClass(classNameOpen)})}}}]),AppServices.Services.factory("help",function($rootScope,$http,$analytics){$rootScope.help={},$rootScope.help.helpButtonStatus="Enable Help",$rootScope.help.helpTooltipsEnabled=!1,$rootScope.help.clicked=!1,$rootScope.help.showHelpButtons=!1;
-var helpStartTime,introjs_step;$rootScope.help.sendTooltipGA=function(tooltipName){$analytics.eventTrack("tooltip - "+$rootScope.currentPath,{category:"App Services",label:tooltipName})},$rootScope.help.toggleTooltips=function(){0==$rootScope.help.helpTooltipsEnabled?($rootScope.help.helpButtonStatus="Disable Help",$rootScope.help.helpTooltipsEnabled=!0,showHelpModal("tooltips")):($rootScope.help.helpButtonStatus="Enable Help",$rootScope.help.helpTooltipsEnabled=!1)},$rootScope.help.IntroOptions={steps:[],showStepNumbers:!1,exitOnOverlayClick:!0,exitOnEsc:!0,nextLabel:"Next",prevLabel:"Back",skipLabel:"Got It",doneLabel:"Got it"},$rootScope.$on("$routeChangeSuccess",function(event,current){var path=current.$$route.originalPath;"/org-overview"==path?($rootScope.help.showHelpButtons=!0,getHelpJson(path).success(function(json){var helpJson=json;setHelpStrings(helpJson),showHelpModal("tour")})):$rootScope.help.showHelpButtons=!1});var showHelpModal=function(helpType){var shouldHelp=loca
tion.search.indexOf("noHelp")<=0;"tour"!=helpType||getHelpStatus(helpType)?"tooltips"!=helpType||getHelpStatus(helpType)||shouldHelp&&$rootScope.showModal("tooltips"):shouldHelp&&$rootScope.showModal("introjs")},setHelpStrings=function(helpJson){$rootScope.help.IntroOptions.steps=helpJson.introjs,angular.forEach(helpJson.tooltip,function(value,binding){$rootScope[binding]=value})};$rootScope.help.introjs_StartEvent=function(){helpStartTime=Date.now(),introjs_step=1},$rootScope.help.introjs_ExitEvent=function(){var introjs_time=Math.round((Date.now()-helpStartTime)/1e3);$analytics.eventTrack("introjs timing - "+$rootScope.currentPath,{category:"App Services",label:introjs_time+"s"}),$analytics.eventTrack("introjs exit - "+$rootScope.currentPath,{category:"App Services",label:"step"+introjs_step})},$rootScope.help.introjs_ChangeEvent=function(){introjs_step++};var getHelpJson=function(path){return $http.jsonp("http://sdk.apigee.com.s3.amazonaws.com/portal_help"+path+"/helpJson.json?ca
llback=JSON_CALLBACK")},getHelpStatus=function(helpType){var status;return"tour"==helpType?(status=localStorage.getItem("ftu_tour"),localStorage.setItem("ftu_tour","false")):"tooltips"==helpType&&(status=localStorage.getItem("ftu_tooltips"),localStorage.setItem("ftu_tooltips","false")),status}}),AppServices.Directives.directive("insecureBanner",["$rootScope","ug",function($rootScope,ug){return{restrict:"E",transclude:!0,templateUrl:"global/insecure-banner.html",link:function(scope){scope.securityWarning=!1,scope.$on("roles-received",function(evt,roles){scope.securityWarning=!1,roles&&roles._list&&roles._list.forEach(function(roleHolder){var role=roleHolder._data;"GUEST"===role.name.toUpperCase()&&roleHolder.getPermissions(function(err){err||roleHolder.permissions&&roleHolder.permissions.forEach(function(permission){permission.path.indexOf("/**")>=0&&(scope.securityWarning=!0,scope.applyScope())})})})});var initialized=!1;scope.$on("app-initialized",function(){!initialized&&ug.getRol
es(),initialized=!0}),scope.$on("app-changed",function(){scope.securityWarning=!1,ug.getRoles()})}}}]),AppServices.Constants.constant("configuration",{ITEMS_URL:"global/temp.json"}),AppServices.Controllers.controller("PageCtrl",["ug","help","utility","$scope","$rootScope","$location","$routeParams","$q","$route","$log","$analytics",function(ug,help,utility,$scope,$rootScope,$location,$routeParams,$q,$route,$log,$analytics){var initScopeVariables=function(){$scope.loadingText="Loading...",$scope.use_sso=!1,$scope.newApp={name:""},$scope.getPerm="",$scope.postPerm="",$scope.putPerm="",$scope.deletePerm="",$scope.usersTypeaheadValues=[],$scope.groupsTypeaheadValues=[],$scope.rolesTypeaheadValues=[],$rootScope.sdkActive=!1,$rootScope.demoData=!1,$scope.queryStringApplied=!1,$rootScope.autoUpdateTimer=Usergrid.config?Usergrid.config.autoUpdateTimer:61,$rootScope.requiresDeveloperKey=Usergrid.config?Usergrid.config.client.requiresDeveloperKey:!1,$rootScope.loaded=$rootScope.activeUI=!1;fo
r(var key in Usergrid.regex)$scope[key]=Usergrid.regex[key];$scope.options=Usergrid.options;var getQuery=function(){for(var m,result={},queryString=location.search.slice(1),re=/([^&=]+)=([^&]*)/g;m=re.exec(queryString);)result[decodeURIComponent(m[1])]=decodeURIComponent(m[2]);return result};$scope.queryString=getQuery()};initScopeVariables(),$rootScope.urls=function(){var urls=ug.getUrls();return $scope.apiUrl=urls.apiUrl,$scope.use_sso=urls.use_sso,urls},$rootScope.gotoPage=function(path){$location.path(path)};var notRegistration=function(){return"/forgot-password"!==$location.path()&&"/register"!==$location.path()},verifyUser=function(){"/login"!==$location.path().slice(0,"/login".length)&&($rootScope.currentPath=$location.path()),$routeParams.access_token&&$routeParams.admin_email&&$routeParams.uuid&&(ug.set("token",$routeParams.access_token),ug.set("email",$routeParams.admin_email),ug.set("uuid",$routeParams.uuid),$location.search("access_token",null),$location.search("admin_em
ail",null),$location.search("uuid",null)),ug.checkAuthentication(!0)};$scope.profile=function(){$scope.use_sso?window.location=$rootScope.urls().PROFILE_URL+"?callback="+encodeURIComponent($location.absUrl()):$location.path("/profile")},$rootScope.showModal=function(id){$("#"+id).modal("show")},$rootScope.hideModal=function(id){$("#"+id).modal("hide")},$scope.deleteEntities=function(collection,successBroadcast,errorMessage){collection.resetEntityPointer();for(var entitiesToDelete=[];collection.hasNextEntity();){var entity=collection.getNextEntity(),checked=entity.checked;checked&&entitiesToDelete.push(entity)}for(var count=0,success=!1,i=0;i<entitiesToDelete.length;i++){var entity=entitiesToDelete[i];collection.destroyEntity(entity,function(err){count++,err?($rootScope.$broadcast("alert","error",errorMessage),$rootScope.$broadcast(successBroadcast+"-error",err)):success=!0,count===entitiesToDelete.length&&(success&&$rootScope.$broadcast(successBroadcast),$scope.applyScope())})}},$sc
ope.selectAllEntities=function(list,that,varName,setValue){varName=varName||"master";var val=that[varName];void 0==setValue&&(setValue=!0),setValue&&(that[varName]=val=!val),list.forEach(function(entitiy){entitiy.checked=val})},$scope.createPermission=function(type,entity,path,permissions){"/"!=path.charAt(0)&&(path="/"+path);var ops="",s="";permissions.getPerm&&(ops="get",s=","),permissions.postPerm&&(ops=ops+s+"post",s=","),permissions.putPerm&&(ops=ops+s+"put",s=","),permissions.deletePerm&&(ops=ops+s+"delete",s=",");var permission=ops+":"+path;return permission},$scope.formatDate=function(date){return new Date(date).toUTCString()},$scope.clearCheckbox=function(id){$("#"+id).attr("checked")&&$("#"+id).click()},$scope.removeFirstSlash=function(path){return 0===path.indexOf("/")?path.substring(1,path.length):path},$scope.applyScope=function(cb){return cb="function"==typeof cb?cb:function(){},this.$$phase?void cb():this.$apply(cb)},$scope.valueSelected=function(list){return list&&li
st.some(function(item){return item.checked})},$scope.sendHelp=function(modalId){ug.jsonpRaw("apigeeuihelpemail","",{useremail:$rootScope.userEmail}).then(function(){$rootScope.$broadcast("alert","success","Email sent. Our team will be in touch with you shortly.")},function(){$rootScope.$broadcast("alert","error","Problem Sending Email. Try sending an email to mobile@apigee.com.")}),$scope.hideModal(modalId)},$scope.$on("users-typeahead-received",function(event,users){$scope.usersTypeaheadValues=users,$scope.$$phase||$scope.$apply()}),$scope.$on("groups-typeahead-received",function(event,groups){$scope.groupsTypeaheadValues=groups,$scope.$$phase||$scope.$apply()}),$scope.$on("roles-typeahead-received",function(event,roles){$scope.rolesTypeaheadValues=roles,$scope.$$phase||$scope.$apply()}),$scope.$on("checkAuthentication-success",function(){sessionStorage.setItem("authenticateAttempts",0),$scope.loaded=!0,$rootScope.activeUI=!0,$scope.applyScope(),$scope.queryStringApplied||($scope.q
ueryStringApplied=!0,setTimeout(function(){$scope.queryString.org&&$rootScope.$broadcast("change-org",$scope.queryString.org)},1e3)),$rootScope.$broadcast("app-initialized")}),$scope.$on("checkAuthentication-error",function(args,err,missingData,email){if($scope.loaded=!0,err&&!$scope.use_sso&¬Registration())ug.logout(),$location.path("/login"),$scope.applyScope();else if(missingData&¬Registration()){if(!email&&$scope.use_sso)return void(window.location=$rootScope.urls().LOGIN_URL+"?callback="+encodeURIComponent($location.absUrl().split("?")[0]));ug.reAuthenticate(email)}}),$scope.$on("reAuthenticate-success",function(args,err,data,user,organizations,applications){sessionStorage.setItem("authenticateAttempts",0),$rootScope.$broadcast("loginSuccesful",user,organizations,applications),$rootScope.$emit("loginSuccesful",user,organizations,applications),$rootScope.$broadcast("checkAuthentication-success"),$scope.applyScope(function(){$scope.deferredLogin.resolve(),$location.path("/o
rg-overview")})});var authenticateAttempts=parseInt(sessionStorage.getItem("authenticateAttempts")||0);$scope.$on("reAuthenticate-error",function(){if($scope.use_sso){if(authenticateAttempts++>5)return void $rootScope.$broadcast("alert","error","There is an issue with authentication. Please contact support.");console.error("Failed to login via sso "+authenticateAttempts),sessionStorage.setItem("authenticateAttempts",authenticateAttempts),window.location=$rootScope.urls().LOGIN_URL+"?callback="+encodeURIComponent($location.absUrl().split("?")[0])}else notRegistration()&&(ug.logout(),$location.path("/login"),$scope.applyScope())}),$scope.$on("loginSuccessful",function(){$rootScope.activeUI=!0}),$scope.$on("app-changed",function(args,oldVal,newVal,preventReload){newVal===oldVal||preventReload||$route.reload()}),$scope.$on("org-changed",function(){ug.getApplications(),$route.reload()}),$scope.$on("app-settings-received",function(){}),$scope.$on("request-times-slow",function(){$rootScope
.$broadcast("alert","info","We are experiencing performance issues on our server. Please click Get Help for support if this continues.")});var lastPage="";$scope.$on("$routeChangeSuccess",function(){verifyUser(),$scope.showDemoBar="/performance"===$location.path().slice(0,"/performance".length),$scope.showDemoBar||($rootScope.demoData=!1),setTimeout(function(){lastPage=""},50);var path=window.location.pathname.replace("index-debug.html","");""===lastPage&&$analytics.pageTrack((path+$location.path()).replace("//","/")),lastPage=$location.path()}),$scope.$on("applications-received",function(event,applications){$scope.applications=applications,$scope.hasApplications=Object.keys(applications).length>0}),ug.getAppSettings(),$rootScope.startFirstTimeUser=function(){$rootScope.hideModal("introjs"),$rootScope.help.introjs_StartEvent(),$scope.startHelp()}}]),AppServices.Directives.directive("pageTitle",["$rootScope","ug",function($rootScope){return{restrict:"E",transclude:!0,templateUrl:"gl
obal/page-title.html",link:function(scope,lElement,attrs){scope.title=attrs.title,scope.icon=attrs.icon,scope.showHelp=function(){$("#need-help").modal("show")},scope.sendHelp=function(){data.jsonp_raw("apigeeuihelpemail","",{useremail:$rootScope.userEmail}).then(function(){$rootScope.$broadcast("alert","success","Email sent. Our team will be in touch with you shortly.")},function(){$rootScope.$broadcast("alert","error","Problem Sending Email. Try sending an email to mobile@apigee.com.")}),$("#need-help").modal("hide")}}}}]),AppServices.Services.factory("ug",function(configuration,$rootScope,utility,$q,$http,$resource,$log,$analytics,$location){function reportError(data,config){try{$analytics.eventTrack("error",{category:"App Services",label:data+":"+config.url+":"+(sessionStorage.apigee_uuid||"na")})}catch(e){console.log(e)}}var requestTimes=[],running=!1,currentRequests={},getAccessToken=function(){return sessionStorage.getItem("accessToken")};return{get:function(prop,isObject){re
turn isObject?this.client().getObject(prop):this.client().get(prop)},set:function(prop,value){this.client().set(prop,value)},getUrls:function(){var host=$location.host(),qs=$location.search(),BASE_URL="",DATA_URL="",use_sso=!1;switch(!0){case"appservices.apigee.com"===host&&location.pathname.indexOf("/dit")>=0:BASE_URL="https://accounts.jupiter.apigee.net",DATA_URL="http://apigee-internal-prod.jupiter.apigee.net",use_sso=!0;break;case"appservices.apigee.com"===host&&location.pathname.indexOf("/mars")>=0:BASE_URL="https://accounts.mars.apigee.net",DATA_URL="http://apigee-internal-prod.mars.apigee.net",use_sso=!0;break;case"appservices.apigee.com"===host:DATA_URL=Usergrid.overrideUrl;break;case"apigee.com"===host:BASE_URL="https://accounts.apigee.com",DATA_URL="https://api.usergrid.com",use_sso=!0;break;case"usergrid.dev"===host:DATA_URL="https://api.usergrid.com";break;default:DATA_URL=Usergrid.overrideUrl}return DATA_URL=qs.api_url||DATA_URL,DATA_URL=DATA_URL.lastIndexOf("/")===DATA
_URL.length-1?DATA_URL.substring(0,DATA_URL.length-1):DATA_URL,{DATA_URL:DATA_URL,LOGIN_URL:BASE_URL+"/accounts/sign_in",PROFILE_URL:BASE_URL+"/accounts/my_account",LOGOUT_URL:BASE_URL+"/accounts/sign_out",apiUrl:DATA_URL,use_sso:use_sso}},orgLogin:function(username,password){var self=this;this.client().set("email",username),this.client().set("token",null),this.client().orgLogin(username,password,function(err,data,user,organizations,applications){err?$rootScope.$broadcast("loginFailed",err,data):self.initializeCurrentUser(function(){$rootScope.$broadcast("loginSuccesful",user,organizations,applications)})})},checkAuthentication:function(force){var ug=this,client=ug.client(),initialize=function(){ug.initializeCurrentUser(function(){$rootScope.userEmail=client.get("email"),$rootScope.organizations=client.getObject("organizations"),$rootScope.applications=client.getObject("applications"),$rootScope.currentOrg=client.get("orgName"),$rootScope.currentApp=client.get("appName");var key,siz
e=0;for(key in $rootScope.applications)$rootScope.applications.hasOwnProperty(key)&&size++;$rootScope.$broadcast("checkAuthentication-success",client.getObject("organizations"),client.getObject("applications"),client.get("orgName"),client.get("appName"),client.get("email"))})},isAuthenticated=function(){var authenticated=null!==client.get("token")&&null!==client.get("organizations");return authenticated&&initialize(),authenticated};if(!isAuthenticated()||force){if(!client.get("token"))return $rootScope.$broadcast("checkAuthentication-error","no token",{},client.get("email"));this.client().reAuthenticateLite(function(err){var missingData=err||!client.get("orgName")||!client.get("appName")||!client.getObject("organizations")||!client.getObject("applications"),email=client.get("email");err||missingData?$rootScope.$broadcast("checkAuthentication-error",err,missingData,email):initialize()})}},reAuthenticate:function(email,eventOveride){var ug=this;this.client().reAuthenticate(email,funct
ion(err,data,user,organizations,applications){err||($rootScope.currentUser=user),err||($rootScope.userEmail=user.get("email"),$rootScope.organizations=organizations,$rootScope.applications=applications,$rootScope.currentOrg=ug.get("orgName"),$rootScope.currentApp=ug.get("appName"),$rootScope.currentUser=user._data,$rootScope.currentUser.profileImg=utility.get_gravatar($rootScope.currentUser.email)),$rootScope.$broadcast((eventOveride||"reAuthenticate")+"-"+(err?"error":"success"),err,data,user,organizations,applications)})},logoutCallback:function(){$rootScope.$broadcast("userNotAuthenticated")},logout:function(){$rootScope.activeUI=!1,$rootScope.userEmail="user@apigee.com",$rootScope.organizations={noOrg:{name:"No Orgs Found"}},$rootScope.applications={noApp:{name:"No Apps Found"}},$rootScope.currentOrg="No Org Found",$rootScope.currentApp="No App Found",sessionStorage.setItem("accessToken",null),sessionStorage.setItem("userUUID",null),sessionStorage.setItem("userEmail",null),this.
client().logout(),this._client=null},client:function(){var options={buildCurl:!0,logging:!0};return Usergrid.options&&Usergrid.options.client&&(options.keys=Usergrid.options.client),this._client=this._client||new Usergrid.Client(options,$rootScope.urls().DATA_URL),this._client},setClientProperty:function(key,value){this.client().set(key,value)},getTopCollections:function(){var options={method:"GET",endpoint:""};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error getting collections");else{var collections=data.entities[0].metadata.collections;$rootScope.$broadcast("top-collections-received",collections)}})},createCollection:function(collectionName){var collections={};collections[collectionName]={};var metadata={metadata:{collections:collections}},options={method:"PUT",body:metadata,endpoint:""};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error creating collection"):$rootScope.$broadcast("colle
ction-created",collections)})},getApplications:function(){this.client().getApplications(function(err,applications){err?applications&&console.error(applications):$rootScope.$broadcast("applications-received",applications)})},getAdministrators:function(){this.client().getAdministrators(function(err,administrators){err&&$rootScope.$broadcast("alert","error","error getting administrators"),$rootScope.$broadcast("administrators-received",administrators)})},createApplication:function(appName){this.client().createApplication(appName,function(err,applications){err?$rootScope.$broadcast("alert","error","error creating application"):($rootScope.$broadcast("applications-created",applications,appName),$rootScope.$broadcast("applications-received",applications))})},createAdministrator:function(adminName){this.client().createAdministrator(adminName,function(err,administrators){err&&$rootScope.$broadcast("alert","error","error creating administrator"),$rootScope.$broadcast("administrators-received
",administrators)})},getFeed:function(){var options={method:"GET",endpoint:"management/organizations/"+this.client().get("orgName")+"/feed",mQuery:!0};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error getting feed");else{var feedData=data.entities,feed=[],i=0;for(i=0;i<feedData.length;i++){var date=new Date(feedData[i].created).toUTCString(),title=feedData[i].title,n=title.indexOf(">");title=title.substring(n+1,title.length),n=title.indexOf(">"),title=title.substring(n+1,title.length),feedData[i].actor&&(title=feedData[i].actor.displayName+" "+title),feed.push({date:date,title:title})}0===i&&feed.push({date:"",title:"No Activities found."}),$rootScope.$broadcast("feed-received",feed)}})},createGroup:function(path,title){var options={path:path,title:title},self=this;this.groupsCollection.addEntity(options,function(err){err?$rootScope.$broadcast("groups-create-error",err):($rootScope.$broadcast("groups-create-success",self.groupsColle
ction),$rootScope.$broadcast("groups-received",self.groupsCollection))})},createRole:function(name,title){var options={name:name,title:title},self=this;this.rolesCollection.addEntity(options,function(err){err?$rootScope.$broadcast("alert","error","error creating role"):$rootScope.$broadcast("roles-received",self.rolesCollection)})},createUser:function(username,name,email,password){var options={username:username,name:name,email:email,password:password},self=this;this.usersCollection.addEntity(options,function(err,data){err?"string"==typeof data?$rootScope.$broadcast("alert","error","error: "+data):$rootScope.$broadcast("alert","error","error creating user. the email address might already exist."):($rootScope.$broadcast("users-create-success",self.usersCollection),$rootScope.$broadcast("users-received",self.usersCollection))})},getCollection:function(type,path,orderBy,query,limit){var options={type:path,qs:{}};query&&(options.qs.ql=query),options.qs.ql=options.qs.ql?options.qs.ql+" or
der by "+(orderBy||"created desc"):" order by "+(orderBy||"created desc"),limit&&(options.qs.limit=limit),this.client().createCollection(options,function(err,collection,data){err?$rootScope.$broadcast("alert","error","error getting "+collection._type+": "+data.error_description):$rootScope.$broadcast(type+"-received",collection),$rootScope.$$phase||$rootScope.$apply()})},runDataQuery:function(queryPath,searchString,queryLimit){this.getCollection("query",queryPath,null,searchString,queryLimit)},runDataPOSTQuery:function(queryPath,body){var self=this,options={method:"POST",endpoint:queryPath,body:body};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error: "+data.error_description),$rootScope.$broadcast("error-running-query",data);else{var queryPath=data.path;self.getCollection("query",queryPath,null,"order by modified DESC",null)}})},runDataPutQuery:function(queryPath,searchString,queryLimit,body){var self=this,options={method:"PUT",endp
oint:queryPath,body:body};searchString&&(options.qs.ql=searchString),queryLimit&&(options.qs.queryLimit=queryLimit),this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error: "+data.error_description);else{var queryPath=data.path;self.getCollection("query",queryPath,null,"order by modified DESC",null)}})},runDataDeleteQuery:function(queryPath,searchString,queryLimit){var self=this,options={method:"DELETE",endpoint:queryPath};searchString&&(options.qs.ql=searchString),queryLimit&&(options.qs.queryLimit=queryLimit),this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error: "+data.error_description);else{var queryPath=data.path;self.getCollection("query",queryPath,null,"order by modified DESC",null)}})},getUsers:function(){this.getCollection("users","users","username");var self=this;$rootScope.$on("users-received",function(evt,users){self.usersCollection=users})},getGroups:function(){this.getCollectio
n("groups","groups","title");var self=this;$rootScope.$on("groups-received",function(event,roles){self.groupsCollection=roles})},getRoles:function(){this.getCollection("roles","roles","name");var self=this;$rootScope.$on("roles-received",function(event,roles){self.rolesCollection=roles})},getNotifiers:function(){var query="",limit="100",self=this;this.getCollection("notifiers","notifiers","created",query,limit),$rootScope.$on("notifiers-received",function(event,notifiers){self.notifiersCollection=notifiers})},getNotificationHistory:function(type){var query=null;type&&(query="select * where state = '"+type+"'"),this.getCollection("notifications","notifications","created desc",query);var self=this;$rootScope.$on("notifications-received",function(event,notifications){self.notificationCollection=notifications})},getNotificationReceipts:function(uuid){this.getCollection("receipts","notifications/"+uuid+"/receipts");var self=this;$rootScope.$on("receipts-received",function(event,receipts)
{self.receiptsCollection=receipts})},getIndexes:function(path){var options={method:"GET",endpoint:path.split("/").concat("indexes").filter(function(bit){return bit&&bit.length}).join("/")};this.client().request(options,function(err,data){err?$rootScope.$broadcast("alert","error","Problem getting indexes: "+data.error):$rootScope.$broadcast("indexes-received",data.data)})},sendNotification:function(path,body){var options={method:"POST",endpoint:path,body:body};this.client().request(options,function(err,data){err?$rootScope.$broadcast("alert","error","Problem creating notification: "+data.error):$rootScope.$broadcast("send-notification-complete")})},getRolesUsers:function(username){var options={type:"roles/users/"+username,qs:{ql:"order by username"}};this.client().createCollection(options,function(err,users){err?$rootScope.$broadcast("alert","error","error getting users"):$rootScope.$broadcast("users-received",users)})},getTypeAheadData:function(type,searchString,searchBy,orderBy){va
r search="",qs={limit:100};searchString&&(search="select * where "+searchBy+" = '"+searchString+"'"),orderBy&&(search=search+" order by "+orderBy),search&&(qs.ql=search);var options={method:"GET",endpoint:type,qs:qs};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error getting "+type);else{var entities=data.entities;$rootScope.$broadcast(type+"-typeahead-received",entities)}})},getUsersTypeAhead:function(searchString){this.getTypeAheadData("users",searchString,"username","username")},getGroupsTypeAhead:function(searchString){this.getTypeAheadData("groups",searchString,"path","path")},getRolesTypeAhead:function(searchString){this.getTypeAheadData("roles",searchString,"name","name")},getGroupsForUser:function(user){var options={type:"users/"+user+"/groups"};this.client().createCollection(options,function(err,groups){err?$rootScope.$broadcast("alert","error","error getting groups"):$rootScope.$broadcast("user-groups-received",groups)})},a
ddUserToGroup:function(user,group){var options={type:"users/"+user+"/groups/"+group};this.client().createEntity(options,function(err){err?$rootScope.$broadcast("alert","error","error adding user to group"):$rootScope.$broadcast("user-added-to-group-received")})},addUserToRole:function(user,role){var options={method:"POST",endpoint:"roles/"+role+"/users/"+user};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error adding user to role"):$rootScope.$broadcast("role-update-received")})},addGroupToRole:function(group,role){var options={method:"POST",endpoint:"roles/"+role+"/groups/"+group};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error adding group to role"):$rootScope.$broadcast("role-update-received")})},followUser:function(user){var username=$rootScope.selectedUser.get("uuid"),options={method:"POST",endpoint:"users/"+username+"/following/users/"+user};this.client().request(options,function(err){err?$r
ootScope.$broadcast("alert","error","error following user"):$rootScope.$broadcast("follow-user-received")})},newPermission:function(permission,type,entity){var options={method:"POST",endpoint:type+"/"+entity+"/permissions",body:{permission:permission}};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error adding permission"):$rootScope.$broadcast("permission-update-received")})},newUserPermission:function(permission,username){this.newPermission(permission,"users",username)},newGroupPermission:function(permission,path){this.newPermission(permission,"groups",path)},newRolePermission:function(permission,name){this.newPermission(permission,"roles",name)},deletePermission:function(permission,type,entity){var options={method:"DELETE",endpoint:type+"/"+entity+"/permissions",qs:{permission:permission}};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error deleting permission"):$rootScope.$broadcast("permission-upd
ate-received")})},deleteUserPermission:function(permission,user){this.deletePermission(permission,"users",user)},deleteGroupPermission:function(permission,group){this.deletePermission(permission,"groups",group)},deleteRolePermission:function(permission,rolename){this.deletePermission(permission,"roles",rolename)},removeUserFromRole:function(user,role){var options={method:"DELETE",endpoint:"roles/"+role+"/users/"+user};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error removing user from role"):$rootScope.$broadcast("role-update-received")})},removeUserFromGroup:function(group,role){var options={method:"DELETE",endpoint:"roles/"+role+"/groups/"+group};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error removing role from the group"):$rootScope.$broadcast("role-update-received")})},createAndroidNotifier:function(name,APIkey){var options={method:"POST",endpoint:"notifiers",body:{apiKey:APIkey,name:name,p
rovider:"google"}};this.client().request(options,function(err,data){err?(console.error(data),$rootScope.$broadcast("alert","error","error creating notifier ")):($rootScope.$broadcast("alert","success","New notifier created successfully."),$rootScope.$broadcast("notifier-update"))})},createAppleNotifier:function(file,name,environment,certificatePassword){var provider="apple",formData=new FormData;formData.append("p12Certificate",file),formData.append("name",name),formData.append("provider",provider),formData.append("environment",environment),formData.append("certificatePassword",certificatePassword||"");var options={method:"POST",endpoint:"notifiers",formData:formData};this.client().request(options,function(err,data){err?(console.error(data),$rootScope.$broadcast("alert","error",data.error_description||"error creating notifier")):($rootScope.$broadcast("alert","success","New notifier created successfully."),$rootScope.$broadcast("notifier-update"))})},deleteNotifier:function(name){va
r options={method:"DELETE",endpoint:"notifiers/"+name};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error deleting notifier"):$rootScope.$broadcast("notifier-update")})},initializeCurrentUser:function(callback){if(callback=callback||function(){},$rootScope.currentUser&&!$rootScope.currentUser.reset)return callback($rootScope.currentUser),$rootScope.$broadcast("current-user-initialized","");var options={method:"GET",endpoint:"management/users/"+this.client().get("email"),mQuery:!0};this.client().request(options,function(err,data){err?$rootScope.$broadcast("alert","error","Error getting user info"):($rootScope.currentUser=data.data,$rootScope.currentUser.profileImg=utility.get_gravatar($rootScope.currentUser.email),$rootScope.userEmail=$rootScope.currentUser.email,callback($rootScope.currentUser),$rootScope.$broadcast("current-user-initialized",$rootScope.currentUser))})},updateUser:function(user){var body=$rootScope.currentUser;body.username=
user.username,body.name=user.name,body.email=user.email;var options={method:"PUT",endpoint:"management/users/"+user.uuid+"/",mQuery:!0,body:body},self=this;this.client().request(options,function(err,data){return self.client().set("email",user.email),self.client().set("username",user.username),err?$rootScope.$broadcast("user-update-error",data):($rootScope.currentUser.reset=!0,void self.initializeCurrentUser(function(){$rootScope.$broadcast("user-update-success",$rootScope.currentUser)}))})},resetUserPassword:function(user){var pwdata={};pwdata.oldpassword=user.oldPassword,pwdata.newpassword=user.newPassword,pwdata.username=user.username;var options={method:"PUT",endpoint:"users/"+pwdata.uuid+"/",body:pwdata};this.client().request(options,function(err){return err?$rootScope.$broadcast("alert","error","Error resetting password"):($rootScope.currentUser.oldPassword="",$rootScope.currentUser.newPassword="",void $rootScope.$broadcast("user-reset-password-success",$rootScope.currentUser))
})},getOrgCredentials:function(){var options={method:"GET",endpoint:"management/organizations/"+this.client().get("orgName")+"/credentials",mQuery:!0};this.client().request(options,function(err,data){err&&data.credentials?$rootScope.$broadcast("alert","error","Error getting credentials"):$rootScope.$broadcast("org-creds-updated",data.credentials)})},regenerateOrgCredentials:function(){var options={method:"POST",endpoint:"management/organizations/"+this.client().get("orgName")+"/credentials",mQuery:!0};this.client().request(options,function(err,data){err&&data.credentials?$rootScope.$broadcast("alert","error","Error regenerating credentials"):($rootScope.$broadcast("alert","success","Regeneration of credentials complete."),$rootScope.$broadcast("org-creds-updated",data.credentials))})},getAppCredentials:function(){var options={method:"GET",endpoint:"credentials"};this.client().request(options,function(err,data){err&&data.credentials?$rootScope.$broadcast("alert","error","Error gettin
g credentials"):$rootScope.$broadcast("app-creds-updated",data.credentials)})},regenerateAppCredentials:function(){var options={method:"POST",endpoint:"credentials"};
+var helpStartTime,introjs_step;$rootScope.help.sendTooltipGA=function(tooltipName){$analytics.eventTrack("tooltip - "+$rootScope.currentPath,{category:"App Services",label:tooltipName})},$rootScope.help.toggleTooltips=function(){0==$rootScope.help.helpTooltipsEnabled?($rootScope.help.helpButtonStatus="Disable Help",$rootScope.help.helpTooltipsEnabled=!0,showHelpModal("tooltips")):($rootScope.help.helpButtonStatus="Enable Help",$rootScope.help.helpTooltipsEnabled=!1)},$rootScope.help.IntroOptions={steps:[],showStepNumbers:!1,exitOnOverlayClick:!0,exitOnEsc:!0,nextLabel:"Next",prevLabel:"Back",skipLabel:"Exit",doneLabel:"Done"},$rootScope.$on("$routeChangeSuccess",function(event,current){var path=current.$$route?current.$$route.originalPath:null;"/org-overview"==path?($rootScope.help.showHelpButtons=!0,getHelpJson(path).success(function(json){var helpJson=json;setHelpStrings(helpJson),showHelpModal("tour")})):$rootScope.help.showHelpButtons=!1});var showHelpModal=function(helpType){va
r shouldHelp=location.search.indexOf("noHelp")<=0;"tour"!=helpType||getHelpStatus(helpType)?"tooltips"!=helpType||getHelpStatus(helpType)||shouldHelp&&$rootScope.showModal("tooltips"):shouldHelp&&$rootScope.showModal("introjs")},setHelpStrings=function(helpJson){$rootScope.help.IntroOptions.steps=helpJson.introjs,angular.forEach(helpJson.tooltip,function(value,binding){$rootScope[binding]=value})};$rootScope.help.introjs_StartEvent=function(){helpStartTime=Date.now(),introjs_step=1},$rootScope.help.introjs_ExitEvent=function(){var introjs_time=Math.round((Date.now()-helpStartTime)/1e3);$analytics.eventTrack("introjs timing - "+$rootScope.currentPath,{category:"App Services",label:introjs_time+"s"}),$analytics.eventTrack("introjs exit - "+$rootScope.currentPath,{category:"App Services",label:"step"+introjs_step})},$rootScope.help.introjs_ChangeEvent=function(){introjs_step++};var getHelpJson=function(path){return $http.jsonp("http://sdk.apigee.com.s3.amazonaws.com/portal_help"+path+"
/helpJson.json?callback=JSON_CALLBACK")},getHelpStatus=function(helpType){var status;return"tour"==helpType?(status=localStorage.getItem("ftu_tour"),localStorage.setItem("ftu_tour","false")):"tooltips"==helpType&&(status=localStorage.getItem("ftu_tooltips"),localStorage.setItem("ftu_tooltips","false")),status}}),AppServices.Directives.directive("insecureBanner",["$rootScope","ug",function($rootScope,ug){return{restrict:"E",transclude:!0,templateUrl:"global/insecure-banner.html",link:function(scope){scope.securityWarning=!1,scope.$on("roles-received",function(evt,roles){scope.securityWarning=!1,roles&&roles._list&&roles._list.forEach(function(roleHolder){var role=roleHolder._data;"GUEST"===role.name.toUpperCase()&&roleHolder.getPermissions(function(err){err||roleHolder.permissions&&roleHolder.permissions.forEach(function(permission){permission.path.indexOf("/**")>=0&&(scope.securityWarning=!0,scope.applyScope())})})})});var initialized=!1;scope.$on("app-initialized",function(){!initi
alized&&ug.getRoles(),initialized=!0}),scope.$on("app-changed",function(){scope.securityWarning=!1,ug.getRoles()})}}}]),AppServices.Constants.constant("configuration",{ITEMS_URL:"global/temp.json"}),AppServices.Controllers.controller("PageCtrl",["ug","help","utility","$scope","$rootScope","$location","$routeParams","$q","$route","$log","$analytics",function(ug,help,utility,$scope,$rootScope,$location,$routeParams,$q,$route,$log,$analytics){var initScopeVariables=function(){$scope.loadingText="Loading...",$scope.use_sso=!1,$scope.newApp={name:""},$scope.getPerm="",$scope.postPerm="",$scope.putPerm="",$scope.deletePerm="",$scope.usersTypeaheadValues=[],$scope.groupsTypeaheadValues=[],$scope.rolesTypeaheadValues=[],$rootScope.sdkActive=!1,$rootScope.demoData=!1,$scope.queryStringApplied=!1,$rootScope.autoUpdateTimer=Usergrid.config?Usergrid.config.autoUpdateTimer:61,$rootScope.requiresDeveloperKey=Usergrid.config?Usergrid.config.client.requiresDeveloperKey:!1,$rootScope.loaded=$rootSco
pe.activeUI=!1;for(var key in Usergrid.regex)$scope[key]=Usergrid.regex[key];$scope.options=Usergrid.options;var getQuery=function(){for(var m,result={},queryString=location.search.slice(1),re=/([^&=]+)=([^&]*)/g;m=re.exec(queryString);)result[decodeURIComponent(m[1])]=decodeURIComponent(m[2]);return result};$scope.queryString=getQuery()};initScopeVariables(),$rootScope.urls=function(){var urls=ug.getUrls();return $scope.apiUrl=urls.apiUrl,$scope.use_sso=urls.use_sso,urls},$rootScope.gotoPage=function(path){$location.path(path)};var notRegistration=function(){return"/forgot-password"!==$location.path()&&"/register"!==$location.path()},verifyUser=function(){"/login"!==$location.path().slice(0,"/login".length)&&($rootScope.currentPath=$location.path()),$routeParams.access_token&&$routeParams.admin_email&&$routeParams.uuid&&(ug.set("token",$routeParams.access_token),ug.set("email",$routeParams.admin_email),ug.set("uuid",$routeParams.uuid),$location.search("access_token",null),$location
.search("admin_email",null),$location.search("uuid",null)),ug.checkAuthentication(!0)};$scope.profile=function(){$scope.use_sso?window.location=$rootScope.urls().PROFILE_URL+"?callback="+encodeURIComponent($location.absUrl()):$location.path("/profile")},$rootScope.showModal=function(id){$("#"+id).modal("show")},$rootScope.hideModal=function(id){$("#"+id).modal("hide")},$scope.deleteEntities=function(collection,successBroadcast,errorMessage){collection.resetEntityPointer();for(var entitiesToDelete=[];collection.hasNextEntity();){var entity=collection.getNextEntity(),checked=entity.checked;checked&&entitiesToDelete.push(entity)}for(var count=0,success=!1,i=0;i<entitiesToDelete.length;i++){var entity=entitiesToDelete[i];collection.destroyEntity(entity,function(err){count++,err?($rootScope.$broadcast("alert","error",errorMessage),$rootScope.$broadcast(successBroadcast+"-error",err)):success=!0,count===entitiesToDelete.length&&(success&&$rootScope.$broadcast(successBroadcast),$scope.appl
yScope())})}},$scope.selectAllEntities=function(list,that,varName,setValue){varName=varName||"master";var val=that[varName];void 0==setValue&&(setValue=!0),setValue&&(that[varName]=val=!val),list.forEach(function(entitiy){entitiy.checked=val})},$scope.createPermission=function(type,entity,path,permissions){"/"!=path.charAt(0)&&(path="/"+path);var ops="",s="";permissions.getPerm&&(ops="get",s=","),permissions.postPerm&&(ops=ops+s+"post",s=","),permissions.putPerm&&(ops=ops+s+"put",s=","),permissions.deletePerm&&(ops=ops+s+"delete",s=",");var permission=ops+":"+path;return permission},$scope.formatDate=function(date){return new Date(date).toUTCString()},$scope.clearCheckbox=function(id){$("#"+id).attr("checked")&&$("#"+id).click()},$scope.removeFirstSlash=function(path){return 0===path.indexOf("/")?path.substring(1,path.length):path},$scope.applyScope=function(cb){return cb="function"==typeof cb?cb:function(){},this.$$phase?void cb():this.$apply(cb)},$scope.valueSelected=function(list
){return list&&list.some(function(item){return item.checked})},$scope.sendHelp=function(modalId){ug.jsonpRaw("apigeeuihelpemail","",{useremail:$rootScope.userEmail}).then(function(){$rootScope.$broadcast("alert","success","Email sent. Our team will be in touch with you shortly.")},function(){$rootScope.$broadcast("alert","error","Problem Sending Email. Try sending an email to mobile@apigee.com.")}),$scope.hideModal(modalId)},$scope.$on("users-typeahead-received",function(event,users){$scope.usersTypeaheadValues=users,$scope.$$phase||$scope.$apply()}),$scope.$on("groups-typeahead-received",function(event,groups){$scope.groupsTypeaheadValues=groups,$scope.$$phase||$scope.$apply()}),$scope.$on("roles-typeahead-received",function(event,roles){$scope.rolesTypeaheadValues=roles,$scope.$$phase||$scope.$apply()}),$scope.$on("checkAuthentication-success",function(){sessionStorage.setItem("authenticateAttempts",0),$scope.loaded=!0,$rootScope.activeUI=!0,$scope.applyScope(),$scope.queryStringA
pplied||($scope.queryStringApplied=!0,setTimeout(function(){$scope.queryString.org&&$rootScope.$broadcast("change-org",$scope.queryString.org)},1e3)),$rootScope.$broadcast("app-initialized")}),$scope.$on("checkAuthentication-error",function(args,err,missingData,email){if($scope.loaded=!0,err&&!$scope.use_sso&¬Registration())ug.logout(),$location.path("/login"),$scope.applyScope();else if(missingData&¬Registration()){if(!email&&$scope.use_sso)return void(window.location=$rootScope.urls().LOGIN_URL+"?callback="+encodeURIComponent($location.absUrl().split("?")[0]));ug.reAuthenticate(email)}}),$scope.$on("reAuthenticate-success",function(args,err,data,user,organizations,applications){sessionStorage.setItem("authenticateAttempts",0),$rootScope.$broadcast("loginSuccesful",user,organizations,applications),$rootScope.$emit("loginSuccesful",user,organizations,applications),$rootScope.$broadcast("checkAuthentication-success"),$scope.applyScope(function(){$scope.deferredLogin.resolve(),$
location.path("/org-overview")})});var authenticateAttempts=parseInt(sessionStorage.getItem("authenticateAttempts")||0);$scope.$on("reAuthenticate-error",function(){if($scope.use_sso){if(authenticateAttempts++>5)return void $rootScope.$broadcast("alert","error","There is an issue with authentication. Please contact support.");console.error("Failed to login via sso "+authenticateAttempts),sessionStorage.setItem("authenticateAttempts",authenticateAttempts),window.location=$rootScope.urls().LOGIN_URL+"?callback="+encodeURIComponent($location.absUrl().split("?")[0])}else notRegistration()&&(ug.logout(),$location.path("/login"),$scope.applyScope())}),$scope.$on("loginSuccessful",function(){$rootScope.activeUI=!0}),$scope.$on("app-changed",function(args,oldVal,newVal,preventReload){newVal===oldVal||preventReload||$route.reload()}),$scope.$on("org-changed",function(){ug.getApplications(),$route.reload()}),$scope.$on("app-settings-received",function(){}),$scope.$on("request-times-slow",func
tion(){$rootScope.$broadcast("alert","info","We are experiencing performance issues on our server. Please click Get Help for support if this continues.")});var lastPage="";$scope.$on("$routeChangeSuccess",function(){verifyUser(),$scope.showDemoBar="/performance"===$location.path().slice(0,"/performance".length),$scope.showDemoBar||($rootScope.demoData=!1),setTimeout(function(){lastPage=""},50);var path=window.location.pathname.replace("index-debug.html","");""===lastPage&&$analytics.pageTrack((path+$location.path()).replace("//","/")),lastPage=$location.path()}),$scope.$on("applications-received",function(event,applications){$scope.applications=applications,$scope.hasApplications=Object.keys(applications).length>0}),ug.getAppSettings(),$rootScope.startFirstTimeUser=function(){$rootScope.hideModal("introjs"),$rootScope.help.introjs_StartEvent(),$scope.startHelp()}}]),AppServices.Directives.directive("pageTitle",["$rootScope","ug",function($rootScope){return{restrict:"E",transclude:!
0,templateUrl:"global/page-title.html",link:function(scope,lElement,attrs){scope.title=attrs.title,scope.icon=attrs.icon,scope.showHelp=function(){$("#need-help").modal("show")},scope.sendHelp=function(){data.jsonp_raw("apigeeuihelpemail","",{useremail:$rootScope.userEmail}).then(function(){$rootScope.$broadcast("alert","success","Email sent. Our team will be in touch with you shortly.")},function(){$rootScope.$broadcast("alert","error","Problem Sending Email. Try sending an email to mobile@apigee.com.")}),$("#need-help").modal("hide")}}}}]),AppServices.Services.factory("ug",function(configuration,$rootScope,utility,$q,$http,$resource,$log,$analytics,$location){function reportError(data,config){try{$analytics.eventTrack("error",{category:"App Services",label:data+":"+config.url+":"+(sessionStorage.apigee_uuid||"na")})}catch(e){console.log(e)}}var requestTimes=[],running=!1,currentRequests={},getAccessToken=function(){return sessionStorage.getItem("accessToken")};return{get:function(
prop,isObject){return isObject?this.client().getObject(prop):this.client().get(prop)},set:function(prop,value){this.client().set(prop,value)},getUrls:function(){var host=$location.host(),qs=$location.search(),BASE_URL="",DATA_URL="",use_sso=!1;switch(!0){case"appservices.apigee.com"===host&&location.pathname.indexOf("/dit")>=0:BASE_URL="https://accounts.jupiter.apigee.net",DATA_URL="http://apigee-internal-prod.jupiter.apigee.net",use_sso=!0;break;case"appservices.apigee.com"===host&&location.pathname.indexOf("/mars")>=0:BASE_URL="https://accounts.mars.apigee.net",DATA_URL="http://apigee-internal-prod.mars.apigee.net",use_sso=!0;break;case"appservices.apigee.com"===host:DATA_URL=Usergrid.overrideUrl;break;case"apigee.com"===host:BASE_URL="https://accounts.apigee.com",DATA_URL="https://api.usergrid.com",use_sso=!0;break;case"usergrid.dev"===host:DATA_URL="https://api.usergrid.com";break;default:DATA_URL=Usergrid.overrideUrl}return DATA_URL=qs.api_url||DATA_URL,DATA_URL=DATA_URL.lastIn
dexOf("/")===DATA_URL.length-1?DATA_URL.substring(0,DATA_URL.length-1):DATA_URL,{DATA_URL:DATA_URL,LOGIN_URL:BASE_URL+"/accounts/sign_in",PROFILE_URL:BASE_URL+"/accounts/my_account",LOGOUT_URL:BASE_URL+"/accounts/sign_out",apiUrl:DATA_URL,use_sso:use_sso}},orgLogin:function(username,password){var self=this;this.client().set("email",username),this.client().set("token",null),this.client().orgLogin(username,password,function(err,data,user,organizations,applications){err?$rootScope.$broadcast("loginFailed",err,data):self.initializeCurrentUser(function(){$rootScope.$broadcast("loginSuccesful",user,organizations,applications)})})},checkAuthentication:function(force){var ug=this,client=ug.client(),initialize=function(){ug.initializeCurrentUser(function(){$rootScope.userEmail=client.get("email"),$rootScope.organizations=client.getObject("organizations"),$rootScope.applications=client.getObject("applications"),$rootScope.currentOrg=client.get("orgName"),$rootScope.currentApp=client.get("appN
ame");var key,size=0;for(key in $rootScope.applications)$rootScope.applications.hasOwnProperty(key)&&size++;$rootScope.$broadcast("checkAuthentication-success",client.getObject("organizations"),client.getObject("applications"),client.get("orgName"),client.get("appName"),client.get("email"))})},isAuthenticated=function(){var authenticated=null!==client.get("token")&&null!==client.get("organizations");return authenticated&&initialize(),authenticated};if(!isAuthenticated()||force){if(!client.get("token"))return $rootScope.$broadcast("checkAuthentication-error","no token",{},client.get("email"));this.client().reAuthenticateLite(function(err){var missingData=err||!client.get("orgName")||!client.get("appName")||!client.getObject("organizations")||!client.getObject("applications"),email=client.get("email");err||missingData?$rootScope.$broadcast("checkAuthentication-error",err,missingData,email):initialize()})}},reAuthenticate:function(email,eventOveride){var ug=this;this.client().reAuthent
icate(email,function(err,data,user,organizations,applications){err||($rootScope.currentUser=user),err||($rootScope.userEmail=user.get("email"),$rootScope.organizations=organizations,$rootScope.applications=applications,$rootScope.currentOrg=ug.get("orgName"),$rootScope.currentApp=ug.get("appName"),$rootScope.currentUser=user._data,$rootScope.currentUser.profileImg=utility.get_gravatar($rootScope.currentUser.email)),$rootScope.$broadcast((eventOveride||"reAuthenticate")+"-"+(err?"error":"success"),err,data,user,organizations,applications)})},logoutCallback:function(){$rootScope.$broadcast("userNotAuthenticated")},logout:function(){$rootScope.activeUI=!1,$rootScope.userEmail="user@apigee.com",$rootScope.organizations={noOrg:{name:"No Orgs Found"}},$rootScope.applications={noApp:{name:"No Apps Found"}},$rootScope.currentOrg="No Org Found",$rootScope.currentApp="No App Found",sessionStorage.setItem("accessToken",null),sessionStorage.setItem("userUUID",null),sessionStorage.setItem("userE
mail",null),this.client().logout(),this._client=null},client:function(){var options={buildCurl:!0,logging:!0};return Usergrid.options&&Usergrid.options.client&&(options.keys=Usergrid.options.client),this._client=this._client||new Usergrid.Client(options,$rootScope.urls().DATA_URL),this._client},setClientProperty:function(key,value){this.client().set(key,value)},getTopCollections:function(){var options={method:"GET",endpoint:""};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error getting collections");else{var collections=data.entities[0].metadata.collections;$rootScope.$broadcast("top-collections-received",collections)}})},createCollection:function(collectionName){var collections={};collections[collectionName]={};var metadata={metadata:{collections:collections}},options={method:"PUT",body:metadata,endpoint:""};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error creating collection"):$rootScope.
$broadcast("collection-created",collections)})},getApplications:function(){this.client().getApplications(function(err,applications){err?applications&&console.error(applications):$rootScope.$broadcast("applications-received",applications)})},getAdministrators:function(){this.client().getAdministrators(function(err,administrators){err&&$rootScope.$broadcast("alert","error","error getting administrators"),$rootScope.$broadcast("administrators-received",administrators)})},createApplication:function(appName){this.client().createApplication(appName,function(err,applications){err?$rootScope.$broadcast("alert","error","error creating application"):($rootScope.$broadcast("applications-created",applications,appName),$rootScope.$broadcast("applications-received",applications))})},createAdministrator:function(adminName){this.client().createAdministrator(adminName,function(err,administrators){err&&$rootScope.$broadcast("alert","error","error creating administrator"),$rootScope.$broadcast("admini
strators-received",administrators)})},getFeed:function(){var options={method:"GET",endpoint:"management/organizations/"+this.client().get("orgName")+"/feed",mQuery:!0};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error getting feed");else{var feedData=data.entities,feed=[],i=0;for(i=0;i<feedData.length;i++){var date=new Date(feedData[i].created).toUTCString(),title=feedData[i].title,n=title.indexOf(">");title=title.substring(n+1,title.length),n=title.indexOf(">"),title=title.substring(n+1,title.length),feedData[i].actor&&(title=feedData[i].actor.displayName+" "+title),feed.push({date:date,title:title})}0===i&&feed.push({date:"",title:"No Activities found."}),$rootScope.$broadcast("feed-received",feed)}})},createGroup:function(path,title){var options={path:path,title:title},self=this;this.groupsCollection.addEntity(options,function(err){err?$rootScope.$broadcast("groups-create-error",err):($rootScope.$broadcast("groups-create-success"
,self.groupsCollection),$rootScope.$broadcast("groups-received",self.groupsCollection))})},createRole:function(name,title){var options={name:name,title:title},self=this;this.rolesCollection.addEntity(options,function(err){err?$rootScope.$broadcast("alert","error","error creating role"):$rootScope.$broadcast("roles-received",self.rolesCollection)})},createUser:function(username,name,email,password){var options={username:username,name:name,email:email,password:password},self=this;this.usersCollection.addEntity(options,function(err,data){err?"string"==typeof data?$rootScope.$broadcast("alert","error","error: "+data):$rootScope.$broadcast("alert","error","error creating user. the email address might already exist."):($rootScope.$broadcast("users-create-success",self.usersCollection),$rootScope.$broadcast("users-received",self.usersCollection))})},getCollection:function(type,path,orderBy,query,limit){var options={type:path,qs:{}};query&&(options.qs.ql=query),options.qs.ql=options.qs.ql?o
ptions.qs.ql+" order by "+(orderBy||"created desc"):" order by "+(orderBy||"created desc"),limit&&(options.qs.limit=limit),this.client().createCollection(options,function(err,collection,data){err?$rootScope.$broadcast("alert","error","error getting "+collection._type+": "+data.error_description):$rootScope.$broadcast(type+"-received",collection),$rootScope.$$phase||$rootScope.$apply()})},runDataQuery:function(queryPath,searchString,queryLimit){this.getCollection("query",queryPath,null,searchString,queryLimit)},runDataPOSTQuery:function(queryPath,body){var self=this,options={method:"POST",endpoint:queryPath,body:body};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error: "+data.error_description),$rootScope.$broadcast("error-running-query",data);else{var queryPath=data.path;self.getCollection("query",queryPath,null,"order by modified DESC",null)}})},runDataPutQuery:function(queryPath,searchString,queryLimit,body){var self=this,options={
method:"PUT",endpoint:queryPath,body:body};searchString&&(options.qs.ql=searchString),queryLimit&&(options.qs.queryLimit=queryLimit),this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error: "+data.error_description);else{var queryPath=data.path;self.getCollection("query",queryPath,null,"order by modified DESC",null)}})},runDataDeleteQuery:function(queryPath,searchString,queryLimit){var self=this,options={method:"DELETE",endpoint:queryPath};searchString&&(options.qs.ql=searchString),queryLimit&&(options.qs.queryLimit=queryLimit),this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error: "+data.error_description);else{var queryPath=data.path;self.getCollection("query",queryPath,null,"order by modified DESC",null)}})},getUsers:function(){this.getCollection("users","users","username");var self=this;$rootScope.$on("users-received",function(evt,users){self.usersCollection=users})},getGroups:function(){
this.getCollection("groups","groups","title");var self=this;$rootScope.$on("groups-received",function(event,roles){self.groupsCollection=roles})},getRoles:function(){this.getCollection("roles","roles","name");var self=this;$rootScope.$on("roles-received",function(event,roles){self.rolesCollection=roles})},getNotifiers:function(){var query="",limit="100",self=this;this.getCollection("notifiers","notifiers","created",query,limit),$rootScope.$on("notifiers-received",function(event,notifiers){self.notifiersCollection=notifiers})},getNotificationHistory:function(type){var query=null;type&&(query="select * where state = '"+type+"'"),this.getCollection("notifications","notifications","created desc",query);var self=this;$rootScope.$on("notifications-received",function(event,notifications){self.notificationCollection=notifications})},getNotificationReceipts:function(uuid){this.getCollection("receipts","notifications/"+uuid+"/receipts");var self=this;$rootScope.$on("receipts-received",functio
n(event,receipts){self.receiptsCollection=receipts})},getIndexes:function(path){var options={method:"GET",endpoint:path.split("/").concat("indexes").filter(function(bit){return bit&&bit.length}).join("/")};this.client().request(options,function(err,data){err?$rootScope.$broadcast("alert","error","Problem getting indexes: "+data.error):$rootScope.$broadcast("indexes-received",data.data)})},sendNotification:function(path,body){var options={method:"POST",endpoint:path,body:body};this.client().request(options,function(err,data){err?$rootScope.$broadcast("alert","error","Problem creating notification: "+data.error):$rootScope.$broadcast("send-notification-complete")})},getRolesUsers:function(username){var options={type:"roles/users/"+username,qs:{ql:"order by username"}};this.client().createCollection(options,function(err,users){err?$rootScope.$broadcast("alert","error","error getting users"):$rootScope.$broadcast("users-received",users)})},getTypeAheadData:function(type,searchString,sea
rchBy,orderBy){var search="",qs={limit:100};searchString&&(search="select * where "+searchBy+" = '"+searchString+"'"),orderBy&&(search=search+" order by "+orderBy),search&&(qs.ql=search);var options={method:"GET",endpoint:type,qs:qs};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error getting "+type);else{var entities=data.entities;$rootScope.$broadcast(type+"-typeahead-received",entities)}})},getUsersTypeAhead:function(searchString){this.getTypeAheadData("users",searchString,"username","username")},getGroupsTypeAhead:function(searchString){this.getTypeAheadData("groups",searchString,"path","path")},getRolesTypeAhead:function(searchString){this.getTypeAheadData("roles",searchString,"name","name")},getGroupsForUser:function(user){var options={type:"users/"+user+"/groups"};this.client().createCollection(options,function(err,group
<TRUNCATED>
[02/34] minor css tweaks to embedded help and fix for if 25948route
is null
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d3017f28/portal/test/coverage/instrument/js/usergrid-coverage.min.js
----------------------------------------------------------------------
diff --git a/portal/test/coverage/instrument/js/usergrid-coverage.min.js b/portal/test/coverage/instrument/js/usergrid-coverage.min.js
index b02fa5f..2a10462 100644
--- a/portal/test/coverage/instrument/js/usergrid-coverage.min.js
+++ b/portal/test/coverage/instrument/js/usergrid-coverage.min.js
@@ -1,4 +1,4 @@
-/*! usergrid@2.0.1 2014-03-27 */
+/*! usergrid@2.0.1 2014-03-28 */
angular.module("appservices").run(["$templateCache",function($templateCache){"use strict";$templateCache.put("activities/activities.html",'<section class="row-fluid">\n'+' <div class="span12">\n'+' <div class="page-filters">\n'+' <h1 class="title" class="pull-left"><i class="pictogram title">📱</i> Activities</h1>\n'+" </div>\n"+" </div>\n"+"\n"+"</section>\n"+'<section class="row-fluid">\n'+' <div class="span12 tab-content">\n'+' <table class="table table-striped">\n'+" <tbody>\n"+' <tr class="table-header">\n'+" <td>Date</td>\n"+" <td></td>\n"+" <td>User</td>\n"+" <td>Content</td>\n"+" <td>Verb</td>\n"+" <td>UUID</td>\n"+" </tr>\n"+' <tr class="zebraRows" ng-repeat="activity in activities">\n'+" <td>{{formatDate(activity.created)}}</td>\n"+' <td class="gravatar20"> <img ng-src="{{activity.actor.picture}}"/>\n'+" </td>\n"+" <td>{{activity.actor.displayName}}</td>\n"+"
<td>{{activity.content}}</td>\n"+" <td>{{activity.verb}}</td>\n"+" <td>{{activity.uuid}}</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"+" </div>\n"+"</section>");$templateCache.put("app-overview/app-overview.html",'<div class="app-overview-content" >\n'+' <section class="row-fluid">\n'+"\n"+' <page-title title=" Summary" icon="📱"></page-title>\n'+' <section class="row-fluid">\n'+' <h2 class="title" id="app-overview-title">{{currentApp}}</h2>\n'+" </section>\n"+' <section class="row-fluid">\n'+"\n"+' <div class="span6">\n'+' <chart id="appOverview"\n'+' chartdata="appOverview.chart"\n'+' type="column"></chart>\n'+" </div>\n"+"\n"+' <div class="span6">\n'+' <table class="table table-striped">\n'+' <tr class="table-header">\n'+" <td>Path</td>\n"+" <td>Title</td>\n"+" </tr>\n"+' <tr class="zebraRows" ng-repeat="(k,v) in collections">\n'+" <td
>{{v.title}}</td>\n"+" <td>{{v.count}}</td>\n"+" </tr>\n"+" </table>\n"+" </div>\n"+"\n"+" </section>\n"+"</div>");$templateCache.put("app-overview/doc-includes/android.html","<h2>1. Integrate the SDK into your project</h2>\n"+"<p>You can integrate Apigee features into your app by including the SDK in your project. You can do one of the following:</p>\n"+"\n"+'<ul class="nav nav-tabs" id="myTab">\n'+' <li class="active"><a data-toggle="tab" href="#existing_project">Existing project</a></li>\n'+' <li><a data-toggle="tab" href="#new_project">New project</a></li>\n'+"</ul>\n"+"\n"+'<div class="tab-content">\n'+' <div class="tab-pane active" id="existing_project">\n'+' <a class="jumplink" name="add_the_sdk_to_an_existing_project"></a>\n'+" <p>If you've already got an Android project, you can integrate the Apigee SDK into your project as you normally would:</p>\n"+' <div id="collapse">\n'+' <a href="#jar_collapse" class="btn" d
ata-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a> \n'+" </div>\n"+' <div id="jar_collapse" class="collapse">\n'+" <p>Add <code>apigee-android-<version>.jar</code> to your class path by doing the following:</p>\n"+" \n"+" <h3>Android 4.0 (or later) projects</h3>\n"+" <p>Copy the jar file into the <code>/libs</code> folder in your project.</p>\n"+" \n"+" <h3>Android 3.0 (or earlier) projects</h3>\n"+" <ol>\n"+" <li>In the Eclipse <strong>Package Explorer</strong>, select your application's project folder.</li>\n"+" <li>Click the <strong>File > Properties</strong> menu.</li>\n"+" <li>In the <strong>Java Build Path</strong> section, click the <strong>Libraries</strong> tab, click <strong>Add External JARs</strong>.</li>\n"+" <li>Browse to <code>apigee-android-<version>.jar</code>, then click <strong>Open</strong>.</li>\n"+" <li>Order the <code>apigee-android-<version>.jar</code> at the t
op of the class path:\n"+" <ol>\n"+" <li>In the Eclipse <strong>Package Explorer</strong>, select your application's project folder.</li>\n"+" <li>Click the <strong>File > Properties</strong> menu.</li>\n"+" <li>In the properties dialog, in the <strong>Java Build Path</strong> section, click the <strong>Order and Export</strong> tab.</li>\n"+" <li>\n"+" <p><strong>IMPORTANT:</strong> Select the checkbox for <code>apigee-android-<version>.jar</code>, then click the <strong>Top</strong> button.</p>\n"+" </li>\n"+" </ol>\n"+" </li>\n"+" </ol>\n"+' <div class="warning">\n'+" <h3>Applications using Ant</h3>\n"+" <p>If you are using Ant to build your application, you must also copy <code>apigee-android-<version>.jar</code> to the <code>/libs</code> folder in your application.</p>\n"+" </div>\n"+" </div>\n"+" </div>\n"+' <div class="tab-pane" id="new_project">\n'+' <a class="jumplink" name=
"create_a_new_project_based_on_the_SDK"></a>\n'+" <p>If you don't have a project yet, you can begin by using the project template included with the SDK. The template includes support for SDK features.</p>\n"+" <ul>\n"+" <li>Locate the project template in the expanded SDK. It should be at the following location:\n"+" <pre><sdk_root>/new-project-template</pre>\n"+" </li>\n"+" </ul>\n"+" </div>\n"+"</div>\n"+"<h2>2. Update permissions in AndroidManifest.xml</h2>\n"+"<p>Add the following Internet permissions to your application's <code>AndroidManifest.xml</code> file if they have not already been added. Note that with the exception of INTERNET, enabling all other permissions are optional.</p>\n"+"<pre>\n"+'<uses-permission android:name="android.permission.INTERNET" />\n'+'<uses-permission android:name="android.permission.READ_PHONE_STATE" />\n'+'<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />\n'+'<uses-permission andro
id:name="android.permission.ACCESS_FINE_LOCATION" />\n'+'<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />\n'+"</pre>\n"+"<h2>3. Initialize the SDK</h2>\n"+"<p>To initialize the App Services SDK, you must instantiate the <code>ApigeeClient</code> class. There are multiple ways to handle this step, but we recommend that you do the following:</p>\n"+"<ol>\n"+" <li>Subclass the <code>Application</code> class, and add an instance variable for the <code>ApigeeClient</code> to it, along with getter and setter methods.\n"+" <pre>\n"+"public class YourApplication extends Application\n"+"{\n"+" \n"+" private ApigeeClient apigeeClient;\n"+" \n"+" public YourApplication()\n"+" {\n"+" this.apigeeClient = null;\n"+" }\n"+" \n"+" public ApigeeClient getApigeeClient()\n"+" {\n"+" return this.apigeeClient;\n"+" }\n"+" \n"+" public void setApigeeClien
t(ApigeeClient apigeeClient)\n"+" {\n"+" this.apigeeClient = apigeeClient;\n"+" }\n"+"} \n"+" </pre>\n"+" </li>\n"+" <li>Declare the <code>Application</code> subclass in your <code>AndroidManifest.xml</code>. For example:\n"+" <pre>\n"+"<application>\n"+' android:allowBackup="true"\n'+' android:icon="@drawable/ic_launcher"\n'+' android:label="@string/app_name"\n'+' android:name=".YourApplication"\n'+" …\n"+"</application> \n"+" </pre>\n"+" </li>\n"+" <li>Instantiate the <code>ApigeeClient</code> class in the <code>onCreate</code> method of your first <code>Activity</code> class:\n"+" <pre>\n"+"import com.apigee.sdk.ApigeeClient;\n"+"\n"+"@Override\n"+"protected void onCreate(Bundle savedInstanceState) {\n"+" super.onCreate(savedInstanceState); \n"+" \n"+' String ORGNAME = "{{currentOrg}}";\n'+' String APPNAME = "{{currentApp}}";\n'+" \n"+" ApigeeClient apigeeClient = new ApigeeClient(ORGNAME,APPNAME,this.getBaseConte
xt());\n"+"\n"+" // hold onto the ApigeeClient instance in our application object.\n"+" yourApp = (YourApplication) getApplication;\n"+" yourApp.setApigeeClient(apigeeClient); \n"+"}\n"+" </pre>\n"+" <p>This will make the instance of <code>ApigeeClient</code> available to your <code>Application</code> class.</p>\n"+" </li>\n"+"</ol>\n"+"<h2>4. Import additional SDK classes</h2>\n"+"<p>The following classes will enable you to call common SDK methods:</p>\n"+"<pre>\n"+"import com.apigee.sdk.data.client.DataClient; //App Services data methods\n"+"import com.apigee.sdk.apm.android.MonitoringClient; //App Monitoring methods\n"+"import com.apigee.sdk.data.client.callbacks.ApiResponseCallback; //API response handling\n"+"import com.apigee.sdk.data.client.response.ApiResponse; //API response object\n"+"</pre>\n"+" \n"+"<h2>5. Verify SDK installation</h2>\n"+"\n"+"<p>Once initialized, App Services will also automatically instantiate the <code>MonitoringClient</code> class and begin logg
ing usage, crash and error metrics for your app.</p>\n"+'<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n'+"<p>To verify that the SDK has been properly initialized, run your app, then go to 'Monitoring' > 'App Usage' in the <a href=\"https://www.apigee.com/usergrid\">App Services admin portal</a> to verify that data is being sent.</p>\n"+'<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n'+"\n"+"<h2>Installation complete! Try these next steps</h2>\n"+"<ul>\n"+" <li>\n"+" <h3><strong>Call additional SDK methods in your code</strong></h3>\n"+" <p>The <code>DataClient</code> and <code>MonitoringClient</code> classes are also automatically instantiated for you, and accessible with the following accessors:</p>\n"+" <ul>\n"+" <li>\n"+" <pre>DataClient dataClient = apigeeClient.getDataClient();</pre>\n"+" <p>Use this object to access the data methods of the App Services SDK, inclu
ding those for push notifications, data store, and geolocation.</p>\n"+" </li>\n"+" <li>\n"+" <pre>MonitoringClient monitoringClient = apigeeClient.getMonitoringClient();</pre>\n"+" <p>Use this object to access the app configuration and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</p>\n"+" </li>\n"+" </ul>\n"+" </li> \n"+" <li> \n"+" <h3><strong>Add App Services features to your app</strong></h3>\n"+" <p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these links to get started with a few of our most popular features:</p>\n"+" <ul>\n"+' <li><strong><a href="http://apigee.com/docs/node/8410">Push notifications</a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per month for free!</li>\
n'+' <li><strong>App Monitoring</strong>: When you initialize the App Services SDK, a suite of valuable, <a href="http://apigee.com/docs/node/13190">customizable</a> application monitoring features are automatically enabled that deliver the data you need to fine tune performance, analyze issues, and improve user experience.\n'+" <ul>\n"+' <li><strong><a href="http://apigee.com/docs/node/13176">App Usage Monitoring</a></strong>: Visit the <a href="https://apigee.com/usergrid">App Services admin portal</a> to view usage data for your app, including data on device models, platforms and OS versions running your app.</li> \n'+' <li><strong><a href="http://apigee.com/docs/node/12861">API Performance Monitoring</a></strong>: Network performance is key to a solid user experience. In the <a href="https://apigee.com/usergrid">App Services admin portal</a> you can view key metrics, including response time, number of requests and raw API request logs.</li> \n'+' <li><strong>
<a href="http://apigee.com/docs/node/13177">Error & Crash Monitoring</a></strong>: Get alerted to any errors or crashes, then view them in the <a href="https://apigee.com/usergrid">App Services admin portal</a>, where you can also analyze raw error and crash logs.</li>\n'+" </ul> \n"+" </li>\n"+' <li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Target users or return result sets based on user location to keep your app highly-relevant.</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about dealing with a database ever again.</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement user registration, as well as OAuth 2.0-compliant login and authentication.</li>\n'+" </ul>\n"+" </li>\n"+" <li>
\n"+" <h3><strong>Check out the sample apps</strong></h3>\n"+" <p>The SDK includes samples that illustrate Apigee features. You'll find the samples in the following location in your SDK download:</p>\n"+" <pre>\n"+"apigee-android-sdk-<version>\n"+" ...\n"+" /samples\n"+" </pre>\n"+' <div id="collapse">\n'+' <a href="#samples_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n'+" </div>\n"+' <div id="samples_collapse" class="collapse">\n'+" <p>The samples include the following:</p>\n"+' <table class="table">\n'+" <thead>\n"+" <tr>\n"+' <th scope="col">Sample</th>\n'+' <th scope="col">Description</th>\n'+" </tr>\n"+" </thead>\n"+" <tbody>\n"+" <tr>\n"+" <td>books</td>\n"+" <td>An app for storing a list of books that shows Apigee database operations such as reading, creating, and deleting.</td>\n"+" </tr>\n"+" <tr>\n"+" <td>messagee</td>\n"+" <td>An app
for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n"+" </tr>\n"+" <tr>\n"+" <td>push</td>\n"+" <td>An app that uses the push feature to send notifications to the devices of users who have subscribed for them.</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"+" </div>\n"+" </li>\n"+"</ul>\n");$templateCache.put("app-overview/doc-includes/ios.html","<h2>1. Integrate ApigeeiOSSDK.framework</h2>\n"+'<a class="jumplink" name="add_the_sdk_to_an_existing_project"></a>\n'+'<ul class="nav nav-tabs" id="myTab">\n'+' <li class="active"><a data-toggle="tab" href="#existing_project">Existing project</a></li>\n'+' <li><a data-toggle="tab" href="#new_project">New project</a></li>\n'+"</ul>\n"+'<div class="tab-content">\n'+' <div class="tab-pane active" id="existing_project">\n'+" <p>If you've already got an Xcode iOS project, add it into your project as you normally would.</p>\n"+' <div id="collapse"><a class="btn" d
ata-toggle="collapse" href="#framework_collapse">Details</a></div>\n'+' <div class="collapse" id="framework_collapse">\n'+" <ol>\n"+" <li>\n"+" <p>Locate the SDK framework file so you can add it to your project. For example, you'll find the file at the following path:</p>\n"+" <pre>\n"+"<sdk_root>/bin/ApigeeiOSSDK.framework</pre>\n"+" </li>\n"+" <li>In the <strong>Project Navigator</strong>, click on your project file, and then the <strong>Build Phases</strong> tab. Expand <strong>Link Binary With Libraries</strong>.</li>\n"+" <li>Link the Apigee iOS SDK into your project.\n"+" <ul>\n"+" <li>Drag ApigeeiOSSDK.framework into the Frameworks group created by Xcode.</li>\n"+" </ul>\n"+" <p>OR</p>\n"+" <ol>\n"+" <li>At the bottom of the <strong>Link Binary With Libraries</strong> group, click the <strong>+</strong> button. Then click <strong>Add Other</strong>.</li>\n"+" <li>Navigate to the directory that contains ApigeeiOS
SDK.framework, and choose the ApigeeiOSSDK.framework folder.</li>\n"+" </ol>\n"+" </li>\n"+" </ol>\n"+" </div>\n"+" </div>\n"+' <div class="tab-pane" id="new_project"><a class="jumplink" name="create_a_new_project_based_on_the_SDK"></a>\n'+" <p>If you're starting with a clean slate (you don't have a project yet), you can begin by using the project template included with the SDK. The template includes support for SDK features.</p>\n"+" <ol>\n"+" <li>\n"+" <p>Locate the project template in the expanded SDK. It should be at the following location:</p>\n"+" <pre>\n"+"<sdk_root>/new-project-template</pre>\n"+" </li>\n"+" <li>In the project template directory, open the project file: Apigee App Services iOS Template.xcodeproj.</li>\n"+" <li>Get acquainted with the template by looking at its readme file.</li>\n"+" </ol>\n"+" </div>\n"+"</div>\n"+"<h2>2. Add required iOS frameworks</h2>\n"+"<p>Ensure that the following iOS frameworks are part of you
r project. To add them, under the <strong>Link Binary With Libraries</strong> group, click the <strong>+</strong> button, type the name of the framework you want to add, select the framework found by Xcode, then click <strong>Add</strong>.</p>\n"+"<ul>\n"+" <li>QuartzCore.framework</li>\n"+" <li>CoreLocation.framework</li>\n"+" <li>CoreTelephony.framework </li>\n"+" <li>Security.framework</li>\n"+" <li>SystemConfiguration.framework</li>\n"+" <li>UIKit.framework</li>\n"+"</ul>\n"+"<h2>3. Update 'Other Linker Flags'</h2>\n"+"<p>In the <strong>Build Settings</strong> panel, add the following under <strong>Other Linker Flags</strong>:</p>\n"+"<pre>\n"+"-ObjC -all_load</pre>\n"+"<p>Confirm that flags are set for both <strong>DEBUG</strong> and <strong>RELEASE</strong>.</p>\n"+"<h2>4. Initialize the SDK</h2>\n"+'<p>The <em>ApigeeClient</em> class initializes the App Services SDK. To do this you will need your organization name and application name, which are available in the <em>Gett
ing Started</em> tab of the <a href="https://www.apigee.com/usergrid/">App Service admin portal</a>, under <strong>Mobile SDK Keys</strong>.</p>\n'+"<ol>\n"+" <li>Import the SDK\n"+" <p>Add the following to your source code to import the SDK:</p>\n"+" <pre>\n"+"#import <ApigeeiOSSDK/Apigee.h></pre>\n"+" </li>\n"+" <li>\n"+" <p>Declare the following properties in <code>AppDelegate.h</code>:</p>\n"+" <pre>\n"+"@property (strong, nonatomic) ApigeeClient *apigeeClient; \n"+"@property (strong, nonatomic) ApigeeMonitoringClient *monitoringClient;\n"+"@property (strong, nonatomic) ApigeeDataClient *dataClient; \n"+" </pre>\n"+" </li>\n"+" <li>\n"+" <p>Instantiate the <code>ApigeeClient</code> class inside the <code>didFinishLaunching</code> method of <code>AppDelegate.m</code>:</p>\n"+" <pre>\n"+"//Replace 'AppDelegate' with the name of your app delegate class to instantiate it\n"+"AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];\n"+"\n"
+"//Sepcify your App Services organization and application names\n"+'NSString *orgName = @"{{currentOrg}}";\n'+'NSString *appName = @"{{currentApp}}";\n'+"\n"+"//Instantiate ApigeeClient to initialize the SDK\n"+"appDelegate.apigeeClient = [[ApigeeClient alloc]\n"+" initWithOrganizationId:orgName\n"+" applicationId:appName];\n"+" \n"+"//Retrieve instances of ApigeeClient.monitoringClient and ApigeeClient.dataClient\n"+"self.monitoringClient = [appDelegate.apigeeClient monitoringClient]; \n"+"self.dataClient = [appDelegate.apigeeClient dataClient]; \n"+" </pre>\n"+" </li>\n"+"</ol>\n"+"\n"+"<h2>5. Verify SDK installation</h2>\n"+"\n"+"<p>Once initialized, App Services will also automatically instantiate the <code>ApigeeMonitoringClient</code> class and begin logging usage, crash and error metrics for your app.</p>\n"+"\n"+"<p>To verify that the SDK has been properly initialized, run your app, then go to
<strong>'Monitoring' > 'App Usage'</strong> in the <a href=\"https://www.apigee.com/usergrid\">App Services admin portal</a> to verify that data is being sent.</p>\n"+'<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n'+'<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n'+"\n"+"<h2>Installation complete! Try these next steps</h2>\n"+"<ul> \n"+" <li>\n"+" <h3><strong>Call additional SDK methods in your code</strong></h3>\n"+" <p>Create an instance of the AppDelegate class, then use <code>appDelegate.dataClient</code> or <code>appDelegate.monitoringClient</code> to call SDK methods:</p>\n"+' <div id="collapse"><a class="btn" data-toggle="collapse" href="#client_collapse">Details</a></div>\n'+' <div class="collapse" id="client_collapse">\n'+" <ul>\n"+" <li><code>appDelegate.dataClient</code>: Used to access the data methods of the App Services SDK, including those for push notifi
cations, data store, and geolocation.</li>\n"+" <li><code>appDelegate.monitoringClient</code>: Used to access the app configuration and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</li>\n"+" </ul>\n"+" <h3>Example</h3>\n"+" <p>For example, you could create a new entity with the following:</p>\n"+" <pre>\n"+"AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];\n"+"ApigeeClientResponse *response = [appDelegate.dataClient createEntity:entity];\n"+" </pre>\n"+" </div>\n"+"\n"+" </li>\n"+" <li>\n"+" <h3><strong>Add App Services features to your app</strong></h3>\n"+" <p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these links to get started with a few of our most popular features:</p>\n"+" <ul>\n"+' <li><strong><a href="http://apigee.com/docs/node/8410">Push notifications<
/a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per month for free!</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Target users or return result sets based on user location to keep your app highly-relevant.</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about dealing with a database ever again.</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement user registration, as well as OAuth 2.0-compliant login and authentication.</li>\n'+" </ul>\n"+" </li>\n"+" <li>\n"+" <h3><strong>Check out the sample apps</strong></h3>\n"+' <p>The SDK includes samples that illust
rate Apigee features. To look at them, open the .xcodeproj file for each in Xcode. To get a sample app running, open its project file, then follow the steps described in the section, <a target="_blank" href="http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios">Add the SDK to an existing project</a>.</p>\n'+" <p>You'll find the samples in the following location in your SDK download:</p>\n"+" <pre>\n"+"apigee-ios-sdk-<version>\n"+" ...\n"+" /samples\n"+" </pre>\n"+' <div id="collapse"><a class="btn" data-toggle="collapse" href="#samples_collapse">Details</a></div>\n'+' <div class="collapse" id="samples_collapse">\n'+" <p>The samples include the following:</p>\n"+' <table class="table">\n'+" <thead>\n"+" <tr>\n"+' <th scope="col">Sample</th>\n'+' <th scope="col">Description</th>\n'+" </tr>\n"+" </thead>\n"+" <tbody>\n"+" <tr>\n"+" <td>books</td>\n"+" <td>An app for storing a list of books that shows Ap
igee database operations such as reading, creating, and deleting.</td>\n"+" </tr>\n"+" <tr>\n"+" <td>messagee</td>\n"+" <td>An app for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n"+" </tr>\n"+" <tr>\n"+" <td>push</td>\n"+" <td>An app that uses the push feature to send notifications to the devices of users who have subscribed for them.</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"+" </div>\n"+" <p> </p>\n"+" </li>\n"+"</ul>\n");$templateCache.put("app-overview/doc-includes/javascript.html","<h2>1. Import the SDK into your HTML</h2>\n"+"<p>To enable support for Apigee-related functions in your HTML, you'll need to include <code>apigee.js</code> in your app. To do this, add the following to the <code>head</code> block of your HTML:</p>\n"+"<pre>\n"+'<script type="text/javascript" src="path/to/js/sdk/apigee.js"></script>\n'+"</pre>\n"+"<h2>2. Instantiate Apigee.Clien
t</h2>\n"+"<p>Apigee.Client initializes the App Services SDK, and gives you access to all of the App Services SDK methods.</p>\n"+"<p>You will need to pass a JSON object with the UUID or name for your App Services organization and application when you instantiate it.</p>\n"+"<pre>\n"+"//Apigee account credentials, available in the App Services admin portal \n"+"var client_creds = {\n"+" orgName:'{{currentOrg}}',\n"+" appName:'{{currentApp}}'\n"+" }\n"+"\n"+"//Initializes the SDK. Also instantiates Apigee.MonitoringClient\n"+"var dataClient = new Apigee.Client(client_creds); \n"+"</pre>\n"+"\n"+"<h2>3. Verify SDK installation</h2>\n"+"\n"+"<p>Once initialized, App Services will also automatically instantiate <code>Apigee.MonitoringClient</code> and begin logging usage, crash and error metrics for your app.</p>\n"+"\n"+"<p>To verify that the SDK has been properly initialized, run your app, then go to <strong>'Monitoring' > 'App Usage'</strong> in the <a href=\"https:
//www.apigee.com/usergrid\">App Services admin portal</a> to verify that data is being sent.</p>\n"+'<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n'+'<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n'+"\n"+"<h2>Installation complete! Try these next steps</h2>\n"+"<ul>\n"+" <li> \n"+" <h3><strong>Call additional SDK methods in your code</strong></h3>\n"+" <p>Use <code>dataClient</code> or <code>dataClient.monitor</code> to call SDK methods:</p>\n"+' <div id="collapse">\n'+' <a href="#client_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n'+" </div>\n"+' <div id="client_collapse" class="collapse">\n'+" <ul>\n"+" <li><code>dataClient</code>: Used to access the data methods of the App Services SDK, including those for push notifications, data store, and geolocation.</li>\n"+" <li><code>dataClient.monitor</code>: Used
to access the app configuration and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</li>\n"+" </ul>\n"+" </div>\n"+" </li> \n"+" <li>\n"+" <h3><strong>Add App Services features to your app</strong></h3>\n"+" <p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these links to get started with a few of our most popular features:</p>\n"+" <ul>\n"+' <li><strong><a href="http://apigee.com/docs/node/8410">Push notifications</a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per month for free!</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Keep your app highly-relevant by targeting users or returning result sets based on user location.</li>\n'+' <li><strong>
<a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about dealing with a database ever again.</li>\n'+' <li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement registration, login and OAuth 2.0-compliant authentication.</li>\n'+" </ul>\n"+" </li>\n"+" <li>\n"+" <h3><strong>Check out the sample apps</strong></h3>\n"+" <p>The SDK includes samples that illustrate Apigee features. To look at them, open the .xcodeproj file for each in Xcode. You'll find the samples in the following location in your SDK download:</p>\n"+" <pre>\n"+"apigee-javascript-sdk-master\n"+" ...\n"+" /samples \n"+" </pre>\n"+' <div id="collapse">\n'+' <a href="#samples_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n'+" </div>\
n"+' <div id="samples_collapse" class="collapse">\n'+" <p>The samples include the following:</p>\n"+' <table class="table">\n'+" <thead>\n"+" <tr>\n"+' <th scope="col">Sample</th>\n'+' <th scope="col">Description</th>\n'+" </tr>\n"+" </thead>\n"+" <tbody>\n"+" <tr>\n"+" <td>booksSample.html</td>\n"+" <td>An app for storing a list of books that shows Apigee database operations such as reading, creating, and deleting.</td>\n"+" </tr>\n"+" <tr>\n"+" <td>messagee</td>\n"+" <td>An app for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n"+" </tr>\n"+" <tr>\n"+" <td>monitoringSample.html</td>\n"+" <td>Shows basic configuration and initialization of the HTML5 app monitoring functionality. Works in browser, PhoneGap, Appcelerator, and Trigger.io.</td>\n"+" </tr>\n"+" <tr>\n"+" <td>readmeSample.html</td>\n"+" <td>A simple app for reading data from
an Apigee database.</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"+" </div> \n"+" </li> \n"+"</ul>\n");$templateCache.put("app-overview/doc-includes/net.html","");$templateCache.put("app-overview/doc-includes/node.html","");$templateCache.put("app-overview/doc-includes/ruby.html","");$templateCache.put("app-overview/getting-started.html",'<div class="setup-sdk-content" >\n'+"\n"+' <bsmodal id="regenerateCredentials"\n'+' title="Confirmation"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="regenerateCredentialsDialog"\n'+' extrabuttonlabel="Yes"\n'+" ng-cloak>\n"+" Are you sure you want to regenerate the credentials?\n"+" </bsmodal>\n"+"\n"+' <page-title icon="🚀" title="Getting Started"></page-title>\n'+"\n"+' <section class="row-fluid">\n'+"\n"+"\n"+"\n"+"\n"+' <div class="span8">\n'+"\n"+' <h2 class="title">Install the SDK for app {{currentApp}}</h2>\n'+" <p>Cli
ck on a platform icon below to view SDK installation instructions for that platform.</p>\n"+' <ul class="inline unstyled">\n'+' <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#ios"><i class="sdk-icon-large-ios"></i></a></li>-->\n'+' <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#android"><i class="sdk-icon-large-android"></i></a></li>-->\n'+' <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#javascript"><i class="sdk-icon-large-js"></i></a></li>-->\n'+"\n"+"\n"+" <li ng-click=\"showSDKDetail('ios')\"\n"+' analytics-on="click"\n'+' analytics-label="App Services"\n'+' analytics-category="Getting Started"\n'+' analytics-event="iOS SDK"><i class="sdk-icon-large-ios"></i></li>\n'+" <li ng-click=\"showSDKDetail('android')\"\n"+' analytics-on="click"\n'+' anal
ytics-label="App Services"\n'+' analytics-category="Getting Started"\n'+' analytics-event="Android SDK"><i class="sdk-icon-large-android"></i></li>\n'+" <li ng-click=\"showSDKDetail('javascript')\"\n"+' analytics-on="click"\n'+' analytics-label="App Services"\n'+' analytics-category="Getting Started"\n'+' analytics-event="JS SDK"><i class="sdk-icon-large-js"></i></li>\n'+' <li><a target="_blank"\n'+" ng-click=\"showSDKDetail('nocontent')\"\n"+' href="http://apigee.com/docs/usergrid/content/sdks-and-examples#nodejs"\n'+' analytics-on="click"\n'+' analytics-label="App Services"\n'+' analytics-category="Getting Started"\n'+' analytics-event="Node SDK"><i class="sdk-icon-large-node"></i></a></li>\n'+' <li><a target="_blank"\n'+" ng-click=\"showSDKDetail('nocontent')\"\n"+' href="http://apige
e.com/docs/usergrid/content/sdks-and-examples#ruby"\n'+' analytics-on="click"\n'+' analytics-label="App Services"\n'+' analytics-category="Getting Started"\n'+' analytics-event="Ruby SDK"><i class="sdk-icon-large-ruby"></i></a></li>\n'+' <li><a target="_blank"\n'+" ng-click=\"showSDKDetail('nocontent')\"\n"+' href="http://apigee.com/docs/usergrid/content/sdks-and-examples#c"\n'+' analytics-on="click"\n'+' analytics-label="App Services"\n'+' analytics-category="Getting Started"\n'+' analytics-event="DotNet SDK"><i class="sdk-icon-large-net"></i></a></li>\n'+" </ul>\n"+"\n"+' <section id="intro-container" class="row-fluid intro-container">\n'+"\n"+' <div class="sdk-intro">\n'+" </div>\n"+"\n"+' <div class="sdk-intro-content">\n'+"\n"+' <a class="btn normal white pull-right" ng-href="{{sdkLink}}" targ
et="_blank">\n'+" Download SDK\n"+" </a>\n"+' <a class="btn normal white pull-right" ng-href="{{docsLink}}" target="_blank">\n'+" More Docs\n"+" </a>\n"+' <h3 class="title"><i class="pictogram">📕</i>{{contentTitle}}</h3>\n'+"\n"+' <div ng-include="getIncludeURL()"></div>\n'+" </div>\n"+"\n"+" </section>\n"+" </div>\n"+"\n"+' <div class="span4 keys-creds">\n'+' <h2 class="title">Mobile sdk keys</h2>\n'+" <p>For mobile SDK initialization.</p>\n"+' <dl class="app-creds">\n'+" <dt>Org Name</dt>\n"+" <dd>{{currentOrg}}</dd>\n"+" <dt>App Name</dt>\n"+" <dd>{{currentApp}}</dd>\n"+" </dl>\n"+' <h2 class="title">Server app credentials</h2>\n'+" <p>For authenticating from a server side app (i.e. Ruby, .NET, etc.)</p>\n"+' <dl class="app-creds">\n'+" <dt>Client ID</dt>\n"+" <dd>{{clientID}}</dd>\n"+" <dt>Client Secret</
dt>\n"+" <dd>{{clientSecret}}</dd>\n"+" <dt>\n"+" \n"+" </dt>\n"+" <dd> </dd>\n"+"\n"+" <dt>\n"+' <a class="btn filter-selector" ng-click="showModal(\'regenerateCredentials\')">Regenerate</a>\n'+" </dt>\n"+" <dd></dd>\n"+" </dl>\n"+"\n"+" </div>\n"+"\n"+" </section>\n"+"</div>");
$templateCache.put("data/data.html",'<div class="content-page">\n'+"\n"+' <bsmodal id="newCollection"\n'+' title="Create new collection"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="newCollectionDialog"\n'+' extrabuttonlabel="Create"\n'+' buttonid="collection"\n'+" ng-cloak>\n"+" <fieldset>\n"+' <div class="control-group">\n'+' <label for="new-collection-name">Collection Name:</label>\n'+' <div class="controls">\n'+' <input type="text" ug-validate required ng-pattern="collectionNameRegex" ng-attr-title="{{collectionNameRegexDescription}}" ng-model="$parent.newCollection.name" name="collection" id="new-collection-name" class="input-xlarge"/>\n'+' <p class="help-block hide"></p>\n'+" </div>\n"+" </div>\n"+" </fieldset>\n"+" </bsmodal>\n"+"\n"+' <page-title title=" Collections" icon="📾"></page-title>\n'+"\n"+' <section class="row-
fluid">\n'+' <div class="span3 user-col">\n'+' <a class="btn btn-primary" id="new-collection-link" ng-click="showModal(\'newCollection\')">New Collection</a>\n'+' <ul class="user-list">\n'+" <li ng-class=\"queryCollection._type === entity.name ? 'selected' : ''\" ng-repeat=\"entity in collectionList\" ng-click=\"loadCollection('/'+entity.name);\">\n"+' <a id="collection-{{entity.name}}-link" href="javaScript:void(0)">/{{entity.name}} </a>\n'+" </li>\n"+" </ul>\n"+"\n"+" </div>\n"+"\n"+' <div class="span9 tab-content">\n'+' <div class="content-page">\n'+' <form name="dataForm" ng-submit="run();">\n'+" <fieldset>\n"+' <div class="control-group">\n'+' <div class="" data-toggle="buttons-radio">\n'+' <!--a class="btn" id="button-query-back">◀ Back</a-->\n'+" <!--Added disabled class to change the way button looks but their functionality is as usual -->\n"+'
<label class="control-label" style="display:none"><strong>Method</strong> <a id="query-method-help" href="#" class="help-link">get help</a></label>\n'+' <input type="radio" id="create-rb" name="query-action" style="margin-top: -2px;" ng-click="selectPOST();" ng-checked="verb==\'POST\'"> CREATE \n'+' <input type="radio" id="read-rb" name="query-action" style="margin-top: -2px;" ng-click="selectGET();" ng-checked="verb==\'GET\'"> READ \n'+' <input type="radio" id="update-rb" name="query-action" style="margin-top: -2px;" ng-click="selectPUT();" ng-checked="verb==\'PUT\'"> UPDATE \n'+' <input type="radio" id="delete-rb" name="query-action" style="margin-top: -2px;" ng-click="selectDELETE();" ng-checked="verb==\'DELETE\'"> DELETE\n'+" </div>\n"+" </div>\n"+"\n"+' <div class="control-group">\n'+" <strong>Path </strong>\n"+' <div class="contr
ols">\n'+' <input ng-model="data.queryPath" type="text" ug-validate id="pathDataQuery" ng-attr-title="{{pathRegexDescription}}" ng-pattern="pathRegex" class="span6" autocomplete="off" placeholder="ex: /users" required/>\n'+" </div>\n"+" </div>\n"+' <div class="control-group">\n'+' <a id="back-to-collection" class="outside-link" style="display:none">Back to collection</a>\n'+" </div>\n"+' <div class="control-group">\n'+" <strong>Query</strong>\n"+' <div class="controls">\n'+' <input ng-model="data.searchString" type="text" class="span6" autocomplete="off" placeholder="ex: select * where name=\'fred\'"/>\n'+' <div style="display:none">\n'+' <a class="btn dropdown-toggle " data-toggle="dropdown">\n'+' <span id="query-collections-caret" class="caret"></span>\n'+" </a>\n"+' <ul id="query-collections-indexes-li
st" class="dropdown-menu ">\n'+" </ul>\n"+" </div>\n"+" </div>\n"+" </div>\n"+"\n"+"\n"+" <div class=\"control-group\" ng-show=\"verb=='GET' || verb=='DELETE'\">\n"+' <label class="control-label" for="query-limit"><strong>Limit</strong> <a id="query-limit-help" href="#" ng-show="false" class="help-link">get help</a></label>\n'+' <div class="controls">\n'+' <div class="input-append">\n'+' <input ng-model="data.queryLimit" type="text" class="span5" id="query-limit" placeholder="ex: 10">\n'+" </div>\n"+" </div>\n"+" </div>\n"+"\n"+' <div class="control-group" style="display:{{queryBodyDisplay}}">\n'+' <label class="control-label" for="query-source"><strong>JSON Body</strong> <a id="query-json-help" href="#" ng-show="false" class="help-link">get help</a></label>\n'+' <div class="controls">\n'+' <textarea ng-
model="data.queryBody" id="query-source" class="span6 pull-left" rows="4">\n'+' { "name":"value" }\n'+" </textarea>\n"+" <br>\n"+' <a class="btn pull-left" ng-click="validateJson();">Validate JSON</a>\n'+" </div>\n"+" </div>\n"+' <div style="clear: both; height: 10px;"></div>\n'+' <div class="control-group">\n'+' <input type="submit" ng-disabled="!dataForm.$valid || loading" class="btn btn-primary" id="button-query" value="{{loading ? loadingText : \'Run Query\'}}"/>\n'+" </div>\n"+" </fieldset>\n"+" </form>\n"+" <div ng-include=\"display=='generic' ? 'data/display-generic.html' : ''\"></div>\n"+" <div ng-include=\"display=='users' ? 'data/display-users.html' : ''\"></div>\n"+" <div ng-include=\"display=='groups' ? 'data/display-groups.html' : ''\"></div>\n"+" <div ng-include=\"display=='roles' ? 'data/display-roles.html' : ''\"></div>\n"+"\n"+"
</div>\n"+"\n"+" </div>\n"+" </section>\n"+"\n"+"\n"+"\n"+"\n"+"</div>\n"+"\n");$templateCache.put("data/display-generic.html","\n"+"\n"+'<bsmodal id="deleteEntities"\n'+' title="Are you sure you want to delete the entities(s)?"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="deleteEntitiesDialog"\n'+' extrabuttonlabel="Delete"\n'+' buttonid="del-entity"\n'+" ng-cloak>\n"+" <fieldset>\n"+' <div class="control-group">\n'+" </div>\n"+" </fieldset>\n"+"</bsmodal>\n"+"\n"+'<span class="button-strip">\n'+' <button class="btn btn-primary" ng-disabled="!valueSelected(queryCollection._list) || deleteLoading" ng-click="deleteEntitiesDialog()">{{deleteLoading ? loadingText : \'Delete Entity(s)\'}}</button>\n'+"</span>\n"+'<table class="table table-striped collection-list">\n'+" <thead>\n"+' <tr class="table-header">\n'+' <th><input type="checkbox" ng-show="queryCollection._list.l
ength > 0" id="selectAllCheckbox" ng-model="queryBoxesSelected" ng-click="selectAllEntities(queryCollection._list,$parent,\'queryBoxesSelected\',true)"></th>\n'+" <th ng-if=\"hasProperty('name')\">Name</th>\n"+" <th>UUID</th>\n"+" <th></th>\n"+" </tr>\n"+" </thead>\n"+' <tbody ng-repeat="entity in queryCollection._list">\n'+' <tr class="zebraRows" >\n'+" <td>\n"+" <input\n"+' type="checkbox"\n'+' id="entity-{{entity._data.name}}-cb"\n'+' ng-value="entity._data.uuid"\n'+' ng-model="entity.checked"\n'+" >\n"+" </td>\n"+" <td ng-if=\"hasProperty('name')\">{{entity._data.name}}</td>\n"+" <td>{{entity._data.uuid}}</td>\n"+" <td><a href=\"javaScript:void(0)\" ng-click=\"entitySelected[$index] = !entitySelected[$index];selectEntity(entity._data.uuid)\">{{entitySelected[$index] ? 'Hide' : 'View'}} Details</a></td>\n"+" </tr>\n"+' <tr ng-if="entitySelected[$index]">\n'+' <td colspan="5">\n'+"\n"+"\n"+' <h4 style="m
argin: 0 0 20px 0">Entity Detail</h4>\n'+"\n"+"\n"+' <ul class="formatted-json">\n'+' <li ng-repeat="(k,v) in entity._data track by $index">\n'+' <span class="key">{{k}} :</span>\n'+" <!--todo - doing manual recursion to get this out the door for launch, please fix-->\n"+' <span ng-switch on="isDeep(v)">\n'+' <ul ng-switch-when="true">\n'+' <li ng-repeat="(k2,v2) in v"><span class="key">{{k2}} :</span>\n'+"\n"+' <span ng-switch on="isDeep(v2)">\n'+' <ul ng-switch-when="true">\n'+' <li ng-repeat="(k3,v3) in v2"><span class="key">{{k3}} :</span><span class="value">{{v3}}</span></li>\n'+" </ul>\n"+' <span ng-switch-when="false">\n'+' <span class="value">{{v2}}</span>\n'+" </span>\n"+" </span>\n"+" </li>\n"+" </ul>\n"+' <span ng-switch-when="false">\n'+'
<span class="value">{{v}}</span>\n'+" </span>\n"+" </span>\n"+" </li>\n"+" </ul>\n"+"\n"+' <div class="control-group">\n'+' <h4 style="margin: 20px 0 20px 0">Edit Entity</h4>\n'+' <div class="controls">\n'+' <textarea ng-model="entity._json" class="span12" rows="12"></textarea>\n'+" <br>\n"+' <a class="btn btn-primary toolbar pull-left" ng-click="validateJson();">Validate JSON</a><button type="button" class="btn btn-primary pull-right" id="button-query" ng-click="saveEntity(entity);">Save</button>\n'+" </div>\n"+" </div>\n"+" </td>\n"+" </tr>\n"+"\n"+' <tr ng-show="queryCollection._list.length == 0">\n'+' <td colspan="4">No data found</td>\n'+" </tr>\n"+" </tbody>\n"+"</table>\n"+'<div style="padding: 10px 5px 10px 5px">\n'+' <button class="btn btn-primary toolbar" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous</button>\n'+' <button class="btn btn-primary toolbar"
ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n'+"</div>\n"+"\n");$templateCache.put("data/display-groups.html","");$templateCache.put("data/display-roles.html","roles---------------------------------");$templateCache.put("data/display-users.html","\n"+'<table id="query-response-table" class="table">\n'+" <tbody>\n"+' <tr class="zebraRows users-row">\n'+' <td class="checkboxo">\n'+' <input type="checkbox" onclick="Usergrid.console.selectAllEntities(this);"></td>\n'+' <td class="gravatar50-td"> </td>\n'+' <td class="user-details bold-header">Username</td>\n'+' <td class="user-details bold-header">Display Name</td>\n'+' <td class="user-details bold-header">UUID</td>\n'+' <td class="view-details"> </td>\n'+" </tr>\n"+' <tr class="zebraRows users-row">\n'+' <td class="checkboxo">\n'+' <input class="listItem" type="checkbox" name="/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf
44-236d2eee13a7" value="bf9a95da-d508-11e2-bf44-236d2eee13a7">\n'+" </td>\n"+' <td class="gravatar50-td">\n'+' <img src="http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e" class="gravatar50">\n'+" </td>\n"+' <td class="details">\n'+" <a onclick=\"Usergrid.console.getCollection('GET', '/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/'+'bf9a95da-d508-11e2-bf44-236d2eee13a7'); $('#data-explorer').show(); return false;\" class=\"view-details\">10</a>\n"+" </td>\n"+' <td class="details"> #"><img src=x onerror=prompt(1);> </td>\n'+' <td class="details"> bf9a95da-d508-11e2-bf44-236d2eee13a7 </td>\n'+' <td class="view-details">\n'+' <a href="" onclick="$(\'#query-row-bf9a95da-d508-11e2-bf44-236d2eee13a7\').toggle(); $(\'#data-explorer\').show(); return false;" class="view-details">Details</a>\n'+" </td>\n"+" </tr>\n"+' <tr id="query-row-bf9a95da-d508-11e2-bf44-236d2eee13a7" style="display:none">\n'+' <t
d colspan="5">\n'+" <div>\n"+' <div style="padding-bottom: 10px;">\n'+' <button type="button" class="btn btn-small query-button active" id="button-query-show-row-JSON" onclick="Usergrid.console.activateQueryRowJSONButton(); $(\'#query-row-JSON-bf9a95da-d508-11e2-bf44-236d2eee13a7\').show(); $(\'#query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7\').hide(); return false;">JSON</button>\n'+' <button type="button" class="btn btn-small query-button disabled" id="button-query-show-row-content" onclick="Usergrid.console.activateQueryRowContentButton();$(\'#query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7\').show(); $(\'#query-row-JSON-bf9a95da-d508-11e2-bf44-236d2eee13a7\').hide(); return false;">Content</button>\n'+" </div>\n"+' <div id="query-row-JSON-bf9a95da-d508-11e2-bf44-236d2eee13a7">\n'+" <pre>{\n"+' "picture": "http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e",\n'+' "uuid": "bf9a95da-d508-11e2-bf4
4-236d2eee13a7",\n'+' "type": "user",\n'+' "name": "#"><img src=x onerror=prompt(1);>",\n'+' "created": 1371224432557,\n'+' "modified": 1371851347024,\n'+' "username": "10",\n'+' "email": "fdsafdsa@ookfd.com",\n'+' "activated": "true",\n'+' "adr": {\n'+' "addr1": "",\n'+' "addr2": "",\n'+' "city": "",\n'+' "state": "",\n'+' "zip": "",\n'+' "country": ""\n'+" },\n"+' "metadata": {\n'+' "path": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7",\n'+' "sets": {\n'+' "rolenames": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/rolenames",\n'+' "permissions": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/permissions"\n'+" },\n"+' "collections": {\n'+' "activities": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/activities",\n'+' "devices": "/user
s/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/devices",\n'+' "feed": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/feed",\n'+' "groups": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/groups",\n'+' "roles": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/roles",\n'+' "following": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/following",\n'+' "followers": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/followers"\n'+" }\n"+" },\n"+' "title": "#"><img src=x onerror=prompt(1);>"\n'+"}</pre>\n"+" </div>\n"+' <div id="query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7" style="display:none">\n'+" <table>\n"+" <tbody>\n"+" <tr>\n"+"
<td>picture</td>\n"+' <td>http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e</td></tr><tr><td>uuid</td><td>bf9a95da-d508-11e2-bf44-236d2eee13a7</td></tr><tr><td>type</td><td>user</td></tr><tr><td>name</td><td>#&quot;&gt;&lt;img src=x onerror=prompt(1);&gt;</td></tr><tr><td>created</td><td>1371224432557</td></tr><tr><td>modified</td><td>1371851347024</td></tr><tr><td>username</td><td>10</td></tr><tr><td>email</td><td>fdsafdsa@ookfd.com</td></tr><tr><td>activated</td><td>true</td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>addr1</td><td></td></tr><tr><td>addr2</td><td></td></tr><tr><td>city</td><td></td></tr><tr><td>state</td><td></td></tr><tr><td>zip</td><td></td></tr><tr><td>country</td><td></td></tr></tbody></table></td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>path</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7</td></tr><tr><td>
</td><td style="padding: 0"><table><tbody><tr></tr><tr><td>rolenames</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/rolenames</td></tr><tr><td>permissions</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/permissions</td></tr></tbody></table></td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>activities</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/activities</td></tr><tr><td>devices</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/devices</td></tr><tr><td>feed</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/feed</td></tr><tr><td>groups</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/groups</td></tr><tr><td>roles</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031
a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/roles</td></tr><tr><td>following</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/following</td></tr><tr><td>followers</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/followers</td></tr></tbody></table></td></tr></tbody></table></td></tr><tr><td>title</td><td>#&quot;&gt;&lt;img src=x onerror=prompt(1);&gt;</td>\n'+" </tr>\n"+" </tbody>\n"+" </table>\n"+" </div>\n"+" </div>\n"+" </td>\n"+" </tr>\n"+" </tbody>\n"+"</table>");$templateCache.put("data/entity.html",'<div class="content-page">\n'+"\n"+" <h4>Entity Detail</h4>\n"+' <div class="well">\n'+' <a href="#!/data" class="outside-link"><< Back to collection</a>\n'+" </div>\n"+" <fieldset>\n"+' <div class="control-group">\n'+" <strong>Path </strong>\n"+' <div class="controls">\n'+" {{entityT
ype}}/{{entityUUID}}\n"+" </div>\n"+" </div>\n"+"\n"+' <div class="control-group">\n'+' <label class="control-label" for="query-source"><strong>JSON Body</strong></label>\n'+' <div class="controls">\n'+' <textarea ng-model="queryBody" class="span6 pull-left" rows="12">{{queryBody}}</textarea>\n'+" <br>\n"+' <a class="btn pull-left" ng-click="validateJson();">Validate JSON</a>\n'+" </div>\n"+" </div>\n"+' <div style="clear: both; height: 10px;"></div>\n'+' <div class="control-group">\n'+' <button type="button" class="btn btn-primary" id="button-query" ng-click="saveEntity();">Save</button>\n'+' <!--button type="button" class="btn btn-primary" id="button-query" ng-click="run();">Delete</button-->\n'+" </div>\n"+" </fieldset>\n"+"\n"+"</div>\n"+"\n");$templateCache.put("data/shell.html",'<div class="content-page">\n'+' <div class="well">\n'+" <h2>Interactive Shell</h2>\n"+' <div style="float:right"><a target="
_blank" href="http://apigee.com/docs/usergrid/content/usergrid-admin-portal" class="notifications-links">Learn more in our docs</a></div>\n'+" </div>\n"+"\n"+' <div class="console-section-contents">\n'+' <div id="shell-input-div">\n'+' <p> Type "help" to view a list of the available commands.</p><hr>\n'+" <span> >> </span>\n"+' <!--textarea id="shell-input" rows="2" autofocus="autofocus"></textarea-->\n'+" </div>\n"+' <pre id="shell-output" class="prettyprint lang-js" style="overflow-x: auto; height: 400px;"><span class="pln"> </span><p><span class="pln"> </span><span class="typ">Response</span><span class="pun">:</span></p><hr><span class="pln">\n'+" </span></pre>\n"+" </div>\n"+"</div>");$templateCache.put("dialogs/modal.html",' <div class="modal show fade" tabindex="-1" role="dialog" aria-hidden="true">\n'+' <form ng-submit="extraDelegate(extrabutton)" name="dialogForm" novalidate>\n'+"\n"+' <div cl
ass="modal-header">\n'+' <h1 class="title">{{title}}</h1>\n'+" </div>\n"+"\n"+' <div class="modal-body" ng-transclude></div>\n'+' <div class="modal-footer">\n'+" {{footertext}}\n"+' <input type="submit" class="btn" id="dialogButton-{{buttonId}}" ng-if="extrabutton" ng-disabled="!dialogForm.$valid" aria-hidden="true" ng-value="extrabuttonlabel"/>\n'+' <button class="btn cancel pull-left" data-dismiss="modal" aria-hidden="true"\n'+' ng-click="closeDelegate(close)">{{closelabel}}\n'+" </button>\n"+" </div>\n"+" </form> </div>\n");$templateCache.put("global/appswitcher-template.html",'<li id="globalNav" class="dropdown dropdownContainingSubmenu active">\n'+' <a class="dropdown-toggle" data-toggle="dropdown">API Platform<b class="caret"></b></a>\n'+' <ul class="dropdown-menu pull-right">\n'+' <li id="globalNavSubmenuContainer">\n'+" <ul>\n"+' <li data-globalNav
Detail="globalNavDetailApigeeHome"><a target="_blank" href="http://apigee.com">Apigee Home</a></li>\n'+' <li data-globalNavDetail="globalNavDetailAppServices" class="active"><a target="_blank" href="https://apigee.com/usergrid/">App Services</a></li>\n'+' <li data-globalNavDetail="globalNavDetailApiPlatform" ><a target="_blank" href="https://enterprise.apigee.com">API Platform</a></li>\n'+' <li data-globalNavDetail="globalNavDetailApiConsoles"><a target="_blank" href="http://apigee.com/providers">API Consoles</a></li>\n'+" </ul>\n"+" </li>\n"+' <li id="globalNavDetail">\n'+' <div id="globalNavDetailApigeeHome">\n'+' <div class="globalNavDetailApigeeLogo"></div>\n'+' <div class="globalNavDetailDescription">You need apps and apps need APIs. Apigee is the leading API platform for enterprises and developers.</div>\n'+" </div>\n"+' <div id="globalNavDetailAppServices">\n'+' <div class="globalNavDetailSubtitle">For App De
velopers</div>\n'+' <div class="globalNavDetailTitle">App Services</div>\n'+' <div class="globalNavDetailDescription">Build engaging applications, store data, manage application users, and more.</div>\n'+" </div>\n"+' <div id="globalNavDetailApiPlatform">\n'+' <div class="globalNavDetailSubtitle">For API Developers</div>\n'+' <div class="globalNavDetailTitle">API Platform</div>\n'+' <div class="globalNavDetailDescription">Create, configure, manage and analyze your APIs and resources.</div>\n'+" </div>\n"+' <div id="globalNavDetailApiConsoles">\n'+' <div class="globalNavDetailSubtitle">For API Developers</div>\n'+' <div class="globalNavDetailTitle">API Consoles</div>\n'+' <div class="globalNavDetailDescription">Explore over 100 APIs with the Apigee API Console, or create and embed your own API Console.</div>\n'+" </div>\n"+" </li>\n"+" </ul>\n"+"</li>");$templateCache.put("global/insecure-banner.html
",'<div ng-if="securityWarning" ng-cloak class="demo-holder">\n'+' <div class="alert alert-demo alert-animate">\n'+' <div class="alert-text">\n'+' <i class="pictogram">⚠</i>Warning: This application has "sandbox" permissions and is not production ready. <a target="_blank" href="http://apigee.com/docs/app-services/content/securing-your-app">Please go to our security documentation to find out more.</a></span>\n'+" </div>\n"+" </div>\n"+"</div>");$templateCache.put("global/page-title.html",'<section class="row-fluid">\n'+' <div class="span12">\n'+' <div class="page-filters">\n'+' <h1 class="title pull-left" id="pageTitle"><i class="pictogram title" style="padding-right: 5px;">{{icon}}</i>{{title}} <a class="super-help" href="http://community.apigee.com/content/apigee-customer-support" target="_blank" >(need help?)</a></h1>\n'+" </div>\n"+" </div>\n"+' <bsmodal id="need-help"\n'+' title="Need Help?"\n'+'
close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="sendHelp"\n'+' extrabuttonlabel="Get Help"\n'+" ng-cloak>\n"+" <p>Do you want to contact support? Support will get in touch with you as soon as possible.</p>\n"+" </bsmodal>\n"+"</section>\n"+"\n");$templateCache.put("groups/groups-activities.html",'<div class="content-page" ng-controller="GroupsActivitiesCtrl">\n'+"\n"+" <br>\n"+" <div>\n"+' <table class="table table-striped">\n'+" <tbody>\n"+' <tr class="table-header">\n'+" <td>Date</td>\n"+" <td>Content</td>\n"+" <td>Verb</td>\n"+" <td>UUID</td>\n"+" </tr>\n"+' <tr class="zebraRows" ng-repeat="activity in selectedGroup.activities">\n'+" <td>{{activity.createdDate}}</td>\n"+" <td>{{activity.content}}</td>\n"+" <td>{{activity.verb}}</td>\n"+" <td>{{activity.uuid}}</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"
+" </div>\n"+"\n"+"\n"+"</div>");$templateCache.put("groups/groups-details.html",'<div class="content-page" ng-controller="GroupsDetailsCtrl">\n'+"\n"+" <div>\n"+' <form name="updateGroupDetailForm" ng-submit="saveSelectedGroup()" novalidate>\n'+' <div style="float: left; padding-right: 30px;">\n'+' <h4 class="ui-dform-legend">Group Information</h4>\n'+' <label for="group-title" class="ui-dform-label">Group Title</label>\n'+' <input type="text" id="group-title" ng-pattern="titleRegex" ng-attr-title="{{titleRegexDescription}}" required class="ui-dform-text" ng-model="group.title" ug-validate>\n'+" <br/>\n"+' <label for="group-path" class="ui-dform-label">Group Path</label>\n'+' <input type="text" id="group-path" required ng-attr-title="{{pathRegexDescription}}" placeholder="ex: /mydata" ng-pattern="pathRegex" class="ui-dform-text" ng-model="group.path" ug-validate>\n'+" <br/>\n"+"
</div>\n"+' <br style="clear:both"/>\n'+"\n"+' <div style="width:100%;float:left;padding: 20px 0">\n'+' <input type="submit" value="Save Group" style="margin-right: 15px;" ng-disabled="!updateGroupDetailForm.$valid" class="btn btn-primary" />\n'+" </div>\n"+"\n"+' <div class="content-container">\n'+" <h4>JSON Group Object</h4>\n"+" <pre>{{json}}</pre>\n"+" </div>\n"+" </form>\n"+" </div>\n"+"\n"+"\n"+"</div>");$templateCache.put("groups/groups-members.html",'<div class="content-page" ng-controller="GroupsMembersCtrl">\n'+"\n"+"\n"+' <bsmodal id="removeFromGroup"\n'+' title="Confirmation"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="removeUsersFromGroupDialog"\n'+' extrabuttonlabel="Delete"\n'+" ng-cloak>\n"+" <p>Are you sure you want to remove the users from the seleted group(s)?</p>\n"+" </bsmodal>\n"+"
\n"+' <bsmodal id="addGroupToUser"\n'+' title="Add user to group"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="addGroupToUserDialog"\n'+' extrabuttonlabel="Add"\n'+" ng-cloak>\n"+' <div class="btn-group">\n'+' <a class="btn dropdown-toggle filter-selector" data-toggle="dropdown">\n'+" <span class=\"filter-label\">{{$parent.user != '' ? $parent.user.username : 'Select a user...'}}</span>\n"+' <span class="caret"></span>\n'+" </a>\n"+' <ul class="dropdown-menu">\n'+' <li ng-repeat="user in $parent.usersTypeaheadValues" class="filterItem"><a ng-click="$parent.$parent.user = user">{{user.username}}</a></li>\n'+" </ul>\n"+" </div>\n"+" </bsmodal>\n"+"\n"+"\n"+' <div class="button-strip">\n'+' <button class="btn btn-primary" ng-click="showModal(\'addGroupToUser\')">Add User to Group</button>\n'+' <button class="btn btn-primary" ng-disabled="!hasMembers
|| !valueSelected(groupsCollection.users._list)" ng-click="showModal(\'removeFromGroup\')">Remove User(s) from Group</button>\n'+" </div>\n"+' <table class="table table-striped">\n'+' <tr class="table-header">\n'+' <td style="width: 30px;"><input type="checkbox" ng-show="hasMembers" id="selectAllCheckbox" ng-model="groupMembersSelected" ng-click="selectAllEntities(groupsCollection.users._list,this,\'groupMembersSelected\')"></td>\n'+' <td style="width: 50px;"></td>\n'+" <td>Username</td>\n"+" <td>Display Name</td>\n"+" </tr>\n"+' <tr class="zebraRows" ng-repeat="user in groupsCollection.users._list">\n'+" <td>\n"+" <input\n"+' type="checkbox"\n'+' ng-model="user.checked"\n'+" >\n"+" </td>\n"+' <td><img style="width:30px;height:30px;" ng-src="{{user._portal_image_icon}}"></td>\n'+" <td>{{user.get('username')}}</td>\n"+" <td>{{user.get('name')}}</td>\n"+" </tr>\n"+" </table>\n"+' <div style=
"padding: 10px 5px 10px 5px">\n'+' <button class="btn btn-primary" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous</button>\n'+' <button class="btn btn-primary" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n'+" </div>\n"+"</div>");$templateCache.put("groups/groups-roles.html",'<div class="content-page" ng-controller="GroupsRolesCtrl">\n'+"\n"+' <bsmodal id="addGroupToRole"\n'+' title="Add group to role"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="addGroupToRoleDialog"\n'+' extrabuttonlabel="Add"\n'+" ng-cloak>\n"+' <div class="btn-group">\n'+' <a class="btn dropdown-toggle filter-selector" data-toggle="dropdown">\n'+" <span class=\"filter-label\">{{$parent.name != '' ? $parent.name : 'Role name...'}}</span>\n"+' <span class="caret"></span>\n'+" </a>\n"+' <ul class="dropdown-menu">\n'+' <li ng-
repeat="role in $parent.rolesTypeaheadValues" class="filterItem"><a ng-click="$parent.$parent.name = role.name">{{role.name}}</a></li>\n'+" </ul>\n"+" </div>\n"+" </bsmodal>\n"+"\n"+' <bsmodal id="leaveRoleFromGroup"\n'+' title="Confirmation"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="leaveRoleDialog"\n'+' extrabuttonlabel="Leave"\n'+" ng-cloak>\n"+" <p>Are you sure you want to remove the group from the role(s)?</p>\n"+" </bsmodal>\n"+"\n"+"\n"+' <div class="button-strip">\n'+' <button class="btn btn-primary" ng-click="showModal(\'addGroupToRole\')">Add Role to Group</button>\n'+' <button class="btn btn-primary" ng-disabled="!hasRoles || !valueSelected(groupsCollection.roles._list)" ng-click="showModal(\'leaveRoleFromGroup\')">Remove Role(s) from Group</button>\n'+" </div>\n"+" <h4>Roles</h4>\n"+' <table class="table table-striped">\n'+" <tbody>\n"+' <tr class="table-head
er">\n'+' <td style="width: 30px;"><input type="checkbox" ng-show="hasRoles" id="groupsSelectAllCheckBox" ng-model="groupRoleSelected" ng-click="selectAllEntities(groupsCollection.roles._list,this,\'groupRoleSelected\')" ></td>\n'+" <td>Role Name</td>\n"+" <td>Role title</td>\n"+" </tr>\n"+' <tr class="zebraRows" ng-repeat="role in groupsCollection.roles._list">\n'+" <td>\n"+" <input\n"+' type="checkbox"\n'+' ng-model="role.checked"\n'+" >\n"+" </td>\n"+" <td>{{role._data.name}}</td>\n"+" <td>{{role._data.title}}</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"+' <div style="padding: 10px 5px 10px 5px">\n'+' <button class="btn btn-primary" ng-click="getPreviousRoles()" style="display:{{roles_previous_display}}">< Previous</button>\n'+' <button class="btn btn-primary" ng-click="getNextRoles()" style="display:{{roles_next_display}};float:right;">Next ></button>\n'+" </div>\n"+"\n"+"\n"+' <bsmodal
id="deletePermission"\n'+' title="Confirmation"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="deleteGroupPermissionDialog"\n'+' extrabuttonlabel="Delete"\n'+" ng-cloak>\n"+" <p>Are you sure you want to delete the permission(s)?</p>\n"+" </bsmodal>\n"+"\n"+"\n"+' <bsmodal id="addPermission"\n'+' title="New Permission"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="addGroupPermissionDialog"\n'+' extrabuttonlabel="Add"\n'+" ng-cloak>\n"+' <p>Path: <input ng-model="$parent.permissions.path" placeholder="ex: /mydata" id="groupsrolespermissions" type="text" ng-pattern="pathRegex" ng-attr-title="{{pathRegexDescription}}" required ug-validate /></p>\n'+' <div class="control-group">\n'+' <input type="checkbox" ng-model="$parent.permissions.getPerm"> GET\n'+" </div>\n"+' <div class="control-group">\n'+' <inpu
t type="checkbox" ng-model="$parent.permissions.postPerm"> POST\n'+" </div>\n"+' <div class="control-group">\n'+' <input type="checkbox" ng-model="$parent.permissions.putPerm"> PUT\n'+" </div>\n"+' <div class="control-group">\n'+' <input type="checkbox" ng-model="$parent.permissions.deletePerm"> DELETE\n'+" </div>\n"+" </bsmodal>\n"+"\n"+"\n"+' <div class="button-strip">\n'+' <button class="btn btn-primary" ng-click="showModal(\'addPermission\')">Add Permission</button>\n'+' <button class="btn btn-primary" ng-disabled="!hasPermissions || !valueSelected(selectedGroup.permissions)" ng-click="showModal(\'deletePermission\')">Delete Permission(s)</button>\n'+" </div>\n"+" <h4>Permissions</h4>\n"+' <table class="table table-striped">\n'+" <tbody>\n"+' <tr class="table-header">\n'+' <td style="width: 30px;"><input ng-show="hasPermissions" type="checkbox" id="permissionsSelectAllCheckBox" ng-model="groupPermissionsSelected" ng-click="selectAll
Entities(selectedGroup.permissions,this,\'groupPermissionsSelected\')" ></td>\n'+" <td>Path</td>\n"+" <td>GET</td>\n"+" <td>POST</td>\n"+" <td>PUT</td>\n"+" <td>DELETE</td>\n"+" </tr>\n"+' <tr class="zebraRows" ng-repeat="permission in selectedGroup.permissions">\n'+" <td>\n"+" <input\n"+' type="checkbox"\n'+' ng-model="permission.checked"\n'+" >\n"+" </td>\n"+" <td>{{permission.path}}</td>\n"+" <td>{{permission.operations.get}}</td>\n"+" <td>{{permission.operations.post}}</td>\n"+" <td>{{permission.operations.put}}</td>\n"+" <td>{{permission.operations.delete}}</td>\n"+" </tr>\n"+" </tbody>\n"+" </table>\n"+"\n"+"</div>");
$templateCache.put("groups/groups-tabs.html",'<div class="content-page">\n'+"\n"+' <section class="row-fluid">\n'+"\n"+' <div class="span12">\n'+' <div class="page-filters">\n'+' <h1 class="title" class="pull-left"><i class="pictogram title">👥</i> Groups</h1>\n'+" </div>\n"+" </div>\n"+"\n"+" </section>\n"+"\n"+' <div id="user-panel" class="panel-buffer">\n'+' <ul id="user-panel-tab-bar" class="nav nav-tabs">\n'+' <li><a href="javaScript:void(0);" ng-click="gotoPage(\'groups\')">Group List</a></li>\n'+' <li ng-class="detailsSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/details\')">Details</a></li>\n'+' <li ng-class="membersSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/members\')">Users</a></li>\n'+' <li ng-class="activitiesSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/activities\')">Activities</a></li>\n'+' <li ng-class="rolesSelected"><a href="javaScript:v
oid(0);" ng-click="gotoPage(\'groups/roles\')">Roles & Permissions</a></li>\n'+" </ul>\n"+" </div>\n"+"\n"+' <div style="float: left; margin-right: 10px;">\n'+' <div style="float: left;">\n'+" <div class=\"user-header-title\"><strong>Group Path: </strong>{{selectedGroup.get('path')}}</div>\n"+" <div class=\"user-header-title\"><strong>Group Title: </strong>{{selectedGroup.get('title')}}</div>\n"+" </div>\n"+" </div>\n"+"</div>\n"+"<br>\n"+"<br>\n");$templateCache.put("groups/groups.html",'<div class="content-page">\n'+"\n"+' <page-title title=" Groups" icon="👥"></page-title>\n'+' <bsmodal id="newGroup"\n'+' title="New Group"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="newGroupDialog"\n'+' extrabuttonlabel="Add"\n'+' ng-model="dialog"\n'+" ng-cloak>\n"+" <fieldset>\n"+' <div class="control-group">\n'+' <label for="title">Title</label>\n'+'
<div class="controls">\n'+' <input type="text" id="title" ng-pattern="titleRegex" ng-attr-title="{{titleRegexDescription}}" required ng-model="newGroup.title"class="input-xlarge" ug-validate/>\n'+" </div>\n"+" </div>\n"+' <div class="control-group">\n'+' <label for="path">Path</label>\n'+' <div class="controls">\n'+' <input id="path" type="text" ng-attr-title="{{pathRegexDescription}}" placeholder="ex: /mydata" ng-pattern="pathRegex" required ng-model="newGroup.path" class="input-xlarge" ug-validate/>\n'+" </div>\n"+" </div>\n"+" </fieldset>\n"+" </bsmodal>\n"+"\n"+' <bsmodal id="deleteGroup"\n'+' title="Delete Group"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="deleteGroupsDialog"\n'+' extrabuttonlabel="Delete"\n'+" ng-cloak>\n"+" <p>Are you sure you want to delete the group(s)?</p>\n"+" </bsmodal>\n"+"\n"+"\n"+' <section class=
"row-fluid">\n'+' <div class="span3 user-col">\n'+"\n"+' <div class="button-toolbar span12">\n'+' <a title="Select All" class="btn btn-primary select-all toolbar" ng-show="hasGroups" ng-click="selectAllEntities(groupsCollection._list,this,\'groupBoxesSelected\',true)"> <i class="pictogram">⊟</i></a>\n'+' <button title="Delete" class="btn btn-primary toolbar" ng-disabled="!hasGroups || !valueSelected(groupsCollection._list)" ng-click="showModal(\'deleteGroup\')"><i class="pictogram">☕</i></button>\n'+' <button title="Add" class="btn btn-primary toolbar" ng-click="showModal(\'newGroup\')"><i class="pictogram"></i></button>\n'+" </div>\n"+' <ul class="user-list">\n'+' <li ng-class="selectedGroup._data.uuid === group._data.uuid ? \'selected\' : \'\'" ng-repeat="group in groupsCollection._list" ng-click="selectGroup(group._data.uuid)">\n'+" <input\n"+' type="checkbox"\n'+' ng-value="group
._data.uuid"\n'+' ng-checked="group.checked"\n'+' ng-model="group.checked"\n'+" >\n"+" <a href=\"javaScript:void(0)\" >{{group.get('title')}}</a>\n"+" <br/>\n"+" <span ng-if=\"group.get('path')\" class=\"label\">Path:</span>/{{group.get('path')}}\n"+" </li>\n"+" </ul>\n"+"\n"+"\n"+' <div style="padding: 10px 5px 10px 5px">\n'+' <button class="btn btn-primary" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous</button>\n'+' <button class="btn btn-primary" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n'+" </div>\n"+"\n"+" </div>\n"+"\n"+' <div class="span9 tab-content" ng-show="selectedGroup.get" >\n'+' <div class="menu-toolbar">\n'+' <ul class="inline" >\n'+' <li class="tab" ng-class="currentGroupsPage.route === \'/groups/details\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click
="selectGroupPage(\'/groups/details\')"><i class="pictogram"></i>Details</a></li>\n'+' <li class="tab" ng-class="currentGroupsPage.route === \'/groups/members\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/members\')"><i class="pictogram">👥</i>Users</a></li>\n'+' <li class="tab" ng-class="currentGroupsPage.route === \'/groups/activities\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/activities\')"><i class="pictogram"></i>Activities</a></li>\n'+' <li class="tab" ng-class="currentGroupsPage.route === \'/groups/roles\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/roles\')"><i class="pictogram">🌎</i>Roles & Permissions</a></li>\n'+" </ul>\n"+" </div>\n"+' <span ng-include="currentGroupsPage.template"></span>\n'+"\n"+" </section>\n"+"</div>\n");$templateCache.put
("login/forgot-password.html",'<div class="login-content" ng-controller="ForgotPasswordCtrl">\n'+' <iframe class="container" ng-src="{{forgotPWiframeURL}}" id="forgot-password-frame" border="0" style="border:0;width:600px;height:620px;">\n'+' <p>Email Address: <input id="resetPasswordEmail" name="resetPasswordEmail" /></p>\n'+' <button class="btn btn-primary" ng-click="">Reset Password</button>\n'+"</div>\n");$templateCache.put("login/loading.html","\n"+"\n"+"<h1>Loading...</h1>");$templateCache.put("login/login.html",'<div class="login-content">\r'+"\n"+' <bsmodal id="sendActivationLink"\r'+"\n"+' title="Resend Activation Link"\r'+"\n"+' close="hideModal"\r'+"\n"+' closelabel="Cancel"\r'+"\n"+' extrabutton="resendActivationLink"\r'+"\n"+' extrabuttonlabel="Send Activation"\r'+"\n"+" ng-cloak>\r"+"\n"+" <fieldset>\r"+"\n"+' <p>Email to send to: <input type="email" required ng-model="$parent.activation.id" ng-patter
n="emailRegex" ng-attr-title="{{emailRegexDescription}}" name="activationId" id="user-activationId" class="input-xlarge"/></p>\r'+"\n"+" </fieldset>\r"+"\n"+" </bsmodal>\r"+"\n"+' <div class="login-holder">\r'+"\n"+' <form name="loginForm" id="login-form" ng-submit="login()" class="form-horizontal" novalidate>\r'+"\n"+' <h1 class="title">Enter your credentials</h1>\r'+"\n"+' <div class="alert-error" id="loginError" ng-if="loginMessage">{{loginMessage}}</div>\r'+"\n"+' <div class="control-group">\r'+"\n"+' <label class="control-label" for="login-username">Email or Username:</label>\r'+"\n"+' <div class="controls">\r'+"\n"+' <input type="text" ng-model="login.username" title="Please add a username or email." class="" id="login-username" required ng-value="login.username" size="20" ug-validate>\r'+"\n"+" </div>\r"+"\n"+" </div>\r"+"\n"+' <div class="control-group">\r'+"\n"+' <label class="control-label" for="login-password">Password:</
label>\r'+"\n"+' <div class="controls">\r'+"\n"+' <input type="password" ng-model="login.password" required id="login-password" class="" ng-value="login.password" size="20" ug-validate>\r'+"\n"+" </div>\r"+"\n"+" </div>\r"+"\n"+' <div class="control-group" ng-show="requiresDeveloperKey">\r'+"\n"+' <label class="control-label" for="login-developerkey">Developer Key:</label>\r'+"\n"+' <div class="controls">\r'+"\n"+' <input type="text" ng-model="login.developerkey" id="login-developerkey" class="" ng-value="login.developerkey" size="20" ug-validate>\r'+"\n"+" </div>\r"+"\n"+" </div>\r"+"\n"+' <div class="form-actions">\r'+"\n"+' <div class="submit">\r'+"\n"+' <input type="submit" name="button-login" id="button-login" ng-disabled="!loginForm.$valid || loading" value="{{loading ? loadingText : \'Log In\'}}" class="btn btn-primary pull-right">\r'+"\n"+" </div>\r"+"\n"+" </div>\r"+"\n"+" </form>\r"+"\n"+" </div>\r"+
"\n"+' <div class="extra-actions">\r'+"\n"+' <div class="submit">\r'+"\n"+' <a ng-click="gotoSignUp()" name="button-signUp" id="button-signUp" value="Sign Up"\r'+"\n"+' class="btn btn-primary pull-left">Register</a>\r'+"\n"+" </div>\r"+"\n"+' <div class="submit">\r'+"\n"+' <a ng-click="gotoForgotPasswordPage()" name="button-forgot-password" id="button-forgot-password"\r'+"\n"+' value="" class="btn btn-primary pull-left">Forgot Password?</a>\r'+"\n"+" </div>\r"+"\n"+' <a ng-click="showModal(\'sendActivationLink\')" name="button-resend-activation" id="button-resend-activation"\r'+"\n"+' value="" class="btn btn-primary pull-left">Resend Activation Link</a>\r'+"\n"+" </div>\r"+"\n"+' <div id="gtm" style="width: 450px;margin-top: 4em;" />\r'+"\n"+"</div>\r"+"\n");$templateCache.put("login/logout.html",'<div id="logut">Logging out...</div>');$templateCache.put("login/register.html",'<div class="signUp-content">\n'+' <div class="signUp-
holder">\n'+' <form name="signUpform" id="signUp-form" ng-submit="register()" class="form-horizontal" ng-show="!signUpSuccess" novalidate>\n'+' <h1 class="title">Register</h1>\n'+"\n"+' <div class="alert" ng-if="loginMessage">{{loginMessage}}</div>\n'+' <div class="control-group">\n'+' <label class="control-label" for="register-orgName">Organization:</label>\n'+"\n"+' <div class="controls">\n'+' <input type="text" ng-model="registeredUser.orgName" id="register-orgName" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" ug-validate required class="" size="20">\n'+" </div>\n"+" </div>\n"+"\n"+' <div class="control-group">\n'+' <label class="control-label" for="register-name">Name:</label>\n'+"\n"+' <div class="controls">\n'+' <input type="text" ng-model="registeredUser.name" id="register-name" ng-pattern="nameRegex" ng-attr-title="{{nameRegexDescription}}" ug-validate required class=""
size="20">\n'+" </div>\n"+" </div>\n"+"\n"+' <div class="control-group">\n'+' <label class="control-label" for="register-userName">Username:</label>\n'+"\n"+' <div class="controls">\n'+' <input type="text" ng-model="registeredUser.userName" id="register-userName" ng-pattern="usernameRegex" ng-attr-title="{{usernameRegexDescription}}" ug-validate required class="" size="20">\n'+" </div>\n"+" </div>\n"+"\n"+' <div class="control-group">\n'+' <label class="control-label" for="register-email">Email:</label>\n'+"\n"+' <div class="controls">\n'+' <input type="email" ng-model="registeredUser.email" id="register-email" ng-pattern="emailRegex" ng-attr-title="{{emailRegexDescription}}" required class="" ug-validate size="20">\n'+" </div>\n"+" </div>\n"+"\n"+"\n"+' <div class="control-group">\n'+' <label class="control-label" for="register-password">Password:</label>\n'+"\n"+' <div
class="controls">\n'+' <input type="password" ng-pattern="passwordRegex" ng-attr-title="{{passwordRegexDescription}}" ug-validate ng-model="registeredUser.password" id="register-password" required class=""\n'+' size="20">\n'+" </div>\n"+" </div>\n"+' <div class="control-group">\n'+' <label class="control-label" for="register-confirmPassword">Re-enter Password:</label>\n'+"\n"+' <div class="controls">\n'+' <input type="password" ng-model="registeredUser.confirmPassword" required id="register-confirmPassword" ug-validate class="" size="20">\n'+" </div>\n"+" </div>\n"+' <div class="form-actions">\n'+' <div class="submit">\n'+' <input type="submit" name="button-login" ng-disabled="!signUpform.$valid" id="button-login" value="Register"\n'+' class="btn btn-primary pull-right">\n'+" </div>\n"+' <div class="submit">\n'+' <a ng-click="cancel()" type="submi
t" name="button-cancel" id="button-cancel"\n'+' class="btn btn-primary pull-right">Cancel</a>\n'+" </div>\n"+" </div>\n"+" </form>\n"+' <div class="console-section well thingy" ng-show="signUpSuccess">\n'+' <span class="title">We\'re holding a seat for you!</span>\n'+" <br><br>\n"+"\n"+" <p>Thanks for signing up for a spot on our private beta. We will send you an email as soon as we're ready for\n"+" you!</p>\n"+"\n"+" <p>In the mean time, you can stay up to date with App Services on our <a\n"+' href="https://groups.google.com/forum/?fromgroups#!forum/usergrid">GoogleGroup</a>.</p>\n'+"\n"+' <p> <a href="#!/login">Back to login</a></p>\n'+" </div>\n"+" </div>\n"+"\n"+"</div>\n");$templateCache.put("menus/appMenu.html",'<ul id="app-menu" class="nav top-nav span12">\n'+' <li class="span7">\n'+' <bsmodal id="newApplication"\n'+' title="Create New Application"\n'+' close="hideM
odal"\n'+' closelabel="Cancel"\n'+' extrabutton="newApplicationDialog"\n'+' extrabuttonlabel="Create"\n'+' buttonid="app"\n'+" ng-cloak>\n"+' <div ng-show="!hasApplications" class="modal-instructions" >You have no applications, please create one.</div>\n'+' <div ng-show="hasCreateApplicationError" class="alert-error">Application already exists!</div>\n'+' <p>New application name: <input ng-model="$parent.newApp.name" id="app-name-input" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" type="text" required ug-validate /></p>\n'+" </bsmodal>\n"+' <div class="btn-group">\n'+' <a class="btn dropdown-toggle top-selector app-selector" id="current-app-selector" data-toggle="dropdown">\n'+' <i class="pictogram">⚙</i> {{myApp.currentApp}}\n'+' <span class="caret"></span>\n'+" </a>\n"+' <ul class="dro
pdown-menu app-nav">\n'+' <li name="app-selector" ng-repeat="app in applications">\n'+' <a id="app-{{app.name}}-link-id" ng-click="appChange(app.name)">{{app.name}}</a>\n'+" </li>\n"+" </ul>\n"+" </div>\n"+" </li>\n"+' <li class="span5">\n'+' <a ng-if="activeUI"\n'+' class="btn btn-create zero-out pull-right"\n'+" ng-click=\"showModal('newApplication')\"\n"+' analytics-on="click"\n'+' analytics-category="App Services"\n'+' analytics-label="Button"\n'+' analytics-event="Add New App"\n'+" >\n"+' <i class="pictogram">⊞</i>\n'+" Add New App\n"+" </a>\n"+" </li>\n"+"</ul>");$templateCache.put("menus/orgMenu.html",'<ul class="nav top-nav org-nav">\n'+" <li>\n"+'<div class="btn-group ">\n'+' <a class="btn dropdown-toggle top-selector org-selector" id="current-org-selector" data-toggle="dropdown">\n'+' <i class="pictogram
">📁</i> {{currentOrg}}<span class="caret"></span>\n'+" </a>\n"+' <ul class="dropdown-menu org-nav">\n'+' <li name="org-selector" ng-repeat="(k,v) in organizations">\n'+' <a id="org-{{v.name}}-selector" class="org-overview" ng-click="orgChange(v.name)"> {{v.name}}</a>\n'+" </li>\n"+" </ul>\n"+" </div>\n"+" </li></ul>");$templateCache.put("org-overview/org-overview.html",'<div class="org-overview-content" ng-show="activeUI">\n'+"\n"+' <page-title title=" Org Administration" icon="🕪"></page-title>\n'+"\n"+' <section class="row-fluid">\n'+"\n"+' <div class="span6">\n'+' <bsmodal id="introjs"\n'+' title="Welcome to the API BaaS Admin Portal"\n'+' close="hideModal"\n'+' closelabel="Skip"\n'+' extrabutton="startFirstTimeUser"\n'+' extrabuttonlabel="Take the tour"\n'+" ng-cloak>\n"+" <p>To get started, click 'Take the tour' for a full walkth
rough of the admin portal, or click 'Skip' to start working right away.</p>\n"+" </bsmodal>\n"+' <div id="intro-4-current-org"> \n'+' <h2 class="title">Current Organization <a class="help_tooltip" ng-mouseover="help.sendTooltipGA(\'current org\')" ng-show="help.helpTooltipsEnabled" href="#" ng-attr-tooltip="{{tooltip_current_org}}" tooltip-placement="right">(?)</a></h2>\n'+' <table class="table table-striped">\n'+" <tr>\n"+' <td id="org-overview-name">{{currentOrganization.name}}</td>\n'+' <td style="text-align: right">{{currentOrganization.uuid}}</td>\n'+" </tr>\n"+" </table>\n"+" </div>\n"+"\n"+' <bsmodal id="newApplication"\n'+' title="Create New Application"\n'+' close="hideModal"\n'+' closelabel="Cancel"\n'+' extrabutton="newApplicationDialog"\n'+' extrabuttonlabel="Create"\n'+" ng-cloak>\n"+' <p>New application name: <input ng-model="$parent.newApp.name"
ug-validate required type="text" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" /></p>\n'+" </bsmodal>\n"+' <div id="intro-5-applications"> \n'+' <h2 class="title" > Applications <a class="help_tooltip" ng-show="help.helpTooltipsEnabled" ng-mouseover="help.sendTooltipGA(\'applications\')" href="#" ng-attr-tooltip="{{tooltip_applications}}" tooltip-placement="right">(?)</a>\n'+' <div class="header-button btn-group pull-right">\n'+" <a class=\"btn filter-selector\" style=\"{{applicationsSize === 10 ? 'width:290px':''}}\" ng-click=\"showModal('newApplication')\">\n"+' <span class="filter-label">Add New App</span>\n'+" </a>\n"+" </div>\n"+" </h2>\n"+" \n"+' <table class="table table-striped">\n'+' <tr ng-repeat="application in applications">\n'+" <td>{{application.name}}</td>\n"+' <td style="text-align: right">{{application.uuid}}</td>\n'+" </tr>\n"+" </table>\n"+" </div>\n
"+' <bsmodal id="regenerateCredentials"\n'+'
<TRUNCATED>
[32/34] build
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/b753f461/portal/js/libs/usergrid-libs.min.js
----------------------------------------------------------------------
diff --git a/portal/js/libs/usergrid-libs.min.js b/portal/js/libs/usergrid-libs.min.js
index ef49eff..0899b2b 100644
--- a/portal/js/libs/usergrid-libs.min.js
+++ b/portal/js/libs/usergrid-libs.min.js
@@ -19,4 +19,4 @@ a.effects.animateClass=function(b,c,d,e){return a.isFunction(d)&&(e=d,d=null),th
},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),"source"===b&&this._initSource(),"appendTo"===b&&this.menu.element.appendTo(a(c||"body",this.element[0].ownerDocument)[0]),"disabled"===b&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var d,e,b=this;a.isArray(this.options.source)?(d=this.options.source,this.source=function(b,c){c(a.ui.autocomplete.filter(d,b.term))}):"string"==typeof this.options.source?(e=this.options.source,this.source=function(d,f){b.xhr&&b.xhr.abort(),b.xhr=a.ajax({url:e,data:d,dataType:"json",context:{autocompleteRequest:++c},success:function(a){this.autocompleteRequest===c&&f(a)},error:function(){this.autocompleteRequest===c&&f([])}})}):this.source=this.options.source},search:function(a,b){return a=null!=a?a:this.element.val(),this.term=this.element.val(),a.length<this.options.minLength?this.close(b):(clearTimeout(this.closing),this._trigger("search",b)!==!1?this._search(a):void 0)},_search:function(a){this.pending++,this.e
lement.addClass("ui-autocomplete-loading"),this.source({term:a},this.response)},_response:function(a){!this.options.disabled&&a&&a.length?(a=this._normalize(a),this._suggest(a),this._trigger("open")):this.close(),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.deactivate(),this._trigger("close",a))},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(b){return b.length&&b[0].label&&b[0].value?b:a.map(b,function(b){return"string"==typeof b?{label:b,value:b}:a.extend({label:b.label||b.value,value:b.value||b.label},b)})},_suggest:function(b){var c=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(c,b),this.menu.deactivate(),this.menu.refresh(),c.show(),this._resizeMenu(),c.position(a.extend({of:this.element},this.options.position)),this.opt
ions.autoFocus&&this.menu.next(new a.Event("mouseover"))},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(b,c){var d=this;a.each(c,function(a,c){d._renderItem(b,c)})},_renderItem:function(b,c){return a("<li></li>").data("item.autocomplete",c).append(a("<a></a>").text(c.label)).appendTo(b)},_move:function(a,b){if(this.menu.element.is(":visible")){if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a))return this.element.val(this.term),void this.menu.deactivate();this.menu[a](b)}else this.search(null,b)},widget:function(){return this.menu.element}}),a.extend(a.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(b,c){var d=new RegExp(a.ui.autocomplete.escapeRegex(c),"i");return a.grep(b,function(a){return d.test(a.label||a.value||a)})}})}(jQuery),function(a){a.widget("ui.menu",{_create:function(){var b=this;thi
s.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){!a(c.target).closest(".ui-menu-item a").length||(c.preventDefault(),b.select(c))}),this.refresh()},refresh:function(){var b=this,c=this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem");c.children("a").addClass("ui-corner-all").attr("tabindex",-1).mouseenter(function(c){b.activate(c,a(this).parent())}).mouseleave(function(){b.deactivate()})},activate:function(a,b){if(this.deactivate(),this.hasScroll()){var c=b.offset().top-this.element.offset().top,d=this.element.scrollTop(),e=this.element.height();0>c?this.element.scrollTop(d+c):c>=e&&this.element.scrollTop(d+c-e+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end(),this._trigger("focus",a,{item:b})},deactivate:function(){!this.active||(this.active.children("a").removeClass
("ui-state-hover").removeAttr("id"),this._trigger("blur"),this.active=null)},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,c){if(this.active){var d=this.active[a+"All"](".ui-menu-item").eq(0);d.length?this.activate(c,d):this.activate(c,this.element.children(b))}else this.activate(c,this.element.children(b))},nextPage:function(b){if(this.hasScroll()){if(!this.active||this.last())return void this.activate(b,this.element.children(".ui-menu-item:first"));var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c-d+a(this).height();return 10>b&&b>-10});e.length||(e=this.element.children(".ui-menu-item:last")),this.activate(b,e)}else this.activate(b,t
his.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(b){if(this.hasScroll()){if(!this.active||this.first())return void this.activate(b,this.element.children(".ui-menu-item:last"));var c=this.active.offset().top,d=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c+d-a(this).height();return 10>b&&b>-10}),result.length||(result=this.element.children(".ui-menu-item:first")),this.activate(b,result)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element[a.fn.prop?"prop":"attr"]("scrollHeight")},select:function(a){this._trigger("selected",a,{item:this.active})}})}(jQuery),function(a){var c,d,e,f,g="ui-button ui-widget ui-state-default ui-corner-all",h="ui-state-hover ui-state-active ",i="ui-button-icons-only ui-button-icon-only ui-button-text-icons
ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",j=function(){var b=a(this).find(":ui-button");setTimeout(function(){b.button("refresh")},1)},k=function(b){var c=b.name,d=b.form,e=a([]);return c&&(e=d?a(d).find("[name='"+c+"']"):a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form})),e};a.widget("ui.button",{options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",j),"boolean"!=typeof this.options.disabled?this.options.disabled=!!this.element.propAttr("disabled"):this.element.propAttr("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var b=this,h=this.options,i="checkbox"===this.type||"radio"===this.type,l="ui-state-hover"+(i?"":" ui-state-active"),m="ui-state-focus";null===h.label&&(h.label=this.buttonElement.html()),this.buttonElement.addClass(g).attr("role","bu
tton").bind("mouseenter.button",function(){h.disabled||(a(this).addClass("ui-state-hover"),this===c&&a(this).addClass("ui-state-active"))}).bind("mouseleave.button",function(){h.disabled||a(this).removeClass(l)}).bind("click.button",function(a){h.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}),this.element.bind("focus.button",function(){b.buttonElement.addClass(m)}).bind("blur.button",function(){b.buttonElement.removeClass(m)}),i&&(this.element.bind("change.button",function(){f||b.refresh()}),this.buttonElement.bind("mousedown.button",function(a){h.disabled||(f=!1,d=a.pageX,e=a.pageY)}).bind("mouseup.button",function(a){!h.disabled&&(d!==a.pageX||e!==a.pageY)&&(f=!0)})),"checkbox"===this.type?this.buttonElement.bind("click.button",function(){return h.disabled||f?!1:(a(this).toggleClass("ui-state-active"),void b.buttonElement.attr("aria-pressed",b.element[0].checked))}):"radio"===this.type?this.buttonElement.bind("click.button",function(){if(h.disabled||f)return!1;a(thi
s).addClass("ui-state-active"),b.buttonElement.attr("aria-pressed","true");var c=b.element[0];k(c).not(c).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown.button",function(){return h.disabled?!1:(a(this).addClass("ui-state-active"),c=this,a(document).one("mouseup",function(){c=null}),void 0)}).bind("mouseup.button",function(){return h.disabled?!1:void a(this).removeClass("ui-state-active")}).bind("keydown.button",function(b){return h.disabled?!1:void((b.keyCode==a.ui.keyCode.SPACE||b.keyCode==a.ui.keyCode.ENTER)&&a(this).addClass("ui-state-active"))}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(b){b.keyCode===a.ui.keyCode.SPACE&&a(this).click()})),this._setOption("disabled",h.disabled),this._resetButton()},_determineButtonType:function(){if(this.type=this.element.is(":checkbox")?"checkbox":this.
element.is(":radio")?"radio":this.element.is("input")?"input":"button","checkbox"===this.type||"radio"===this.type){var a=this.element.parents().filter(":last"),b="label[for='"+this.element.attr("id")+"']";this.buttonElement=a.find(b),this.buttonElement.length||(a=a.length?a.siblings():this.element.siblings(),this.buttonElement=a.filter(b),this.buttonElement.length||(this.buttonElement=a.find(b))),this.element.addClass("ui-helper-hidden-accessible");var c=this.element.is(":checked");c&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.attr("aria-pressed",c)}else this.buttonElement=this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(g+" "+h+" "+i).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title"),a.Widget.prototype.destroy.call(this)},_setOption:functio
n(b,c){a.Widget.prototype._setOption.apply(this,arguments),"disabled"===b?c?this.element.propAttr("disabled",!0):this.element.propAttr("disabled",!1):this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b),"radio"===this.type?k(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):"checkbox"===this.type&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if("input"===this.type)this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass(i),c=a("<span></span>",this.element[0].ownerDocument).addClass("ui-button-text").html(this.options.label).appendTo
(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary,f=[];d.primary||d.secondary?(this.options.text&&f.push("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary")),d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>"),d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>"),this.options.text||(f.push(e?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||b.attr("title",c))):f.push("ui-button-text-only"),b.addClass(f.join(" "))}}}),a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){"disabled"===b&&this.buttons.button("option",b,c),a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var b="rtl"===this.element.css("direction");this.buttons=this.element.find(this.options.items).filter(":ui-button"
).button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(b?"ui-corner-left":"ui-corner-right").end().end()},destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"),a.Widget.prototype.destroy.call(this)}})}(jQuery),function($,undefined){function isArray(a){return a&&($.browser.safari&&"object"==typeof a&&a.length||a.constructor&&a.constructor.toString().match(/\Array\(\)/))}function extendRemove(a,b){$.extend(a,b);for(var c in b)(null==b[c]||b[c]==undefined)&&(a[c]=b[c]);return a}function bindHover(a){var b="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return a.bind("mouseout",function(a){var c=$(a.target).c
losest(b);!c.length||c.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(c){var d=$(c.target).closest(b);!$.datepicker._isDisabledDatepicker(instActive.inline?a.parent()[0]:instActive.input[0])&&!!d.length&&(d.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),d.addClass("ui-state-hover"),d.hasClass("ui-datepicker-prev")&&d.addClass("ui-datepicker-prev-hover"),d.hasClass("ui-datepicker-next")&&d.addClass("ui-datepicker-next-hover"))})}function Datepicker(){this.debug=!1,this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-c
urrent-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8
601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},$.extend(this._defaults,this.regional[""]),this.dpDiv=bindHover($('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}$.extend($.ui,{datepicker:{version:"1.8.18"}});var PROP_NAME="datepicker",dpuuid=(new Date).getTime(),instActive;$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){return extendRemove(this._defaults,a||{}),this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAtt
ribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline="div"==nodeName||"span"==nodeName;target.id||(this.uuid+=1,target.id="dp"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),"input"==nodeName?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(a,b){var c=a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");return{id:c,input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:b?bindHover($('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')):this.dpDiv}},_connectDatepicker:function(a,b){var c=$(a);b.append=$([]),b.trigger=$([]),c.hasClass(this.markerClassName)||(this._attachments(c,b),c.addClass(this.markerClassName).keyd
own(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),this._autoSize(b),$.data(a,PROP_NAME,b),b.settings.disabled&&this._disableDatepicker(a))},_attachments:function(a,b){var c=this._get(b,"appendText"),d=this._get(b,"isRTL");b.append&&b.append.remove(),c&&(b.append=$('<span class="'+this._appendClass+'">'+c+"</span>"),a[d?"before":"after"](b.append)),a.unbind("focus",this._showDatepicker),b.trigger&&b.trigger.remove();var e=this._get(b,"showOn");if(("focus"==e||"both"==e)&&a.focus(this._showDatepicker),"button"==e||"both"==e){var f=this._get(b,"buttonText"),g=this._get(b,"buttonImage");b.trigger=$(this._get(b,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:g,alt:f,title:f}):$('<button type="button"></button>').addClass(this._triggerClass).html(""==g?f:$("<img/>").attr({src:g,alt:f,title:f}))),a[d?"before":"after"](b.trigger
),b.trigger.click(function(){return $.datepicker._datepickerShowing&&$.datepicker._lastInput==a[0]?$.datepicker._hideDatepicker():$.datepicker._datepickerShowing&&$.datepicker._lastInput!=a[0]?($.datepicker._hideDatepicker(),$.datepicker._showDatepicker(a[0])):$.datepicker._showDatepicker(a[0]),!1})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var d=function(a){for(var b=0,c=0,d=0;d<a.length;d++)a[d].length>b&&(b=a[d].length,c=d);return c};b.setMonth(d(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort"))),b.setDate(d(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=$(a);c.hasClass(this.markerClassName)||(c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),$.
data(a,PROP_NAME,b),this._setDate(b,this._getDefaultDate(b),!0),this._updateDatepicker(b),this._updateAlternate(b),b.settings.disabled&&this._disableDatepicker(a),b.dpDiv.css("display","block"))},_dialogDatepicker:function(a,b,c,d,e){var f=this._dialogInst;if(!f){this.uuid+=1;var g="dp"+this.uuid;this._dialogInput=$('<input type="text" id="'+g+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>'),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),f=this._dialogInst=this._newInst(this._dialogInput,!1),f.settings={},$.data(this._dialogInput[0],PROP_NAME,f)}if(extendRemove(f.settings,d||{}),b=b&&b.constructor==Date?this._formatDate(f,b):b,this._dialogInput.val(b),this._pos=e?e.length?e:[e.pageX,e.pageY]:null,!this._pos){var h=document.documentElement.clientWidth,i=document.documentElement.clientHeight,j=document.documentElement.scrollLeft||document.body.scrollLeft,k=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[h/
2-100+j,i/2-150+k]}return this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),f.settings.onSelect=c,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,f),this},_destroyDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();$.removeData(a,PROP_NAME),"input"==d?(c.append.remove(),c.trigger.remove(),b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"==d||"span"==d)&&b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();if("input"==d)a.disabled=!1,c.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img"
).css({opacity:"1.0",cursor:""});else if("div"==d||"span"==d){var e=b.children("."+this._inlineClass);e.children().removeClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b})}},_disableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();if("input"==d)a.disabled=!0,c.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"});else if("div"==d||"span"==d){var e=b.children("."+this._inlineClass);e.children().addClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b}),this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return!1;for(var b=0
;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return!0;return!1},_getInst:function(a){try{return $.data(a,PROP_NAME)}catch(b){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(a,b,c){var d=this._getInst(a);if(2==arguments.length&&"string"==typeof b)return"defaults"==b?$.extend({},$.datepicker._defaults):d?"all"==b?$.extend({},d.settings):this._get(d,b):null;var e=b||{};if("string"==typeof b&&(e={},e[b]=c),d){this._curInst==d&&this._hideDatepicker();var f=this._getDateDatepicker(a,!0),g=this._getMinMaxDate(d,"min"),h=this._getMinMaxDate(d,"max");extendRemove(d.settings,e),null!==g&&e.dateFormat!==undefined&&e.minDate===undefined&&(d.settings.minDate=this._formatDate(d,g)),null!==h&&e.dateFormat!==undefined&&e.maxDate===undefined&&(d.settings.maxDate=this._formatDate(d,h)),this._attachments($(a),d),this._autoSize(d),this._setDate(d,f),this._updateAlternate(d),this._updateDatepicker(d)}},_changeDatepicker:function(a,b,c){this._optionDatepi
cker(a,b,c)},_refreshDatepicker:function(a){var b=this._getInst(a);b&&this._updateDatepicker(b)},_setDateDatepicker:function(a,b){var c=this._getInst(a);c&&(this._setDate(c,b),this._updateDatepicker(c),this._updateAlternate(c))},_getDateDatepicker:function(a,b){var c=this._getInst(a);return c&&!c.inline&&this._setDateFromField(c,b),c?this._getDate(c):null},_doKeyDown:function(a){var b=$.datepicker._getInst(a.target),c=!0,d=b.dpDiv.is(".ui-datepicker-rtl");if(b._keyEvent=!0,$.datepicker._datepickerShowing)switch(a.keyCode){case 9:$.datepicker._hideDatepicker(),c=!1;break;case 13:var e=$("td."+$.datepicker._dayOverClass+":not(."+$.datepicker._currentClass+")",b.dpDiv);e[0]&&$.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,e[0]);var f=$.datepicker._get(b,"onSelect");if(f){var g=$.datepicker._formatDate(b);f.apply(b.input?b.input[0]:null,[g,b])}else $.datepicker._hideDatepicker();return!1;case 27:$.datepicker._hideDatepicker();break;case 33:$.datepicker._adjustDate(a.targ
et,a.ctrlKey?-$.datepicker._get(b,"stepBigMonths"):-$.datepicker._get(b,"stepMonths"),"M");break;case 34:$.datepicker._adjustDate(a.target,a.ctrlKey?+$.datepicker._get(b,"stepBigMonths"):+$.datepicker._get(b,"stepMonths"),"M");break;case 35:(a.ctrlKey||a.metaKey)&&$.datepicker._clearDate(a.target),c=a.ctrlKey||a.metaKey;break;case 36:(a.ctrlKey||a.metaKey)&&$.datepicker._gotoToday(a.target),c=a.ctrlKey||a.metaKey;break;case 37:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,d?1:-1,"D"),c=a.ctrlKey||a.metaKey,a.originalEvent.altKey&&$.datepicker._adjustDate(a.target,a.ctrlKey?-$.datepicker._get(b,"stepBigMonths"):-$.datepicker._get(b,"stepMonths"),"M");break;case 38:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,-7,"D"),c=a.ctrlKey||a.metaKey;break;case 39:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,d?-1:1,"D"),c=a.ctrlKey||a.metaKey,a.originalEvent.altKey&&$.datepicker._adjustDate(a.target,a.ctrlKey?+$.datepicker._get(b,"stepBigMonths"):+$.datepick
er._get(b,"stepMonths"),"M");break;case 40:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,7,"D"),c=a.ctrlKey||a.metaKey;break;default:c=!1}else 36==a.keyCode&&a.ctrlKey?$.datepicker._showDatepicker(this):c=!1;c&&(a.preventDefault(),a.stopPropagation())},_doKeyPress:function(a){var b=$.datepicker._getInst(a.target);if($.datepicker._get(b,"constrainInput")){var c=$.datepicker._possibleChars($.datepicker._get(b,"dateFormat")),d=String.fromCharCode(a.charCode==undefined?a.keyCode:a.charCode);return a.ctrlKey||a.metaKey||" ">d||!c||c.indexOf(d)>-1}},_doKeyUp:function(a){var b=$.datepicker._getInst(a.target);if(b.input.val()!=b.lastVal)try{var c=$.datepicker.parseDate($.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,$.datepicker._getFormatConfig(b));c&&($.datepicker._setDateFromField(b),$.datepicker._updateAlternate(b),$.datepicker._updateDatepicker(b))}catch(a){$.datepicker.log(a)}return!0},_showDatepicker:function(a){if(a=a.target||a,"input"!=a.nodeName.toLowerCas
e()&&(a=$("input",a.parentNode)[0]),!$.datepicker._isDisabledDatepicker(a)&&$.datepicker._lastInput!=a){var b=$.datepicker._getInst(a);$.datepicker._curInst&&$.datepicker._curInst!=b&&($.datepicker._curInst.dpDiv.stop(!0,!0),b&&$.datepicker._datepickerShowing&&$.datepicker._hideDatepicker($.datepicker._curInst.input[0]));var c=$.datepicker._get(b,"beforeShow"),d=c?c.apply(a,[a,b]):{};if(d===!1)return;extendRemove(b.settings,d),b.lastVal=null,$.datepicker._lastInput=a,$.datepicker._setDateFromField(b),$.datepicker._inDialog&&(a.value=""),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(a),$.datepicker._pos[1]+=a.offsetHeight);var e=!1;$(a).parents().each(function(){return e|="fixed"==$(this).css("position"),!e}),e&&$.browser.opera&&($.datepicker._pos[0]-=document.documentElement.scrollLeft,$.datepicker._pos[1]-=document.documentElement.scrollTop);var f={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};if($.datepicker._pos=null,b.dpDiv.empty(),b.dpDiv.css({position:"abso
lute",display:"block",top:"-1000px"}),$.datepicker._updateDatepicker(b),f=$.datepicker._checkOffset(b,f,e),b.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":e?"fixed":"absolute",display:"none",left:f.left+"px",top:f.top+"px"}),!b.inline){var g=$.datepicker._get(b,"showAnim"),h=$.datepicker._get(b,"duration"),i=function(){var a=b.dpDiv.find("iframe.ui-datepicker-cover");if(a.length){var c=$.datepicker._getBorders(b.dpDiv);a.css({left:-c[0],top:-c[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex($(a).zIndex()+1),$.datepicker._datepickerShowing=!0,$.effects&&$.effects[g]?b.dpDiv.show(g,$.datepicker._get(b,"showOptions"),h,i):b.dpDiv[g||"show"](g?h:null,i),(!g||!h)&&i(),b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus(),$.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=this;b.maxRows=4;var c=$.datepicker._getBorders(a.dpDiv);instActive=a,a.dpDiv.empty().append(this._generateHTML(a));var d=a.dpDiv.find("iframe.ui-dat
epicker-cover");!d.length||d.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}),a.dpDiv.find("."+this._dayOverClass+" a").mouseover();var e=this._getNumberOfMonths(a),f=e[1],g=17;if(a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),f>1&&a.dpDiv.addClass("ui-datepicker-multi-"+f).css("width",g*f+"em"),a.dpDiv[(1!=e[0]||1!=e[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),a==$.datepicker._curInst&&$.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus(),a.yearshtml){var h=a.yearshtml;setTimeout(function(){h===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml),h=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseFloat(b(a.css("bord
er-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var d=a.dpDiv.outerWidth(),e=a.dpDiv.outerHeight(),f=a.input?a.input.outerWidth():0,g=a.input?a.input.outerHeight():0,h=document.documentElement.clientWidth+$(document).scrollLeft(),i=document.documentElement.clientHeight+$(document).scrollTop();return b.left-=this._get(a,"isRTL")?d-f:0,b.left-=c&&b.left==a.input.offset().left?$(document).scrollLeft():0,b.top-=c&&b.top==a.input.offset().top+g?$(document).scrollTop():0,b.left-=Math.min(b.left,b.left+d>h&&h>d?Math.abs(b.left+d-h):0),b.top-=Math.min(b.top,b.top+e>i&&i>e?Math.abs(e+g):0),b},_findPos:function(a){for(var b=this._getInst(a),c=this._get(b,"isRTL");a&&("hidden"==a.type||1!=a.nodeType||$.expr.filters.hidden(a));)a=a[c?"previousSibling":"nextSibling"];var d=$(a).offset();return[d.left,d.top]},_hideDatepicker:function(a){var b=this._curInst;if(b&&(!a||b==$.data(a,PROP_NAME))&&this._datepickerShowing){var c=this._get(b,"showAnim"),d=this._g
et(b,"duration"),e=this,f=function(){$.datepicker._tidyDialog(b),e._curInst=null};$.effects&&$.effects[c]?b.dpDiv.hide(c,$.datepicker._get(b,"showOptions"),d,f):b.dpDiv["slideDown"==c?"slideUp":"fadeIn"==c?"fadeOut":"hide"](c?d:null,f),c||f(),this._datepickerShowing=!1;var g=this._get(b,"onClose");g&&g.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.dpDiv))),this._inDialog=!1}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if($.datepicker._curInst){var b=$(a.target),c=$.datepicker._getInst(b[0]);(b[0].id!=$.datepicker._mainDivId&&0==b.parents("#"+$.datepicker._mainDivId).length&&!b.hasClass($.datepicker.markerClassName)&&!b.closest("."+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&(!$.datepicker._inDialog||!$.blockU
I)||b.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!=c)&&$.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){var d=$(a),e=this._getInst(d[0]);this._isDisabledDatepicker(d[0])||(this._adjustInstDate(e,b+("M"==c?this._get(e,"showCurrentAtPos"):0),c),this._updateDatepicker(e))},_gotoToday:function(a){var b=$(a),c=this._getInst(b[0]);if(this._get(c,"gotoCurrent")&&c.currentDay)c.selectedDay=c.currentDay,c.drawMonth=c.selectedMonth=c.currentMonth,c.drawYear=c.selectedYear=c.currentYear;else{var d=new Date;c.selectedDay=d.getDate(),c.drawMonth=c.selectedMonth=d.getMonth(),c.drawYear=c.selectedYear=d.getFullYear()}this._notifyChange(c),this._adjustDate(b)},_selectMonthYear:function(a,b,c){var d=$(a),e=this._getInst(d[0]);e["selected"+("M"==c?"Month":"Year")]=e["draw"+("M"==c?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10),this._notifyChange(e),this._adjustDate(d)},_selectDay:function(a,b,c,d){var e=$(a);if(!$(d).hasClass(this._unselectableClass)&&!th
is._isDisabledDatepicker(e[0])){var f=this._getInst(e[0]);f.selectedDay=f.currentDay=$("a",d).html(),f.selectedMonth=f.currentMonth=b,f.selectedYear=f.currentYear=c,this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))
}},_clearDate:function(a){{var b=$(a);this._getInst(b[0])}this._selectDate(b,"")},_selectDate:function(a,b){var c=$(a),d=this._getInst(c[0]);b=null!=b?b:this._formatDate(d),d.input&&d.input.val(b),this._updateAlternate(d);var e=this._get(d,"onSelect");e?e.apply(d.input?d.input[0]:null,[b,d]):d.input&&d.input.trigger("change"),d.inline?this._updateDatepicker(d):(this._hideDatepicker(),this._lastInput=d.input[0],"object"!=typeof d.input[0]&&d.input.focus(),this._lastInput=null)},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),d=this._getDate(a),e=this.formatDate(c,d,this._getFormatConfig(a));$(b).each(function(){$(this).val(e)})}},noWeekends:function(a){var b=a.getDay();return[b>0&&6>b,""]},iso8601Week:function(a){var b=new Date(a.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1},parseDate:function(a,b,c){if(null==a||
null==b)throw"Invalid arguments";if(b="object"==typeof b?b.toString():b+"",""==b)return null;var d=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;d="string"!=typeof d?d:(new Date).getFullYear()%100+parseInt(d,10);for(var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=-1,j=-1,k=-1,l=-1,m=!1,n=function(b){var c=s+1<a.length&&a.charAt(s+1)==b;return c&&s++,c},o=function(a){var c=n(a),d="@"==a?14:"!"==a?20:"y"==a&&c?4:"o"==a?3:2,e=new RegExp("^\\d{1,"+d+"}"),f=b.substring(r).match(e);if(!f)throw"Missing number at position "+r;return r+=f[0].length,parseInt(f[0],10)},p=function(a,c,d){var e=$.map(n(a)?d:c,function(a,b){return[[b,a]]}).sort(function(a,b){return-(a[1].length-b[1].length)}),f=-1;if($.each(e,function(a,c){var d=c[1];return b.substr(r,d.length).toLowerCase()==d.toLowerCase()?(f=c[0],r+=d.length,!
1):void 0}),-1!=f)return f+1;throw"Unknown name at position "+r},q=function(){if(b.charAt(r)!=a.charAt(s))throw"Unexpected literal at position "+r;r++},r=0,s=0;s<a.length;s++)if(m)"'"!=a.charAt(s)||n("'")?q():m=!1;else switch(a.charAt(s)){case"d":k=o("d");break;case"D":p("D",e,f);break;case"o":l=o("o");break;case"m":j=o("m");break;case"M":j=p("M",g,h);break;case"y":i=o("y");break;case"@":var t=new Date(o("@"));i=t.getFullYear(),j=t.getMonth()+1,k=t.getDate();break;case"!":var t=new Date((o("!")-this._ticksTo1970)/1e4);i=t.getFullYear(),j=t.getMonth()+1,k=t.getDate();break;case"'":n("'")?q():m=!0;break;default:q()}if(r<b.length)throw"Extra/unparsed characters found in date: "+b.substring(r);if(-1==i?i=(new Date).getFullYear():100>i&&(i+=(new Date).getFullYear()-(new Date).getFullYear()%100+(d>=i?0:-100)),l>-1)for(j=1,k=l;;){var u=this._getDaysInMonth(i,j-1);if(u>=k)break;j++,k-=u}var t=this._daylightSavingAdjust(new Date(i,j-1,k));if(t.getFullYear()!=i||t.getMonth()+1!=j||t.getDate()
!=k)throw"Invalid date";return t},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7,formatDate:function(a,b,c){if(!b)return"";var d=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,e=(c?c.dayNames:null)||this._defaults.dayNames,f=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,h=function(b){var c=m+1<a.length&&a.charAt(m+1)==b;return c&&m++,c},i=function(a,b,c){var d=""+b;if(h(a))for(;d.length<c;)d="0"+d;return d},j=function(a,b,c,d){return h(a)?d[b]:c[b]},k="",l=!1;if(b)for(var m=0;m<a.length;m++)if(l)"'"!=a.charAt(m)||h("'")?k+=a.charAt(m):l=!1;else switch(a.charAt(m)){case"d":k+=i("d",b.getDate(),2);break;case"D":k+=j("D",b.getDay(),d,e);break;case"o":k+=i("o",Math.ro
und((new Date(b.getFullYear(),b.getMonth(),b.getDate()).getTime()-new Date(b.getFullYear(),0,0).getTime())/864e5),3);break;case"m":k+=i("m",b.getMonth()+1,2);break;case"M":k+=j("M",b.getMonth(),f,g);break;case"y":k+=h("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case"@":k+=b.getTime();break;case"!":k+=1e4*b.getTime()+this._ticksTo1970;break;case"'":h("'")?k+="'":l=!0;break;default:k+=a.charAt(m)}return k},_possibleChars:function(a){for(var b="",c=!1,d=function(b){var c=e+1<a.length&&a.charAt(e+1)==b;return c&&e++,c},e=0;e<a.length;e++)if(c)"'"!=a.charAt(e)||d("'")?b+=a.charAt(e):c=!1;else switch(a.charAt(e)){case"d":case"m":case"y":case"@":b+="0123456789";break;case"D":case"M":return null;case"'":d("'")?b+="'":c=!0;break;default:b+=a.charAt(e)}return b},_get:function(a,b){return a.settings[b]!==undefined?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var e,f,c=this._get(a,"dateFormat"),d=a.lastVal=a.input?a.inp
ut.val():null;e=f=this._getDefaultDate(a);var g=this._getFormatConfig(a);try{e=this.parseDate(c,d,g)||f}catch(h){this.log(h),d=b?"":d}a.selectedDay=e.getDate(),a.drawMonth=a.selectedMonth=e.getMonth(),a.drawYear=a.selectedYear=e.getFullYear(),a.currentDay=d?e.getDate():0,a.currentMonth=d?e.getMonth():0,a.currentYear=d?e.getFullYear():0,this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var d=function(a){var b=new Date;return b.setDate(b.getDate()+a),b},e=function(b){try{return $.datepicker.parseDate($.datepicker._get(a,"dateFormat"),b,$.datepicker._getFormatConfig(a))}catch(c){}for(var d=(b.toLowerCase().match(/^c/)?$.datepicker._getDate(a):null)||new Date,e=d.getFullYear(),f=d.getMonth(),g=d.getDate(),h=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,i=h.exec(b);i;){switch(i[2]||"d"){case"d":case"D":g+=parseInt(i[1],10);break;case"w":case"W":g+=7*parseInt(i[1],10);brea
k;case"m":case"M":f+=parseInt(i[1],10),g=Math.min(g,$.datepicker._getDaysInMonth(e,f));break;case"y":case"Y":e+=parseInt(i[1],10),g=Math.min(g,$.datepicker._getDaysInMonth(e,f))}i=h.exec(b)}return new Date(e,f,g)},f=null==b||""===b?c:"string"==typeof b?e(b):"number"==typeof b?isNaN(b)?c:d(b):new Date(b.getTime());return f=f&&"Invalid Date"==f.toString()?c:f,f&&(f.setHours(0),f.setMinutes(0),f.setSeconds(0),f.setMilliseconds(0)),this._daylightSavingAdjust(f)},_daylightSavingAdjust:function(a){return a?(a.setHours(a.getHours()>12?a.getHours()+2:0),a):null},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),(e!=a.selectedMonth||f!=a.selectedYear)&&!c&&this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?"":this._formatDate(a))},_getDate:function
(a){var b=!a.currentYear||a.input&&""==a.input.val()?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),d=this._get(a,"showButtonPanel"),e=this._get(a,"hideIfNoPrevNext"),f=this._get(a,"navigationAsDateFormat"),g=this._getNumberOfMonths(a),h=this._get(a,"showCurrentAtPos"),i=this._get(a,"stepMonths"),j=1!=g[0]||1!=g[1],k=this._daylightSavingAdjust(a.currentDay?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),l=this._getMinMaxDate(a,"min"),m=this._getMinMaxDate(a,"max"),n=a.drawMonth-h,o=a.drawYear;if(0>n&&(n+=12,o--),m){var p=this._daylightSavingAdjust(new Date(m.getFullYear(),m.getMonth()-g[0]*g[1]+1,m.getDate()));for(p=l&&l>p?l:p;this._daylightSavingAdjust(new Date(o,n,1))>p;)n--,0>n&&(n=11,o--)}a.drawMonth=n,a.drawYear=o;var q=this._get(a,"prevText");q=f?this.formatDa
te(q,this._daylightSavingAdjust(new Date(o,n-i,1)),this._getFormatConfig(a)):q;var r=this._canAdjustMonth(a,-1,o,n)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._adjustDate('#"+a.id+"', -"+i+", 'M');\" title=\""+q+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+q+"</span></a>":e?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+q+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+q+"</span></a>",s=this._get(a,"nextText");s=f?this.formatDate(s,this._daylightSavingAdjust(new Date(o,n+i,1)),this._getFormatConfig(a)):s;var t=this._canAdjustMonth(a,1,o,n)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._adjustDate('#"+a.id+"', +"+i+", 'M');\" title=\""+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>":e?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+s+'"><span class="ui-icon ui-icon-circle
-triangle-'+(c?"w":"e")+'">'+s+"</span></a>",u=this._get(a,"currentText"),v=this._get(a,"gotoCurrent")&&a.currentDay?k:b;u=f?this.formatDate(u,v,this._getFormatConfig(a)):u;var w=a.inline?"":'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+dpuuid+'.datepicker._hideDatepicker();">'+this._get(a,"closeText")+"</button>",x=d?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?w:"")+(this._isInRange(a,v)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._gotoToday('#"+a.id+"');\">"+u+"</button>":"")+(c?"":w)+"</div>":"",y=parseInt(this._get(a,"firstDay"),10);y=isNaN(y)?0:y;for(var z=this._get(a,"showWeek"),A=this._get(a,"dayNames"),C=(this._get(a,"dayNamesShort"),this._get(a,"dayNamesMin")),D=this._get(a,"monthNames"),E=this._get(a,"monthNamesShort"),F=this._get(a,"beforeShowDay"),G=this._get(a,"showOtherMonth
s"),H=this._get(a,"selectOtherMonths"),J=(this._get(a,"calculateWeek")||this.iso8601Week,this._getDefaultDate(a)),K="",L=0;L<g[0];L++){var M="";this.maxRows=4;for(var N=0;N<g[1];N++){var O=this._daylightSavingAdjust(new Date(o,n,a.selectedDay)),P=" ui-corner-all",Q="";if(j){if(Q+='<div class="ui-datepicker-group',g[1]>1)switch(N){case 0:Q+=" ui-datepicker-group-first",P=" ui-corner-"+(c?"right":"left");break;case g[1]-1:Q+=" ui-datepicker-group-last",P=" ui-corner-"+(c?"left":"right");break;default:Q+=" ui-datepicker-group-middle",P=""}Q+='">'}Q+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+P+'">'+(/all|left/.test(P)&&0==L?c?t:r:"")+(/all|right/.test(P)&&0==L?c?r:t:"")+this._generateMonthYearHeader(a,n,o,l,m,L>0||N>0,D,E)+'</div><table class="ui-datepicker-calendar"><thead><tr>';for(var R=z?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"",S=0;7>S;S++){var T=(S+y)%7;R+="<th"+((S+y+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><spa
n title="'+A[T]+'">'+C[T]+"</span></th>"}Q+=R+"</tr></thead><tbody>";var U=this._getDaysInMonth(o,n);o==a.selectedYear&&n==a.selectedMonth&&(a.selectedDay=Math.min(a.selectedDay,U));var V=(this._getFirstDayOfMonth(o,n)-y+7)%7,W=Math.ceil((V+U)/7),X=j&&this.maxRows>W?this.maxRows:W;this.maxRows=X;for(var Y=this._daylightSavingAdjust(new Date(o,n,1-V)),Z=0;X>Z;Z++){Q+="<tr>";for(var _=z?'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(Y)+"</td>":"",S=0;7>S;S++){var ba=F?F.apply(a.input?a.input[0]:null,[Y]):[!0,""],bb=Y.getMonth()!=n,bc=bb&&!H||!ba[0]||l&&l>Y||m&&Y>m;_+='<td class="'+((S+y+6)%7>=5?" ui-datepicker-week-end":"")+(bb?" ui-datepicker-other-month":"")+(Y.getTime()==O.getTime()&&n==a.selectedMonth&&a._keyEvent||J.getTime()==Y.getTime()&&J.getTime()==O.getTime()?" "+this._dayOverClass:"")+(bc?" "+this._unselectableClass+" ui-state-disabled":"")+(bb&&!G?"":" "+ba[1]+(Y.getTime()==k.getTime()?" "+this._currentClass:"")+(Y.getTime()==b.getTime()?" ui-datepicker
-today":""))+'"'+(bb&&!G||!ba[2]?"":' title="'+ba[2]+'"')+(bc?"":' onclick="DP_jQuery_'+dpuuid+".datepicker._selectDay('#"+a.id+"',"+Y.getMonth()+","+Y.getFullYear()+', this);return false;"')+">"+(bb&&!G?" ":bc?'<span class="ui-state-default">'+Y.getDate()+"</span>":'<a class="ui-state-default'+(Y.getTime()==b.getTime()?" ui-state-highlight":"")+(Y.getTime()==k.getTime()?" ui-state-active":"")+(bb?" ui-priority-secondary":"")+'" href="#">'+Y.getDate()+"</a>")+"</td>",Y.setDate(Y.getDate()+1),Y=this._daylightSavingAdjust(Y)}Q+=_+"</tr>"}n++,n>11&&(n=0,o++),Q+="</tbody></table>"+(j?"</div>"+(g[0]>0&&N==g[1]-1?'<div class="ui-datepicker-row-break"></div>':""):""),M+=Q}K+=M}return K+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':""),a._keyEvent=!1,K},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i=this._get(a,"changeMonth"),j=this._get(a,"changeYear"),k=this._get(a,"sho
wMonthAfterYear"),l='<div class="ui-datepicker-title">',m="";if(f||!i)m+='<span class="ui-datepicker-month">'+g[b]+"</span>";else{var n=d&&d.getFullYear()==c,o=e&&e.getFullYear()==c;m+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+dpuuid+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" >";for(var p=0;12>p;p++)(!n||p>=d.getMonth())&&(!o||p<=e.getMonth())&&(m+='<option value="'+p+'"'+(p==b?' selected="selected"':"")+">"+h[p]+"</option>");m+="</select>"}if(k||(l+=m+(!f&&i&&j?"":" ")),!a.yearshtml)if(a.yearshtml="",f||!j)l+='<span class="ui-datepicker-year">'+c+"</span>";else{var q=this._get(a,"yearRange").split(":"),r=(new Date).getFullYear(),s=function(a){var b=a.match(/c[+-].*/)?c+parseInt(a.substring(1),10):a.match(/[+-].*/)?r+parseInt(a,10):parseInt(a,10);return isNaN(b)?r:b},t=s(q[0]),u=Math.max(t,s(q[1]||""));for(t=d?Math.max(t,d.getFullYear()):t,u=e?Math.min(u,e.getFullYear()):u,a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+dpuu
id+".datepicker._selectMonthYear('#"+a.id+"', this, 'Y');\" >";u>=t;t++)a.yearshtml+='<option value="'+t+'"'+(t==c?' selected="selected"':"")+">"+t+"</option>";a.yearshtml+="</select>",l+=a.yearshtml,a.yearshtml=null}return l+=this._get(a,"yearSuffix"),k&&(l+=(!f&&i&&j?"":" ")+m),l+="</div>",l},_adjustInstDate:function(a,b,c){var d=a.drawYear+("Y"==c?b:0),e=a.drawMonth+("M"==c?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+("D"==c?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),("M"==c||"Y"==c)&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&c>b?c:b;return e=d&&e>d?d:e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,"num
berOfMonths");return null==b?[1,1]:"number"==typeof b?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return new Date(a,b,1).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(0>b?b:e[0]*e[1]),1));return 0>b&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth())),this._isInRange(a,f)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!d||b.getTime()<=d.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");return b="string"!=typeof b?b:(new Date).getFullYear()%100+parseInt(b,10),{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:thi
s._get(a,"monthNames")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth,a.currentYear=a.selectedYear);var e=b?"object"==typeof b?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),$.fn.datepicker=function(a){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);return"string"!=typeof a||"isDisabled"!=a&&"getDate"!=a&&"widget"!=a?"option"==a&&2==arguments.length&&"string"==typeof arguments[1]?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b)):this.each(function(){"string"==typeof a?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this].concat(b)):$.datepicker._attachDatepicker(this,a)}):$.date
picker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.8.18",window["DP_jQuery_"+dpuuid]=$}(jQuery),function(a,b){var c="ui-dialog ui-widget ui-widget-content ui-corner-all ",d={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},e={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},f=a.attrFn||{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0,click:!0};a.widget("ui.dialog",{options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",collision:"fit",using:function(b){var c=a(this).css(b).offset().top;0>c&&a(this).css("top",b.top-c)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("titl
e"),"string"!=typeof this.originalTitle&&(this.originalTitle=""),this.options.title=this.options.title||this.originalTitle;{var b=this,d=b.options,e=d.title||" ",f=a.ui.dialog.getTitleId(b.element),g=(b.uiDialog=a("<div></div>")).appendTo(document.body).hide().addClass(c+d.dialogClass).css({zIndex:d.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(c){d.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}).attr({role:"dialog","aria-labelledby":f}).mousedown(function(a){b.moveToTop(!1,a)}),i=(b.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g),(b.uiDialogTitlebar=a("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g)),j=a('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){j.addClass("ui-state-hover")},function(){j.removeClass("ui-state-hover")})
.focus(function(){j.addClass("ui-state-focus")}).blur(function(){j.removeClass("ui-state-focus")}).click(function(a){return b.close(a),!1}).appendTo(i);(b.uiDialogTitlebarCloseText=a("<span></span>")).addClass("ui-icon ui-icon-closethick").text(d.closeText).appendTo(j),a("<span></span>").addClass("ui-dialog-title").attr("id",f).html(e).prependTo(i)}a.isFunction(d.beforeclose)&&!a.isFunction(d.beforeClose)&&(d.beforeClose=d.beforeclose),i.find("*").add(i).disableSelection(),d.draggable&&a.fn.draggable&&b._makeDraggable(),d.resizable&&a.fn.resizable&&b._makeResizable(),b._createButtons(d.buttons),b._isOpen=!1,a.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;return a.overlay&&a.overlay.destroy(),a.uiDialog.hide(),a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),a.uiDialog.remove(),a.originalTitle&&a.element.attr("title",a.originalTitle),a},widget:fun
ction(){return this.uiDialog},close:function(b){var d,e,c=this;return!1!==c._trigger("beforeClose",b)?(c.overlay&&c.overlay.destroy(),c.uiDialog.unbind("keypress.ui-dialog"),c._isOpen=!1,c.options.hide?c.uiDialog.hide(c.options.hide,function(){c._trigger("close",b)}):(c.uiDialog.hide(),c._trigger("close",b)),a.ui.dialog.overlay.resize(),c.options.modal&&(d=0,a(".ui-dialog").each(function(){this!==c.uiDialog[0]&&(e=a(this).css("z-index"),isNaN(e)||(d=Math.max(d,e)))}),a.ui.dialog.maxZ=d),c):void 0},isOpen:function(){return this._isOpen},moveToTop:function(b,c){var f,d=this,e=d.options;return e.modal&&!b||!e.stack&&!e.modal?d._trigger("focus",c):(e.zIndex>a.ui.dialog.maxZ&&(a.ui.dialog.maxZ=e.zIndex),d.overlay&&(a.ui.dialog.maxZ+=1,d.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ)),f={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()},a.ui.dialog.maxZ+=1,d.uiDialog.css("z-index",a.ui.dialog.maxZ),d.element.attr(f),d._trigger("focus",c),d)},open:fun
ction(){if(!this._isOpen){var b=this,c=b.options,d=b.uiDialog;return b.overlay=c.modal?new a.ui.dialog.overlay(b):null,b._size(),b._position(c.position),d.show(c.show),b.moveToTop(!0),c.modal&&d.bind("keydown.ui-dialog",function(b){if(b.keyCode===a.ui.keyCode.TAB){var c=a(":tabbable",this),d=c.filter(":first"),e=c.filter(":last");if(b.target===e[0]&&!b.shiftKey)return d.focus(1),!1;if(b.target===d[0]&&b.shiftKey)return e.focus(1),!1}}),a(b.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus(),b._isOpen=!0,b._trigger("open"),b}},_createButtons:function(b){var c=this,d=!1,e=a("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=a("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);c.uiDialog.find(".ui-dialog-buttonpane").remove(),"object"==typeof b&&null!==b&&a.each(b,function(){return!(d=!0)}),d&&(a.each(b,function(b,d){d=a.isFunction(d)?{click:d,text:b}:d;var e=a('<button type="
button"></button>').click(function(){d.click.apply(c.element[0],arguments)}).appendTo(g);a.each(d,function(a,b){"click"!==a&&(a in f?e[a](b):e.attr(a,b))}),a.fn.button&&e.button()}),e.appendTo(c.uiDialog))},_makeDraggable:function(){function f(a){return{position:a.position,offset:a.offset}}var e,b=this,c=b.options,d=a(document);b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(d,g){e="auto"===c.height?"auto":a(this).height(),a(this).height(a(this).height()).addClass("ui-dialog-dragging"),b._trigger("dragStart",d,f(g))},drag:function(a,c){b._trigger("drag",a,f(c))},stop:function(g,h){c.position=[h.position.left-d.scrollLeft(),h.position.top-d.scrollTop()],a(this).removeClass("ui-dialog-dragging").height(e),b._trigger("dragStop",g,f(h)),a.ui.dialog.overlay.resize()}})},_makeResizable:function(c){function h(a){return{originalPosition:a.originalPosition,originalSize:a.originalSize,position:a.po
sition,size:a.size}}c=c===b?this.options.resizable:c;var d=this,e=d.options,f=d.uiDialog.css("position"),g="string"==typeof c?c:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:g,start:function(b,c){a(this).addClass("ui-dialog-resizing"),d._trigger("resizeStart",b,h(c))},resize:function(a,b){d._trigger("resize",a,h(b))},stop:function(b,c){a(this).removeClass("ui-dialog-resizing"),e.height=a(this).height(),e.width=a(this).width(),d._trigger("resizeStop",b,h(c)),a.ui.dialog.overlay.resize()}}).css("position",f).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return"auto"===a.height?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(b){var e,c=[],d=[0,0];b?(("string"==typeof b||"object"==typeof b&&"0"in b)&&(c=b.split?b.split(" "):[b[0],b[1]],1===c.len
gth&&(c[1]=c[0]),a.each(["left","top"],function(a,b){+c[a]===c[a]&&(d[a]=c[a],c[a]=b)}),b={my:c.join(" "),at:c.join(" "),offset:d.join(" ")}),b=a.extend({},a.ui.dialog.prototype.options.position,b)):b=a.ui.dialog.prototype.options.position,e=this.uiDialog.is(":visible"),e||this.uiDialog.show(),this.uiDialog.css({top:0,left:0}).position(a.extend({of:window},b)),e||this.uiDialog.hide()},_setOptions:function(b){var c=this,f={},g=!1;a.each(b,function(a,b){c._setOption(a,b),a in d&&(g=!0),a in e&&(f[a]=b)}),g&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",f)},_setOption:function(b,d){var e=this,f=e.uiDialog;switch(b){case"beforeclose":b="beforeClose";break;case"buttons":e._createButtons(d);break;case"closeText":e.uiDialogTitlebarCloseText.text(""+d);break;case"dialogClass":f.removeClass(e.options.dialogClass).addClass(c+d);break;case"disabled":d?f.addClass("ui-dialog-disabled"):f.removeClass("ui-dialog-disabled");break;case"draggable":var g=f.is(":da
ta(draggable)");g&&!d&&f.draggable("destroy"),!g&&d&&e._makeDraggable();break;case"position":e._position(d);break;case"resizable":var h=f.is(":data(resizable)");h&&!d&&f.resizable("destroy"),h&&"string"==typeof d&&f.resizable("option","handles",d),!h&&d!==!1&&e._makeResizable(d);break;case"title":a(".ui-dialog-title",e.uiDialogTitlebar).html(""+(d||" "))}a.Widget.prototype._setOption.apply(e,arguments)},_size:function(){var c,d,b=this.options,e=this.uiDialog.is(":visible");if(this.element.show().css({width:"auto",minHeight:0,height:0}),b.minWidth>b.width&&(b.width=b.minWidth),c=this.uiDialog.css({height:"auto",width:b.width}).height(),d=Math.max(0,b.minHeight-c),"auto"===b.height)if(a.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();var f=this.element.css("height","auto").height();e||this.uiDialog.hide(),this.element.height(Math.max(f,d))}else this.element.height(Math.max(b.height-c,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog
.resizable("option","minHeight",this._minHeight())}}),a.extend(a.ui.dialog,{version:"1.8.18",uuid:0,maxZ:0,getTitleId:function(a){var b=a.attr("id");return b||(this.uuid+=1,b=this.uuid),"ui-dialog-title-"+b},overlay:function(b){this.$el=a.ui.dialog.overlay.create(b)}}),a.extend(a.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(b){0===this.instances.length&&(setTimeout(function(){a.ui.dialog.overlay.instances.length&&a(document).bind(a.ui.dialog.overlay.events,function(b){return a(b.target).zIndex()<a.ui.dialog.overlay.maxZ?!1:void 0})},1),a(document).bind("keydown.dialog-overlay",function(c){b.options.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}),a(window).bind("resize.dialog-overlay",a.ui.dialog.overlay.resize));var c=(this.oldInstances.pop()||a("<div></div>").addCla
ss("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});return a.fn.bgiframe&&c.bgiframe(),this.instances.push(c),c},destroy:function(b){var c=a.inArray(b,this.instances);-1!=c&&this.oldInstances.push(this.instances.splice(c,1)[0]),0===this.instances.length&&a([document,window]).unbind(".dialog-overlay"),b.remove();var d=0;a.each(this.instances,function(){d=Math.max(d,this.css("z-index"))}),this.maxZ=d},height:function(){var b,c;return a.browser.msie&&a.browser.version<7?(b=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),c=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight),c>b?a(window).height()+"px":b+"px"):a(document).height()+"px"},width:function(){var b,c;return a.browser.msie?(b=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth),c=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth),c>b?a(window).width()+"px":b+"px"):a(document).width()+"px"},resi
ze:function(){var b=a([]);a.each(a.ui.dialog.overlay.instances,function(){b=b.add(this)}),b.css({width:0,height:0}).css({width:a.ui.dialog.overlay.width(),height:a.ui.dialog.overlay.height()})}}),a.extend(a.ui.dialog.overlay.prototype,{destroy:function(){a.ui.dialog.overlay.destroy(this.$el)}})}(jQuery),function(a){a.ui=a.ui||{};var c=/left|center|right/,d=/top|center|bottom/,e="center",f={},g=a.fn.position,h=a.fn.offset;a.fn.position=function(b){if(!b||!b.of)return g.apply(this,arguments);b=a.extend({},b);var l,m,n,h=a(b.of),i=h[0],j=(b.collision||"flip").split(" "),k=b.offset?b.offset.split(" "):[0,0];return 9===i.nodeType?(l=h.width(),m=h.height(),n={top:0,left:0}):i.setTimeout?(l=h.width(),m=h.height(),n={top:h.scrollTop(),left:h.scrollLeft()}):i.preventDefault?(b.at="left top",l=m=0,n={top:b.of.pageY,left:b.of.pageX}):(l=h.outerWidth(),m=h.outerHeight(),n=h.offset()),a.each(["my","at"],function(){var a=(b[this]||"").split(" ");1===a.length&&(a=c.test(a[0])?a.concat([e]):d.test(
a[0])?[e].concat(a):[e,e]),a[0]=c.test(a[0])?a[0]:e,a[1]=d.test(a[1])?a[1]:e,b[this]=a}),1===j.length&&(j[1]=j[0]),k[0]=parseInt(k[0],10)||0,1===k.length&&(k[1]=k[0]),k[1]=parseInt(k[1],10)||0,"right"===b.at[0]?n.left+=l:b.at[0]===e&&(n.left+=l/2),"bottom"===b.at[1]?n.top+=m:b.at[1]===e&&(n.top+=m/2),n.left+=k[0],n.top+=k[1],this.each(function(){var r,c=a(this),d=c.outerWidth(),g=c.outerHeight(),h=parseInt(a.curCSS(this,"marginLeft",!0))||0,i=parseInt(a.curCSS(this,"marginTop",!0))||0,o=d+h+(parseInt(a.curCSS(this,"marginRight",!0))||0),p=g+i+(parseInt(a.curCSS(this,"marginBottom",!0))||0),q=a.extend({},n);"right"===b.my[0]?q.left-=d:b.my[0]===e&&(q.left-=d/2),"bottom"===b.my[1]?q.top-=g:b.my[1]===e&&(q.top-=g/2),f.fractions||(q.left=Math.round(q.left),q.top=Math.round(q.top)),r={left:q.left-h,top:q.top-i},a.each(["left","top"],function(c,e){a.ui.position[j[c]]&&a.ui.position[j[c]][e](q,{targetWidth:l,targetHeight:m,elemWidth:d,elemHeight:g,collisionPosition:r,collisionWidth:o,colli
sionHeight:p,offset:k,my:b.my,at:b.at})}),a.fn.bgiframe&&c.bgiframe(),c.offset(a.extend(q,{using:b.using}))})},a.ui.position={fit:{left:function(b,c){var d=a(window),e=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft();b.left=e>0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]!==e){var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g="left"===c.my[0]?-c.elemWidth:"right"===c.my[0]?c.elemWidth:0,h="left"===c.at[0]?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0}},top:function(b,c){if(c.at[1]!==e){var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g="top"===c.my[1]?-c.elemHeight:"bottom"===c.my[1]?c.elemHeight:0,h="top"===c.at[1]?c.targetHe
ight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,"position"))&&(b.style.position="relative");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,"top",!0),10)||0,g=parseInt(a.curCSS(b,"left",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};"using"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];return c&&c.ownerDocument?b?this.each(function(){a.offset.setOffset(this,b)}):h.call(this):null}),function(){var d,e,g,h,i,b=document.getElementsByTagName("body")[0],c=document.createElement("div");d=document.createElement(b?"div":"body"),g={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},b&&a.extend(g,{position:"absolute",left:"-1000px",top:"-1000px"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText="position: absolute; left: 10.7432222px; top: 10.4
32325px; height: 30px; width: 201px;",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML="",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&22>i
}()}(jQuery),function(a,b){a.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()}),this.valueDiv=a("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove(),a.Widget.prototype.destroy.apply(this,arguments)},value:function(a){return a===b?this._value():(this._setOption("value",a),this)},_setOption:function(b,c){"value"===b&&(this.options.value=c,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),a.Widget.prototype._setOptio
n.apply(this,arguments)},_value:function(){var a=this.options.value;return"number"!=typeof a&&(a=0),Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var a=this.value(),b=this._percentage();this.oldValue!==a&&(this.oldValue=a,this._trigger("change")),this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(b.toFixed(0)+"%"),this.element.attr("aria-valuenow",a)}}),a.extend(a.ui.progressbar,{version:"1.8.18"})}(jQuery),function(a){var c=5;a.widget("ui.slider",a.ui.mouse,{widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var b=this,d=this.options,e=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f="<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",g=d.values&&d.values.length||1,h=[];this._keySliding=!1,this
._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all"+(d.disabled?" ui-slider-disabled ui-disabled":"")),this.range=a([]),d.range&&(d.range===!0&&(d.values||(d.values=[this._valueMin(),this._valueMin()]),d.values.length&&2!==d.values.length&&(d.values=[d.values[0],d.values[0]])),this.range=a("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+("min"===d.range||"max"===d.range?" ui-slider-range-"+d.range:"")));for(var i=e.length;g>i;i+=1)h.push(f);this.handles=e.add(a(h.join("")).appendTo(b.element)),this.handle=this.handles.eq(0),this.handles.add(this.range).filter("a").click(function(a){a.preventDefault()}).hover(function(){d.disabled||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}).focus(function(){d.disabled?a(this).blur():(a(".ui-slider .ui-state-focus").r
emoveClass("ui-state-focus"),a(this).addClass("ui-state-focus"))}).blur(function(){a(this).removeClass("ui-state-focus")}),this.handles.each(function(b){a(this).data("index.ui-slider-handle",b)}),this.handles.keydown(function(d){var f,g,h,i,e=a(this).data("index.ui-slider-handle");if(!b.options.disabled){switch(d.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.PAGE_UP:case a.ui.keyCode.PAGE_DOWN:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(d.preventDefault(),!b._keySliding&&(b._keySliding=!0,a(this).addClass("ui-state-active"),f=b._start(d,e),f===!1))return}switch(i=b.options.step,g=h=b.options.values&&b.options.values.length?b.values(e):b.value(),d.keyCode){case a.ui.keyCode.HOME:h=b._valueMin();break;case a.ui.keyCode.END:h=b._valueMax();break;case a.ui.keyCode.PAGE_UP:h=b._trimAlignValue(g+(b._valueMax()-b._valueMin())/c);break;case a.ui.keyCode.PAGE_DOWN:h=b._trimAlignValue(g-(b._valueMax()-b._valueMin())/c
);break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g===b._valueMax())return;h=b._trimAlignValue(g+i);break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g===b._valueMin())return;h=b._trimAlignValue(g-i)}b._slide(d,e,h)}}).keyup(function(c){var d=a(this).data("index.ui-slider-handle");b._keySliding&&(b._keySliding=!1,b._stop(c,d),b._change(c,d),a(this).removeClass("ui-state-active"))}),this._refreshValue(),this._animateOff=!1},destroy:function(){return this.handles.remove(),this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"),this._mouseDestroy(),this},_mouseCapture:function(b){var d,e,f,g,h,i,j,k,l,c=this.options;return c.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),d={x:b.pageX,y:b.pageY},e=this._normValueFromMouse(d),f=this._valueMax()-th
is._valueMin()+1,h=this,this.handles.each(function(b){var c=Math.abs(e-h.values(b));f>c&&(f=c,g=a(this),i=b)}),c.range===!0&&this.values(1)===c.min&&(i+=1,g=a(this.handles[i])),j=this._start(b,i),j===!1?!1:(this._mouseSliding=!0,h._handleIndex=i,g.addClass("ui-state-active").focus(),k=g.offset(),l=!a(b.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:b.pageX-k.left-g.width()/2,top:b.pageY-k.top-g.height()/2-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(b,i,e),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);return this._slide(a,this._handleIndex,c),!1},_mouseStop:function(a){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._han
dleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(a){var b,c,d,e,f;return"horizontal"===this.orientation?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),0>d&&(d=0),"vertical"===this.orientation&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e,this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};return this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("start",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),2===this.options.values.length&&this.options.range===!0&&(0===b&&c>d||1===b&&d>c)&
&(c=d),c!==this.values(b)&&(e=this.values(),e[b]=c,f=this._trigger("slide",a,{handle:this.handles[b],value:c,values:e}),d=this.values(b?0:1),f!==!1&&this.values(b,c,!0))):c!==this.value()&&(f=this._trigger("slide",a,{handle:this.handles[b],value:c}),f!==!1&&this.value(c))},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("change",a,c)}},value:function(a){return arguments.length?(this.options.value=this._trimAlignValue(a),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(b,c){var d,e,f;if(arguments.length>1)this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),this._change(nu
ll,b);else{if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();for(d=this.options.values,e=arguments[0],f=0;f<d.length;f+=1)d[f]=this._trimAlignValue(e[f]),this._change(null,f);this._refreshValue()}},_setOption:function(b,c){var d,e=0;switch(a.isArray(this.options.values)&&(e=this.options.values.length),a.Widget.prototype._setOption.apply(this,arguments),b){case"disabled":c?(this.handles.filter(".ui-state-focus").blur(),this.handles.removeClass("ui-state-hover"),this.handles.propAttr("disabled",!0),this.element.addClass("ui-disabled")):(this.handles.propAttr("disabled",!1),this.element.removeClass("ui-disabled"));break;case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue();break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateO
ff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),d=0;e>d;d+=1)this._change(null,d);this._animateOff=!1}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c,d;if(arguments.length)return b=this.options.values[a],b=this._trimAlignValue(b);for(c=this.options.values.slice(),d=0;d<c.length;d+=1)c[d]=this._trimAlignValue(c[d]);return c},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;return 2*Math.abs(c)>=b&&(d+=c>0?b:-b),parseFloat(d.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var f,h,i,j,k,b=this.options.range,c=this.options,d=this,e=this._animateOff?!1:c.animate,g={};this.options.values&&this.options.values.length?this.handles.each(function(b){f=(d.values(b)-d._valueMin())/(d._val
ueMax()-d._valueMin())*100,g["horizontal"===d.orientation?"left":"bottom"]=f+"%",a(this).stop(1,1)[e?"animate":"css"](g,c.animate),d.options.range===!0&&("horizontal"===d.orientation?(0===b&&d.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},c.animate),1===b&&d.range[e?"animate":"css"]({width:f-h+"%"},{queue:!1,duration:c.animate})):(0===b&&d.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},c.animate),1===b&&d.range[e?"animate":"css"]({height:f-h+"%"},{queue:!1,duration:c.animate}))),h=f}):(i=this.value(),j=this._valueMin(),k=this._valueMax(),f=k!==j?(i-j)/(k-j)*100:0,g["horizontal"===d.orientation?"left":"bottom"]=f+"%",this.handle.stop(1,1)[e?"animate":"css"](g,c.animate),"min"===b&&"horizontal"===this.orientation&&this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},c.animate),"max"===b&&"horizontal"===this.orientation&&this.range[e?"animate":"css"]({width:100-f+"%"},{queue:!1,duration:c.animate}),"min"===b&&"vertical"===this.orientation&&this.range.stop(1,1)[e?"animate":"css"](
{height:f+"%"},c.animate),"max"===b&&"vertical"===this.orientation&&this.range[e?"animate":"css"]({height:100-f+"%"},{queue:!1,duration:c.animate}))}}),a.extend(a.ui.slider,{version:"1.8.18"})}(jQuery),function(a,b){function f(){return++d}function e(){return++c}var c=0,d=0;a.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:!1,cookie:null,collapsible:!1,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading…</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(!0)},_setOption:function(a,b){if("selected"==a){if(this.options.collapsible&&b==this.options.selected)return;this.select(b)}else this.options[a]=b,this._tabify()},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+e()},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")}
,_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+f());return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(a,b){return{tab:a,panel:b,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function m(b,c){b.css("display",""),!a.support.opacity&&c.opacity&&b[0].style.removeAttribute("filter")}var d=this,e=this.options,f=/^#.+/;this.list=this.element.find("ol,ul").eq(0),this.lis=a(" > li:has(a[href])",this.list),this.anchors=this.lis.map(function(){return a("a",this)[0]}),this.panels=a([]),this.anchors.each(function(b,c){var i,g=a(c).attr("href"),h=g.split("#")[0];if(h&&(h===location.toString().split("#")[0]||(i=a("base")[0])&&h===i.href)&&(g=c.hash,c.href=g),f.test(g))d.panels=d.panels.add(d.element.find(d._sanitizeSel
ector(g)));else if(g&&"#"!==g){a.data(c,"href.tabs",g),a.data(c,"load.tabs",g.replace(/#.*$/,""));var j=d._tabId(c);c.href="#"+j;var k=d.element.find("#"+j);k.length||(k=a(e.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(d.panels[b-1]||d.list),k.data("destroy.tabs",!0)),d.panels=d.panels.add(k)}else e.disabled.push(b)}),c?(this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"),this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.lis.addClass("ui-state-default ui-corner-top"),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"),e.selected===b?(location.hash&&this.anchors.each(function(a,b){return b.hash==location.hash?(e.selected=a,!1):void 0}),"number"!=typeof e.selected&&e.cookie&&(e.selected=parseInt(d._cookie(),10)),"number"!=typeof e.selected&&this.lis.filter(".ui-tabs-selected").length&&(e.selected=this.lis.index(this.lis.filter(".ui-
tabs-selected"))),e.selected=e.selected||(this.lis.length?0:-1)):null===e.selected&&(e.selected=-1),e.selected=e.selected>=0&&this.anchors[e.selected]||e.selected<0?e.selected:0,e.disabled=a.unique(e.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(a){return d.lis.index(a)}))).sort(),-1!=a.inArray(e.selected,e.disabled)&&e.disabled.splice(a.inArray(e.selected,e.disabled),1),this.panels.addClass("ui-tabs-hide"),this.lis.removeClass("ui-tabs-selected ui-state-active"),e.selected>=0&&this.anchors.length&&(d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash)).removeClass("ui-tabs-hide"),this.lis.eq(e.selected).addClass("ui-tabs-selected ui-state-active"),d.element.queue("tabs",function(){d._trigger("show",null,d._ui(d.anchors[e.selected],d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash))[0]))}),this.load(e.selected)),a(window).bind("unload",function(){d.lis.add(d.anchors).unbind(".tabs"),d.lis=d.anchors=d.panels=null})):e.selected=this.lis.inde
x(this.lis.filter(".ui-tabs-selected")),this.element[e.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible"),e.cookie&&this._cookie(e.selected,e.cookie);for(var h,g=0;h=this.lis[g];g++)a(h)[-1==a.inArray(g,e.disabled)||a(h).hasClass("ui-tabs-selected")?"removeClass":"addClass"]("ui-state-disabled");if(e.cache===!1&&this.anchors.removeData("cache.tabs"),this.lis.add(this.anchors).unbind(".tabs"),"mouseover"!==e.event){var i=function(a,b){b.is(":not(.ui-state-disabled)")&&b.addClass("ui-state-"+a)},j=function(a,b){b.removeClass("ui-state-"+a)};this.lis.bind("mouseover.tabs",function(){i("hover",a(this))}),this.lis.bind("mouseout.tabs",function(){j("hover",a(this))}),this.anchors.bind("focus.tabs",function(){i("focus",a(this).closest("li"))}),this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var k,l;e.fx&&(a.isArray(e.fx)?(k=e.fx[0],l=e.fx[1]):k=l=e.fx);var n=l?function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.hide().remove
Class("ui-tabs-hide").animate(l,l.duration||"normal",function(){m(c,l),d._trigger("show",null,d._ui(b,c[0]))})}:function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.removeClass("ui-tabs-hide"),d._trigger("show",null,d._ui(b,c[0]))},o=k?function(a,b){b.animate(k,k.duration||"normal",function(){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),m(b,k),d.element.dequeue("tabs")})}:function(a,b){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),d.element.dequeue("tabs")};this.anchors.bind(e.event+".tabs",function(){var b=this,c=a(b).closest("li"),f=d.panels.filter(":not(.ui-tabs-hide)"),g=d.element.find(d._sanitizeSelector(b.hash));if(c.hasClass("ui-tabs-selected")&&!e.collapsible||c.hasClass("ui-state-disabled")||c.hasClass("ui-state-processing")||d.panels.filter(":animated").length||d._trigger("select",null,d._ui(this,g[0]))===!1)return this.blur(),!1;if(e.selected=d.anchors.index(this),d.abort(),e
.collapsible){if(c.hasClass("ui-tabs-selected"))return e.selected=-1,e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){o(b,f)}).dequeue("tabs"),this.blur(),!1;if(!f.length)return e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),this.blur(),!1}if(e.cookie&&d._cookie(e.selected,e.cookie),!g.length)throw"jQuery UI Tabs: Mismatching fragment identifier.";f.length&&d.element.queue("tabs",function(){o(b,f)}),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),a.browser.msie&&this.blur()}),this.anchors.bind("click.tabs",function(){return!1})},_getIndex:function(a){return"string"==typeof a&&(a=this.anchors.index(this.anchors.filter("[href$="+a+"]"))),a},destroy:function(){var b=this.options;return this.abort(),this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"),this.list.removeClass("ui-tabs-nav ui-hel
per-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.anchors.each(function(){var b=a.data(this,"href.tabs");b&&(this.href=b);var c=a(this).unbind(".tabs");a.each(["href","load","cache"],function(a,b){c.removeData(b+".tabs")})}),this.lis.unbind(".tabs").add(this.panels).each(function(){a.data(this,"destroy.tabs")?a(this).remove():a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}),b.cookie&&this._cookie(null,b.cookie),this},add:function(c,d,e){e===b&&(e=this.anchors.length);var f=this,g=this.options,h=a(g.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,d)),i=c.indexOf("#")?this._tabId(a("a",h)[0]):c.replace("#","");h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",!0);var j=f.element.find("#"+i);return j.length||(j=a(g.panelTemplate).attr("id",i).data("destroy.tabs",!0)
),j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"),e>=this.lis.length?(h.appendTo(this.list),j.appendTo(this.list[0].parentNode)):(h.insertBefore(this.lis[e]),j.insertBefore(this.panels[e])),g.disabled=a.map(g.disabled,function(a){return a>=e?++a:a}),this._tabify(),1==this.anchors.length&&(g.selected=0,h.addClass("ui-tabs-selected ui-state-active"),j.removeClass("ui-tabs-hide"),this.element.queue("tabs",function(){f._trigger("show",null,f._ui(f.anchors[0],f.panels[0]))}),this.load(0)),this._trigger("add",null,this._ui(this.anchors[e],this.panels[e])),this},remove:function(b){b=this._getIndex(b);var c=this.options,d=this.lis.eq(b).remove(),e=this.panels.eq(b).remove();return d.hasClass("ui-tabs-selected")&&this.anchors.length>1&&this.select(b+(b+1<this.anchors.length?1:-1)),c.disabled=a.map(a.grep(c.disabled,function(a){return a!=b}),function(a){return a>=b?--a:a}),this._tabify(),this._trigger("remove",null,this._ui(d.find("a")[0],e[0])),this},enable:functi
on(b){b=this._getIndex(b);var c=this.options;return-1!=a.inArray(b,c.disabled)?(this.lis.eq(b).removeClass("ui-state-disabled"),c.disabled=a.grep(c.disabled,function(a){return a!=b}),this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b])),this):void 0},disable:function(a){a=this._getIndex(a);var c=this.options;return a!=c.selected&&(this.lis.eq(a).addClass("ui-state-disabled"),c.disabled.push(a),c.disabled.sort(),this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a]))),this},select:function(a){if(a=this._getIndex(a),-1==a){if(!this.options.collapsible||-1==this.options.selected)return this;a=this.options.selected}return this.anchors.eq(a).trigger(this.options.event+".tabs"),this},load:function(b){b=this._getIndex(b);var c=this,d=this.options,e=this.anchors.eq(b)[0],f=a.data(e,"load.tabs");if(this.abort(),f&&(0===this.element.queue("tabs").length||!a.data(e,"cache.tabs"))){if(this.lis.eq(b).addClass("ui-state-processing"),d.spinner){var g=a("span",e);g.da
ta("label.tabs",g.html()).html(d.spinner)}return this.xhr=a.ajax(a.extend({},d.ajaxOptions,{url:f,success:function(f,g){c.element.find(c._sanitizeSelector(e.hash)).html(f),c._cleanup(),d.cache&&a.data(e,"cache.tabs",!0),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.success(f,g)}catch(h){}},error:function(a,f){c._cleanup(),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.error(a,f,b,e)}catch(g){}}})),c.element.dequeue("tabs"),this}this.element.dequeue("tabs")},abort:function(){return this.element.queue([]),this.panels.stop(!1,!0),this.element.queue("tabs",this.element.queue("tabs").splice(-2,2)),this.xhr&&(this.xhr.abort(),delete this.xhr),this._cleanup(),this},url:function(a,b){return this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",b),this},length:function(){return this.anchors.length}}),a.extend(a.ui.tabs,{version:"1.8.18"}),a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(a,b){var c=this,d=this.options,e=
c._rotate||(c._rotate=function(b){clearTimeout(c.rotation),c.rotation=setTimeout(function(){var a=d.selected;c.select(++a<c.anchors.length?a:0)},a),b&&b.stopPropagation()}),f=c._unrotate||(c._unrotate=b?function(){t=d.selected,e()}:function(a){a.clientX&&c.rotate(null)});return a?(this.element.bind("tabsshow",e),this.anchors.bind(d.event+".tabs",f),e()):(clearTimeout(c.rotation),this.element.unbind("tabsshow",e),this.anchors.unbind(d.event+".tabs",f),delete this._rotate,delete this._unrotate),this}})}(jQuery),Date.CultureInfo={name:"en-US",englishName:"English (United States)",nativeName:"English (United States)",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],abbreviatedDayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],shortestDayNames:["Su","Mo","Tu","We","Th","Fr","Sa"],firstLetterDayNames:["S","M","T","W","T","F","S"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],abb
reviatedMonthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],amDesignator:"AM",pmDesignator:"PM",firstDayOfWeek:0,twoDigitYearMax:2029,dateElementOrder:"mdy",formatPatterns:{shortDate:"M/d/yyyy",longDate:"dddd, MMMM dd, yyyy",shortTime:"h:mm tt",longTime:"h:mm:ss tt",fullDateTime:"dddd, MMMM dd, yyyy h:mm:ss tt",sortableDateTime:"yyyy-MM-ddTHH:mm:ss",universalSortableDateTime:"yyyy-MM-dd HH:mm:ssZ",rfc1123:"ddd, dd MMM yyyy HH:mm:ss GMT",monthDay:"MMMM dd",yearMonth:"MMMM, yyyy"},regexPatterns:{jan:/^jan(uary)?/i,feb:/^feb(ruary)?/i,mar:/^mar(ch)?/i,apr:/^apr(il)?/i,may:/^may/i,jun:/^jun(e)?/i,jul:/^jul(y)?/i,aug:/^aug(ust)?/i,sep:/^sep(t(ember)?)?/i,oct:/^oct(ober)?/i,nov:/^nov(ember)?/i,dec:/^dec(ember)?/i,sun:/^su(n(day)?)?/i,mon:/^mo(n(day)?)?/i,tue:/^tu(e(s(day)?)?)?/i,wed:/^we(d(nesday)?)?/i,thu:/^th(u(r(s(day)?)?)?)?/i,fri:/^fr(i(day)?)?/i,sat:/^sa(t(urday)?)?/i,future:/^next/i,past:/^last|past|prev(ious)?/i,add:/^(\+|aft(er)?|from|hence)/i,sub
tract:/^(\-|bef(ore)?|ago)/i,yesterday:/^yes(terday)?/i,today:/^t(od(ay)?)?/i,tomorrow:/^tom(orrow)?/i,now:/^n(ow)?/i,millisecond:/^ms|milli(second)?s?/i,second:/^sec(ond)?s?/i,minute:/^mn|min(ute)?s?/i,hour:/^h(our)?s?/i,week:/^w(eek)?s?/i,month:/^m(onth)?s?/i,day:/^d(ay)?s?/i,year:/^y(ear)?s?/i,shortMeridian:/^(a|p)/i,longMeridian:/^(a\.?m?\.?|p\.?m?\.?)/i,timezone:/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt|utc)/i,ordinalSuffix:/^\s*(st|nd|rd|th)/i,timeContext:/^\s*(\:|a(?!u|p)|p)/i},timezones:[{name:"UTC",offset:"-000"},{name:"GMT",offset:"-000"},{name:"EST",offset:"-0500"},{name:"EDT",offset:"-0400"},{name:"CST",offset:"-0600"},{name:"CDT",offset:"-0500"},{name:"MST",offset:"-0700"},{name:"MDT",offset:"-0600"},{name:"PST",offset:"-0800"},{name:"PDT",offset:"-0700"}]},function(){var a=Date,b=a.prototype,c=a.Cultur
<TRUNCATED>
[29/34] git commit: merge
Posted by sn...@apache.org.
merge
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/abe152f3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/abe152f3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/abe152f3
Branch: refs/pull/86/merge
Commit: abe152f36c90bdaecbfa62d38211fa2b5453f287
Parents: 48fd11f d1ee5ec
Author: Shawn Feldman <sh...@gmail.com>
Authored: Fri Mar 28 17:17:36 2014 -0600
Committer: Shawn Feldman <sh...@gmail.com>
Committed: Fri Mar 28 17:17:36 2014 -0600
----------------------------------------------------------------------
portal/css/dash.min.css | 2 +-
portal/css/main.css | 56 +++++++++++---------
portal/js/global/help-service.js | 6 +--
.../js/libs/bootstrap/custom/css/bootstrap.css | 15 +++---
.../libs/bootstrap/custom/css/bootstrap.min.css | 2 +-
portal/js/libs/usergrid-libs.min.js | 2 +-
portal/js/usergrid-dev.min.js | 6 +--
portal/js/usergrid.min.js | 2 +-
8 files changed, 50 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
[23/34] git commit: building changes updating bower
Posted by sn...@apache.org.
building changes
updating bower
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/efe34294
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/efe34294
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/efe34294
Branch: refs/pull/86/merge
Commit: efe34294213c60265cebe5a1ff8a71d9ca648429
Parents: 9e43523
Author: Shawn Feldman <sh...@gmail.com>
Authored: Fri Mar 28 17:00:47 2014 -0600
Committer: Shawn Feldman <sh...@gmail.com>
Committed: Fri Mar 28 17:00:47 2014 -0600
----------------------------------------------------------------------
portal/bower.json | 6 +--
portal/dist/appsvc-ui.2.0.1.zip | Bin 17166351 -> 17166526 bytes
portal/index-debug.html | 39 +++++++++++++++++--
portal/index.html | 39 +++++++++++++++++--
portal/js/libs/usergrid-libs.min.js | 2 +-
portal/js/usergrid-dev.min.js | 2 +-
portal/js/usergrid.min.js | 2 +-
.../instrument/js/usergrid-coverage.min.js | 2 +-
.../test/coverage/instrument/js/usergrid.min.js | 2 +-
9 files changed, 80 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/efe34294/portal/bower.json
----------------------------------------------------------------------
diff --git a/portal/bower.json b/portal/bower.json
index 85c9d35..ac827be 100644
--- a/portal/bower.json
+++ b/portal/bower.json
@@ -1,6 +1,6 @@
{
- "name": "usergrid-portal-nomax",
- "version": "2.0.42",
+ "name": "usergrid-portal",
+ "version": "2.0.1",
"ignore": [
".jshintrc",
"**/*.txt",
@@ -8,7 +8,7 @@
"css/",
"img/",
"archive/",
- "dist/archive",
+ "dist/appsvc-ui/archive",
"bower_components/",
"scripts/",
"sdk/",
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/efe34294/portal/dist/appsvc-ui.2.0.1.zip
----------------------------------------------------------------------
diff --git a/portal/dist/appsvc-ui.2.0.1.zip b/portal/dist/appsvc-ui.2.0.1.zip
index b10ff37..8cec035 100644
Binary files a/portal/dist/appsvc-ui.2.0.1.zip and b/portal/dist/appsvc-ui.2.0.1.zip differ
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/efe34294/portal/index-debug.html
----------------------------------------------------------------------
diff --git a/portal/index-debug.html b/portal/index-debug.html
index 3435072..cfc70bd 100644
--- a/portal/index-debug.html
+++ b/portal/index-debug.html
@@ -61,9 +61,42 @@
</div>
<div id="intro-3-side-menu">
- <div class="nav-collapse collapse" id="sideMenu">
- <ul class="nav nav-list" menu="sideMenu"><li class="option active" ng-cloak=""><a data-ng-href="#!/org-overview"><i class="pictogram">🕪</i>Org Administration</a></li><li class="option " ng-cloak=""><a data-ng-href="#!/getting-started/setup"><i class="pictogram">🚀</i>Getting Started</a></li><li class="option " ng-cloak=""><a data-ng-href="#!/app-overview/summary"><i class="pictogram"></i>App Overview</a><ul class="nav nav-list"><li><a data-ng-href="#!/app-overview/summary"><i class="pictogram sub">📱</i>Summary</a></li></ul></li><li class="option " ng-cloak=""><a data-ng-href="#!/users"><i class="pictogram">👤</i>Users</a><ul class="nav nav-list"><li><a data-ng-href="#!/users"><i class="pictogram sub">👤</i>Users</a></li></ul><ul class="nav nav-list"><li><a data-ng-href="#!/groups"><i class="pictogram sub">👥</i>Groups</a></li></ul><ul class="nav nav-list"><li><a data-ng-href="#!/roles"><i class="pictogram sub"></i>Role
s</a></li></ul></li><li class="option " ng-cloak=""><a data-ng-href="#!/data"><i class="pictogram">📸</i>Data</a><ul class="nav nav-list"><li><a data-ng-href="#!/data"><i class="pictogram sub">📾</i>Collections</a></li></ul></li><li class="option " ng-cloak=""><a data-ng-href="#!/activities"><i class="pictogram"></i>Activities</a></li><li class="option " ng-cloak=""><a data-ng-href="#!/shell"><i class="pictogram">⌨</i>Shell</a></li></ul></div>
- </div>
+ <div class="nav-collapse collapse" id="sideMenu">
+ <ul class="nav nav-list" menu="sideMenu">
+ <li class="option active" ng-cloak=""><a data-ng-href="#!/org-overview"><i class="pictogram">
+ 🕪</i>Org Administration</a></li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/getting-started/setup"><i class="pictogram">
+ 🚀</i>Getting Started</a></li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/app-overview/summary"><i class="pictogram">
+ </i>App Overview</a>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/app-overview/summary"><i class="pictogram sub">📱</i>Summary</a>
+ </li>
+ </ul>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/users"><i class="pictogram">👤</i>Users</a>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/users"><i class="pictogram sub">👤</i>Users</a></li>
+ </ul>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/groups"><i class="pictogram sub">👥</i>Groups</a></li>
+ </ul>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/roles"><i class="pictogram sub"></i>Roles</a></li>
+ </ul>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/data"><i class="pictogram">📸</i>Data</a>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/data"><i class="pictogram sub">📾</i>Collections</a></li>
+ </ul>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/activities"><i class="pictogram"></i>Activities</a>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/shell"><i class="pictogram">⌨</i>Shell</a>
+ </li>
+ </ul>
+ </div>
+ </div>
</div>
</section>
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/efe34294/portal/index.html
----------------------------------------------------------------------
diff --git a/portal/index.html b/portal/index.html
index 883c077..de8090f 100644
--- a/portal/index.html
+++ b/portal/index.html
@@ -61,9 +61,42 @@
</div>
<div id="intro-3-side-menu">
- <div class="nav-collapse collapse" id="sideMenu">
- <ul class="nav nav-list" menu="sideMenu"><li class="option active" ng-cloak=""><a data-ng-href="#!/org-overview"><i class="pictogram">🕪</i>Org Administration</a></li><li class="option " ng-cloak=""><a data-ng-href="#!/getting-started/setup"><i class="pictogram">🚀</i>Getting Started</a></li><li class="option " ng-cloak=""><a data-ng-href="#!/app-overview/summary"><i class="pictogram"></i>App Overview</a><ul class="nav nav-list"><li><a data-ng-href="#!/app-overview/summary"><i class="pictogram sub">📱</i>Summary</a></li></ul></li><li class="option " ng-cloak=""><a data-ng-href="#!/users"><i class="pictogram">👤</i>Users</a><ul class="nav nav-list"><li><a data-ng-href="#!/users"><i class="pictogram sub">👤</i>Users</a></li></ul><ul class="nav nav-list"><li><a data-ng-href="#!/groups"><i class="pictogram sub">👥</i>Groups</a></li></ul><ul class="nav nav-list"><li><a data-ng-href="#!/roles"><i class="pictogram sub"></i>Role
s</a></li></ul></li><li class="option " ng-cloak=""><a data-ng-href="#!/data"><i class="pictogram">📸</i>Data</a><ul class="nav nav-list"><li><a data-ng-href="#!/data"><i class="pictogram sub">📾</i>Collections</a></li></ul></li><li class="option " ng-cloak=""><a data-ng-href="#!/activities"><i class="pictogram"></i>Activities</a></li><li class="option " ng-cloak=""><a data-ng-href="#!/shell"><i class="pictogram">⌨</i>Shell</a></li></ul></div>
- </div>
+ <div class="nav-collapse collapse" id="sideMenu">
+ <ul class="nav nav-list" menu="sideMenu">
+ <li class="option active" ng-cloak=""><a data-ng-href="#!/org-overview"><i class="pictogram">
+ 🕪</i>Org Administration</a></li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/getting-started/setup"><i class="pictogram">
+ 🚀</i>Getting Started</a></li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/app-overview/summary"><i class="pictogram">
+ </i>App Overview</a>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/app-overview/summary"><i class="pictogram sub">📱</i>Summary</a>
+ </li>
+ </ul>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/users"><i class="pictogram">👤</i>Users</a>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/users"><i class="pictogram sub">👤</i>Users</a></li>
+ </ul>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/groups"><i class="pictogram sub">👥</i>Groups</a></li>
+ </ul>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/roles"><i class="pictogram sub"></i>Roles</a></li>
+ </ul>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/data"><i class="pictogram">📸</i>Data</a>
+ <ul class="nav nav-list">
+ <li><a data-ng-href="#!/data"><i class="pictogram sub">📾</i>Collections</a></li>
+ </ul>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/activities"><i class="pictogram"></i>Activities</a>
+ </li>
+ <li class="option " ng-cloak=""><a data-ng-href="#!/shell"><i class="pictogram">⌨</i>Shell</a>
+ </li>
+ </ul>
+ </div>
+ </div>
</div>
</section>
[26/34] merge
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/abe152f3/portal/js/libs/usergrid-libs.min.js
----------------------------------------------------------------------
diff --cc portal/js/libs/usergrid-libs.min.js
index 0899b2b,b69da61..ef49eff
--- a/portal/js/libs/usergrid-libs.min.js
+++ b/portal/js/libs/usergrid-libs.min.js
@@@ -19,4 -19,4 +19,4 @@@ a.effects.animateClass=function(b,c,d,e
},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),"source"===b&&this._initSource(),"appendTo"===b&&this.menu.element.appendTo(a(c||"body",this.element[0].ownerDocument)[0]),"disabled"===b&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var d,e,b=this;a.isArray(this.options.source)?(d=this.options.source,this.source=function(b,c){c(a.ui.autocomplete.filter(d,b.term))}):"string"==typeof this.options.source?(e=this.options.source,this.source=function(d,f){b.xhr&&b.xhr.abort(),b.xhr=a.ajax({url:e,data:d,dataType:"json",context:{autocompleteRequest:++c},success:function(a){this.autocompleteRequest===c&&f(a)},error:function(){this.autocompleteRequest===c&&f([])}})}):this.source=this.options.source},search:function(a,b){return a=null!=a?a:this.element.val(),this.term=this.element.val(),a.length<this.options.minLength?this.close(b):(clearTimeout(this.closing),this._trigger("search",b)!==!1?this._search(a):void 0)},_search:function(a){this.pending++,this.
element.addClass("ui-autocomplete-loading"),this.source({term:a},this.response)},_response:function(a){!this.options.disabled&&a&&a.length?(a=this._normalize(a),this._suggest(a),this._trigger("open")):this.close(),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.deactivate(),this._trigger("close",a))},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(b){return b.length&&b[0].label&&b[0].value?b:a.map(b,function(b){return"string"==typeof b?{label:b,value:b}:a.extend({label:b.label||b.value,value:b.value||b.label},b)})},_suggest:function(b){var c=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(c,b),this.menu.deactivate(),this.menu.refresh(),c.show(),this._resizeMenu(),c.position(a.extend({of:this.element},this.options.position)),this.op
tions.autoFocus&&this.menu.next(new a.Event("mouseover"))},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(b,c){var d=this;a.each(c,function(a,c){d._renderItem(b,c)})},_renderItem:function(b,c){return a("<li></li>").data("item.autocomplete",c).append(a("<a></a>").text(c.label)).appendTo(b)},_move:function(a,b){if(this.menu.element.is(":visible")){if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a))return this.element.val(this.term),void this.menu.deactivate();this.menu[a](b)}else this.search(null,b)},widget:function(){return this.menu.element}}),a.extend(a.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(b,c){var d=new RegExp(a.ui.autocomplete.escapeRegex(c),"i");return a.grep(b,function(a){return d.test(a.label||a.value||a)})}})}(jQuery),function(a){a.widget("ui.menu",{_create:function(){var b=this;th
is.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){!a(c.target).closest(".ui-menu-item a").length||(c.preventDefault(),b.select(c))}),this.refresh()},refresh:function(){var b=this,c=this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem");c.children("a").addClass("ui-corner-all").attr("tabindex",-1).mouseenter(function(c){b.activate(c,a(this).parent())}).mouseleave(function(){b.deactivate()})},activate:function(a,b){if(this.deactivate(),this.hasScroll()){var c=b.offset().top-this.element.offset().top,d=this.element.scrollTop(),e=this.element.height();0>c?this.element.scrollTop(d+c):c>=e&&this.element.scrollTop(d+c-e+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end(),this._trigger("focus",a,{item:b})},deactivate:function(){!this.active||(this.active.children("a").removeClas
s("ui-state-hover").removeAttr("id"),this._trigger("blur"),this.active=null)},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,c){if(this.active){var d=this.active[a+"All"](".ui-menu-item").eq(0);d.length?this.activate(c,d):this.activate(c,this.element.children(b))}else this.activate(c,this.element.children(b))},nextPage:function(b){if(this.hasScroll()){if(!this.active||this.last())return void this.activate(b,this.element.children(".ui-menu-item:first"));var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c-d+a(this).height();return 10>b&&b>-10});e.length||(e=this.element.children(".ui-menu-item:last")),this.activate(b,e)}else this.activate(b,
this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(b){if(this.hasScroll()){if(!this.active||this.first())return void this.activate(b,this.element.children(".ui-menu-item:last"));var c=this.active.offset().top,d=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c+d-a(this).height();return 10>b&&b>-10}),result.length||(result=this.element.children(".ui-menu-item:first")),this.activate(b,result)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element[a.fn.prop?"prop":"attr"]("scrollHeight")},select:function(a){this._trigger("selected",a,{item:this.active})}})}(jQuery),function(a){var c,d,e,f,g="ui-button ui-widget ui-state-default ui-corner-all",h="ui-state-hover ui-state-active ",i="ui-button-icons-only ui-button-icon-only ui-button-text-icon
s ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",j=function(){var b=a(this).find(":ui-button");setTimeout(function(){b.button("refresh")},1)},k=function(b){var c=b.name,d=b.form,e=a([]);return c&&(e=d?a(d).find("[name='"+c+"']"):a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form})),e};a.widget("ui.button",{options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",j),"boolean"!=typeof this.options.disabled?this.options.disabled=!!this.element.propAttr("disabled"):this.element.propAttr("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var b=this,h=this.options,i="checkbox"===this.type||"radio"===this.type,l="ui-state-hover"+(i?"":" ui-state-active"),m="ui-state-focus";null===h.label&&(h.label=this.buttonElement.html()),this.buttonElement.addClass(g).attr("role","b
utton").bind("mouseenter.button",function(){h.disabled||(a(this).addClass("ui-state-hover"),this===c&&a(this).addClass("ui-state-active"))}).bind("mouseleave.button",function(){h.disabled||a(this).removeClass(l)}).bind("click.button",function(a){h.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}),this.element.bind("focus.button",function(){b.buttonElement.addClass(m)}).bind("blur.button",function(){b.buttonElement.removeClass(m)}),i&&(this.element.bind("change.button",function(){f||b.refresh()}),this.buttonElement.bind("mousedown.button",function(a){h.disabled||(f=!1,d=a.pageX,e=a.pageY)}).bind("mouseup.button",function(a){!h.disabled&&(d!==a.pageX||e!==a.pageY)&&(f=!0)})),"checkbox"===this.type?this.buttonElement.bind("click.button",function(){return h.disabled||f?!1:(a(this).toggleClass("ui-state-active"),void b.buttonElement.attr("aria-pressed",b.element[0].checked))}):"radio"===this.type?this.buttonElement.bind("click.button",function(){if(h.disabled||f)return!1;a(th
is).addClass("ui-state-active"),b.buttonElement.attr("aria-pressed","true");var c=b.element[0];k(c).not(c).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown.button",function(){return h.disabled?!1:(a(this).addClass("ui-state-active"),c=this,a(document).one("mouseup",function(){c=null}),void 0)}).bind("mouseup.button",function(){return h.disabled?!1:void a(this).removeClass("ui-state-active")}).bind("keydown.button",function(b){return h.disabled?!1:void((b.keyCode==a.ui.keyCode.SPACE||b.keyCode==a.ui.keyCode.ENTER)&&a(this).addClass("ui-state-active"))}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(b){b.keyCode===a.ui.keyCode.SPACE&&a(this).click()})),this._setOption("disabled",h.disabled),this._resetButton()},_determineButtonType:function(){if(this.type=this.element.is(":checkbox")?"checkbox":this
.element.is(":radio")?"radio":this.element.is("input")?"input":"button","checkbox"===this.type||"radio"===this.type){var a=this.element.parents().filter(":last"),b="label[for='"+this.element.attr("id")+"']";this.buttonElement=a.find(b),this.buttonElement.length||(a=a.length?a.siblings():this.element.siblings(),this.buttonElement=a.filter(b),this.buttonElement.length||(this.buttonElement=a.find(b))),this.element.addClass("ui-helper-hidden-accessible");var c=this.element.is(":checked");c&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.attr("aria-pressed",c)}else this.buttonElement=this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(g+" "+h+" "+i).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title"),a.Widget.prototype.destroy.call(this)},_setOption:functi
on(b,c){a.Widget.prototype._setOption.apply(this,arguments),"disabled"===b?c?this.element.propAttr("disabled",!0):this.element.propAttr("disabled",!1):this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b),"radio"===this.type?k(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):"checkbox"===this.type&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if("input"===this.type)this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass(i),c=a("<span></span>",this.element[0].ownerDocument).addClass("ui-button-text").html(this.options.label).appendT
o(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary,f=[];d.primary||d.secondary?(this.options.text&&f.push("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary")),d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>"),d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>"),this.options.text||(f.push(e?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||b.attr("title",c))):f.push("ui-button-text-only"),b.addClass(f.join(" "))}}}),a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){"disabled"===b&&this.buttons.button("option",b,c),a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var b="rtl"===this.element.css("direction");this.buttons=this.element.find(this.options.items).filter(":ui-button
").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(b?"ui-corner-left":"ui-corner-right").end().end()},destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"),a.Widget.prototype.destroy.call(this)}})}(jQuery),function($,undefined){function isArray(a){return a&&($.browser.safari&&"object"==typeof a&&a.length||a.constructor&&a.constructor.toString().match(/\Array\(\)/))}function extendRemove(a,b){$.extend(a,b);for(var c in b)(null==b[c]||b[c]==undefined)&&(a[c]=b[c]);return a}function bindHover(a){var b="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return a.bind("mouseout",function(a){var c=$(a.target).
closest(b);!c.length||c.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(c){var d=$(c.target).closest(b);!$.datepicker._isDisabledDatepicker(instActive.inline?a.parent()[0]:instActive.input[0])&&!!d.length&&(d.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),d.addClass("ui-state-hover"),d.hasClass("ui-datepicker-prev")&&d.addClass("ui-datepicker-prev-hover"),d.hasClass("ui-datepicker-next")&&d.addClass("ui-datepicker-next-hover"))})}function Datepicker(){this.debug=!1,this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-
current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso
8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},$.extend(this._defaults,this.regional[""]),this.dpDiv=bindHover($('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}$.extend($.ui,{datepicker:{version:"1.8.18"}});var PROP_NAME="datepicker",dpuuid=(new Date).getTime(),instActive;$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){return extendRemove(this._defaults,a||{}),this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAt
tribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline="div"==nodeName||"span"==nodeName;target.id||(this.uuid+=1,target.id="dp"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),"input"==nodeName?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(a,b){var c=a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");return{id:c,input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:b?bindHover($('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')):this.dpDiv}},_connectDatepicker:function(a,b){var c=$(a);b.append=$([]),b.trigger=$([]),c.hasClass(this.markerClassName)||(this._attachments(c,b),c.addClass(this.markerClassName).key
down(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),this._autoSize(b),$.data(a,PROP_NAME,b),b.settings.disabled&&this._disableDatepicker(a))},_attachments:function(a,b){var c=this._get(b,"appendText"),d=this._get(b,"isRTL");b.append&&b.append.remove(),c&&(b.append=$('<span class="'+this._appendClass+'">'+c+"</span>"),a[d?"before":"after"](b.append)),a.unbind("focus",this._showDatepicker),b.trigger&&b.trigger.remove();var e=this._get(b,"showOn");if(("focus"==e||"both"==e)&&a.focus(this._showDatepicker),"button"==e||"both"==e){var f=this._get(b,"buttonText"),g=this._get(b,"buttonImage");b.trigger=$(this._get(b,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:g,alt:f,title:f}):$('<button type="button"></button>').addClass(this._triggerClass).html(""==g?f:$("<img/>").attr({src:g,alt:f,title:f}))),a[d?"before":"after"](b.trigge
r),b.trigger.click(function(){return $.datepicker._datepickerShowing&&$.datepicker._lastInput==a[0]?$.datepicker._hideDatepicker():$.datepicker._datepickerShowing&&$.datepicker._lastInput!=a[0]?($.datepicker._hideDatepicker(),$.datepicker._showDatepicker(a[0])):$.datepicker._showDatepicker(a[0]),!1})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var d=function(a){for(var b=0,c=0,d=0;d<a.length;d++)a[d].length>b&&(b=a[d].length,c=d);return c};b.setMonth(d(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort"))),b.setDate(d(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=$(a);c.hasClass(this.markerClassName)||(c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),$
.data(a,PROP_NAME,b),this._setDate(b,this._getDefaultDate(b),!0),this._updateDatepicker(b),this._updateAlternate(b),b.settings.disabled&&this._disableDatepicker(a),b.dpDiv.css("display","block"))},_dialogDatepicker:function(a,b,c,d,e){var f=this._dialogInst;if(!f){this.uuid+=1;var g="dp"+this.uuid;this._dialogInput=$('<input type="text" id="'+g+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>'),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),f=this._dialogInst=this._newInst(this._dialogInput,!1),f.settings={},$.data(this._dialogInput[0],PROP_NAME,f)}if(extendRemove(f.settings,d||{}),b=b&&b.constructor==Date?this._formatDate(f,b):b,this._dialogInput.val(b),this._pos=e?e.length?e:[e.pageX,e.pageY]:null,!this._pos){var h=document.documentElement.clientWidth,i=document.documentElement.clientHeight,j=document.documentElement.scrollLeft||document.body.scrollLeft,k=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[h
/2-100+j,i/2-150+k]}return this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),f.settings.onSelect=c,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,f),this},_destroyDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();$.removeData(a,PROP_NAME),"input"==d?(c.append.remove(),c.trigger.remove(),b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"==d||"span"==d)&&b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();if("input"==d)a.disabled=!1,c.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img
").css({opacity:"1.0",cursor:""});else if("div"==d||"span"==d){var e=b.children("."+this._inlineClass);e.children().removeClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b})}},_disableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();if("input"==d)a.disabled=!0,c.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"});else if("div"==d||"span"==d){var e=b.children("."+this._inlineClass);e.children().addClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b}),this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return!1;for(var b=
0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return!0;return!1},_getInst:function(a){try{return $.data(a,PROP_NAME)}catch(b){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(a,b,c){var d=this._getInst(a);if(2==arguments.length&&"string"==typeof b)return"defaults"==b?$.extend({},$.datepicker._defaults):d?"all"==b?$.extend({},d.settings):this._get(d,b):null;var e=b||{};if("string"==typeof b&&(e={},e[b]=c),d){this._curInst==d&&this._hideDatepicker();var f=this._getDateDatepicker(a,!0),g=this._getMinMaxDate(d,"min"),h=this._getMinMaxDate(d,"max");extendRemove(d.settings,e),null!==g&&e.dateFormat!==undefined&&e.minDate===undefined&&(d.settings.minDate=this._formatDate(d,g)),null!==h&&e.dateFormat!==undefined&&e.maxDate===undefined&&(d.settings.maxDate=this._formatDate(d,h)),this._attachments($(a),d),this._autoSize(d),this._setDate(d,f),this._updateAlternate(d),this._updateDatepicker(d)}},_changeDatepicker:function(a,b,c){this._optionDatep
icker(a,b,c)},_refreshDatepicker:function(a){var b=this._getInst(a);b&&this._updateDatepicker(b)},_setDateDatepicker:function(a,b){var c=this._getInst(a);c&&(this._setDate(c,b),this._updateDatepicker(c),this._updateAlternate(c))},_getDateDatepicker:function(a,b){var c=this._getInst(a);return c&&!c.inline&&this._setDateFromField(c,b),c?this._getDate(c):null},_doKeyDown:function(a){var b=$.datepicker._getInst(a.target),c=!0,d=b.dpDiv.is(".ui-datepicker-rtl");if(b._keyEvent=!0,$.datepicker._datepickerShowing)switch(a.keyCode){case 9:$.datepicker._hideDatepicker(),c=!1;break;case 13:var e=$("td."+$.datepicker._dayOverClass+":not(."+$.datepicker._currentClass+")",b.dpDiv);e[0]&&$.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,e[0]);var f=$.datepicker._get(b,"onSelect");if(f){var g=$.datepicker._formatDate(b);f.apply(b.input?b.input[0]:null,[g,b])}else $.datepicker._hideDatepicker();return!1;case 27:$.datepicker._hideDatepicker();break;case 33:$.datepicker._adjustDate(a.tar
get,a.ctrlKey?-$.datepicker._get(b,"stepBigMonths"):-$.datepicker._get(b,"stepMonths"),"M");break;case 34:$.datepicker._adjustDate(a.target,a.ctrlKey?+$.datepicker._get(b,"stepBigMonths"):+$.datepicker._get(b,"stepMonths"),"M");break;case 35:(a.ctrlKey||a.metaKey)&&$.datepicker._clearDate(a.target),c=a.ctrlKey||a.metaKey;break;case 36:(a.ctrlKey||a.metaKey)&&$.datepicker._gotoToday(a.target),c=a.ctrlKey||a.metaKey;break;case 37:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,d?1:-1,"D"),c=a.ctrlKey||a.metaKey,a.originalEvent.altKey&&$.datepicker._adjustDate(a.target,a.ctrlKey?-$.datepicker._get(b,"stepBigMonths"):-$.datepicker._get(b,"stepMonths"),"M");break;case 38:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,-7,"D"),c=a.ctrlKey||a.metaKey;break;case 39:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,d?-1:1,"D"),c=a.ctrlKey||a.metaKey,a.originalEvent.altKey&&$.datepicker._adjustDate(a.target,a.ctrlKey?+$.datepicker._get(b,"stepBigMonths"):+$.datepic
ker._get(b,"stepMonths"),"M");break;case 40:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,7,"D"),c=a.ctrlKey||a.metaKey;break;default:c=!1}else 36==a.keyCode&&a.ctrlKey?$.datepicker._showDatepicker(this):c=!1;c&&(a.preventDefault(),a.stopPropagation())},_doKeyPress:function(a){var b=$.datepicker._getInst(a.target);if($.datepicker._get(b,"constrainInput")){var c=$.datepicker._possibleChars($.datepicker._get(b,"dateFormat")),d=String.fromCharCode(a.charCode==undefined?a.keyCode:a.charCode);return a.ctrlKey||a.metaKey||" ">d||!c||c.indexOf(d)>-1}},_doKeyUp:function(a){var b=$.datepicker._getInst(a.target);if(b.input.val()!=b.lastVal)try{var c=$.datepicker.parseDate($.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,$.datepicker._getFormatConfig(b));c&&($.datepicker._setDateFromField(b),$.datepicker._updateAlternate(b),$.datepicker._updateDatepicker(b))}catch(a){$.datepicker.log(a)}return!0},_showDatepicker:function(a){if(a=a.target||a,"input"!=a.nodeName.toLowerCa
se()&&(a=$("input",a.parentNode)[0]),!$.datepicker._isDisabledDatepicker(a)&&$.datepicker._lastInput!=a){var b=$.datepicker._getInst(a);$.datepicker._curInst&&$.datepicker._curInst!=b&&($.datepicker._curInst.dpDiv.stop(!0,!0),b&&$.datepicker._datepickerShowing&&$.datepicker._hideDatepicker($.datepicker._curInst.input[0]));var c=$.datepicker._get(b,"beforeShow"),d=c?c.apply(a,[a,b]):{};if(d===!1)return;extendRemove(b.settings,d),b.lastVal=null,$.datepicker._lastInput=a,$.datepicker._setDateFromField(b),$.datepicker._inDialog&&(a.value=""),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(a),$.datepicker._pos[1]+=a.offsetHeight);var e=!1;$(a).parents().each(function(){return e|="fixed"==$(this).css("position"),!e}),e&&$.browser.opera&&($.datepicker._pos[0]-=document.documentElement.scrollLeft,$.datepicker._pos[1]-=document.documentElement.scrollTop);var f={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};if($.datepicker._pos=null,b.dpDiv.empty(),b.dpDiv.css({position:"abs
olute",display:"block",top:"-1000px"}),$.datepicker._updateDatepicker(b),f=$.datepicker._checkOffset(b,f,e),b.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":e?"fixed":"absolute",display:"none",left:f.left+"px",top:f.top+"px"}),!b.inline){var g=$.datepicker._get(b,"showAnim"),h=$.datepicker._get(b,"duration"),i=function(){var a=b.dpDiv.find("iframe.ui-datepicker-cover");if(a.length){var c=$.datepicker._getBorders(b.dpDiv);a.css({left:-c[0],top:-c[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex($(a).zIndex()+1),$.datepicker._datepickerShowing=!0,$.effects&&$.effects[g]?b.dpDiv.show(g,$.datepicker._get(b,"showOptions"),h,i):b.dpDiv[g||"show"](g?h:null,i),(!g||!h)&&i(),b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus(),$.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=this;b.maxRows=4;var c=$.datepicker._getBorders(a.dpDiv);instActive=a,a.dpDiv.empty().append(this._generateHTML(a));var d=a.dpDiv.find("iframe.ui-da
tepicker-cover");!d.length||d.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}),a.dpDiv.find("."+this._dayOverClass+" a").mouseover();var e=this._getNumberOfMonths(a),f=e[1],g=17;if(a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),f>1&&a.dpDiv.addClass("ui-datepicker-multi-"+f).css("width",g*f+"em"),a.dpDiv[(1!=e[0]||1!=e[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),a==$.datepicker._curInst&&$.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus(),a.yearshtml){var h=a.yearshtml;setTimeout(function(){h===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml),h=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseFloat(b(a.css("bor
der-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var d=a.dpDiv.outerWidth(),e=a.dpDiv.outerHeight(),f=a.input?a.input.outerWidth():0,g=a.input?a.input.outerHeight():0,h=document.documentElement.clientWidth+$(document).scrollLeft(),i=document.documentElement.clientHeight+$(document).scrollTop();return b.left-=this._get(a,"isRTL")?d-f:0,b.left-=c&&b.left==a.input.offset().left?$(document).scrollLeft():0,b.top-=c&&b.top==a.input.offset().top+g?$(document).scrollTop():0,b.left-=Math.min(b.left,b.left+d>h&&h>d?Math.abs(b.left+d-h):0),b.top-=Math.min(b.top,b.top+e>i&&i>e?Math.abs(e+g):0),b},_findPos:function(a){for(var b=this._getInst(a),c=this._get(b,"isRTL");a&&("hidden"==a.type||1!=a.nodeType||$.expr.filters.hidden(a));)a=a[c?"previousSibling":"nextSibling"];var d=$(a).offset();return[d.left,d.top]},_hideDatepicker:function(a){var b=this._curInst;if(b&&(!a||b==$.data(a,PROP_NAME))&&this._datepickerShowing){var c=this._get(b,"showAnim"),d=this._
get(b,"duration"),e=this,f=function(){$.datepicker._tidyDialog(b),e._curInst=null};$.effects&&$.effects[c]?b.dpDiv.hide(c,$.datepicker._get(b,"showOptions"),d,f):b.dpDiv["slideDown"==c?"slideUp":"fadeIn"==c?"fadeOut":"hide"](c?d:null,f),c||f(),this._datepickerShowing=!1;var g=this._get(b,"onClose");g&&g.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.dpDiv))),this._inDialog=!1}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if($.datepicker._curInst){var b=$(a.target),c=$.datepicker._getInst(b[0]);(b[0].id!=$.datepicker._mainDivId&&0==b.parents("#"+$.datepicker._mainDivId).length&&!b.hasClass($.datepicker.markerClassName)&&!b.closest("."+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&(!$.datepicker._inDialog||!$.block
UI)||b.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!=c)&&$.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){var d=$(a),e=this._getInst(d[0]);this._isDisabledDatepicker(d[0])||(this._adjustInstDate(e,b+("M"==c?this._get(e,"showCurrentAtPos"):0),c),this._updateDatepicker(e))},_gotoToday:function(a){var b=$(a),c=this._getInst(b[0]);if(this._get(c,"gotoCurrent")&&c.currentDay)c.selectedDay=c.currentDay,c.drawMonth=c.selectedMonth=c.currentMonth,c.drawYear=c.selectedYear=c.currentYear;else{var d=new Date;c.selectedDay=d.getDate(),c.drawMonth=c.selectedMonth=d.getMonth(),c.drawYear=c.selectedYear=d.getFullYear()}this._notifyChange(c),this._adjustDate(b)},_selectMonthYear:function(a,b,c){var d=$(a),e=this._getInst(d[0]);e["selected"+("M"==c?"Month":"Year")]=e["draw"+("M"==c?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10),this._notifyChange(e),this._adjustDate(d)},_selectDay:function(a,b,c,d){var e=$(a);if(!$(d).hasClass(this._unselectableClass)&&!t
his._isDisabledDatepicker(e[0])){var f=this._getInst(e[0]);f.selectedDay=f.currentDay=$("a",d).html(),f.selectedMonth=f.currentMonth=b,f.selectedYear=f.currentYear=c,this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))
}},_clearDate:function(a){{var b=$(a);this._getInst(b[0])}this._selectDate(b,"")},_selectDate:function(a,b){var c=$(a),d=this._getInst(c[0]);b=null!=b?b:this._formatDate(d),d.input&&d.input.val(b),this._updateAlternate(d);var e=this._get(d,"onSelect");e?e.apply(d.input?d.input[0]:null,[b,d]):d.input&&d.input.trigger("change"),d.inline?this._updateDatepicker(d):(this._hideDatepicker(),this._lastInput=d.input[0],"object"!=typeof d.input[0]&&d.input.focus(),this._lastInput=null)},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),d=this._getDate(a),e=this.formatDate(c,d,this._getFormatConfig(a));$(b).each(function(){$(this).val(e)})}},noWeekends:function(a){var b=a.getDay();return[b>0&&6>b,""]},iso8601Week:function(a){var b=new Date(a.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1},parseDate:function(a,b,c){if(null==a|
|null==b)throw"Invalid arguments";if(b="object"==typeof b?b.toString():b+"",""==b)return null;var d=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;d="string"!=typeof d?d:(new Date).getFullYear()%100+parseInt(d,10);for(var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=-1,j=-1,k=-1,l=-1,m=!1,n=function(b){var c=s+1<a.length&&a.charAt(s+1)==b;return c&&s++,c},o=function(a){var c=n(a),d="@"==a?14:"!"==a?20:"y"==a&&c?4:"o"==a?3:2,e=new RegExp("^\\d{1,"+d+"}"),f=b.substring(r).match(e);if(!f)throw"Missing number at position "+r;return r+=f[0].length,parseInt(f[0],10)},p=function(a,c,d){var e=$.map(n(a)?d:c,function(a,b){return[[b,a]]}).sort(function(a,b){return-(a[1].length-b[1].length)}),f=-1;if($.each(e,function(a,c){var d=c[1];return b.substr(r,d.length).toLowerCase()==d.toLowerCase()?(f=c[0],r+=d.length,
!1):void 0}),-1!=f)return f+1;throw"Unknown name at position "+r},q=function(){if(b.charAt(r)!=a.charAt(s))throw"Unexpected literal at position "+r;r++},r=0,s=0;s<a.length;s++)if(m)"'"!=a.charAt(s)||n("'")?q():m=!1;else switch(a.charAt(s)){case"d":k=o("d");break;case"D":p("D",e,f);break;case"o":l=o("o");break;case"m":j=o("m");break;case"M":j=p("M",g,h);break;case"y":i=o("y");break;case"@":var t=new Date(o("@"));i=t.getFullYear(),j=t.getMonth()+1,k=t.getDate();break;case"!":var t=new Date((o("!")-this._ticksTo1970)/1e4);i=t.getFullYear(),j=t.getMonth()+1,k=t.getDate();break;case"'":n("'")?q():m=!0;break;default:q()}if(r<b.length)throw"Extra/unparsed characters found in date: "+b.substring(r);if(-1==i?i=(new Date).getFullYear():100>i&&(i+=(new Date).getFullYear()-(new Date).getFullYear()%100+(d>=i?0:-100)),l>-1)for(j=1,k=l;;){var u=this._getDaysInMonth(i,j-1);if(u>=k)break;j++,k-=u}var t=this._daylightSavingAdjust(new Date(i,j-1,k));if(t.getFullYear()!=i||t.getMonth()+1!=j||t.getDate(
)!=k)throw"Invalid date";return t},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7,formatDate:function(a,b,c){if(!b)return"";var d=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,e=(c?c.dayNames:null)||this._defaults.dayNames,f=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,h=function(b){var c=m+1<a.length&&a.charAt(m+1)==b;return c&&m++,c},i=function(a,b,c){var d=""+b;if(h(a))for(;d.length<c;)d="0"+d;return d},j=function(a,b,c,d){return h(a)?d[b]:c[b]},k="",l=!1;if(b)for(var m=0;m<a.length;m++)if(l)"'"!=a.charAt(m)||h("'")?k+=a.charAt(m):l=!1;else switch(a.charAt(m)){case"d":k+=i("d",b.getDate(),2);break;case"D":k+=j("D",b.getDay(),d,e);break;case"o":k+=i("o",Math.r
ound((new Date(b.getFullYear(),b.getMonth(),b.getDate()).getTime()-new Date(b.getFullYear(),0,0).getTime())/864e5),3);break;case"m":k+=i("m",b.getMonth()+1,2);break;case"M":k+=j("M",b.getMonth(),f,g);break;case"y":k+=h("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case"@":k+=b.getTime();break;case"!":k+=1e4*b.getTime()+this._ticksTo1970;break;case"'":h("'")?k+="'":l=!0;break;default:k+=a.charAt(m)}return k},_possibleChars:function(a){for(var b="",c=!1,d=function(b){var c=e+1<a.length&&a.charAt(e+1)==b;return c&&e++,c},e=0;e<a.length;e++)if(c)"'"!=a.charAt(e)||d("'")?b+=a.charAt(e):c=!1;else switch(a.charAt(e)){case"d":case"m":case"y":case"@":b+="0123456789";break;case"D":case"M":return null;case"'":d("'")?b+="'":c=!0;break;default:b+=a.charAt(e)}return b},_get:function(a,b){return a.settings[b]!==undefined?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var e,f,c=this._get(a,"dateFormat"),d=a.lastVal=a.input?a.in
put.val():null;e=f=this._getDefaultDate(a);var g=this._getFormatConfig(a);try{e=this.parseDate(c,d,g)||f}catch(h){this.log(h),d=b?"":d}a.selectedDay=e.getDate(),a.drawMonth=a.selectedMonth=e.getMonth(),a.drawYear=a.selectedYear=e.getFullYear(),a.currentDay=d?e.getDate():0,a.currentMonth=d?e.getMonth():0,a.currentYear=d?e.getFullYear():0,this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var d=function(a){var b=new Date;return b.setDate(b.getDate()+a),b},e=function(b){try{return $.datepicker.parseDate($.datepicker._get(a,"dateFormat"),b,$.datepicker._getFormatConfig(a))}catch(c){}for(var d=(b.toLowerCase().match(/^c/)?$.datepicker._getDate(a):null)||new Date,e=d.getFullYear(),f=d.getMonth(),g=d.getDate(),h=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,i=h.exec(b);i;){switch(i[2]||"d"){case"d":case"D":g+=parseInt(i[1],10);break;case"w":case"W":g+=7*parseInt(i[1],10);bre
ak;case"m":case"M":f+=parseInt(i[1],10),g=Math.min(g,$.datepicker._getDaysInMonth(e,f));break;case"y":case"Y":e+=parseInt(i[1],10),g=Math.min(g,$.datepicker._getDaysInMonth(e,f))}i=h.exec(b)}return new Date(e,f,g)},f=null==b||""===b?c:"string"==typeof b?e(b):"number"==typeof b?isNaN(b)?c:d(b):new Date(b.getTime());return f=f&&"Invalid Date"==f.toString()?c:f,f&&(f.setHours(0),f.setMinutes(0),f.setSeconds(0),f.setMilliseconds(0)),this._daylightSavingAdjust(f)},_daylightSavingAdjust:function(a){return a?(a.setHours(a.getHours()>12?a.getHours()+2:0),a):null},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),(e!=a.selectedMonth||f!=a.selectedYear)&&!c&&this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?"":this._formatDate(a))},_getDate:functio
n(a){var b=!a.currentYear||a.input&&""==a.input.val()?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),d=this._get(a,"showButtonPanel"),e=this._get(a,"hideIfNoPrevNext"),f=this._get(a,"navigationAsDateFormat"),g=this._getNumberOfMonths(a),h=this._get(a,"showCurrentAtPos"),i=this._get(a,"stepMonths"),j=1!=g[0]||1!=g[1],k=this._daylightSavingAdjust(a.currentDay?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),l=this._getMinMaxDate(a,"min"),m=this._getMinMaxDate(a,"max"),n=a.drawMonth-h,o=a.drawYear;if(0>n&&(n+=12,o--),m){var p=this._daylightSavingAdjust(new Date(m.getFullYear(),m.getMonth()-g[0]*g[1]+1,m.getDate()));for(p=l&&l>p?l:p;this._daylightSavingAdjust(new Date(o,n,1))>p;)n--,0>n&&(n=11,o--)}a.drawMonth=n,a.drawYear=o;var q=this._get(a,"prevText");q=f?this.formatD
ate(q,this._daylightSavingAdjust(new Date(o,n-i,1)),this._getFormatConfig(a)):q;var r=this._canAdjustMonth(a,-1,o,n)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._adjustDate('#"+a.id+"', -"+i+", 'M');\" title=\""+q+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+q+"</span></a>":e?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+q+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+q+"</span></a>",s=this._get(a,"nextText");s=f?this.formatDate(s,this._daylightSavingAdjust(new Date(o,n+i,1)),this._getFormatConfig(a)):s;var t=this._canAdjustMonth(a,1,o,n)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._adjustDate('#"+a.id+"', +"+i+", 'M');\" title=\""+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>":e?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+s+'"><span class="ui-icon ui-icon-circl
e-triangle-'+(c?"w":"e")+'">'+s+"</span></a>",u=this._get(a,"currentText"),v=this._get(a,"gotoCurrent")&&a.currentDay?k:b;u=f?this.formatDate(u,v,this._getFormatConfig(a)):u;var w=a.inline?"":'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+dpuuid+'.datepicker._hideDatepicker();">'+this._get(a,"closeText")+"</button>",x=d?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?w:"")+(this._isInRange(a,v)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._gotoToday('#"+a.id+"');\">"+u+"</button>":"")+(c?"":w)+"</div>":"",y=parseInt(this._get(a,"firstDay"),10);y=isNaN(y)?0:y;for(var z=this._get(a,"showWeek"),A=this._get(a,"dayNames"),C=(this._get(a,"dayNamesShort"),this._get(a,"dayNamesMin")),D=this._get(a,"monthNames"),E=this._get(a,"monthNamesShort"),F=this._get(a,"beforeShowDay"),G=this._get(a,"showOtherMont
hs"),H=this._get(a,"selectOtherMonths"),J=(this._get(a,"calculateWeek")||this.iso8601Week,this._getDefaultDate(a)),K="",L=0;L<g[0];L++){var M="";this.maxRows=4;for(var N=0;N<g[1];N++){var O=this._daylightSavingAdjust(new Date(o,n,a.selectedDay)),P=" ui-corner-all",Q="";if(j){if(Q+='<div class="ui-datepicker-group',g[1]>1)switch(N){case 0:Q+=" ui-datepicker-group-first",P=" ui-corner-"+(c?"right":"left");break;case g[1]-1:Q+=" ui-datepicker-group-last",P=" ui-corner-"+(c?"left":"right");break;default:Q+=" ui-datepicker-group-middle",P=""}Q+='">'}Q+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+P+'">'+(/all|left/.test(P)&&0==L?c?t:r:"")+(/all|right/.test(P)&&0==L?c?r:t:"")+this._generateMonthYearHeader(a,n,o,l,m,L>0||N>0,D,E)+'</div><table class="ui-datepicker-calendar"><thead><tr>';for(var R=z?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"",S=0;7>S;S++){var T=(S+y)%7;R+="<th"+((S+y+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><sp
an title="'+A[T]+'">'+C[T]+"</span></th>"}Q+=R+"</tr></thead><tbody>";var U=this._getDaysInMonth(o,n);o==a.selectedYear&&n==a.selectedMonth&&(a.selectedDay=Math.min(a.selectedDay,U));var V=(this._getFirstDayOfMonth(o,n)-y+7)%7,W=Math.ceil((V+U)/7),X=j&&this.maxRows>W?this.maxRows:W;this.maxRows=X;for(var Y=this._daylightSavingAdjust(new Date(o,n,1-V)),Z=0;X>Z;Z++){Q+="<tr>";for(var _=z?'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(Y)+"</td>":"",S=0;7>S;S++){var ba=F?F.apply(a.input?a.input[0]:null,[Y]):[!0,""],bb=Y.getMonth()!=n,bc=bb&&!H||!ba[0]||l&&l>Y||m&&Y>m;_+='<td class="'+((S+y+6)%7>=5?" ui-datepicker-week-end":"")+(bb?" ui-datepicker-other-month":"")+(Y.getTime()==O.getTime()&&n==a.selectedMonth&&a._keyEvent||J.getTime()==Y.getTime()&&J.getTime()==O.getTime()?" "+this._dayOverClass:"")+(bc?" "+this._unselectableClass+" ui-state-disabled":"")+(bb&&!G?"":" "+ba[1]+(Y.getTime()==k.getTime()?" "+this._currentClass:"")+(Y.getTime()==b.getTime()?" ui-datepicke
r-today":""))+'"'+(bb&&!G||!ba[2]?"":' title="'+ba[2]+'"')+(bc?"":' onclick="DP_jQuery_'+dpuuid+".datepicker._selectDay('#"+a.id+"',"+Y.getMonth()+","+Y.getFullYear()+', this);return false;"')+">"+(bb&&!G?" ":bc?'<span class="ui-state-default">'+Y.getDate()+"</span>":'<a class="ui-state-default'+(Y.getTime()==b.getTime()?" ui-state-highlight":"")+(Y.getTime()==k.getTime()?" ui-state-active":"")+(bb?" ui-priority-secondary":"")+'" href="#">'+Y.getDate()+"</a>")+"</td>",Y.setDate(Y.getDate()+1),Y=this._daylightSavingAdjust(Y)}Q+=_+"</tr>"}n++,n>11&&(n=0,o++),Q+="</tbody></table>"+(j?"</div>"+(g[0]>0&&N==g[1]-1?'<div class="ui-datepicker-row-break"></div>':""):""),M+=Q}K+=M}return K+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':""),a._keyEvent=!1,K},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i=this._get(a,"changeMonth"),j=this._get(a,"changeYear"),k=this._get(a,"sh
owMonthAfterYear"),l='<div class="ui-datepicker-title">',m="";if(f||!i)m+='<span class="ui-datepicker-month">'+g[b]+"</span>";else{var n=d&&d.getFullYear()==c,o=e&&e.getFullYear()==c;m+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+dpuuid+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" >";for(var p=0;12>p;p++)(!n||p>=d.getMonth())&&(!o||p<=e.getMonth())&&(m+='<option value="'+p+'"'+(p==b?' selected="selected"':"")+">"+h[p]+"</option>");m+="</select>"}if(k||(l+=m+(!f&&i&&j?"":" ")),!a.yearshtml)if(a.yearshtml="",f||!j)l+='<span class="ui-datepicker-year">'+c+"</span>";else{var q=this._get(a,"yearRange").split(":"),r=(new Date).getFullYear(),s=function(a){var b=a.match(/c[+-].*/)?c+parseInt(a.substring(1),10):a.match(/[+-].*/)?r+parseInt(a,10):parseInt(a,10);return isNaN(b)?r:b},t=s(q[0]),u=Math.max(t,s(q[1]||""));for(t=d?Math.max(t,d.getFullYear()):t,u=e?Math.min(u,e.getFullYear()):u,a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+dpu
uid+".datepicker._selectMonthYear('#"+a.id+"', this, 'Y');\" >";u>=t;t++)a.yearshtml+='<option value="'+t+'"'+(t==c?' selected="selected"':"")+">"+t+"</option>";a.yearshtml+="</select>",l+=a.yearshtml,a.yearshtml=null}return l+=this._get(a,"yearSuffix"),k&&(l+=(!f&&i&&j?"":" ")+m),l+="</div>",l},_adjustInstDate:function(a,b,c){var d=a.drawYear+("Y"==c?b:0),e=a.drawMonth+("M"==c?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+("D"==c?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),("M"==c||"Y"==c)&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&c>b?c:b;return e=d&&e>d?d:e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,"nu
mberOfMonths");return null==b?[1,1]:"number"==typeof b?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return new Date(a,b,1).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(0>b?b:e[0]*e[1]),1));return 0>b&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth())),this._isInRange(a,f)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!d||b.getTime()<=d.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");return b="string"!=typeof b?b:(new Date).getFullYear()%100+parseInt(b,10),{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:th
is._get(a,"monthNames")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth,a.currentYear=a.selectedYear);var e=b?"object"==typeof b?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),$.fn.datepicker=function(a){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);return"string"!=typeof a||"isDisabled"!=a&&"getDate"!=a&&"widget"!=a?"option"==a&&2==arguments.length&&"string"==typeof arguments[1]?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b)):this.each(function(){"string"==typeof a?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this].concat(b)):$.datepicker._attachDatepicker(this,a)}):$.dat
epicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.8.18",window["DP_jQuery_"+dpuuid]=$}(jQuery),function(a,b){var c="ui-dialog ui-widget ui-widget-content ui-corner-all ",d={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},e={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},f=a.attrFn||{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0,click:!0};a.widget("ui.dialog",{options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",collision:"fit",using:function(b){var c=a(this).css(b).offset().top;0>c&&a(this).css("top",b.top-c)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("tit
le"),"string"!=typeof this.originalTitle&&(this.originalTitle=""),this.options.title=this.options.title||this.originalTitle;{var b=this,d=b.options,e=d.title||" ",f=a.ui.dialog.getTitleId(b.element),g=(b.uiDialog=a("<div></div>")).appendTo(document.body).hide().addClass(c+d.dialogClass).css({zIndex:d.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(c){d.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}).attr({role:"dialog","aria-labelledby":f}).mousedown(function(a){b.moveToTop(!1,a)}),i=(b.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g),(b.uiDialogTitlebar=a("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g)),j=a('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){j.addClass("ui-state-hover")},function(){j.removeClass("ui-state-hover")}
).focus(function(){j.addClass("ui-state-focus")}).blur(function(){j.removeClass("ui-state-focus")}).click(function(a){return b.close(a),!1}).appendTo(i);(b.uiDialogTitlebarCloseText=a("<span></span>")).addClass("ui-icon ui-icon-closethick").text(d.closeText).appendTo(j),a("<span></span>").addClass("ui-dialog-title").attr("id",f).html(e).prependTo(i)}a.isFunction(d.beforeclose)&&!a.isFunction(d.beforeClose)&&(d.beforeClose=d.beforeclose),i.find("*").add(i).disableSelection(),d.draggable&&a.fn.draggable&&b._makeDraggable(),d.resizable&&a.fn.resizable&&b._makeResizable(),b._createButtons(d.buttons),b._isOpen=!1,a.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;return a.overlay&&a.overlay.destroy(),a.uiDialog.hide(),a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),a.uiDialog.remove(),a.originalTitle&&a.element.attr("title",a.originalTitle),a},widget:fu
nction(){return this.uiDialog},close:function(b){var d,e,c=this;return!1!==c._trigger("beforeClose",b)?(c.overlay&&c.overlay.destroy(),c.uiDialog.unbind("keypress.ui-dialog"),c._isOpen=!1,c.options.hide?c.uiDialog.hide(c.options.hide,function(){c._trigger("close",b)}):(c.uiDialog.hide(),c._trigger("close",b)),a.ui.dialog.overlay.resize(),c.options.modal&&(d=0,a(".ui-dialog").each(function(){this!==c.uiDialog[0]&&(e=a(this).css("z-index"),isNaN(e)||(d=Math.max(d,e)))}),a.ui.dialog.maxZ=d),c):void 0},isOpen:function(){return this._isOpen},moveToTop:function(b,c){var f,d=this,e=d.options;return e.modal&&!b||!e.stack&&!e.modal?d._trigger("focus",c):(e.zIndex>a.ui.dialog.maxZ&&(a.ui.dialog.maxZ=e.zIndex),d.overlay&&(a.ui.dialog.maxZ+=1,d.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ)),f={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()},a.ui.dialog.maxZ+=1,d.uiDialog.css("z-index",a.ui.dialog.maxZ),d.element.attr(f),d._trigger("focus",c),d)},open:fu
nction(){if(!this._isOpen){var b=this,c=b.options,d=b.uiDialog;return b.overlay=c.modal?new a.ui.dialog.overlay(b):null,b._size(),b._position(c.position),d.show(c.show),b.moveToTop(!0),c.modal&&d.bind("keydown.ui-dialog",function(b){if(b.keyCode===a.ui.keyCode.TAB){var c=a(":tabbable",this),d=c.filter(":first"),e=c.filter(":last");if(b.target===e[0]&&!b.shiftKey)return d.focus(1),!1;if(b.target===d[0]&&b.shiftKey)return e.focus(1),!1}}),a(b.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus(),b._isOpen=!0,b._trigger("open"),b}},_createButtons:function(b){var c=this,d=!1,e=a("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=a("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);c.uiDialog.find(".ui-dialog-buttonpane").remove(),"object"==typeof b&&null!==b&&a.each(b,function(){return!(d=!0)}),d&&(a.each(b,function(b,d){d=a.isFunction(d)?{click:d,text:b}:d;var e=a('<button type=
"button"></button>').click(function(){d.click.apply(c.element[0],arguments)}).appendTo(g);a.each(d,function(a,b){"click"!==a&&(a in f?e[a](b):e.attr(a,b))}),a.fn.button&&e.button()}),e.appendTo(c.uiDialog))},_makeDraggable:function(){function f(a){return{position:a.position,offset:a.offset}}var e,b=this,c=b.options,d=a(document);b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(d,g){e="auto"===c.height?"auto":a(this).height(),a(this).height(a(this).height()).addClass("ui-dialog-dragging"),b._trigger("dragStart",d,f(g))},drag:function(a,c){b._trigger("drag",a,f(c))},stop:function(g,h){c.position=[h.position.left-d.scrollLeft(),h.position.top-d.scrollTop()],a(this).removeClass("ui-dialog-dragging").height(e),b._trigger("dragStop",g,f(h)),a.ui.dialog.overlay.resize()}})},_makeResizable:function(c){function h(a){return{originalPosition:a.originalPosition,originalSize:a.originalSize,position:a.p
osition,size:a.size}}c=c===b?this.options.resizable:c;var d=this,e=d.options,f=d.uiDialog.css("position"),g="string"==typeof c?c:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:g,start:function(b,c){a(this).addClass("ui-dialog-resizing"),d._trigger("resizeStart",b,h(c))},resize:function(a,b){d._trigger("resize",a,h(b))},stop:function(b,c){a(this).removeClass("ui-dialog-resizing"),e.height=a(this).height(),e.width=a(this).width(),d._trigger("resizeStop",b,h(c)),a.ui.dialog.overlay.resize()}}).css("position",f).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return"auto"===a.height?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(b){var e,c=[],d=[0,0];b?(("string"==typeof b||"object"==typeof b&&"0"in b)&&(c=b.split?b.split(" "):[b[0],b[1]],1===c.le
ngth&&(c[1]=c[0]),a.each(["left","top"],function(a,b){+c[a]===c[a]&&(d[a]=c[a],c[a]=b)}),b={my:c.join(" "),at:c.join(" "),offset:d.join(" ")}),b=a.extend({},a.ui.dialog.prototype.options.position,b)):b=a.ui.dialog.prototype.options.position,e=this.uiDialog.is(":visible"),e||this.uiDialog.show(),this.uiDialog.css({top:0,left:0}).position(a.extend({of:window},b)),e||this.uiDialog.hide()},_setOptions:function(b){var c=this,f={},g=!1;a.each(b,function(a,b){c._setOption(a,b),a in d&&(g=!0),a in e&&(f[a]=b)}),g&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",f)},_setOption:function(b,d){var e=this,f=e.uiDialog;switch(b){case"beforeclose":b="beforeClose";break;case"buttons":e._createButtons(d);break;case"closeText":e.uiDialogTitlebarCloseText.text(""+d);break;case"dialogClass":f.removeClass(e.options.dialogClass).addClass(c+d);break;case"disabled":d?f.addClass("ui-dialog-disabled"):f.removeClass("ui-dialog-disabled");break;case"draggable":var g=f.is(":d
ata(draggable)");g&&!d&&f.draggable("destroy"),!g&&d&&e._makeDraggable();break;case"position":e._position(d);break;case"resizable":var h=f.is(":data(resizable)");h&&!d&&f.resizable("destroy"),h&&"string"==typeof d&&f.resizable("option","handles",d),!h&&d!==!1&&e._makeResizable(d);break;case"title":a(".ui-dialog-title",e.uiDialogTitlebar).html(""+(d||" "))}a.Widget.prototype._setOption.apply(e,arguments)},_size:function(){var c,d,b=this.options,e=this.uiDialog.is(":visible");if(this.element.show().css({width:"auto",minHeight:0,height:0}),b.minWidth>b.width&&(b.width=b.minWidth),c=this.uiDialog.css({height:"auto",width:b.width}).height(),d=Math.max(0,b.minHeight-c),"auto"===b.height)if(a.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();var f=this.element.css("height","auto").height();e||this.uiDialog.hide(),this.element.height(Math.max(f,d))}else this.element.height(Math.max(b.height-c,0));this.uiDialog.is(":data(resizable)")&&this.uiDialo
g.resizable("option","minHeight",this._minHeight())}}),a.extend(a.ui.dialog,{version:"1.8.18",uuid:0,maxZ:0,getTitleId:function(a){var b=a.attr("id");return b||(this.uuid+=1,b=this.uuid),"ui-dialog-title-"+b},overlay:function(b){this.$el=a.ui.dialog.overlay.create(b)}}),a.extend(a.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(b){0===this.instances.length&&(setTimeout(function(){a.ui.dialog.overlay.instances.length&&a(document).bind(a.ui.dialog.overlay.events,function(b){return a(b.target).zIndex()<a.ui.dialog.overlay.maxZ?!1:void 0})},1),a(document).bind("keydown.dialog-overlay",function(c){b.options.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}),a(window).bind("resize.dialog-overlay",a.ui.dialog.overlay.resize));var c=(this.oldInstances.pop()||a("<div></div>").addCl
ass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});return a.fn.bgiframe&&c.bgiframe(),this.instances.push(c),c},destroy:function(b){var c=a.inArray(b,this.instances);-1!=c&&this.oldInstances.push(this.instances.splice(c,1)[0]),0===this.instances.length&&a([document,window]).unbind(".dialog-overlay"),b.remove();var d=0;a.each(this.instances,function(){d=Math.max(d,this.css("z-index"))}),this.maxZ=d},height:function(){var b,c;return a.browser.msie&&a.browser.version<7?(b=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),c=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight),c>b?a(window).height()+"px":b+"px"):a(document).height()+"px"},width:function(){var b,c;return a.browser.msie?(b=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth),c=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth),c>b?a(window).width()+"px":b+"px"):a(document).width()+"px"},res
ize:function(){var b=a([]);a.each(a.ui.dialog.overlay.instances,function(){b=b.add(this)}),b.css({width:0,height:0}).css({width:a.ui.dialog.overlay.width(),height:a.ui.dialog.overlay.height()})}}),a.extend(a.ui.dialog.overlay.prototype,{destroy:function(){a.ui.dialog.overlay.destroy(this.$el)}})}(jQuery),function(a){a.ui=a.ui||{};var c=/left|center|right/,d=/top|center|bottom/,e="center",f={},g=a.fn.position,h=a.fn.offset;a.fn.position=function(b){if(!b||!b.of)return g.apply(this,arguments);b=a.extend({},b);var l,m,n,h=a(b.of),i=h[0],j=(b.collision||"flip").split(" "),k=b.offset?b.offset.split(" "):[0,0];return 9===i.nodeType?(l=h.width(),m=h.height(),n={top:0,left:0}):i.setTimeout?(l=h.width(),m=h.height(),n={top:h.scrollTop(),left:h.scrollLeft()}):i.preventDefault?(b.at="left top",l=m=0,n={top:b.of.pageY,left:b.of.pageX}):(l=h.outerWidth(),m=h.outerHeight(),n=h.offset()),a.each(["my","at"],function(){var a=(b[this]||"").split(" ");1===a.length&&(a=c.test(a[0])?a.concat([e]):d.test
(a[0])?[e].concat(a):[e,e]),a[0]=c.test(a[0])?a[0]:e,a[1]=d.test(a[1])?a[1]:e,b[this]=a}),1===j.length&&(j[1]=j[0]),k[0]=parseInt(k[0],10)||0,1===k.length&&(k[1]=k[0]),k[1]=parseInt(k[1],10)||0,"right"===b.at[0]?n.left+=l:b.at[0]===e&&(n.left+=l/2),"bottom"===b.at[1]?n.top+=m:b.at[1]===e&&(n.top+=m/2),n.left+=k[0],n.top+=k[1],this.each(function(){var r,c=a(this),d=c.outerWidth(),g=c.outerHeight(),h=parseInt(a.curCSS(this,"marginLeft",!0))||0,i=parseInt(a.curCSS(this,"marginTop",!0))||0,o=d+h+(parseInt(a.curCSS(this,"marginRight",!0))||0),p=g+i+(parseInt(a.curCSS(this,"marginBottom",!0))||0),q=a.extend({},n);"right"===b.my[0]?q.left-=d:b.my[0]===e&&(q.left-=d/2),"bottom"===b.my[1]?q.top-=g:b.my[1]===e&&(q.top-=g/2),f.fractions||(q.left=Math.round(q.left),q.top=Math.round(q.top)),r={left:q.left-h,top:q.top-i},a.each(["left","top"],function(c,e){a.ui.position[j[c]]&&a.ui.position[j[c]][e](q,{targetWidth:l,targetHeight:m,elemWidth:d,elemHeight:g,collisionPosition:r,collisionWidth:o,coll
isionHeight:p,offset:k,my:b.my,at:b.at})}),a.fn.bgiframe&&c.bgiframe(),c.offset(a.extend(q,{using:b.using}))})},a.ui.position={fit:{left:function(b,c){var d=a(window),e=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft();b.left=e>0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]!==e){var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g="left"===c.my[0]?-c.elemWidth:"right"===c.my[0]?c.elemWidth:0,h="left"===c.at[0]?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0}},top:function(b,c){if(c.at[1]!==e){var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g="top"===c.my[1]?-c.elemHeight:"bottom"===c.my[1]?c.elemHeight:0,h="top"===c.at[1]?c.targetH
eight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,"position"))&&(b.style.position="relative");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,"top",!0),10)||0,g=parseInt(a.curCSS(b,"left",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};"using"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];return c&&c.ownerDocument?b?this.each(function(){a.offset.setOffset(this,b)}):h.call(this):null}),function(){var d,e,g,h,i,b=document.getElementsByTagName("body")[0],c=document.createElement("div");d=document.createElement(b?"div":"body"),g={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},b&&a.extend(g,{position:"absolute",left:"-1000px",top:"-1000px"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText="position: absolute; left: 10.7432222px; top: 10.
432325px; height: 30px; width: 201px;",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML="",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&22>i
}()}(jQuery),function(a,b){a.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()}),this.valueDiv=a("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove(),a.Widget.prototype.destroy.apply(this,arguments)},value:function(a){return a===b?this._value():(this._setOption("value",a),this)},_setOption:function(b,c){"value"===b&&(this.options.value=c,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),a.Widget.prototype._setOpti
on.apply(this,arguments)},_value:function(){var a=this.options.value;return"number"!=typeof a&&(a=0),Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var a=this.value(),b=this._percentage();this.oldValue!==a&&(this.oldValue=a,this._trigger("change")),this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(b.toFixed(0)+"%"),this.element.attr("aria-valuenow",a)}}),a.extend(a.ui.progressbar,{version:"1.8.18"})}(jQuery),function(a){var c=5;a.widget("ui.slider",a.ui.mouse,{widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var b=this,d=this.options,e=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f="<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",g=d.values&&d.values.length||1,h=[];this._keySliding=!1,thi
s._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all"+(d.disabled?" ui-slider-disabled ui-disabled":"")),this.range=a([]),d.range&&(d.range===!0&&(d.values||(d.values=[this._valueMin(),this._valueMin()]),d.values.length&&2!==d.values.length&&(d.values=[d.values[0],d.values[0]])),this.range=a("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+("min"===d.range||"max"===d.range?" ui-slider-range-"+d.range:"")));for(var i=e.length;g>i;i+=1)h.push(f);this.handles=e.add(a(h.join("")).appendTo(b.element)),this.handle=this.handles.eq(0),this.handles.add(this.range).filter("a").click(function(a){a.preventDefault()}).hover(function(){d.disabled||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}).focus(function(){d.disabled?a(this).blur():(a(".ui-slider .ui-state-focus").
removeClass("ui-state-focus"),a(this).addClass("ui-state-focus"))}).blur(function(){a(this).removeClass("ui-state-focus")}),this.handles.each(function(b){a(this).data("index.ui-slider-handle",b)}),this.handles.keydown(function(d){var f,g,h,i,e=a(this).data("index.ui-slider-handle");if(!b.options.disabled){switch(d.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.PAGE_UP:case a.ui.keyCode.PAGE_DOWN:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(d.preventDefault(),!b._keySliding&&(b._keySliding=!0,a(this).addClass("ui-state-active"),f=b._start(d,e),f===!1))return}switch(i=b.options.step,g=h=b.options.values&&b.options.values.length?b.values(e):b.value(),d.keyCode){case a.ui.keyCode.HOME:h=b._valueMin();break;case a.ui.keyCode.END:h=b._valueMax();break;case a.ui.keyCode.PAGE_UP:h=b._trimAlignValue(g+(b._valueMax()-b._valueMin())/c);break;case a.ui.keyCode.PAGE_DOWN:h=b._trimAlignValue(g-(b._valueMax()-b._valueMin())/
c);break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g===b._valueMax())return;h=b._trimAlignValue(g+i);break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g===b._valueMin())return;h=b._trimAlignValue(g-i)}b._slide(d,e,h)}}).keyup(function(c){var d=a(this).data("index.ui-slider-handle");b._keySliding&&(b._keySliding=!1,b._stop(c,d),b._change(c,d),a(this).removeClass("ui-state-active"))}),this._refreshValue(),this._animateOff=!1},destroy:function(){return this.handles.remove(),this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"),this._mouseDestroy(),this},_mouseCapture:function(b){var d,e,f,g,h,i,j,k,l,c=this.options;return c.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),d={x:b.pageX,y:b.pageY},e=this._normValueFromMouse(d),f=this._valueMax()-t
his._valueMin()+1,h=this,this.handles.each(function(b){var c=Math.abs(e-h.values(b));f>c&&(f=c,g=a(this),i=b)}),c.range===!0&&this.values(1)===c.min&&(i+=1,g=a(this.handles[i])),j=this._start(b,i),j===!1?!1:(this._mouseSliding=!0,h._handleIndex=i,g.addClass("ui-state-active").focus(),k=g.offset(),l=!a(b.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:b.pageX-k.left-g.width()/2,top:b.pageY-k.top-g.height()/2-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(b,i,e),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);return this._slide(a,this._handleIndex,c),!1},_mouseStop:function(a){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._ha
ndleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(a){var b,c,d,e,f;return"horizontal"===this.orientation?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),0>d&&(d=0),"vertical"===this.orientation&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e,this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};return this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("start",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),2===this.options.values.length&&this.options.range===!0&&(0===b&&c>d||1===b&&d>c)
&&(c=d),c!==this.values(b)&&(e=this.values(),e[b]=c,f=this._trigger("slide",a,{handle:this.handles[b],value:c,values:e}),d=this.values(b?0:1),f!==!1&&this.values(b,c,!0))):c!==this.value()&&(f=this._trigger("slide",a,{handle:this.handles[b],value:c}),f!==!1&&this.value(c))},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("change",a,c)}},value:function(a){return arguments.length?(this.options.value=this._trimAlignValue(a),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(b,c){var d,e,f;if(arguments.length>1)this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),this._change(n
ull,b);else{if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();for(d=this.options.values,e=arguments[0],f=0;f<d.length;f+=1)d[f]=this._trimAlignValue(e[f]),this._change(null,f);this._refreshValue()}},_setOption:function(b,c){var d,e=0;switch(a.isArray(this.options.values)&&(e=this.options.values.length),a.Widget.prototype._setOption.apply(this,arguments),b){case"disabled":c?(this.handles.filter(".ui-state-focus").blur(),this.handles.removeClass("ui-state-hover"),this.handles.propAttr("disabled",!0),this.element.addClass("ui-disabled")):(this.handles.propAttr("disabled",!1),this.element.removeClass("ui-disabled"));break;case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue();break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animate
Off=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),d=0;e>d;d+=1)this._change(null,d);this._animateOff=!1}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c,d;if(arguments.length)return b=this.options.values[a],b=this._trimAlignValue(b);for(c=this.options.values.slice(),d=0;d<c.length;d+=1)c[d]=this._trimAlignValue(c[d]);return c},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;return 2*Math.abs(c)>=b&&(d+=c>0?b:-b),parseFloat(d.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var f,h,i,j,k,b=this.options.range,c=this.options,d=this,e=this._animateOff?!1:c.animate,g={};this.options.values&&this.options.values.length?this.handles.each(function(b){f=(d.values(b)-d._valueMin())/(d._va
lueMax()-d._valueMin())*100,g["horizontal"===d.orientation?"left":"bottom"]=f+"%",a(this).stop(1,1)[e?"animate":"css"](g,c.animate),d.options.range===!0&&("horizontal"===d.orientation?(0===b&&d.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},c.animate),1===b&&d.range[e?"animate":"css"]({width:f-h+"%"},{queue:!1,duration:c.animate})):(0===b&&d.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},c.animate),1===b&&d.range[e?"animate":"css"]({height:f-h+"%"},{queue:!1,duration:c.animate}))),h=f}):(i=this.value(),j=this._valueMin(),k=this._valueMax(),f=k!==j?(i-j)/(k-j)*100:0,g["horizontal"===d.orientation?"left":"bottom"]=f+"%",this.handle.stop(1,1)[e?"animate":"css"](g,c.animate),"min"===b&&"horizontal"===this.orientation&&this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},c.animate),"max"===b&&"horizontal"===this.orientation&&this.range[e?"animate":"css"]({width:100-f+"%"},{queue:!1,duration:c.animate}),"min"===b&&"vertical"===this.orientation&&this.range.stop(1,1)[e?"animate":"css"]
({height:f+"%"},c.animate),"max"===b&&"vertical"===this.orientation&&this.range[e?"animate":"css"]({height:100-f+"%"},{queue:!1,duration:c.animate}))}}),a.extend(a.ui.slider,{version:"1.8.18"})}(jQuery),function(a,b){function f(){return++d}function e(){return++c}var c=0,d=0;a.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:!1,cookie:null,collapsible:!1,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading…</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(!0)},_setOption:function(a,b){if("selected"==a){if(this.options.collapsible&&b==this.options.selected)return;this.select(b)}else this.options[a]=b,this._tabify()},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+e()},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")
},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+f());return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(a,b){return{tab:a,panel:b,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function m(b,c){b.css("display",""),!a.support.opacity&&c.opacity&&b[0].style.removeAttribute("filter")}var d=this,e=this.options,f=/^#.+/;this.list=this.element.find("ol,ul").eq(0),this.lis=a(" > li:has(a[href])",this.list),this.anchors=this.lis.map(function(){return a("a",this)[0]}),this.panels=a([]),this.anchors.each(function(b,c){var i,g=a(c).attr("href"),h=g.split("#")[0];if(h&&(h===location.toString().split("#")[0]||(i=a("base")[0])&&h===i.href)&&(g=c.hash,c.href=g),f.test(g))d.panels=d.panels.add(d.element.find(d._sanitizeSe
lector(g)));else if(g&&"#"!==g){a.data(c,"href.tabs",g),a.data(c,"load.tabs",g.replace(/#.*$/,""));var j=d._tabId(c);c.href="#"+j;var k=d.element.find("#"+j);k.length||(k=a(e.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(d.panels[b-1]||d.list),k.data("destroy.tabs",!0)),d.panels=d.panels.add(k)}else e.disabled.push(b)}),c?(this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"),this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.lis.addClass("ui-state-default ui-corner-top"),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"),e.selected===b?(location.hash&&this.anchors.each(function(a,b){return b.hash==location.hash?(e.selected=a,!1):void 0}),"number"!=typeof e.selected&&e.cookie&&(e.selected=parseInt(d._cookie(),10)),"number"!=typeof e.selected&&this.lis.filter(".ui-tabs-selected").length&&(e.selected=this.lis.index(this.lis.filter(".ui
-tabs-selected"))),e.selected=e.selected||(this.lis.length?0:-1)):null===e.selected&&(e.selected=-1),e.selected=e.selected>=0&&this.anchors[e.selected]||e.selected<0?e.selected:0,e.disabled=a.unique(e.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(a){return d.lis.index(a)}))).sort(),-1!=a.inArray(e.selected,e.disabled)&&e.disabled.splice(a.inArray(e.selected,e.disabled),1),this.panels.addClass("ui-tabs-hide"),this.lis.removeClass("ui-tabs-selected ui-state-active"),e.selected>=0&&this.anchors.length&&(d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash)).removeClass("ui-tabs-hide"),this.lis.eq(e.selected).addClass("ui-tabs-selected ui-state-active"),d.element.queue("tabs",function(){d._trigger("show",null,d._ui(d.anchors[e.selected],d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash))[0]))}),this.load(e.selected)),a(window).bind("unload",function(){d.lis.add(d.anchors).unbind(".tabs"),d.lis=d.anchors=d.panels=null})):e.selected=this.lis.ind
ex(this.lis.filter(".ui-tabs-selected")),this.element[e.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible"),e.cookie&&this._cookie(e.selected,e.cookie);for(var h,g=0;h=this.lis[g];g++)a(h)[-1==a.inArray(g,e.disabled)||a(h).hasClass("ui-tabs-selected")?"removeClass":"addClass"]("ui-state-disabled");if(e.cache===!1&&this.anchors.removeData("cache.tabs"),this.lis.add(this.anchors).unbind(".tabs"),"mouseover"!==e.event){var i=function(a,b){b.is(":not(.ui-state-disabled)")&&b.addClass("ui-state-"+a)},j=function(a,b){b.removeClass("ui-state-"+a)};this.lis.bind("mouseover.tabs",function(){i("hover",a(this))}),this.lis.bind("mouseout.tabs",function(){j("hover",a(this))}),this.anchors.bind("focus.tabs",function(){i("focus",a(this).closest("li"))}),this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var k,l;e.fx&&(a.isArray(e.fx)?(k=e.fx[0],l=e.fx[1]):k=l=e.fx);var n=l?function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.hide().remov
eClass("ui-tabs-hide").animate(l,l.duration||"normal",function(){m(c,l),d._trigger("show",null,d._ui(b,c[0]))})}:function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.removeClass("ui-tabs-hide"),d._trigger("show",null,d._ui(b,c[0]))},o=k?function(a,b){b.animate(k,k.duration||"normal",function(){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),m(b,k),d.element.dequeue("tabs")})}:function(a,b){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),d.element.dequeue("tabs")};this.anchors.bind(e.event+".tabs",function(){var b=this,c=a(b).closest("li"),f=d.panels.filter(":not(.ui-tabs-hide)"),g=d.element.find(d._sanitizeSelector(b.hash));if(c.hasClass("ui-tabs-selected")&&!e.collapsible||c.hasClass("ui-state-disabled")||c.hasClass("ui-state-processing")||d.panels.filter(":animated").length||d._trigger("select",null,d._ui(this,g[0]))===!1)return this.blur(),!1;if(e.selected=d.anchors.index(this),d.abort(),
e.collapsible){if(c.hasClass("ui-tabs-selected"))return e.selected=-1,e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){o(b,f)}).dequeue("tabs"),this.blur(),!1;if(!f.length)return e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),this.blur(),!1}if(e.cookie&&d._cookie(e.selected,e.cookie),!g.length)throw"jQuery UI Tabs: Mismatching fragment identifier.";f.length&&d.element.queue("tabs",function(){o(b,f)}),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),a.browser.msie&&this.blur()}),this.anchors.bind("click.tabs",function(){return!1})},_getIndex:function(a){return"string"==typeof a&&(a=this.anchors.index(this.anchors.filter("[href$="+a+"]"))),a},destroy:function(){var b=this.options;return this.abort(),this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"),this.list.removeClass("ui-tabs-nav ui-he
lper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.anchors.each(function(){var b=a.data(this,"href.tabs");b&&(this.href=b);var c=a(this).unbind(".tabs");a.each(["href","load","cache"],function(a,b){c.removeData(b+".tabs")})}),this.lis.unbind(".tabs").add(this.panels).each(function(){a.data(this,"destroy.tabs")?a(this).remove():a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}),b.cookie&&this._cookie(null,b.cookie),this},add:function(c,d,e){e===b&&(e=this.anchors.length);var f=this,g=this.options,h=a(g.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,d)),i=c.indexOf("#")?this._tabId(a("a",h)[0]):c.replace("#","");h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",!0);var j=f.element.find("#"+i);return j.length||(j=a(g.panelTemplate).attr("id",i).data("destroy.tabs",!0
)),j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"),e>=this.lis.length?(h.appendTo(this.list),j.appendTo(this.list[0].parentNode)):(h.insertBefore(this.lis[e]),j.insertBefore(this.panels[e])),g.disabled=a.map(g.disabled,function(a){return a>=e?++a:a}),this._tabify(),1==this.anchors.length&&(g.selected=0,h.addClass("ui-tabs-selected ui-state-active"),j.removeClass("ui-tabs-hide"),this.element.queue("tabs",function(){f._trigger("show",null,f._ui(f.anchors[0],f.panels[0]))}),this.load(0)),this._trigger("add",null,this._ui(this.anchors[e],this.panels[e])),this},remove:function(b){b=this._getIndex(b);var c=this.options,d=this.lis.eq(b).remove(),e=this.panels.eq(b).remove();return d.hasClass("ui-tabs-selected")&&this.anchors.length>1&&this.select(b+(b+1<this.anchors.length?1:-1)),c.disabled=a.map(a.grep(c.disabled,function(a){return a!=b}),function(a){return a>=b?--a:a}),this._tabify(),this._trigger("remove",null,this._ui(d.find("a")[0],e[0])),this},enable:funct
ion(b){b=this._getIndex(b);var c=this.options;return-1!=a.inArray(b,c.disabled)?(this.lis.eq(b).removeClass("ui-state-disabled"),c.disabled=a.grep(c.disabled,function(a){return a!=b}),this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b])),this):void 0},disable:function(a){a=this._getIndex(a);var c=this.options;return a!=c.selected&&(this.lis.eq(a).addClass("ui-state-disabled"),c.disabled.push(a),c.disabled.sort(),this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a]))),this},select:function(a){if(a=this._getIndex(a),-1==a){if(!this.options.collapsible||-1==this.options.selected)return this;a=this.options.selected}return this.anchors.eq(a).trigger(this.options.event+".tabs"),this},load:function(b){b=this._getIndex(b);var c=this,d=this.options,e=this.anchors.eq(b)[0],f=a.data(e,"load.tabs");if(this.abort(),f&&(0===this.element.queue("tabs").length||!a.data(e,"cache.tabs"))){if(this.lis.eq(b).addClass("ui-state-processing"),d.spinner){var g=a("span",e);g.d
ata("label.tabs",g.html()).html(d.spinner)}return this.xhr=a.ajax(a.extend({},d.ajaxOptions,{url:f,success:function(f,g){c.element.find(c._sanitizeSelector(e.hash)).html(f),c._cleanup(),d.cache&&a.data(e,"cache.tabs",!0),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.success(f,g)}catch(h){}},error:function(a,f){c._cleanup(),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.error(a,f,b,e)}catch(g){}}})),c.element.dequeue("tabs"),this}this.element.dequeue("tabs")},abort:function(){return this.element.queue([]),this.panels.stop(!1,!0),this.element.queue("tabs",this.element.queue("tabs").splice(-2,2)),this.xhr&&(this.xhr.abort(),delete this.xhr),this._cleanup(),this},url:function(a,b){return this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",b),this},length:function(){return this.anchors.length}}),a.extend(a.ui.tabs,{version:"1.8.18"}),a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(a,b){var c=this,d=this.options,e
=c._rotate||(c._rotate=function(b){clearTimeout(c.rotation),c.rotation=setTimeout(function(){var a=d.selected;c.select(++a<c.anchors.length?a:0)},a),b&&b.stopPropagation()}),f=c._unrotate||(c._unrotate=b?function(){t=d.selected,e()}:function(a){a.clientX&&c.rotate(null)});return a?(this.element.bind("tabsshow",e),this.anchors.bind(d.event+".tabs",f),e()):(clearTimeout(c.rotation),this.element.unbind("tabsshow",e),this.anchors.unbind(d.event+".tabs",f),delete this._rotate,delete this._unrotate),this}})}(jQuery),Date.CultureInfo={name:"en-US",englishName:"English (United States)",nativeName:"English (United States)",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],abbreviatedDayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],shortestDayNames:["Su","Mo","Tu","We","Th","Fr","Sa"],firstLetterDayNames:["S","M","T","W","T","F","S"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],ab
breviatedMonthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],amDesignator:"AM",pmDesignator:"PM",firstDayOfWeek:0,twoDigitYearMax:2029,dateElementOrder:"mdy",formatPatterns:{shortDate:"M/d/yyyy",longDate:"dddd, MMMM dd, yyyy",shortTime:"h:mm tt",longTime:"h:mm:ss tt",fullDateTime:"dddd, MMMM dd, yyyy h:mm:ss tt",sortableDateTime:"yyyy-MM-ddTHH:mm:ss",universalSortableDateTime:"yyyy-MM-dd HH:mm:ssZ",rfc1123:"ddd, dd MMM yyyy HH:mm:ss GMT",monthDay:"MMMM dd",yearMonth:"MMMM, yyyy"},regexPatterns:{jan:/^jan(uary)?/i,feb:/^feb(ruary)?/i,mar:/^mar(ch)?/i,apr:/^apr(il)?/i,may:/^may/i,jun:/^jun(e)?/i,jul:/^jul(y)?/i,aug:/^aug(ust)?/i,sep:/^sep(t(ember)?)?/i,oct:/^oct(ober)?/i,nov:/^nov(ember)?/i,dec:/^dec(ember)?/i,sun:/^su(n(day)?)?/i,mon:/^mo(n(day)?)?/i,tue:/^tu(e(s(day)?)?)?/i,wed:/^we(d(nesday)?)?/i,thu:/^th(u(r(s(day)?)?)?)?/i,fri:/^fr(i(day)?)?/i,sat:/^sa(t(urday)?)?/i,future:/^next/i,past:/^last|past|prev(ious)?/i,add:/^(\+|aft(er)?|from|hence)/i,su
btract:/^(\-|bef(ore)?|ago)/i,yesterday:/^yes(terday)?/i,today:/^t(od(ay)?)?/i,tomorrow:/^tom(orrow)?/i,now:/^n(ow)?/i,millisecond:/^ms|milli(second)?s?/i,second:/^sec(ond)?s?/i,minute:/^mn|min(ute)?s?/i,hour:/^h(our)?s?/i,week:/^w(eek)?s?/i,month:/^m(onth)?s?/i,day:/^d(ay)?s?/i,year:/^y(ear)?s?/i,shortMeridian:/^(a|p)/i,longMeridian:/^(a\.?m?\.?|p\.?m?\.?)/i,timezone:/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt|utc)/i,ordinalSuffix:/^\s*(st|nd|rd|th)/i,timeContext:/^\s*(\:|a(?!u|p)|p)/i},timezones:[{name:"UTC",offset:"-000"},{name:"GMT",offset:"-000"},{name:"EST",offset:"-0500"},{name:"EDT",offset:"-0400"},{name:"CST",offset:"-0600"},{name:"CDT",offset:"-0500"},{name:"MST",offset:"-0700"},{name:"MDT",offset:"-0600"},{name:"PST",offset:"-0800"},{name:"PDT",offset:"-0700"}]},function(){var a=Date,b=a.prototype,c=a.CultureInfo,d=function(a,b){return b||(b=2),("000"+a).slice(-1*b)};b.clearTi
<TRUNCATED>
[33/34] git commit: build
Posted by sn...@apache.org.
build
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/b753f461
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/b753f461
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/b753f461
Branch: refs/pull/86/head
Commit: b753f4610b36a27d1aa9ff5974cace6191d665b9
Parents: abe152f
Author: Shawn Feldman <sh...@gmail.com>
Authored: Fri Mar 28 17:18:17 2014 -0600
Committer: Shawn Feldman <sh...@gmail.com>
Committed: Fri Mar 28 17:18:17 2014 -0600
----------------------------------------------------------------------
portal/dist/appsvc-ui.2.0.1.zip | Bin 17166526 -> 17166698 bytes
portal/js/libs/usergrid-libs.min.js | 2 +-
2 files changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/b753f461/portal/dist/appsvc-ui.2.0.1.zip
----------------------------------------------------------------------
diff --git a/portal/dist/appsvc-ui.2.0.1.zip b/portal/dist/appsvc-ui.2.0.1.zip
index 8cec035..e83b96e 100644
Binary files a/portal/dist/appsvc-ui.2.0.1.zip and b/portal/dist/appsvc-ui.2.0.1.zip differ
[31/34] git commit: build
Posted by sn...@apache.org.
build
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/b753f461
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/b753f461
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/b753f461
Branch: refs/pull/86/merge
Commit: b753f4610b36a27d1aa9ff5974cace6191d665b9
Parents: abe152f
Author: Shawn Feldman <sh...@gmail.com>
Authored: Fri Mar 28 17:18:17 2014 -0600
Committer: Shawn Feldman <sh...@gmail.com>
Committed: Fri Mar 28 17:18:17 2014 -0600
----------------------------------------------------------------------
portal/dist/appsvc-ui.2.0.1.zip | Bin 17166526 -> 17166698 bytes
portal/js/libs/usergrid-libs.min.js | 2 +-
2 files changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/b753f461/portal/dist/appsvc-ui.2.0.1.zip
----------------------------------------------------------------------
diff --git a/portal/dist/appsvc-ui.2.0.1.zip b/portal/dist/appsvc-ui.2.0.1.zip
index 8cec035..e83b96e 100644
Binary files a/portal/dist/appsvc-ui.2.0.1.zip and b/portal/dist/appsvc-ui.2.0.1.zip differ
[11/34] git commit: Merge pull request #85 from amuramoto/master
Posted by sn...@apache.org.
Merge pull request #85 from amuramoto/master
Minor css tweaks to introjs and tooltips
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/d1ee5ec8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/d1ee5ec8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/d1ee5ec8
Branch: refs/heads/master
Commit: d1ee5ec850a366c2bcd55ca8f877936587282850
Parents: 082530e ad1e3b3
Author: Shawn Feldman <sh...@gmail.com>
Authored: Fri Mar 28 16:50:19 2014 -0600
Committer: Shawn Feldman <sh...@gmail.com>
Committed: Fri Mar 28 16:50:19 2014 -0600
----------------------------------------------------------------------
portal/css/dash.min.css | 2 +-
portal/css/main.css | 56 +++++++++++--------
portal/dist/appsvc-ui.2.0.1.zip | Bin 17166351 -> 16937328 bytes
portal/js/global/help-service.js | 6 +-
.../js/libs/bootstrap/custom/css/bootstrap.css | 15 ++---
.../libs/bootstrap/custom/css/bootstrap.min.css | 2 +-
portal/js/libs/usergrid-libs.min.js | 4 +-
portal/js/usergrid-dev.min.js | 8 +--
portal/js/usergrid.min.js | 4 +-
.../instrument/js/usergrid-coverage.min.js | 2 +-
.../test/coverage/instrument/js/usergrid.min.js | 2 +-
11 files changed, 55 insertions(+), 46 deletions(-)
----------------------------------------------------------------------
[14/34] building changes updating bower
Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/efe34294/portal/js/usergrid.min.js
----------------------------------------------------------------------
diff --git a/portal/js/usergrid.min.js b/portal/js/usergrid.min.js
index 804d348..eff99ea 100644
--- a/portal/js/usergrid.min.js
+++ b/portal/js/usergrid.min.js
@@ -1,4 +1,4 @@
-/*! usergrid@2.0.1 2014-03-27 */
+/*! usergrid@2.0.1 2014-03-28 */
!function(exports,global){function renderChart(chartsDefaults,chartdata){var newSettings={};$.extend(!0,newSettings,chartsDefaults,chartdata);new Highcharts.Chart(newSettings)}function menuBindClick(scope,lElement,cevent,menuContext){var currentSelection=angular.element(cevent.srcElement).parent(),previousSelection=scope[menuContext];previousSelection!==currentSelection&&(previousSelection&&angular.element(previousSelection).removeClass("active"),scope[menuContext]=currentSelection,scope.$apply(function(){currentSelection.addClass("active")}))}global["true"]=exports;var polyfills=function(window,Object){window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){window.setTimeout(callback,1e3/60)}}(),Object.defineProperty(Object.prototype,"clone",{enumerable:!1,writable:!0,value:function(){var i,newObj=this instanceof Arra
y?[]:{};for(i in this)"clone"!==i&&(newObj[i]=this[i]&&"object"==typeof this[i]?this[i].clone():this[i]);return newObj}}),Object.defineProperty(Object.prototype,"stringifyJSON",{enumerable:!1,writable:!0,value:function(){return JSON.stringify(this,null," ")}})};polyfills(window,Object);var global=global||this,AppServices=AppServices||{};global.AppServices=global.AppServices||AppServices,AppServices.Constants=angular.module("appservices.constants",[]),AppServices.Services=angular.module("appservices.services",[]),AppServices.Controllers=angular.module("appservices.controllers",[]),AppServices.Filters=angular.module("appservices.filters",[]),AppServices.Directives=angular.module("appservices.directives",[]),AppServices.Performance=angular.module("appservices.performance",[]),AppServices.MAX=angular.module("appservices.max",[]),angular.module("appservices",["ngRoute","ngResource","ngSanitize","ui.bootstrap","angulartics","angulartics.google.analytics","appservices.filters","appservices
.services","appservices.directives","appservices.constants","appservices.controllers","appservices.max","angular-intro"]).config(["$routeProvider","$locationProvider","$sceDelegateProvider","$analyticsProvider",function($routeProvider,$locationProvider,$sceDelegateProvider,$analyticsProvider){$routeProvider.when("/org-overview",{templateUrl:"org-overview/org-overview.html",controller:"OrgOverviewCtrl"}).when("/login",{templateUrl:"login/login.html",controller:"LoginCtrl"}).when("/login/loading",{templateUrl:"login/loading.html",controller:"LoginCtrl"}).when("/app-overview/summary",{templateUrl:"app-overview/app-overview.html",controller:"AppOverviewCtrl"}).when("/getting-started/setup",{templateUrl:"app-overview/getting-started.html",controller:"GettingStartedCtrl"}).when("/forgot-password",{templateUrl:"login/forgot-password.html",controller:"ForgotPasswordCtrl"}).when("/register",{templateUrl:"login/register.html",controller:"RegisterCtrl"}).when("/users",{templateUrl:"users/users
.html",controller:"UsersCtrl"}).when("/users/profile",{templateUrl:"users/users-profile.html",controller:"UsersProfileCtrl"}).when("/users/groups",{templateUrl:"users/users-groups.html",controller:"UsersGroupsCtrl"}).when("/users/activities",{templateUrl:"users/users-activities.html",controller:"UsersActivitiesCtrl"}).when("/users/feed",{templateUrl:"users/users-feed.html",controller:"UsersFeedCtrl"}).when("/users/graph",{templateUrl:"users/users-graph.html",controller:"UsersGraphCtrl"}).when("/users/roles",{templateUrl:"users/users-roles.html",controller:"UsersRolesCtrl"}).when("/groups",{templateUrl:"groups/groups.html",controller:"GroupsCtrl"}).when("/groups/details",{templateUrl:"groups/groups-details.html",controller:"GroupsDetailsCtrl"}).when("/groups/members",{templateUrl:"groups/groups-members.html",controller:"GroupsMembersCtrl"}).when("/groups/activities",{templateUrl:"groups/groups-activities.html",controller:"GroupsActivitiesCtrl"}).when("/groups/roles",{templateUrl:"gro
ups/groups-roles.html",controller:"GroupsRolesCtrl"}).when("/roles",{templateUrl:"roles/roles.html",controller:"RolesCtrl"}).when("/roles/settings",{templateUrl:"roles/roles-settings.html",controller:"RolesSettingsCtrl"}).when("/roles/users",{templateUrl:"roles/roles-users.html",controller:"RolesUsersCtrl"}).when("/roles/groups",{templateUrl:"roles/roles-groups.html",controller:"RolesGroupsCtrl"}).when("/data",{templateUrl:"data/data.html",controller:"DataCtrl"}).when("/data/entity",{templateUrl:"data/entity.html",controller:"EntityCtrl"}).when("/data/shell",{templateUrl:"data/shell.html",controller:"ShellCtrl"}).when("/profile/organizations",{templateUrl:"profile/organizations.html",controller:"OrgCtrl"}).when("/profile/profile",{templateUrl:"profile/profile.html",controller:"ProfileCtrl"}).when("/profile",{templateUrl:"profile/account.html",controller:"AccountCtrl"}).when("/activities",{templateUrl:"activities/activities.html",controller:"ActivitiesCtrl"}).when("/shell",{templateU
rl:"shell/shell.html",controller:"ShellCtrl"}).when("/logout",{templateUrl:"login/logout.html",controller:"LogoutCtrl"}).otherwise({redirectTo:"/org-overview"}),$locationProvider.html5Mode(!1).hashPrefix("!"),$sceDelegateProvider.resourceUrlWhitelist(["self","http://apigee-internal-prod.jupiter.apigee.net/**","http://apigee-internal-prod.mars.apigee.net/**","https://appservices.apigee.com/**","https://api.usergrid.com/**"]),$analyticsProvider.virtualPageviews(!1),$analyticsProvider.firstPageview(!1)}]),AppServices.Controllers.controller("ActivitiesCtrl",["ug","$scope","$rootScope","$location","$route",function(ug,$scope,$rootScope){$scope.$on("app-activities-received",function(evt,data){$scope.activities=data,$scope.$apply()}),$scope.$on("app-activities-error",function(){$rootScope.$broadcast("alert","error","Application failed to retreive activities data.")}),ug.getActivities()}]),AppServices.Controllers.controller("AppOverviewCtrl",["ug","charts","$scope","$rootScope","$log",funct
ion(ug,charts,$scope,$rootScope,$log){var createGradient=function(color1,color2){var perShapeGradient={x1:0,y1:0,x2:0,y2:1};return{linearGradient:perShapeGradient,stops:[[0,color1],[1,color2]]}};$scope.appOverview={},$scope.collections=[],$scope.graph="",$scope.$on("top-collections-received",function(event,collections){var dataDescription={bar1:{labels:["Total"],dataAttr:["title","count"],colors:[createGradient("rgba(36,151,212,0.6)","rgba(119,198,240,0.6)")],borderColor:"#1b97d1"}};$scope.collections=collections;var arr=[];for(var i in collections)collections.hasOwnProperty(i)&&arr.push(collections[i]);$scope.appOverview={},$rootScope.chartTemplate?($scope.appOverview.chart=angular.copy($rootScope.chartTemplate.pareto),$scope.appOverview.chart=charts.convertParetoChart(arr,$scope.appOverview.chart,dataDescription.bar1,"1h","NOW"),$scope.applyScope()):ug.httpGet(null,"js/charts/highcharts.json").then(function(success){$rootScope.chartTemplate=success,$scope.appOverview.chart=angular
.copy($rootScope.chartTemplate.pareto),$scope.appOverview.chart=charts.convertParetoChart(arr,$scope.appOverview.chart,dataDescription.bar1,"1h","NOW"),$scope.applyScope()},function(fail){$log.error("Problem getting chart template",fail)})}),$scope.$on("app-initialized",function(){ug.getTopCollections()}),$rootScope.activeUI&&ug.getTopCollections()}]),AppServices.Controllers.controller("GettingStartedCtrl",["ug","$scope","$rootScope","$location","$timeout","$anchorScroll",function(ug,$scope,$rootScope,$location,$timeout,$anchorScroll){$scope.collections=[],$scope.graph="",$scope.clientID="",$scope.clientSecret="";$scope.regenerateCredentialsDialog=function(modalId){$scope.orgAPICredentials={client_id:"regenerating...",client_secret:"regenerating..."},ug.regenerateAppCredentials(),$scope.hideModal(modalId)},$scope.$on("app-creds-updated",function(event,credentials){credentials?($scope.clientID=credentials.client_id,$scope.clientSecret=credentials.client_secret,$scope.$$phase||$scope.
$apply()):setTimeout(function(){ug.getAppCredentials()},5e3)}),ug.getAppCredentials(),$scope.contentTitle,$scope.showSDKDetail=function(name){var introContainer=document.getElementById("intro-container");if("nocontent"===name)return introContainer.style.height="0",!0;introContainer.style.opacity=.1,introContainer.style.height="0";var timeout=0;$scope.contentTitle&&(timeout=500),$timeout(function(){introContainer.style.height="1000px",introContainer.style.opacity=1},timeout),$scope.optionName=name,$scope.contentTitle=name,$scope.sdkLink="http://apigee.com/docs/content/"+name+"-sdk-redirect",$scope.docsLink="http://apigee.com/docs/app-services/content/installing-apigee-sdk-"+name,$scope.getIncludeURL=function(){return"app-overview/doc-includes/"+$scope.optionName+".html"}},$scope.scrollToElement=function(elem){return $location.hash(elem),$anchorScroll(),!1}}]),AppServices.Controllers.controller("ChartCtrl",["$scope","$location",function(){}]),AppServices.Directives.directive("chart",f
unction(){return{restrict:"E",scope:{chartdata:"=chartdata"},template:"<div></div>",replace:!0,controller:function(){},link:function(scope,element,attrs){scope.$watch("chartdata",function(chartdata){if(chartdata){var chartsDefaults={chart:{renderTo:element[0],type:attrs.type||null,height:attrs.height||null,width:attrs.width||null,reflow:!0,animation:!1,zoomType:"x"}};if("pie"===attrs.type&&(chartsDefaults.chart.margin=[0,0,0,0],chartsDefaults.chart.spacingLeft=0,chartsDefaults.chart.spacingRight=0,chartsDefaults.chart.spacingTop=0,chartsDefaults.chart.spacingBottom=0,attrs.titleimage&&(chartdata.title.text='<img src="'+attrs.titleimage+'">'),attrs.titleicon&&(chartdata.title.text='<i class="pictogram '+attrs.titleiconclass+'">'+attrs.titleicon+"</i>"),attrs.titlecolor&&(chartdata.title.style.color=attrs.titlecolor),attrs.titleimagetop&&(chartdata.title.style.marginTop=attrs.titleimagetop),attrs.titleimageleft&&(chartdata.title.style.marginLeft=attrs.titleimageleft)),"line"===attrs.t
ype&&(chartsDefaults.chart.marginTop=30,chartsDefaults.chart.spacingTop=50),"column"===attrs.type&&(chartsDefaults.chart.marginBottom=80),"area"===attrs.type&&(chartsDefaults.chart.spacingLeft=0,chartsDefaults.chart.spacingRight=0,chartsDefaults.chart.marginLeft=0,chartsDefaults.chart.marginRight=0),Highcharts.setOptions({global:{useUTC:!1},chart:{style:{fontFamily:"marquette-light, Helvetica, Arial, sans-serif"}}}),"line"===attrs.type){var xAxis1=chartdata.xAxis[0];xAxis1.labels.formatter||(xAxis1.labels.formatter=new Function(attrs.xaxislabel)),xAxis1.labels.step||(xAxis1.labels.step=attrs.xaxisstep)}chartdata.tooltip&&"string"==typeof chartdata.tooltip.formatter&&(chartdata.tooltip.formatter=new Function(chartdata.tooltip.formatter)),renderChart(chartsDefaults,chartdata)}},!0)}}}),AppServices.Services.factory("charts",function(){function sortJsonArrayByProperty(objArray,prop){if(arguments.length<2)throw new Error("sortJsonArrayByProp requires 2 arguments");var direct=arguments.le
ngth>2?arguments[2]:1;if(objArray&&objArray.constructor===Array){var propPath=prop.constructor===Array?prop:prop.split(".");objArray.sort(function(a,b){for(var p in propPath)a[propPath[p]]&&b[propPath[p]]&&(a=a[propPath[p]],b=b[propPath[p]]);return a=a.match(/^\d+$/)?+a:a,b=b.match(/^\d+$/)?+b:b,b>a?-1*direct:a>b?1*direct:0})}}var lineChart,areaChart,paretoChart,pieChart,xaxis,seriesIndex;return{convertLineChart:function(chartData,chartTemplate,dataDescription,settings,currentCompare){function plotData(counter,dPLength,dataPoints,dataAttrs,detailedView){for(var i=0;dPLength>i;i++)for(var dp=dataPoints[i],localCounter=counter,j=0;j<dataAttrs.length;j++)lineChart.series[localCounter].data.push("undefined"==typeof dp?[i,0]:[i,dp[dataAttrs[j]]]),detailedView||localCounter++}lineChart=chartTemplate,"undefined"==typeof chartData[0]&&(chartData[0]={},chartData[0].datapoints=[]);var label,dataPoints=chartData[0].datapoints,dPLength=dataPoints.length;"YESTERDAY"===currentCompare?(seriesIndex
=dataDescription.dataAttr.length,label="Yesterday "):"LAST_WEEK"===currentCompare?(seriesIndex=dataDescription.dataAttr.length,label="Last Week "):(lineChart=chartTemplate,seriesIndex=0,lineChart.series=[],label=""),xaxis=lineChart.xAxis[0],xaxis.categories=[],settings.xaxisformat&&(xaxis.labels.formatter=new Function(settings.xaxisformat)),settings.step&&(xaxis.labels.step=settings.step);for(var i=0;dPLength>i;i++){var dp=dataPoints[i];xaxis.categories.push(dp.timestamp)}if(chartData.length>1)for(var l=0;l<chartData.length;l++)chartData[l].chartGroupName&&(dataPoints=chartData[l].datapoints,lineChart.series[l]={},lineChart.series[l].data=[],lineChart.series[l].name=chartData[l].chartGroupName,lineChart.series[l].yAxis=0,lineChart.series[l].type="line",lineChart.series[l].color=dataDescription.colors[i],lineChart.series[l].dashStyle="solid",lineChart.series[l].yAxis.title.text=dataDescription.yAxisLabels,plotData(l,dPLength,dataPoints,dataDescription.detailDataAttr,!0));else{for(var
steadyCounter=0,i=seriesIndex;i<dataDescription.dataAttr.length+(seriesIndex>0?seriesIndex:0);i++){var yAxisIndex=dataDescription.multiAxis?steadyCounter:0;lineChart.series[i]={},lineChart.series[i].data=[],lineChart.series[i].name=label+dataDescription.labels[steadyCounter],lineChart.series[i].yAxis=yAxisIndex,lineChart.series[i].type="line",lineChart.series[i].color=dataDescription.colors[i],lineChart.series[i].dashStyle="solid",lineChart.yAxis[yAxisIndex].title.text=dataDescription.yAxisLabels[dataDescription.yAxisLabels>1?steadyCounter:0],steadyCounter++}plotData(seriesIndex,dPLength,dataPoints,dataDescription.dataAttr,!1)}return lineChart},convertAreaChart:function(chartData,chartTemplate,dataDescription,settings,currentCompare){function plotData(counter,dPLength,dataPoints,dataAttrs,detailedView){for(var i=0;dPLength>i;i++)for(var dp=dataPoints[i],localCounter=counter,j=0;j<dataAttrs.length;j++)areaChart.series[localCounter].data.push("undefined"==typeof dp?0:dp[dataAttrs[j]]
),detailedView||localCounter++}areaChart=angular.copy(areaChart),"undefined"==typeof chartData[0]&&(chartData[0]={},chartData[0].datapoints=[]);var label,dataPoints=chartData[0].datapoints,dPLength=dataPoints.length;"YESTERDAY"===currentCompare?(seriesIndex=dataDescription.dataAttr.length,label="Yesterday "):"LAST_WEEK"===currentCompare?(seriesIndex=dataDescription.dataAttr.length,label="Last Week "):(areaChart=chartTemplate,seriesIndex=0,areaChart.series=[],label=""),xaxis=areaChart.xAxis[0],xaxis.categories=[],settings.xaxisformat&&(xaxis.labels.formatter=new Function(settings.xaxisformat)),settings.step&&(xaxis.labels.step=settings.step);for(var i=0;dPLength>i;i++){var dp=dataPoints[i];xaxis.categories.push(dp.timestamp)}if(chartData.length>1)for(var l=0;l<chartData.length;l++)chartData[l].chartGroupName&&(dataPoints=chartData[l].datapoints,areaChart.series[l]={},areaChart.series[l].data=[],areaChart.series[l].fillColor=dataDescription.areaColors[l],areaChart.series[l].name=chart
Data[l].chartGroupName,areaChart.series[l].yAxis=0,areaChart.series[l].type="area",areaChart.series[l].pointInterval=1,areaChart.series[l].color=dataDescription.colors[l],areaChart.series[l].dashStyle="solid",areaChart.series[l].yAxis.title.text=dataDescription.yAxisLabels,plotData(l,dPLength,dataPoints,dataDescription.detailDataAttr,!0));else{for(var steadyCounter=0,i=seriesIndex;i<dataDescription.dataAttr.length+(seriesIndex>0?seriesIndex:0);i++){var yAxisIndex=dataDescription.multiAxis?steadyCounter:0;areaChart.series[i]={},areaChart.series[i].data=[],areaChart.series[i].fillColor=dataDescription.areaColors[i],areaChart.series[i].name=label+dataDescription.labels[steadyCounter],areaChart.series[i].yAxis=yAxisIndex,areaChart.series[i].type="area",areaChart.series[i].pointInterval=1,areaChart.series[i].color=dataDescription.colors[i],areaChart.series[i].dashStyle="solid",areaChart.yAxis[yAxisIndex].title.text=dataDescription.yAxisLabels[dataDescription.yAxisLabels>1?steadyCounter:0
],steadyCounter++}plotData(seriesIndex,dPLength,dataPoints,dataDescription.dataAttr,!1)}return areaChart},convertParetoChart:function(chartData,chartTemplate,dataDescription,settings,currentCompare){function getPreviousData(){for(var i=0;i<chartTemplate.series[0].data.length;i++)allParetoOptions.push(chartTemplate.xAxis.categories[i])}function createStackedBar(dataDescription,paretoChart){paretoChart.plotOptions={series:{shadow:!1,borderColor:dataDescription.borderColor,borderWidth:1},column:{stacking:"normal",dataLabels:{enabled:!0,color:Highcharts.theme&&Highcharts.theme.dataLabelsColor||"white"}}};var start=dataDescription.dataAttr[1].length,steadyCounter=0;compare&&(paretoChart.legend.enabled=!0);for(var f=seriesIndex;start+seriesIndex>f;f++)paretoChart.series[f]||(paretoChart.series[f]={data:[]}),paretoChart.series[f].data.push(bar[dataDescription.dataAttr[1][steadyCounter]]),paretoChart.series[f].name=""!==label?label+" "+dataDescription.labels[steadyCounter]:dataDescription.l
abels[steadyCounter],paretoChart.series[f].color=dataDescription.colors[f],paretoChart.series[f].stack=label,steadyCounter++}paretoChart=chartTemplate,"undefined"==typeof chartData&&(chartData=[]);var label,cdLength=chartData.length,compare=!1,allParetoOptions=[],stackedBar=!1;if(seriesIndex=0,"object"==typeof dataDescription.dataAttr[1]&&(stackedBar=!0),"YESTERDAY"===currentCompare?(label="Yesterday ",compare=!0,stackedBar&&(seriesIndex=dataDescription.dataAttr[1].length),getPreviousData()):"LAST_WEEK"===currentCompare?(label="Last Week ",compare=!0,stackedBar&&(seriesIndex=dataDescription.dataAttr[1].length),seriesIndex=getPreviousData()):(compare=!1,label="",paretoChart.xAxis.categories=[],paretoChart.series=[],paretoChart.series[0]={},paretoChart.series[0].data=[],paretoChart.legend.enabled=!1),paretoChart.plotOptions.series.borderColor=dataDescription.borderColor,compare&&!stackedBar){paretoChart.series[1]={},paretoChart.series[1].data=[];for(var i=0;i<allParetoOptions.length;i
++)paretoChart.series[1].data.push(0);paretoChart.legend.enabled=!0}for(var i=0;cdLength>i;i++){var bar=chartData[i];if(compare){var newLabel=bar[dataDescription.dataAttr[0]],newValue=bar[dataDescription.dataAttr[1]],previousIndex=allParetoOptions.indexOf(newLabel);previousIndex>-1&&("object"==typeof dataDescription.dataAttr[1]?createStackedBar(dataDescription,paretoChart,paretoChart.series.length):(paretoChart.series[1].data[previousIndex]=newValue,paretoChart.series[1].name=""!==label?label+" "+dataDescription.labels[0]:dataDescription.labels[0],paretoChart.series[1].color=dataDescription.colors[1]))}else paretoChart.xAxis.categories.push(bar[dataDescription.dataAttr[0]]),"object"==typeof dataDescription.dataAttr[1]?createStackedBar(dataDescription,paretoChart,paretoChart.series.length):(paretoChart.series[0].data.push(bar[dataDescription.dataAttr[1]]),paretoChart.series[0].name=dataDescription.labels[0],paretoChart.series[0].color=dataDescription.colors[0])}return paretoChart},co
nvertPieChart:function(chartData,chartTemplate,dataDescription,settings,currentCompare){var label,cdLength=chartData.length,compare=!1;pieChart=chartTemplate,"YESTERDAY"===currentCompare?(label="Yesterday ",compare=!1):"LAST_WEEK"===currentCompare?(label="Last Week ",compare=!1):(compare=!1,pieChart.series[0].data=[],pieChart.series[0].dataLabels&&"string"==typeof pieChart.series[0].dataLabels.formatter&&(pieChart.series[0].dataLabels.formatter=new Function(pieChart.series[0].dataLabels.formatter))),pieChart.plotOptions.pie.borderColor=dataDescription.borderColor,compare&&(pieChart.series[1].data=[],pieChart.series[1].dataLabels&&"string"==typeof pieChart.series[1].dataLabels.formatter&&(pieChart.series[1].dataLabels.formatter=new Function(pieChart.series[1].dataLabels.formatter)));for(var tempArray=[],i=0;cdLength>i;i++){var pie=chartData[i];tempArray.push({name:pie[dataDescription.dataAttr[0]],y:pie[dataDescription.dataAttr[1]],color:""})}sortJsonArrayByProperty(tempArray,"name");
for(var i=0;i<tempArray.length;i++)tempArray[i].color=dataDescription.colors[i];return compare?pieChart.series[1].data=tempArray:pieChart.series[0].data=tempArray,pieChart}}}),$(".sessions-bar").sparkline([3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,1],{type:"bar",barColor:"#c5c5c5",width:"800px",height:100,barWidth:12,barSpacing:"1px"}),AppServices.Controllers.controller("DataCtrl",["ug","$scope","$rootScope","$location",function(ug,$scope,$rootScope){var init=function(){$scope.verb="GET",$scope.display="",$scope.queryBodyDetail={},$scope.queryBodyDisplay="none",$scope.queryLimitDisplay="block",$scope.queryStringDisplay="block",$scope.entitySelected={},$scope.newCollection={},$rootScope.queryCollection={},$scope.data={},$scope.data.queryPath="",$scope.data.queryBody='{ "name":"value" }',$scope.data.searchString="",$scope.data.queryLimit=""},runQuery=function(verb){$scope.loading=!0;var queryPath=$scope.remove
FirstSlash($scope.data.queryPath||""),searchString=$scope.data.searchString||"",queryLimit=$scope.data.queryLimit||"",body=JSON.parse($scope.data.queryBody||"{}");"POST"==verb&&$scope.validateJson(!0)?ug.runDataPOSTQuery(queryPath,body):"PUT"==verb&&$scope.validateJson(!0)?ug.runDataPutQuery(queryPath,searchString,queryLimit,body):"DELETE"==verb?ug.runDataDeleteQuery(queryPath,searchString,queryLimit):ug.runDataQuery(queryPath,searchString,queryLimit)};$scope.$on("top-collections-received",function(event,collectionList){$scope.loading=!1;var ignoredCollections=["events"];ignoredCollections.forEach(function(ignoredCollection){collectionList.hasOwnProperty(ignoredCollection)&&delete collectionList[ignoredCollection]}),$scope.collectionList=collectionList,$scope.queryBoxesSelected=!1,$scope.queryPath||$scope.loadCollection("/"+collectionList[Object.keys(collectionList).sort()[0]].name),$scope.applyScope()}),$scope.$on("error-running-query",function(){$scope.loading=!1,runQuery("GET"),$
scope.applyScope()}),$scope.$on("entity-deleted",function(){$scope.deleteLoading=!1,$rootScope.$broadcast("alert","success","Entities deleted sucessfully"),$scope.queryBoxesSelected=!1,$scope.checkNextPrev(),$scope.applyScope()}),$scope.$on("entity-deleted-error",function(){$scope.deleteLoading=!1,runQuery("GET"),$scope.applyScope()}),$scope.$on("collection-created",function(){$scope.newCollection.name=""}),$scope.$on("query-received",function(event,collection){$scope.loading=!1,$rootScope.queryCollection=collection,ug.getIndexes($scope.data.queryPath),$scope.setDisplayType(),$scope.checkNextPrev(),$scope.applyScope(),$scope.queryBoxesSelected=!1}),$scope.$on("indexes-received",function(event,indexes){}),$scope.$on("app-changed",function(){init()}),$scope.setDisplayType=function(){$scope.display="generic"},$scope.deleteEntitiesDialog=function(modalId){$scope.deleteLoading=!1,$scope.deleteEntities($rootScope.queryCollection,"entity-deleted","error deleting entity"),$scope.hideModal(m
odalId)},$scope.newCollectionDialog=function(modalId){$scope.newCollection.name?(ug.createCollection($scope.newCollection.name),ug.getTopCollections(),$rootScope.$broadcast("alert","success","Collection created successfully."),$scope.hideModal(modalId)):$rootScope.$broadcast("alert","error","You must specify a collection name.")},$scope.addToPath=function(uuid){$scope.data.queryPath="/"+$rootScope.queryCollection._type+"/"+uuid},$scope.isDeep=function(item){return"[object Object]"===Object.prototype.toString.call(item)},$scope.loadCollection=function(type){$scope.data.queryPath="/"+type.substring(1,type.length),$scope.data.searchString="",$scope.data.queryLimit="",$scope.data.body='{ "name":"value" }',$scope.selectGET(),$scope.applyScope(),$scope.run()},$scope.selectGET=function(){$scope.queryBodyDisplay="none",$scope.queryLimitDisplay="block",$scope.queryStringDisplay="block",$scope.verb="GET"},$scope.selectPOST=function(){$scope.queryBodyDisplay="block",$scope.queryLimitDisplay="n
one",$scope.queryStringDisplay="none",$scope.verb="POST"},$scope.selectPUT=function(){$scope.queryBodyDisplay="block",$scope.queryLimitDisplay="block",$scope.queryStringDisplay="block",$scope.verb="PUT"},$scope.selectDELETE=function(){$scope.queryBodyDisplay="none",$scope.queryLimitDisplay="block",$scope.queryStringDisplay="block",$scope.verb="DELETE"},$scope.validateJson=function(skipMessage){var queryBody=$scope.data.queryBody;try{queryBody=JSON.parse(queryBody)}catch(e){return $rootScope.$broadcast("alert","error","JSON is not valid"),!1}return queryBody=JSON.stringify(queryBody,null,2),!skipMessage&&$rootScope.$broadcast("alert","success","JSON is valid"),$scope.data.queryBody=queryBody,!0},$scope.saveEntity=function(entity){if(!$scope.validateJson())return!1;var queryBody=entity._json;queryBody=JSON.parse(queryBody),$rootScope.selectedEntity.set(),$rootScope.selectedEntity.set(queryBody),$rootScope.selectedEntity.set("type",entity._data.type),$rootScope.selectedEntity.set("uuid
",entity._data.uuid),$rootScope.selectedEntity.save(function(err,data){err?$rootScope.$broadcast("alert","error","error: "+data.error_description):$rootScope.$broadcast("alert","success","entity saved")})},$scope.run=function(){$rootScope.queryCollection="";var verb=$scope.verb;runQuery(verb)},$scope.hasProperty=function(prop){var retval=!1;return"undefined"!=typeof $rootScope.queryCollection._list&&angular.forEach($rootScope.queryCollection._list,function(value){retval||value._data[prop]&&(retval=!0)}),retval},$scope.resetNextPrev=function(){$scope.previous_display="none",$scope.next_display="none"},$scope.checkNextPrev=function(){$scope.resetNextPrev(),$rootScope.queryCollection.hasPreviousPage()&&($scope.previous_display="default"),$rootScope.queryCollection.hasNextPage()&&($scope.next_display="default")},$scope.selectEntity=function(uuid){$rootScope.selectedEntity=$rootScope.queryCollection.getEntityByUUID(uuid),$scope.addToPath(uuid)},$scope.getJSONView=function(entity){var tem
pjson=entity.get(),queryBody=JSON.stringify(tempjson,null,2);queryBody=JSON.parse(queryBody),delete queryBody.metadata,delete queryBody.uuid,delete queryBody.created,delete queryBody.modified,delete queryBody.type,$scope.queryBody=JSON.stringify(queryBody,null,2)},$scope.getPrevious=function(){$rootScope.queryCollection.getPreviousPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting previous page of data"),$scope.checkNextPrev(),$scope.applyScope()})},$scope.getNext=function(){$rootScope.queryCollection.getNextPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting next page of data"),$scope.checkNextPrev(),$scope.applyScope()})},init(),$rootScope.queryCollection=$rootScope.queryCollection||{},$rootScope.selectedEntity={},$rootScope.queryCollection&&$rootScope.queryCollection._type&&($scope.loadCollection($rootScope.queryCollection._type),$scope.setDisplayType()),ug.getTopCollections(),$scope.resetNextPrev()}]),AppServices.Controllers.con
troller("EntityCtrl",["ug","$scope","$rootScope","$location",function(ug,$scope,$rootScope,$location){if(!$rootScope.selectedEntity)return void $location.path("/data");$scope.entityUUID=$rootScope.selectedEntity.get("uuid"),$scope.entityType=$rootScope.selectedEntity.get("type");var tempjson=$rootScope.selectedEntity.get(),queryBody=JSON.stringify(tempjson,null,2);queryBody=JSON.parse(queryBody),delete queryBody.metadata,delete queryBody.uuid,delete queryBody.created,delete queryBody.modified,delete queryBody.type,$scope.queryBody=JSON.stringify(queryBody,null,2),$scope.validateJson=function(){var queryBody=$scope.queryBody;try{queryBody=JSON.parse(queryBody)}catch(e){return $rootScope.$broadcast("alert","error","JSON is not valid"),!1}return queryBody=JSON.stringify(queryBody,null,2),$rootScope.$broadcast("alert","success","JSON is valid"),$scope.queryBody=queryBody,!0},$scope.saveEntity=function(){if(!$scope.validateJson())return!1;var queryBody=$scope.queryBody;queryBody=JSON.par
se(queryBody),$rootScope.selectedEntity.set(),$rootScope.selectedEntity.set(queryBody),$rootScope.selectedEntity.set("type",$scope.entityType),$rootScope.selectedEntity.set("uuid",$scope.entityUUID),$rootScope.selectedEntity.save(function(err,data){err?$rootScope.$broadcast("alert","error","error: "+data.error_description):$rootScope.$broadcast("alert","success","entity saved")})}}]),AppServices.Directives.directive("balloon",["$window","$timeout",function($window,$timeout){return{restrict:"ECA",scope:"=",template:'<div class="baloon {{direction}}" ng-transclude></div>',replace:!0,transclude:!0,link:function(scope,lElement,attrs){scope.direction=attrs.direction;var runScroll=!0,windowEl=angular.element($window);windowEl.on("scroll",function(){runScroll&&(lElement.addClass("fade-out"),$timeout(function(){lElement.addClass("hide")},1e3),runScroll=!1)})}}}]),AppServices.Directives.directive("bsmodal",["$rootScope",function($rootScope){return{restrict:"ECA",scope:{title:"@title",buttoni
d:"=buttonid",footertext:"=footertext",closelabel:"=closelabel"},transclude:!0,templateUrl:"dialogs/modal.html",replace:!0,link:function(scope,lElement,attrs,parentCtrl){scope.title=attrs.title,scope.footertext=attrs.footertext,scope.closelabel=attrs.closelabel,scope.close=attrs.close,scope.extrabutton=attrs.extrabutton,scope.extrabuttonlabel=attrs.extrabuttonlabel,scope.buttonId=attrs.buttonid,scope.closeDelegate=function(attr){scope.$parent[attr](attrs.id,scope)},scope.extraDelegate=function(attr){scope.dialogForm.$valid?(console.log(parentCtrl),scope.$parent[attr](attrs.id)):$rootScope.$broadcast("alert","error","Please check your form input and resubmit.")}}}}]),AppServices.Controllers.controller("AlertCtrl",["$scope","$rootScope","$timeout",function($scope,$rootScope,$timeout){$scope.alertDisplay="none",$scope.alerts=[],$scope.$on("alert",function(event,type,message,permanent){$scope.addAlert(type,message,permanent)}),$scope.$on("clear-alerts",function(){$scope.alerts=[]}),$sco
pe.addAlert=function(type,message,permanent){$scope.alertDisplay="block",$scope.alerts.push({type:type,msg:message}),$scope.applyScope(),permanent||$timeout(function(){$scope.alerts.shift()},5e3)},$scope.closeAlert=function(index){$scope.alerts.splice(index,1)}}]),AppServices.Directives.directive("alerti",["$rootScope","$timeout",function($rootScope,$timeout){return{restrict:"ECA",scope:{type:"=type",closeable:"@closeable",index:"&index"},template:'<div class="alert" ng-class="type && \'alert-\' + type"> <button ng-show="closeable" type="button" class="close" ng-click="closeAlert(index)">×</button> <i ng-if="type === \'warning\'" class="pictogram pull-left" style="font-size:3em;line-height:0.4">💥</i> <i ng-if="type === \'info\'" class="pictogram pull-left">ℹ</i> <i ng-if="type === \'error\'" class="pictogram pull-left">⚡</i> <i ng-if="type === \'success\'" class="pictogram pull-left">👍</i><div ng-transclude></div></div>',replace:!0,tr
ansclude:!0,link:function(scope,lElement,attrs){$timeout(function(){lElement.addClass("fade-out")},4e3),lElement.click(function(){attrs.index&&scope.$parent.closeAlert(attrs.index)}),setTimeout(function(){lElement.addClass("alert-animate")},10)}}}]),AppServices.Directives.directive("appswitcher",["$rootScope",function(){return{restrict:"ECA",scope:"=",templateUrl:"global/appswitcher-template.html",replace:!0,transclude:!0,link:function(){function globalNavDetail(){$("#globalNavDetail > div").removeClass(classNameOpen),$("#globalNavDetailApiPlatform").addClass(classNameOpen)}var classNameOpen="open";$("ul.nav li.dropdownContainingSubmenu").hover(function(){$(this).addClass(classNameOpen)},function(){$(this).removeClass(classNameOpen)}),$("#globalNav > a").mouseover(globalNavDetail),$("#globalNavDetail").mouseover(globalNavDetail),$("#globalNavSubmenuContainer ul li").mouseover(function(){$("#globalNavDetail > div").removeClass(classNameOpen),$("#"+this.getAttribute("data-globalNavDet
ail")).addClass(classNameOpen)})}}}]),AppServices.Services.factory("help",function($rootScope,$http,$analytics){$rootScope.help={},$rootScope.help.helpButtonStatus="Enable Help",$rootScope.help.helpTooltipsEnabled=!1,$rootScope.help.clicked=!1,$rootScope.help.showHelpButtons=!1;
var helpStartTime,introjs_step;$rootScope.help.sendTooltipGA=function(tooltipName){$analytics.eventTrack("tooltip - "+$rootScope.currentPath,{category:"App Services",label:tooltipName})},$rootScope.help.toggleTooltips=function(){0==$rootScope.help.helpTooltipsEnabled?($rootScope.help.helpButtonStatus="Disable Help",$rootScope.help.helpTooltipsEnabled=!0,showHelpModal("tooltips")):($rootScope.help.helpButtonStatus="Enable Help",$rootScope.help.helpTooltipsEnabled=!1)},$rootScope.help.IntroOptions={steps:[],showStepNumbers:!1,exitOnOverlayClick:!0,exitOnEsc:!0,nextLabel:"Next",prevLabel:"Back",skipLabel:"Got It",doneLabel:"Got it"},$rootScope.$on("$routeChangeSuccess",function(event,current){var path=current.$$route.originalPath;"/org-overview"==path?($rootScope.help.showHelpButtons=!0,getHelpJson(path).success(function(json){var helpJson=json;setHelpStrings(helpJson),showHelpModal("tour")})):$rootScope.help.showHelpButtons=!1});var showHelpModal=function(helpType){var shouldHelp=loca
tion.search.indexOf("noHelp")<=0;"tour"!=helpType||getHelpStatus(helpType)?"tooltips"!=helpType||getHelpStatus(helpType)||shouldHelp&&$rootScope.showModal("tooltips"):shouldHelp&&$rootScope.showModal("introjs")},setHelpStrings=function(helpJson){$rootScope.help.IntroOptions.steps=helpJson.introjs,angular.forEach(helpJson.tooltip,function(value,binding){$rootScope[binding]=value})};$rootScope.help.introjs_StartEvent=function(){helpStartTime=Date.now(),introjs_step=1},$rootScope.help.introjs_ExitEvent=function(){var introjs_time=Math.round((Date.now()-helpStartTime)/1e3);$analytics.eventTrack("introjs timing - "+$rootScope.currentPath,{category:"App Services",label:introjs_time+"s"}),$analytics.eventTrack("introjs exit - "+$rootScope.currentPath,{category:"App Services",label:"step"+introjs_step})},$rootScope.help.introjs_ChangeEvent=function(){introjs_step++};var getHelpJson=function(path){return $http.jsonp("http://sdk.apigee.com.s3.amazonaws.com/portal_help"+path+"/helpJson.json?ca
llback=JSON_CALLBACK")},getHelpStatus=function(helpType){var status;return"tour"==helpType?(status=localStorage.getItem("ftu_tour"),localStorage.setItem("ftu_tour","false")):"tooltips"==helpType&&(status=localStorage.getItem("ftu_tooltips"),localStorage.setItem("ftu_tooltips","false")),status}}),AppServices.Directives.directive("insecureBanner",["$rootScope","ug",function($rootScope,ug){return{restrict:"E",transclude:!0,templateUrl:"global/insecure-banner.html",link:function(scope){scope.securityWarning=!1,scope.$on("roles-received",function(evt,roles){scope.securityWarning=!1,roles&&roles._list&&roles._list.forEach(function(roleHolder){var role=roleHolder._data;"GUEST"===role.name.toUpperCase()&&roleHolder.getPermissions(function(err){err||roleHolder.permissions&&roleHolder.permissions.forEach(function(permission){permission.path.indexOf("/**")>=0&&(scope.securityWarning=!0,scope.applyScope())})})})});var initialized=!1;scope.$on("app-initialized",function(){!initialized&&ug.getRol
es(),initialized=!0}),scope.$on("app-changed",function(){scope.securityWarning=!1,ug.getRoles()})}}}]),AppServices.Constants.constant("configuration",{ITEMS_URL:"global/temp.json"}),AppServices.Controllers.controller("PageCtrl",["ug","help","utility","$scope","$rootScope","$location","$routeParams","$q","$route","$log","$analytics",function(ug,help,utility,$scope,$rootScope,$location,$routeParams,$q,$route,$log,$analytics){var initScopeVariables=function(){$scope.loadingText="Loading...",$scope.use_sso=!1,$scope.newApp={name:""},$scope.getPerm="",$scope.postPerm="",$scope.putPerm="",$scope.deletePerm="",$scope.usersTypeaheadValues=[],$scope.groupsTypeaheadValues=[],$scope.rolesTypeaheadValues=[],$rootScope.sdkActive=!1,$rootScope.demoData=!1,$scope.queryStringApplied=!1,$rootScope.autoUpdateTimer=Usergrid.config?Usergrid.config.autoUpdateTimer:61,$rootScope.requiresDeveloperKey=Usergrid.config?Usergrid.config.client.requiresDeveloperKey:!1,$rootScope.loaded=$rootScope.activeUI=!1;fo
r(var key in Usergrid.regex)$scope[key]=Usergrid.regex[key];$scope.options=Usergrid.options;var getQuery=function(){for(var m,result={},queryString=location.search.slice(1),re=/([^&=]+)=([^&]*)/g;m=re.exec(queryString);)result[decodeURIComponent(m[1])]=decodeURIComponent(m[2]);return result};$scope.queryString=getQuery()};initScopeVariables(),$rootScope.urls=function(){var urls=ug.getUrls();return $scope.apiUrl=urls.apiUrl,$scope.use_sso=urls.use_sso,urls},$rootScope.gotoPage=function(path){$location.path(path)};var notRegistration=function(){return"/forgot-password"!==$location.path()&&"/register"!==$location.path()},verifyUser=function(){"/login"!==$location.path().slice(0,"/login".length)&&($rootScope.currentPath=$location.path()),$routeParams.access_token&&$routeParams.admin_email&&$routeParams.uuid&&(ug.set("token",$routeParams.access_token),ug.set("email",$routeParams.admin_email),ug.set("uuid",$routeParams.uuid),$location.search("access_token",null),$location.search("admin_em
ail",null),$location.search("uuid",null)),ug.checkAuthentication(!0)};$scope.profile=function(){$scope.use_sso?window.location=$rootScope.urls().PROFILE_URL+"?callback="+encodeURIComponent($location.absUrl()):$location.path("/profile")},$rootScope.showModal=function(id){$("#"+id).modal("show")},$rootScope.hideModal=function(id){$("#"+id).modal("hide")},$scope.deleteEntities=function(collection,successBroadcast,errorMessage){collection.resetEntityPointer();for(var entitiesToDelete=[];collection.hasNextEntity();){var entity=collection.getNextEntity(),checked=entity.checked;checked&&entitiesToDelete.push(entity)}for(var count=0,success=!1,i=0;i<entitiesToDelete.length;i++){var entity=entitiesToDelete[i];collection.destroyEntity(entity,function(err){count++,err?($rootScope.$broadcast("alert","error",errorMessage),$rootScope.$broadcast(successBroadcast+"-error",err)):success=!0,count===entitiesToDelete.length&&(success&&$rootScope.$broadcast(successBroadcast),$scope.applyScope())})}},$sc
ope.selectAllEntities=function(list,that,varName,setValue){varName=varName||"master";var val=that[varName];void 0==setValue&&(setValue=!0),setValue&&(that[varName]=val=!val),list.forEach(function(entitiy){entitiy.checked=val})},$scope.createPermission=function(type,entity,path,permissions){"/"!=path.charAt(0)&&(path="/"+path);var ops="",s="";permissions.getPerm&&(ops="get",s=","),permissions.postPerm&&(ops=ops+s+"post",s=","),permissions.putPerm&&(ops=ops+s+"put",s=","),permissions.deletePerm&&(ops=ops+s+"delete",s=",");var permission=ops+":"+path;return permission},$scope.formatDate=function(date){return new Date(date).toUTCString()},$scope.clearCheckbox=function(id){$("#"+id).attr("checked")&&$("#"+id).click()},$scope.removeFirstSlash=function(path){return 0===path.indexOf("/")?path.substring(1,path.length):path},$scope.applyScope=function(cb){return cb="function"==typeof cb?cb:function(){},this.$$phase?void cb():this.$apply(cb)},$scope.valueSelected=function(list){return list&&li
st.some(function(item){return item.checked})},$scope.sendHelp=function(modalId){ug.jsonpRaw("apigeeuihelpemail","",{useremail:$rootScope.userEmail}).then(function(){$rootScope.$broadcast("alert","success","Email sent. Our team will be in touch with you shortly.")},function(){$rootScope.$broadcast("alert","error","Problem Sending Email. Try sending an email to mobile@apigee.com.")}),$scope.hideModal(modalId)},$scope.$on("users-typeahead-received",function(event,users){$scope.usersTypeaheadValues=users,$scope.$$phase||$scope.$apply()}),$scope.$on("groups-typeahead-received",function(event,groups){$scope.groupsTypeaheadValues=groups,$scope.$$phase||$scope.$apply()}),$scope.$on("roles-typeahead-received",function(event,roles){$scope.rolesTypeaheadValues=roles,$scope.$$phase||$scope.$apply()}),$scope.$on("checkAuthentication-success",function(){sessionStorage.setItem("authenticateAttempts",0),$scope.loaded=!0,$rootScope.activeUI=!0,$scope.applyScope(),$scope.queryStringApplied||($scope.q
ueryStringApplied=!0,setTimeout(function(){$scope.queryString.org&&$rootScope.$broadcast("change-org",$scope.queryString.org)},1e3)),$rootScope.$broadcast("app-initialized")}),$scope.$on("checkAuthentication-error",function(args,err,missingData,email){if($scope.loaded=!0,err&&!$scope.use_sso&¬Registration())ug.logout(),$location.path("/login"),$scope.applyScope();else if(missingData&¬Registration()){if(!email&&$scope.use_sso)return void(window.location=$rootScope.urls().LOGIN_URL+"?callback="+encodeURIComponent($location.absUrl().split("?")[0]));ug.reAuthenticate(email)}}),$scope.$on("reAuthenticate-success",function(args,err,data,user,organizations,applications){sessionStorage.setItem("authenticateAttempts",0),$rootScope.$broadcast("loginSuccesful",user,organizations,applications),$rootScope.$emit("loginSuccesful",user,organizations,applications),$rootScope.$broadcast("checkAuthentication-success"),$scope.applyScope(function(){$scope.deferredLogin.resolve(),$location.path("/o
rg-overview")})});var authenticateAttempts=parseInt(sessionStorage.getItem("authenticateAttempts")||0);$scope.$on("reAuthenticate-error",function(){if($scope.use_sso){if(authenticateAttempts++>5)return void $rootScope.$broadcast("alert","error","There is an issue with authentication. Please contact support.");console.error("Failed to login via sso "+authenticateAttempts),sessionStorage.setItem("authenticateAttempts",authenticateAttempts),window.location=$rootScope.urls().LOGIN_URL+"?callback="+encodeURIComponent($location.absUrl().split("?")[0])}else notRegistration()&&(ug.logout(),$location.path("/login"),$scope.applyScope())}),$scope.$on("loginSuccessful",function(){$rootScope.activeUI=!0}),$scope.$on("app-changed",function(args,oldVal,newVal,preventReload){newVal===oldVal||preventReload||$route.reload()}),$scope.$on("org-changed",function(){ug.getApplications(),$route.reload()}),$scope.$on("app-settings-received",function(){}),$scope.$on("request-times-slow",function(){$rootScope
.$broadcast("alert","info","We are experiencing performance issues on our server. Please click Get Help for support if this continues.")});var lastPage="";$scope.$on("$routeChangeSuccess",function(){verifyUser(),$scope.showDemoBar="/performance"===$location.path().slice(0,"/performance".length),$scope.showDemoBar||($rootScope.demoData=!1),setTimeout(function(){lastPage=""},50);var path=window.location.pathname.replace("index-debug.html","");""===lastPage&&$analytics.pageTrack((path+$location.path()).replace("//","/")),lastPage=$location.path()}),$scope.$on("applications-received",function(event,applications){$scope.applications=applications,$scope.hasApplications=Object.keys(applications).length>0}),ug.getAppSettings(),$rootScope.startFirstTimeUser=function(){$rootScope.hideModal("introjs"),$rootScope.help.introjs_StartEvent(),$scope.startHelp()}}]),AppServices.Directives.directive("pageTitle",["$rootScope","ug",function($rootScope){return{restrict:"E",transclude:!0,templateUrl:"gl
obal/page-title.html",link:function(scope,lElement,attrs){scope.title=attrs.title,scope.icon=attrs.icon,scope.showHelp=function(){$("#need-help").modal("show")},scope.sendHelp=function(){data.jsonp_raw("apigeeuihelpemail","",{useremail:$rootScope.userEmail}).then(function(){$rootScope.$broadcast("alert","success","Email sent. Our team will be in touch with you shortly.")},function(){$rootScope.$broadcast("alert","error","Problem Sending Email. Try sending an email to mobile@apigee.com.")}),$("#need-help").modal("hide")}}}}]),AppServices.Services.factory("ug",function(configuration,$rootScope,utility,$q,$http,$resource,$log,$analytics,$location){function reportError(data,config){try{$analytics.eventTrack("error",{category:"App Services",label:data+":"+config.url+":"+(sessionStorage.apigee_uuid||"na")})}catch(e){console.log(e)}}var requestTimes=[],running=!1,currentRequests={},getAccessToken=function(){return sessionStorage.getItem("accessToken")};return{get:function(prop,isObject){re
turn isObject?this.client().getObject(prop):this.client().get(prop)},set:function(prop,value){this.client().set(prop,value)},getUrls:function(){var host=$location.host(),qs=$location.search(),BASE_URL="",DATA_URL="",use_sso=!1;switch(!0){case"appservices.apigee.com"===host&&location.pathname.indexOf("/dit")>=0:BASE_URL="https://accounts.jupiter.apigee.net",DATA_URL="http://apigee-internal-prod.jupiter.apigee.net",use_sso=!0;break;case"appservices.apigee.com"===host&&location.pathname.indexOf("/mars")>=0:BASE_URL="https://accounts.mars.apigee.net",DATA_URL="http://apigee-internal-prod.mars.apigee.net",use_sso=!0;break;case"appservices.apigee.com"===host:DATA_URL=Usergrid.overrideUrl;break;case"apigee.com"===host:BASE_URL="https://accounts.apigee.com",DATA_URL="https://api.usergrid.com",use_sso=!0;break;case"usergrid.dev"===host:DATA_URL="https://api.usergrid.com";break;default:DATA_URL=Usergrid.overrideUrl}return DATA_URL=qs.api_url||DATA_URL,DATA_URL=DATA_URL.lastIndexOf("/")===DATA
_URL.length-1?DATA_URL.substring(0,DATA_URL.length-1):DATA_URL,{DATA_URL:DATA_URL,LOGIN_URL:BASE_URL+"/accounts/sign_in",PROFILE_URL:BASE_URL+"/accounts/my_account",LOGOUT_URL:BASE_URL+"/accounts/sign_out",apiUrl:DATA_URL,use_sso:use_sso}},orgLogin:function(username,password){var self=this;this.client().set("email",username),this.client().set("token",null),this.client().orgLogin(username,password,function(err,data,user,organizations,applications){err?$rootScope.$broadcast("loginFailed",err,data):self.initializeCurrentUser(function(){$rootScope.$broadcast("loginSuccesful",user,organizations,applications)})})},checkAuthentication:function(force){var ug=this,client=ug.client(),initialize=function(){ug.initializeCurrentUser(function(){$rootScope.userEmail=client.get("email"),$rootScope.organizations=client.getObject("organizations"),$rootScope.applications=client.getObject("applications"),$rootScope.currentOrg=client.get("orgName"),$rootScope.currentApp=client.get("appName");var key,siz
e=0;for(key in $rootScope.applications)$rootScope.applications.hasOwnProperty(key)&&size++;$rootScope.$broadcast("checkAuthentication-success",client.getObject("organizations"),client.getObject("applications"),client.get("orgName"),client.get("appName"),client.get("email"))})},isAuthenticated=function(){var authenticated=null!==client.get("token")&&null!==client.get("organizations");return authenticated&&initialize(),authenticated};if(!isAuthenticated()||force){if(!client.get("token"))return $rootScope.$broadcast("checkAuthentication-error","no token",{},client.get("email"));this.client().reAuthenticateLite(function(err){var missingData=err||!client.get("orgName")||!client.get("appName")||!client.getObject("organizations")||!client.getObject("applications"),email=client.get("email");err||missingData?$rootScope.$broadcast("checkAuthentication-error",err,missingData,email):initialize()})}},reAuthenticate:function(email,eventOveride){var ug=this;this.client().reAuthenticate(email,funct
ion(err,data,user,organizations,applications){err||($rootScope.currentUser=user),err||($rootScope.userEmail=user.get("email"),$rootScope.organizations=organizations,$rootScope.applications=applications,$rootScope.currentOrg=ug.get("orgName"),$rootScope.currentApp=ug.get("appName"),$rootScope.currentUser=user._data,$rootScope.currentUser.profileImg=utility.get_gravatar($rootScope.currentUser.email)),$rootScope.$broadcast((eventOveride||"reAuthenticate")+"-"+(err?"error":"success"),err,data,user,organizations,applications)})},logoutCallback:function(){$rootScope.$broadcast("userNotAuthenticated")},logout:function(){$rootScope.activeUI=!1,$rootScope.userEmail="user@apigee.com",$rootScope.organizations={noOrg:{name:"No Orgs Found"}},$rootScope.applications={noApp:{name:"No Apps Found"}},$rootScope.currentOrg="No Org Found",$rootScope.currentApp="No App Found",sessionStorage.setItem("accessToken",null),sessionStorage.setItem("userUUID",null),sessionStorage.setItem("userEmail",null),this.
client().logout(),this._client=null},client:function(){var options={buildCurl:!0,logging:!0};return Usergrid.options&&Usergrid.options.client&&(options.keys=Usergrid.options.client),this._client=this._client||new Usergrid.Client(options,$rootScope.urls().DATA_URL),this._client},setClientProperty:function(key,value){this.client().set(key,value)},getTopCollections:function(){var options={method:"GET",endpoint:""};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error getting collections");else{var collections=data.entities[0].metadata.collections;$rootScope.$broadcast("top-collections-received",collections)}})},createCollection:function(collectionName){var collections={};collections[collectionName]={};var metadata={metadata:{collections:collections}},options={method:"PUT",body:metadata,endpoint:""};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error creating collection"):$rootScope.$broadcast("colle
ction-created",collections)})},getApplications:function(){this.client().getApplications(function(err,applications){err?applications&&console.error(applications):$rootScope.$broadcast("applications-received",applications)})},getAdministrators:function(){this.client().getAdministrators(function(err,administrators){err&&$rootScope.$broadcast("alert","error","error getting administrators"),$rootScope.$broadcast("administrators-received",administrators)})},createApplication:function(appName){this.client().createApplication(appName,function(err,applications){err?$rootScope.$broadcast("alert","error","error creating application"):($rootScope.$broadcast("applications-created",applications,appName),$rootScope.$broadcast("applications-received",applications))})},createAdministrator:function(adminName){this.client().createAdministrator(adminName,function(err,administrators){err&&$rootScope.$broadcast("alert","error","error creating administrator"),$rootScope.$broadcast("administrators-received
",administrators)})},getFeed:function(){var options={method:"GET",endpoint:"management/organizations/"+this.client().get("orgName")+"/feed",mQuery:!0};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error getting feed");else{var feedData=data.entities,feed=[],i=0;for(i=0;i<feedData.length;i++){var date=new Date(feedData[i].created).toUTCString(),title=feedData[i].title,n=title.indexOf(">");title=title.substring(n+1,title.length),n=title.indexOf(">"),title=title.substring(n+1,title.length),feedData[i].actor&&(title=feedData[i].actor.displayName+" "+title),feed.push({date:date,title:title})}0===i&&feed.push({date:"",title:"No Activities found."}),$rootScope.$broadcast("feed-received",feed)}})},createGroup:function(path,title){var options={path:path,title:title},self=this;this.groupsCollection.addEntity(options,function(err){err?$rootScope.$broadcast("groups-create-error",err):($rootScope.$broadcast("groups-create-success",self.groupsColle
ction),$rootScope.$broadcast("groups-received",self.groupsCollection))})},createRole:function(name,title){var options={name:name,title:title},self=this;this.rolesCollection.addEntity(options,function(err){err?$rootScope.$broadcast("alert","error","error creating role"):$rootScope.$broadcast("roles-received",self.rolesCollection)})},createUser:function(username,name,email,password){var options={username:username,name:name,email:email,password:password},self=this;this.usersCollection.addEntity(options,function(err,data){err?"string"==typeof data?$rootScope.$broadcast("alert","error","error: "+data):$rootScope.$broadcast("alert","error","error creating user. the email address might already exist."):($rootScope.$broadcast("users-create-success",self.usersCollection),$rootScope.$broadcast("users-received",self.usersCollection))})},getCollection:function(type,path,orderBy,query,limit){var options={type:path,qs:{}};query&&(options.qs.ql=query),options.qs.ql=options.qs.ql?options.qs.ql+" or
der by "+(orderBy||"created desc"):" order by "+(orderBy||"created desc"),limit&&(options.qs.limit=limit),this.client().createCollection(options,function(err,collection,data){err?$rootScope.$broadcast("alert","error","error getting "+collection._type+": "+data.error_description):$rootScope.$broadcast(type+"-received",collection),$rootScope.$$phase||$rootScope.$apply()})},runDataQuery:function(queryPath,searchString,queryLimit){this.getCollection("query",queryPath,null,searchString,queryLimit)},runDataPOSTQuery:function(queryPath,body){var self=this,options={method:"POST",endpoint:queryPath,body:body};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error: "+data.error_description),$rootScope.$broadcast("error-running-query",data);else{var queryPath=data.path;self.getCollection("query",queryPath,null,"order by modified DESC",null)}})},runDataPutQuery:function(queryPath,searchString,queryLimit,body){var self=this,options={method:"PUT",endp
oint:queryPath,body:body};searchString&&(options.qs.ql=searchString),queryLimit&&(options.qs.queryLimit=queryLimit),this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error: "+data.error_description);else{var queryPath=data.path;self.getCollection("query",queryPath,null,"order by modified DESC",null)}})},runDataDeleteQuery:function(queryPath,searchString,queryLimit){var self=this,options={method:"DELETE",endpoint:queryPath};searchString&&(options.qs.ql=searchString),queryLimit&&(options.qs.queryLimit=queryLimit),this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error: "+data.error_description);else{var queryPath=data.path;self.getCollection("query",queryPath,null,"order by modified DESC",null)}})},getUsers:function(){this.getCollection("users","users","username");var self=this;$rootScope.$on("users-received",function(evt,users){self.usersCollection=users})},getGroups:function(){this.getCollectio
n("groups","groups","title");var self=this;$rootScope.$on("groups-received",function(event,roles){self.groupsCollection=roles})},getRoles:function(){this.getCollection("roles","roles","name");var self=this;$rootScope.$on("roles-received",function(event,roles){self.rolesCollection=roles})},getNotifiers:function(){var query="",limit="100",self=this;this.getCollection("notifiers","notifiers","created",query,limit),$rootScope.$on("notifiers-received",function(event,notifiers){self.notifiersCollection=notifiers})},getNotificationHistory:function(type){var query=null;type&&(query="select * where state = '"+type+"'"),this.getCollection("notifications","notifications","created desc",query);var self=this;$rootScope.$on("notifications-received",function(event,notifications){self.notificationCollection=notifications})},getNotificationReceipts:function(uuid){this.getCollection("receipts","notifications/"+uuid+"/receipts");var self=this;$rootScope.$on("receipts-received",function(event,receipts)
{self.receiptsCollection=receipts})},getIndexes:function(path){var options={method:"GET",endpoint:path.split("/").concat("indexes").filter(function(bit){return bit&&bit.length}).join("/")};this.client().request(options,function(err,data){err?$rootScope.$broadcast("alert","error","Problem getting indexes: "+data.error):$rootScope.$broadcast("indexes-received",data.data)})},sendNotification:function(path,body){var options={method:"POST",endpoint:path,body:body};this.client().request(options,function(err,data){err?$rootScope.$broadcast("alert","error","Problem creating notification: "+data.error):$rootScope.$broadcast("send-notification-complete")})},getRolesUsers:function(username){var options={type:"roles/users/"+username,qs:{ql:"order by username"}};this.client().createCollection(options,function(err,users){err?$rootScope.$broadcast("alert","error","error getting users"):$rootScope.$broadcast("users-received",users)})},getTypeAheadData:function(type,searchString,searchBy,orderBy){va
r search="",qs={limit:100};searchString&&(search="select * where "+searchBy+" = '"+searchString+"'"),orderBy&&(search=search+" order by "+orderBy),search&&(qs.ql=search);var options={method:"GET",endpoint:type,qs:qs};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error getting "+type);else{var entities=data.entities;$rootScope.$broadcast(type+"-typeahead-received",entities)}})},getUsersTypeAhead:function(searchString){this.getTypeAheadData("users",searchString,"username","username")},getGroupsTypeAhead:function(searchString){this.getTypeAheadData("groups",searchString,"path","path")},getRolesTypeAhead:function(searchString){this.getTypeAheadData("roles",searchString,"name","name")},getGroupsForUser:function(user){var options={type:"users/"+user+"/groups"};this.client().createCollection(options,function(err,groups){err?$rootScope.$broadcast("alert","error","error getting groups"):$rootScope.$broadcast("user-groups-received",groups)})},a
ddUserToGroup:function(user,group){var options={type:"users/"+user+"/groups/"+group};this.client().createEntity(options,function(err){err?$rootScope.$broadcast("alert","error","error adding user to group"):$rootScope.$broadcast("user-added-to-group-received")})},addUserToRole:function(user,role){var options={method:"POST",endpoint:"roles/"+role+"/users/"+user};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error adding user to role"):$rootScope.$broadcast("role-update-received")})},addGroupToRole:function(group,role){var options={method:"POST",endpoint:"roles/"+role+"/groups/"+group};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error adding group to role"):$rootScope.$broadcast("role-update-received")})},followUser:function(user){var username=$rootScope.selectedUser.get("uuid"),options={method:"POST",endpoint:"users/"+username+"/following/users/"+user};this.client().request(options,function(err){err?$r
ootScope.$broadcast("alert","error","error following user"):$rootScope.$broadcast("follow-user-received")})},newPermission:function(permission,type,entity){var options={method:"POST",endpoint:type+"/"+entity+"/permissions",body:{permission:permission}};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error adding permission"):$rootScope.$broadcast("permission-update-received")})},newUserPermission:function(permission,username){this.newPermission(permission,"users",username)},newGroupPermission:function(permission,path){this.newPermission(permission,"groups",path)},newRolePermission:function(permission,name){this.newPermission(permission,"roles",name)},deletePermission:function(permission,type,entity){var options={method:"DELETE",endpoint:type+"/"+entity+"/permissions",qs:{permission:permission}};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error deleting permission"):$rootScope.$broadcast("permission-upd
ate-received")})},deleteUserPermission:function(permission,user){this.deletePermission(permission,"users",user)},deleteGroupPermission:function(permission,group){this.deletePermission(permission,"groups",group)},deleteRolePermission:function(permission,rolename){this.deletePermission(permission,"roles",rolename)},removeUserFromRole:function(user,role){var options={method:"DELETE",endpoint:"roles/"+role+"/users/"+user};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error removing user from role"):$rootScope.$broadcast("role-update-received")})},removeUserFromGroup:function(group,role){var options={method:"DELETE",endpoint:"roles/"+role+"/groups/"+group};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error removing role from the group"):$rootScope.$broadcast("role-update-received")})},createAndroidNotifier:function(name,APIkey){var options={method:"POST",endpoint:"notifiers",body:{apiKey:APIkey,name:name,p
rovider:"google"}};this.client().request(options,function(err,data){err?(console.error(data),$rootScope.$broadcast("alert","error","error creating notifier ")):($rootScope.$broadcast("alert","success","New notifier created successfully."),$rootScope.$broadcast("notifier-update"))})},createAppleNotifier:function(file,name,environment,certificatePassword){var provider="apple",formData=new FormData;formData.append("p12Certificate",file),formData.append("name",name),formData.append("provider",provider),formData.append("environment",environment),formData.append("certificatePassword",certificatePassword||"");var options={method:"POST",endpoint:"notifiers",formData:formData};this.client().request(options,function(err,data){err?(console.error(data),$rootScope.$broadcast("alert","error",data.error_description||"error creating notifier")):($rootScope.$broadcast("alert","success","New notifier created successfully."),$rootScope.$broadcast("notifier-update"))})},deleteNotifier:function(name){va
r options={method:"DELETE",endpoint:"notifiers/"+name};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error deleting notifier"):$rootScope.$broadcast("notifier-update")})},initializeCurrentUser:function(callback){if(callback=callback||function(){},$rootScope.currentUser&&!$rootScope.currentUser.reset)return callback($rootScope.currentUser),$rootScope.$broadcast("current-user-initialized","");var options={method:"GET",endpoint:"management/users/"+this.client().get("email"),mQuery:!0};this.client().request(options,function(err,data){err?$rootScope.$broadcast("alert","error","Error getting user info"):($rootScope.currentUser=data.data,$rootScope.currentUser.profileImg=utility.get_gravatar($rootScope.currentUser.email),$rootScope.userEmail=$rootScope.currentUser.email,callback($rootScope.currentUser),$rootScope.$broadcast("current-user-initialized",$rootScope.currentUser))})},updateUser:function(user){var body=$rootScope.currentUser;body.username=
user.username,body.name=user.name,body.email=user.email;var options={method:"PUT",endpoint:"management/users/"+user.uuid+"/",mQuery:!0,body:body},self=this;this.client().request(options,function(err,data){return self.client().set("email",user.email),self.client().set("username",user.username),err?$rootScope.$broadcast("user-update-error",data):($rootScope.currentUser.reset=!0,void self.initializeCurrentUser(function(){$rootScope.$broadcast("user-update-success",$rootScope.currentUser)}))})},resetUserPassword:function(user){var pwdata={};pwdata.oldpassword=user.oldPassword,pwdata.newpassword=user.newPassword,pwdata.username=user.username;var options={method:"PUT",endpoint:"users/"+pwdata.uuid+"/",body:pwdata};this.client().request(options,function(err){return err?$rootScope.$broadcast("alert","error","Error resetting password"):($rootScope.currentUser.oldPassword="",$rootScope.currentUser.newPassword="",void $rootScope.$broadcast("user-reset-password-success",$rootScope.currentUser))
})},getOrgCredentials:function(){var options={method:"GET",endpoint:"management/organizations/"+this.client().get("orgName")+"/credentials",mQuery:!0};this.client().request(options,function(err,data){err&&data.credentials?$rootScope.$broadcast("alert","error","Error getting credentials"):$rootScope.$broadcast("org-creds-updated",data.credentials)})},regenerateOrgCredentials:function(){var options={method:"POST",endpoint:"management/organizations/"+this.client().get("orgName")+"/credentials",mQuery:!0};this.client().request(options,function(err,data){err&&data.credentials?$rootScope.$broadcast("alert","error","Error regenerating credentials"):($rootScope.$broadcast("alert","success","Regeneration of credentials complete."),$rootScope.$broadcast("org-creds-updated",data.credentials))})},getAppCredentials:function(){var options={method:"GET",endpoint:"credentials"};this.client().request(options,function(err,data){err&&data.credentials?$rootScope.$broadcast("alert","error","Error gettin
g credentials"):$rootScope.$broadcast("app-creds-updated",data.credentials)})},regenerateAppCredentials:function(){var options={method:"POST",endpoint:"credentials"};
this.client().request(options,function(err,data){err&&data.credentials?$rootScope.$broadcast("alert","error","Error regenerating credentials"):($rootScope.$broadcast("alert","success","Regeneration of credentials complete."),$rootScope.$broadcast("app-creds-updated",data.credentials))})},signUpUser:function(orgName,userName,name,email,password){var formData={organization:orgName,username:userName,name:name,email:email,password:password},options={method:"POST",endpoint:"management/organizations",body:formData,mQuery:!0},client=this.client();client.request(options,function(err,data){err?$rootScope.$broadcast("register-error",data):$rootScope.$broadcast("register-success",data)})},resendActivationLink:function(id){var options={method:"GET",endpoint:"management/users/"+id+"/reactivate",mQuery:!0};this.client().request(options,function(err,data){err?$rootScope.$broadcast("resend-activate-error",data):$rootScope.$broadcast("resend-activate-success",data)})},getAppSettings:function(){$root
Scope.$broadcast("app-settings-received",{})},getActivities:function(){this.client().request({method:"GET",endpoint:"activities",qs:{limit:200}},function(err,data){if(err)return $rootScope.$broadcast("app-activities-error",data);var entities=data.entities;entities.forEach(function(entity){entity.actor.picture?(entity.actor.picture=entity.actor.picture.replace(/^http:\/\/www.gravatar/i,"https://secure.gravatar"),entity.actor.picture=~entity.actor.picture.indexOf("http")?entity.actor.picture:"https://apigee.com/usergrid/img/user_profile.png"):entity.actor.picture=window.location.protocol+"//"+window.location.host+window.location.pathname+"img/user_profile.png"}),$rootScope.$broadcast("app-activities-received",data.entities)})},getEntityActivities:function(entity,isFeed){var route=isFeed?"feed":"activities",endpoint=entity.get("type")+"/"+entity.get("uuid")+"/"+route,options={method:"GET",endpoint:endpoint,qs:{limit:200}};this.client().request(options,function(err,data){err&&$rootScope
.$broadcast(entity.get("type")+"-"+route+"-error",data),data.entities.forEach(function(entityInstance){entityInstance.createdDate=new Date(entityInstance.created).toUTCString()}),$rootScope.$broadcast(entity.get("type")+"-"+route+"-received",data.entities)})},addUserActivity:function(user,content){var options={actor:{displayName:user.get("username"),uuid:user.get("uuid"),username:user.get("username")},verb:"post",content:content};this.client().createUserActivity(user.get("username"),options,function(err,activity){err?$rootScope.$broadcast("user-activity-add-error",err):$rootScope.$broadcast("user-activity-add-success",activity)})},runShellQuery:function(method,path,payload){var path=path.replace(/^\//,""),options={method:method,endpoint:path};payload&&(options.body=payload),this.client().request(options,function(err,data){err?$rootScope.$broadcast("shell-error",data):$rootScope.$broadcast("shell-success",data)})},addOrganization:function(user,orgName){var options={method:"POST",endp
oint:"management/users/"+user.uuid+"/organizations",body:{organization:orgName},mQuery:!0},client=this.client();client.request(options,function(err,data){err?$rootScope.$broadcast("user-add-org-error",data):$rootScope.$broadcast("user-add-org-success",$rootScope.organizations)})},leaveOrganization:function(user,org){var options={method:"DELETE",endpoint:"management/users/"+user.uuid+"/organizations/"+org.uuid,mQuery:!0};this.client().request(options,function(err,data){err?$rootScope.$broadcast("user-leave-org-error",data):(delete $rootScope.organizations[org.name],$rootScope.$broadcast("user-leave-org-success",$rootScope.organizations))})},httpGet:function(id,url){var deferred;return deferred=$q.defer(),$http.get(url||configuration.ITEMS_URL).success(function(data){var result;id?angular.forEach(data,function(obj){obj.id===id&&(result=obj)}):result=data,deferred.resolve(result)}).error(function(data,status,headers,config){$log.error(data,status,headers,config),reportError(data,config
),deferred.reject(data)}),deferred.promise},jsonp:function(objectType,criteriaId,params,successCallback){params||(params={}),params.demoApp=$rootScope.demoData,params.access_token=getAccessToken(),params.callback="JSON_CALLBACK";var uri=$rootScope.urls().DATA_URL+"/"+$rootScope.currentOrg+"/"+$rootScope.currentApp+"/apm/"+objectType+"/"+criteriaId;return this.jsonpRaw(objectType,criteriaId,params,uri,successCallback)},jsonpSimple:function(objectType,appId,params){var uri=$rootScope.urls().DATA_URL+"/"+$rootScope.currentOrg+"/"+$rootScope.currentApp+"/apm/"+objectType+"/"+appId;return this.jsonpRaw(objectType,appId,params,uri)},calculateAverageRequestTimes:function(){if(!running){var self=this;running=!0,setTimeout(function(){running=!1;var length=requestTimes.length<10?requestTimes.length:10,sum=requestTimes.slice(0,length).reduce(function(a,b){return a+b}),avg=sum/length;self.averageRequestTimes=avg/1e3,self.averageRequestTimes>5&&$rootScope.$broadcast("request-times-slow",self.ave
rageRequestTimes)},3e3)}},jsonpRaw:function(objectType,appId,params,uri,successCallback){"function"!=typeof successCallback&&(successCallback=null),uri=uri||$rootScope.urls().DATA_URL+"/"+$rootScope.currentOrg+"/"+$rootScope.currentApp+"/"+objectType,params||(params={});var start=(new Date).getTime(),self=this;params.access_token=getAccessToken(),params.callback="JSON_CALLBACK";var deferred=$q.defer(),diff=function(){currentRequests[uri]--,requestTimes.splice(0,0,(new Date).getTime()-start),self.calculateAverageRequestTimes()};successCallback&&$rootScope.$broadcast("ajax_loading",objectType);var reqCount=currentRequests[uri]||0;return self.averageRequestTimes>5&&reqCount>1?(setTimeout(function(){deferred.reject(new Error("query in progress"))},50),deferred):(currentRequests[uri]=(currentRequests[uri]||0)+1,$http.jsonp(uri,{params:params}).success(function(data,status,headers,config){diff(),successCallback&&(successCallback(data,status,headers,config),$rootScope.$broadcast("ajax_fini
shed",objectType)),deferred.resolve(data)}).error(function(data,status,headers,config){diff(),$log.error("ERROR: Could not get jsonp data. "+uri),reportError(data,config),deferred.reject(data)}),deferred.promise)},resource:function(params,isArray){return $resource($rootScope.urls().DATA_URL+"/:orgname/:appname/:username/:endpoint",{},{get:{method:"JSONP",isArray:isArray,params:params},login:{method:"GET",url:$rootScope.urls().DATA_URL+"/management/token",isArray:!1,params:params},save:{url:$rootScope.urls().DATA_URL+"/"+params.orgname+"/"+params.appname,method:"PUT",isArray:!1,params:params}})},httpPost:function(url,callback,payload,headers){var accessToken=getAccessToken();payload?payload.access_token=accessToken:payload={access_token:accessToken},headers||(headers={Bearer:accessToken}),$http({method:"POST",url:url,data:payload,headers:headers}).success(function(data){callback(data)}).error(function(data,status,headers,config){reportError(data,config),callback(data)})}}}),AppServic
es.Directives.directive("ngFocus",["$parse",function($parse){return function(scope,element,attr){var fn=$parse(attr.ngFocus);element.bind("focus",function(event){scope.$apply(function(){fn(scope,{$event:event})})})}}]),AppServices.Directives.directive("ngBlur",["$parse",function($parse){return function(scope,element,attr){var fn=$parse(attr.ngBlur);element.bind("blur",function(event){scope.$apply(function(){fn(scope,{$event:event})})})}}]),AppServices.Services.factory("utility",function(){return{keys:function(o){var a=[];for(var propertyName in o)a.push(propertyName);return a},get_gravatar:function(email,size){try{var size=size||50;return email.length?"https://secure.gravatar.com/avatar/"+MD5(email)+"?s="+size:"https://apigee.com/usergrid/img/user_profile.png"}catch(e){return"https://apigee.com/usergrid/img/user_profile.png"}},get_qs_params:function(){var queryParams={};if(window.location.search)for(var params=window.location.search.slice(1).split("&"),i=0;i<params.length;i++){var t
mp=params[i].split("=");queryParams[tmp[0]]=unescape(tmp[1])}return queryParams},safeApply:function(fn){var phase=this.$root.$$phase;"$apply"==phase||"$digest"==phase?fn&&"function"==typeof fn&&fn():this.$apply(fn)}}}),AppServices.Directives.directive("ugValidate",["$rootScope",function(){return{scope:!0,restrict:"A",require:"ng-model",replace:!0,link:function(scope,element,attrs,ctrl){var validate=function(){var id=element.attr("id"),validator=id+"-validator",title=element.attr("title");if(title=title&&title.length?title:"Please enter data",$("#"+validator).remove(),ctrl.$valid)element.removeClass("has-error"),$("#"+validator).remove();else{var validatorElem='<div id="'+validator+'"><span class="validator-error-message">'+title+"</span></div>";$("#"+id).after(validatorElem),element.addClass("has-error")}},firing=!1;element.bind("blur",function(){validate(scope,element,attrs,ctrl)}).bind("input",function(){firing||(firing=!0,setTimeout(function(){validate(scope,element,attrs,ctrl),
firing=!1},500))})}}}]),AppServices.Controllers.controller("GroupsActivitiesCtrl",["ug","$scope","$rootScope","$location",function(ug,$scope,$rootScope,$location){return $scope.activitiesSelected="active",$rootScope.selectedGroup?($rootScope.selectedGroup.activities=[],void $rootScope.selectedGroup.getActivities(function(err){err||$rootScope.$$phase||$rootScope.$apply()})):void $location.path("/groups")}]),AppServices.Controllers.controller("GroupsCtrl",["ug","$scope","$rootScope","$location","$route",function(ug,$scope,$rootScope,$location,$route){$scope.groupsCollection={},$rootScope.selectedGroup={},$scope.previous_display="none",$scope.next_display="none",$scope.hasGroups=!1,$scope.newGroup={path:"",title:""},ug.getGroups(),$scope.currentGroupsPage={},$scope.selectGroupPage=function(route){$scope.currentGroupsPage.template=$route.routes[route].templateUrl,$scope.currentGroupsPage.route=route},$scope.newGroupDialog=function(modalId){$scope.newGroup.path&&$scope.newGroup.title?(ug
.createGroup($scope.removeFirstSlash($scope.newGroup.path),$scope.newGroup.title),$scope.hideModal(modalId),$scope.newGroup={path:"",title:""}):$rootScope.$broadcast("alert","error","Missing required information.")},$scope.deleteGroupsDialog=function(modalId){$scope.deleteEntities($scope.groupsCollection,"group-deleted","error deleting group"),$scope.hideModal(modalId),$scope.newGroup={path:"",title:""}},$scope.$on("group-deleted",function(){$rootScope.$broadcast("alert","success","Group deleted successfully.")}),$scope.$on("group-deleted-error",function(){ug.getGroups()}),$scope.$on("groups-create-success",function(){$rootScope.$broadcast("alert","success","Group created successfully.")}),$scope.$on("groups-create-error",function(){$rootScope.$broadcast("alert","error","Error creating group. Make sure you don't have spaces in the path.")}),$scope.$on("groups-received",function(event,groups){$scope.groupBoxesSelected=!1,$scope.groupsCollection=groups,$scope.newGroup.path="",$scope.n
ewGroup.title="",!(groups._list.length>0)||$rootScope.selectedGroup._data&&groups._list.some(function(group){return $rootScope.selectedGroup._data.uuid===group._data.uuid})||$scope.selectGroup(groups._list[0]._data.uuid),$scope.hasGroups=groups._list.length>0,$scope.received=!0,$scope.checkNextPrev(),$scope.applyScope()}),$scope.resetNextPrev=function(){$scope.previous_display="none",$scope.next_display="none"},$scope.checkNextPrev=function(){$scope.resetNextPrev(),$scope.groupsCollection.hasPreviousPage()&&($scope.previous_display="block"),$scope.groupsCollection.hasNextPage()&&($scope.next_display="block")},$scope.selectGroup=function(uuid){$rootScope.selectedGroup=$scope.groupsCollection.getEntityByUUID(uuid),$scope.currentGroupsPage.template="groups/groups-details.html",$scope.currentGroupsPage.route="/groups/details",$rootScope.$broadcast("group-selection-changed",$rootScope.selectedGroup)},$scope.getPrevious=function(){$scope.groupsCollection.getPreviousPage(function(err){err&
&$rootScope.$broadcast("alert","error","error getting previous page of groups"),$scope.checkNextPrev(),$scope.applyScope()})},$scope.getNext=function(){$scope.groupsCollection.getNextPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting next page of groups"),$scope.checkNextPrev(),$scope.applyScope()})},$scope.$on("group-deleted",function(){$route.reload(),$scope.master=""})}]),AppServices.Controllers.controller("GroupsDetailsCtrl",["ug","$scope","$rootScope","$location",function(ug,$scope,$rootScope,$location){var selectedGroup=$rootScope.selectedGroup.clone();return $scope.detailsSelected="active",$scope.json=selectedGroup._json||selectedGroup._data.stringifyJSON(),$scope.group=selectedGroup._data,$scope.group.path=0!=$scope.group.path.indexOf("/")?"/"+$scope.group.path:$scope.group.path,$scope.group.title=$scope.group.title,$rootScope.selectedGroup?($scope.$on("group-selection-changed",function(evt,selectedGroup){$scope.group.path=0!=selectedGroup._data.pat
h.indexOf("/")?"/"+selectedGroup._data.path:selectedGroup._data.path,$scope.group.title=selectedGroup._data.title,$scope.detailsSelected="active",$scope.json=selectedGroup._json||selectedGroup._data.stringifyJSON()}),void($rootScope.saveSelectedGroup=function(){$rootScope.selectedGroup._data.title=$scope.group.title,$rootScope.selectedGroup._data.path=$scope.removeFirstSlash($scope.group.path),$rootScope.selectedGroup.save(function(err){err?$rootScope.$broadcast("alert","error","error saving group"):$rootScope.$broadcast("alert","success","group saved")})})):void $location.path("/groups")}]),AppServices.Controllers.controller("GroupsMembersCtrl",["ug","$scope","$rootScope","$location",function(ug,$scope,$rootScope,$location){return $scope.membersSelected="active",$scope.previous_display="none",$scope.next_display="none",$scope.user="",$scope.master="",$scope.hasMembers=!1,ug.getUsersTypeAhead(),$scope.usersTypeaheadValues=[],$scope.$on("users-typeahead-received",function(event,users
){$scope.usersTypeaheadValues=users,$scope.applyScope()}),$scope.addGroupToUserDialog=function(modalId){if($scope.user){var path=$rootScope.selectedGroup.get("path");ug.addUserToGroup($scope.user.uuid,path),$scope.user="",$scope.hideModal(modalId)}else $rootScope.$broadcast("alert","error","Please select a user.")},$scope.removeUsersFromGroupDialog=function(modalId){$scope.deleteEntities($scope.groupsCollection.users,"group-update-received","Error removing user from group"),$scope.hideModal(modalId)},$scope.get=function(){if($rootScope.selectedGroup.get){var options={type:"groups/"+$rootScope.selectedGroup.get("path")+"/users"};$scope.groupsCollection.addCollection("users",options,function(err){$scope.groupMembersSelected=!1,err?$rootScope.$broadcast("alert","error","error getting users for group"):($scope.hasMembers=$scope.groupsCollection.users._list.length>0,$scope.checkNextPrev(),$scope.applyScope())})}},$scope.resetNextPrev=function(){$scope.previous_display="none",$scope.next_
display="none"},$scope.checkNextPrev=function(){$scope.resetNextPrev(),$scope.groupsCollection.users.hasPreviousPage()&&($scope.previous_display="block"),$scope.groupsCollection.users.hasNextPage()&&($scope.next_display="block")},$rootScope.selectedGroup?($scope.get(),$scope.getPrevious=function(){$scope.groupsCollection.users.getPreviousPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting previous page of users"),$scope.checkNextPrev(),$rootScope.$$phase||$rootScope.$apply()})},$scope.getNext=function(){$scope.groupsCollection.users.getNextPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting next page of users"),$scope.checkNextPrev(),$rootScope.$$phase||$rootScope.$apply()})},$scope.$on("group-update-received",function(){$scope.get()}),void $scope.$on("user-added-to-group-received",function(){$scope.get()})):void $location.path("/groups")}]),AppServices.Controllers.controller("GroupsRolesCtrl",["ug","$scope","$rootScope","$location",
function(ug,$scope,$rootScope,$location){return $scope.rolesSelected="active",$scope.roles_previous_display="none",$scope.roles_next_display="none",$scope.name="",$scope.master="",$scope.hasRoles=!1,$scope.hasPermissions=!1,$scope.permissions={},$scope.addGroupToRoleDialog=function(modalId){if($scope.name){var path=$rootScope.selectedGroup.get("path");ug.addGroupToRole(path,$scope.name),$scope.hideModal(modalId),$scope.name=""}else $rootScope.$broadcast("alert","error","You must specify a role name.")},$scope.leaveRoleDialog=function(modalId){for(var path=$rootScope.selectedGroup.get("path"),roles=$scope.groupsCollection.roles._list,i=0;i<roles.length;i++)roles[i].checked&&ug.removeUserFromGroup(path,roles[i]._data.name);$scope.hideModal(modalId)},$scope.addGroupPermissionDialog=function(modalId){if($scope.permissions.path){var permission=$scope.createPermission(null,null,$scope.removeFirstSlash($scope.permissions.path),$scope.permissions),path=$rootScope.selectedGroup.get("path");u
g.newGroupPermission(permission,path),$scope.hideModal(modalId),$scope.permissions&&($scope.permissions={})}else $rootScope.$broadcast("alert","error","You must specify a name for the permission.")},$scope.deleteGroupPermissionDialog=function(modalId){for(var path=$rootScope.selectedGroup.get("path"),permissions=$rootScope.selectedGroup.permissions,i=0;i<permissions.length;i++)permissions[i].checked&&ug.deleteGroupPermission(permissions[i].perm,path);$scope.hideModal(modalId)},$scope.resetNextPrev=function(){$scope.roles_previous_display="none",$scope.roles_next_display="none",$scope.permissions_previous_display="none",$scope.permissions_next_display="none"},$scope.resetNextPrev(),$scope.checkNextPrevRoles=function(){$scope.resetNextPrev(),$scope.groupsCollection.roles.hasPreviousPage()&&($scope.roles_previous_display="block"),$scope.groupsCollection.roles.hasNextPage()&&($scope.roles_next_display="block")},$scope.checkNextPrevPermissions=function(){$scope.groupsCollection.permissio
ns.hasPreviousPage()&&($scope.permissions_previous_display="block"),$scope.groupsCollection.permissions.hasNextPage()&&($scope.permissions_next_display="block")},$scope.getRoles=function(){var path=$rootScope.selectedGroup.get("path"),options={type:"groups/"+path+"/roles"};$scope.groupsCollection.addCollection("roles",options,function(err){$scope.groupRoleSelected=!1,err?$rootScope.$broadcast("alert","error","error getting roles for group"):($scope.hasRoles=$scope.groupsCollection.roles._list.length>0,$scope.checkNextPrevRoles(),$scope.applyScope())})},$scope.getPermissions=function(){$rootScope.selectedGroup.permissions=[],$rootScope.selectedGroup.getPermissions(function(err){$scope.groupPermissionsSelected=!1,$scope.hasPermissions=$scope.selectedGroup.permissions.length,err||$scope.applyScope()})},$scope.getPreviousRoles=function(){$scope.groupsCollection.roles.getPreviousPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting previous page of roles"),$scope.c
heckNextPrevRoles(),$scope.applyScope()})},$scope.getNextRoles=function(){$scope.groupsCollection.roles.getNextPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting next page of roles"),$scope.checkNextPrevRoles(),$scope.applyScope()})},$scope.getPreviousPermissions=function(){$scope.groupsCollection.permissions.getPreviousPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting previous page of permissions"),$scope.checkNextPrevPermissions(),$scope.applyScope()})},$scope.getNextPermissions=function(){$scope.groupsCollection.permissions.getNextPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting next page of permissions"),$scope.checkNextPrevPermissions(),$scope.applyScope()})},$scope.$on("role-update-received",function(){$scope.getRoles()}),$scope.$on("permission-update-received",function(){$scope.getPermissions()}),$scope.$on("groups-received",function(evt,data){$scope.groupsCollection=data,$scope.getRoles(),$scope
.getPermissions()}),$rootScope.selectedGroup?(ug.getRolesTypeAhead(),void ug.getGroups()):void $location.path("/groups")}]),AppServices.Controllers.controller("ForgotPasswordCtrl",["ug","$scope","$rootScope","$location","$sce","utility",function(ug,$scope,$rootScope,$location,$sce){$rootScope.activeUI&&$location.path("/"),$scope.forgotPWiframeURL=$sce.trustAsResourceUrl($scope.apiUrl+"/management/users/resetpw")}]),AppServices.Controllers.controller("LoginCtrl",["ug","$scope","$rootScope","$routeParams","$location","utility",function(ug,$scope,$rootScope,$routeParams,$location){$scope.loading=!1,$scope.login={},$scope.activation={},$scope.requiresDeveloperKey=$scope.options.client.requiresDeveloperKey||!1,!$scope.requiresDeveloperKey&&$scope.options.client.apiKey&&ug.setClientProperty("developerkey",$scope.options.client.apiKey),$rootScope.gotoForgotPasswordPage=function(){$location.path("/forgot-password")},$rootScope.gotoSignUp=function(){$location.path("/register")},$scope.login=
function(){var username=$scope.login.username,password=$scope.login.password;$scope.loginMessage="",$scope.loading=!0,$scope.requiresDeveloperKey&&ug.setClientProperty("developerkey",$scope.login.developerkey),ug.orgLogin(username,password)},$scope.$on("loginFailed",function(){$scope.loading=!1,ug.setClientProperty("developerkey",null),$scope.loginMessage="Error: the username / password combination was not valid",$scope.applyScope()}),$scope.logout=function(){ug.logout(),ug.setClientProperty("developerkey",null),$scope.use_sso?window.location=$rootScope.urls().LOGOUT_URL+"?redirect=no&callback="+encodeURIComponent($location.absUrl().split("?")[0]):($location.path("/login"),$scope.applyScope())},$rootScope.$on("userNotAuthenticated",function(){"/forgot-password"!==$location.path()&&($location.path("/login"),$scope.logout()),$scope.applyScope()}),$scope.$on("loginSuccesful",function(){$scope.loading=!1,$scope.login={},$location.path("/login"===$rootScope.currentPath||"/login/loading"=
==$rootScope.currentPath||"undefined"==typeof $rootScope.currentPath?"/org-overview":$rootScope.currentPath),$scope.applyScope()}),$scope.resendActivationLink=function(modalId){var id=$scope.activation.id;ug.resendActivationLink(id),$scope.activation={},$scope.hideModal(modalId)},$scope.$on("resend-activate-success",function(){$scope.activationId="",$scope.$apply(),$rootScope.$broadcast("alert","success","Activation link sent successfully.")}),$scope.$on("resend-activate-error",function(){$rootScope.$broadcast("alert","error","Activation link failed to send.")})}]),AppServices.Controllers.controller("LogoutCtrl",["ug","$scope","$rootScope","$routeParams","$location","utility",function(ug,$scope,$rootScope,$routeParams,$location){ug.logout(),$scope.use_sso?window.location=$rootScope.urls().LOGOUT_URL+"?callback="+encodeURIComponent($location.absUrl().split("?")[0]):($location.path("/login"),$scope.applyScope())}]),AppServices.Controllers.controller("RegisterCtrl",["ug","$scope","$roo
tScope","$routeParams","$location","utility",function(ug,$scope,$rootScope,$routeParams,$location){$rootScope.activeUI&&$location.path("/");var init=function(){$scope.registeredUser={}};init(),$scope.cancel=function(){$location.path("/")},$scope.register=function(){var user=$scope.registeredUser.clone();user.password===user.confirmPassword?ug.signUpUser(user.orgName,user.userName,user.name,user.email,user.password):$rootScope.$broadcast("alert","error","Passwords do not match."+name)},$scope.$on("register-error",function(event,data){$scope.signUpSuccess=!1,$rootScope.$broadcast("alert","error","Error registering: "+(data&&data.error_description?data.error_description:name))}),$scope.$on("register-success",function(){$scope.registeredUser={},$scope.signUpSuccess=!0,init(),$scope.$apply()})}]),AppServices.Directives.directive("menu",["$location","$rootScope","$log",function($location,$rootScope,$log){return{link:function(scope,lElement,attrs){function setActiveElement(ele,locationPath
,$rootScope,isParentClick){ele.removeClass("active");var menuItem,parentMenuItem,newActiveElement=ele.parent().find('a[href*="#!'+locationPath+'"]');if(0===newActiveElement.length)parentMenuItem=ele;else{menuItem=newActiveElement.parent(),menuItem.hasClass("option")?parentMenuItem=menuItem[0]:1===menuItem.size()?(parentMenuItem=newActiveElement.parent().parent().parent(),parentMenuItem.addClass("active")):(parentMenuItem=menuItem[0],menuItem=menuItem[1]);try{var menuItemCompare=parentMenuItem[0]||parentMenuItem;ele[0]!==menuItemCompare&&isParentClick&&ele.find("ul")[0]&&(ele.find("ul")[0].style.height=0);var subMenuSizer=angular.element(parentMenuItem).find(".nav-list")[0];if(subMenuSizer){var heightChecker,clientHeight=subMenuSizer.getAttribute("data-height"),heightCounter=1;clientHeight||heightChecker?(menuItem.addClass("active"),subMenuSizer.style.height=clientHeight+"px")
<TRUNCATED>