Fri, 01 May 2020 16:37:31 +0200
Version 0.4.10 merged with default
--- a/.hgignore Fri Oct 18 13:20:35 2019 +0200 +++ b/.hgignore Fri May 01 16:37:31 2020 +0200 @@ -10,12 +10,12 @@ www/version.php www/config.php www/thermferm +www/website www/run/sequence syntax: glob *.o */filelist icons/* -tools/* www/log/* Makefile.bak
--- a/README.design Fri Oct 18 13:20:35 2019 +0200 +++ b/README.design Fri May 01 16:37:31 2020 +0200 @@ -7,20 +7,10 @@ ----------------------------------------------------------------------------- -TODO: - -Export ingredienten naar xml. - Bug: Metingen en berekeningen met afgelezen Brix waardes kloppen niet op het eind van de vergisting. Gaat vooral fout met de Saison. - Eind SG na koken klopt niet als er suiker in de vergisting toegevoegd wordt. - In de js code is dit est_og3 en niet est_og, maar est_og3 is niet beschikbaar - in de php code. - -Wish: - Giststarter bereken gist viability. Viability zelf wordt al gebruikt. - Giststarter automatisch aantal regels aanpassen bij wijzigen van de hoeveelheden. + NOOT: experimentele wijziging is toegevoegd op 5-dec-2019. New Cubic van seanterrill. Extra: @@ -30,42 +20,36 @@ beta glucosidase Gist typen: Wild yeast, Spontaneous. -Nieuwe velden: - pofpos boolean POF+ (Phenolic Off Flavor Positive) (Ferulic acid to 4-vinyl-guaiacol) - zymocide int4 none, K1, K2, K28, Klus zymocide+ (K1,K2,K28 or Klus) (killer yeast gen) (Alleen in wijngist?) - sta1 boolean Diastatic gen - harvest_top boolean Kveik top/bottom harvest - harvest_time int16 Kveik harvest after nn hours - pitch_temperature float Kveik pitch temperature - bacteria boolean Kveik has bacteria flag - Toevoegen Barrel/Oak aging vergisting stap. Wort souring stap. -Add dry-hop toevoegen moment. - Split batch: - 1. After sparge, before boil. - 2. After boil, before primary. - 3. After primary - 4. After secondary (several dry-hops) - 5. After lagering (separated packaging) Split fields: -divide_type 0:none 1:after mash 2:after boil 3:after primary 4:after secondary 5:after tertiary +divide_type 0:none 1:after mash 2:after boil 3:after cooling 4:after primary 5:after secondary 6:after tertiary divide_size amount in liters of this part. +divide_factor factor size of this part or 1.0 divide_parts hoeveel afsplitsingen. -divide_from uuid -Via Export module dialoog maken, keuze aantal afsplitsels en grootte per stuk. 10 stuks. -Procedure: Genereer afsplitsels met uniek uuid en moeder uuid. Pas volumes aan na splitspunt. -Afsplitsels naam aanpassen, code een -n volgnummer toevoegen. -Daarna, markeer master en reduceer volume na splitspunt. +divide_part 0=hoofdbatch. -Miscs type: add wood. +Via Export module dialoog maken, keuze aantal afsplitsels en grootte per stuk. 10 stuks. Ok. +Procedure: Genereer afsplitsels in db_product. Pas alle volumes aan. Ok. +Afsplitsels naam aanpassen, code en -n volgnummer toevoegen. Ok. +Daarna, markeer master en reduceer volume. Ok. +Tot zover werkt het. Probleem, wijzig iets aan ingredienten voor het splitspunt. Alle +batches moeten dan ook bijgewerkt worden. Logic: in db_product.php test stage tegen divide_type. +Zolang we wijzigen en het splitspunt is nog niet bereikt, de overige records bijwerken met de +data tot het splitspunt. Dus check voorgaande stage in geval die ophoogt na edit. -Hop types: Extract IKE. +View - master alleen wijzigen voor splitspunt. + - splitsingen alleen wijzigen na splitspunt. + -Popups in de editors met rekenhulpjes. +Hop types: Extract IKE. Tetra hop. + +Maischen: volledig infusie en decoctie implementeren zodat ook de Hermann methode kan. + Dubbel maischen? +Stap velden: gemeten pH en SG https://github.com/beerjson/beerjson
--- a/bmsd/Makefile Fri Oct 18 13:20:35 2019 +0200 +++ b/bmsd/Makefile Fri May 01 16:37:31 2020 +0200 @@ -1,4 +1,4 @@ -# Makefile for the mbsePi-apps/thermferm. +# Makefile for the bmsd/bmsd. include ../Makefile.global @@ -55,11 +55,13 @@ # DO NOT DELETE THIS LINE - MAKE DEPEND RELIES ON IT # Dependencies generated by make depend -mqtt.o: bms.h xutil.h mqtt.h nodes.h fermenters.h co2meters.h +mqtt.o: bms.h xutil.h mqtt.h nodes.h fermenters.h co2meters.h ispindels.h lock.o: lock.h bms.h futil.h nodes.o: bms.h xutil.h nodes.h mysql.h futil.o: bms.h futil.h fermenters.o: bms.h xutil.h fermenters.h mysql.h +co2meters.o: bms.h xutil.h co2meters.h mysql.h +ispindels.o: bms.h xutil.h ispindels.h mysql.h nodes.h bms.o: bms.h xutil.h futil.h rdconfig.h lock.h mqtt.h mysql.h nodes.h xutil.o: bms.h xutil.h rdconfig.o: bms.h xutil.h futil.h rdconfig.h
--- a/bmsd/bms.c Fri Oct 18 13:20:35 2019 +0200 +++ b/bmsd/bms.c Fri May 01 16:37:31 2020 +0200 @@ -32,7 +32,7 @@ int my_shutdown = FALSE; int debug = FALSE; -static pid_t pgrp, mypid; +static pid_t /*pgrp, */mypid; char *Private_Path = NULL; /* Users data path */ extern sys_config Config; @@ -133,8 +133,10 @@ while (my_shutdown == FALSE) { - usleep(100000); + usleep(4000000); nodes_check_online(); + usleep(1000000); + ispindel_mysql_check(); } if (debug) fprintf(stdout, "[main] Exit from main loop\n"); @@ -217,9 +219,9 @@ * if the child were to open a terminal, it would become * associated with that terminal as its control terminal. */ - if ((pgrp = setpgid(0, 0)) == -1) { - syslog(LOG_NOTICE, "setpgpid failed"); - } +// if ((pgrp = setpgid(0, 0)) == -1) { +// syslog(LOG_NOTICE, "setpgid failed: %s", strerror(errno)); +// } frk = fork(); switch (frk) {
--- a/bmsd/bms.h Fri Oct 18 13:20:35 2019 +0200 +++ b/bmsd/bms.h Fri May 01 16:37:31 2020 +0200 @@ -45,7 +45,12 @@ #include <libxml/encoding.h> #include <libxml/xmlwriter.h> #include <mosquitto.h> +#ifdef HAVE_MYSQL_MYSQL_H #include <mysql/mysql.h> +#endif +#ifdef HAVE_MARIADB_MYSQL_H +#include <mariadb/mysql.h> +#endif #include <json-c/json.h> @@ -53,7 +58,7 @@ #define MQTT_NODE_CONTROL 0x0001 ///< Show node control - +#define LOWBATT 3.3 ///< Low battery voltage /** @@ -100,6 +105,7 @@ char *net_address; ///< IPv4 or IPv6 address char *net_ifname; ///< Interface name int net_rssi; ///< RSSI value if wireless. + int interval; ///< Update interval } sys_node_list; @@ -146,6 +152,7 @@ { ALARM_FLAG_DOOR = 0x0001, ///< Door open ALARM_FLAG_PSU = 0x0002, ///< PSU problem + ALARM_FLAG_BATTERY = 0x0004, ///< Low battery ALARM_FLAG_CHILLER = 0x0100, ///< Chiller too warm } ALARM_FLAGS; @@ -237,7 +244,7 @@ int fan_power; ///< Fan power 0 or 100 uint64_t fan_usage; ///< Fan usage counter in seconds float setpoint_low; ///< Target temperature low - float setpoint_high; ///< Tarhet temperature high + float setpoint_high; ///< Target temperature high char *mode; ///< Working mode. char *stage; ///< Fermentation stage char *event; ///< Optional event @@ -275,7 +282,7 @@ /** - * @brief Strcuture holding a co2 pressure log entry. + * @brief Structure holding a co2 pressure log entry. */ typedef struct co2meter_log { char *datetime; ///< Date/time stamp @@ -300,35 +307,25 @@ } brewer_list; -// Make it universal and make it connectable with a fermenter. +// Make it universal and make it connectable with a beer. typedef struct _ispindel_list { struct _ispindel_list *next; - char *uuid; ///< Fixed uuid string - char *name; ///< Name or description (Red iSpindle). - char *beercode; ///< Beer code if in use. - float temperature; ///< Temperature of the beer. - float gravity; ///< Measured gravity - // What nore, battery? -} ispindel_list; - - -// Hergisting meters. + char *uuid; ///< Fixed uuid string. + char *alias; ///< Alias name. + char *node; ///< Node name received. + bool online; ///< Is considered online. + char *mode; ///< Working mode OFF or ON. + uint32_t alarm; ///< Alarm flags. + char *beercode; ///< Beer unique code + char *beername; ///< Beer name being measured + char *beeruuid; ///< Beer uuid being measured + float angle; ///< Tilt angle in degrees + float temperature; ///< Temperature in C + float battery; ///< Battery voltage + float gravity; ///< Gravity in plato? + int interval; ///< Measure interval +} sys_ispindel_list; -/** - * @brief Standalone temperature loggers. (Freezers, refrigerators, chambers). - */ -typedef struct _thb_list { - struct _thb_list *next; - char *uuit; ///< Fixed uuid string - char *name; ///< Name or description - char *beercode; ///< Beer code if needed. - float temperature; ///< Temperature in Celcius - float humidity; ///< Humidity in % - float barometer; ///< Air pressure. - float gps_latitude; ///< GPS latitude - float gps_longitude; ///< GPS longitide - float gps_altitude; ///< GPS altitude -} thb_list; #endif
--- a/bmsd/co2meters.c Fri Oct 18 13:20:35 2019 +0200 +++ b/bmsd/co2meters.c Fri May 01 16:37:31 2020 +0200 @@ -235,9 +235,9 @@ jobj = json_tokener_parse(payload); timestamp = time(NULL); - log->datetime = malloc(21); + log->datetime = malloc(73); mytime = localtime(×tamp); - snprintf(log->datetime, 20, "%04d-%02d-%02d %02d:%02d:%02d", + snprintf(log->datetime, 72, "%04d-%02d-%02d %02d:%02d:%02d", mytime->tm_year + 1900, mytime->tm_mon + 1, mytime->tm_mday, mytime->tm_hour, mytime->tm_min, mytime->tm_sec); if (json_object_object_get_ex(jobj, "metric", &metric)) { @@ -267,6 +267,21 @@ syslog(LOG_NOTICE, "MySQL: mysq_store_result error %u (%s))", mysql_errno(con), mysql_error(con)); } else { if ((row = mysql_fetch_row(res_set)) != NULL) { + /* + * Ignore when the beer_name or beer_code is not set. + */ + if ((int)strlen(row[0]) == 0 || (int)strlen(row[1]) == 0) { + if (log->datetime) + free(log->datetime); + if (log->uuid) + free(log->uuid); + if (log->node) + free(log->node); + if (log->alias) + free(log->alias); + free(log); + return; + } log->product_code = xstrcpy(row[0]); log->product_name = xstrcpy(row[1]); log->product_uuid = xstrcpy(row[2]);
--- a/bmsd/fermenters.c Fri Oct 18 13:20:35 2019 +0200 +++ b/bmsd/fermenters.c Fri May 01 16:37:31 2020 +0200 @@ -444,9 +444,9 @@ if (json_object_object_get_ex(jobj, "timestamp", &val)) { timestamp = json_object_get_int(val); - log->datetime = malloc(21); + log->datetime = malloc(73); mytime = localtime(×tamp); - snprintf(log->datetime, 20, "%04d-%02d-%02d %02d:%02d:%02d", + snprintf(log->datetime, 73, "%04d-%02d-%02d %02d:%02d:%02d", mytime->tm_year + 1900, mytime->tm_mon + 1, mytime->tm_mday, mytime->tm_hour, mytime->tm_min, mytime->tm_sec); }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bmsd/ispindels.c Fri May 01 16:37:31 2020 +0200 @@ -0,0 +1,241 @@ +/** + * @file ispindels.c + * @brief Handle ispindels data + * @author Michiel Broek <mbroek at mbse dot eu> + * + * Copyright (C) 2019-2020 + * + * This file is part of the bms (Brewery Management System) + * + * This is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * bms is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ThermFerm; see the file COPYING. If not, write to the Free + * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + + +#include "bms.h" +#include "xutil.h" +#include "ispindels.h" +#include "mysql.h" +#include "nodes.h" + + +sys_ispindel_list *ispindels = NULL; + +extern int debug; +extern sys_config Config; +extern MYSQL *con; +extern MYSQL_RES *res_set; +extern MYSQL_ROW row; + + + +void ispindel_set(char *node, char *payload) +{ + sys_ispindel_list *ispindel, *tmpp; + struct json_object *jobj, *metric, *val; + bool new_ispindel = true; + char *datetime, buf[65], *line, *logfile; + struct tm *mytime; + time_t timestamp; + FILE *fp; + +// if (debug) +// printf("ispindel_set: %s %s\n", node, payload); + + /* + * Search ispindel record in the memory array and use it if found. + */ + if (ispindels) { + for (tmpp = ispindels; tmpp; tmpp = tmpp->next) { + if (strcmp(tmpp->node, node) == 0) { + new_ispindel = false; + ispindel = tmpp; + break; + } + } + } + +// if (debug) +// printf("new_ispindel %s\n", new_ispindel ? "true":"false"); + + /* + * Allocate new ispindel if not yet known. + */ + if (new_ispindel) { + ispindel = (sys_ispindel_list *)malloc(sizeof(sys_ispindel_list)); + memset(ispindel, 0, sizeof(sys_ispindel_list)); + ispindel->node = xstrcpy(node); + ispindel->mode = xstrcpy((char *)"OFF"); + } + + if (! ispindel->online) { + ispindel->online = true; + syslog(LOG_NOTICE, "Online ispindel %s mode %s", node, ispindel->mode); + } + + /* + * Process the JSON formatted payload. + * Update only the fields that are found in the payload. + */ + jobj = json_tokener_parse(payload); + + if (json_object_object_get_ex(jobj, "unit", &metric)) { + if (json_object_object_get_ex(metric, "uuid", &val)) { + if (ispindel->uuid) + free(ispindel->uuid); + ispindel->uuid = xstrcpy((char *)json_object_get_string(val)); + } + if (json_object_object_get_ex(metric, "alias", &val)) { + if (ispindel->alias) + free(ispindel->alias); + ispindel->alias = xstrcpy((char *)json_object_get_string(val)); + } + if (json_object_object_get_ex(metric, "alarm", &val)) { + ispindel->alarm = json_object_get_int(val); + } + if (json_object_object_get_ex(metric, "interval", &val)) { + ispindel->interval = json_object_get_int(val); + } + if (json_object_object_get_ex(metric, "angle", &val)) { + ispindel->angle = json_object_get_double(val); + } + if (json_object_object_get_ex(metric, "temperature", &val)) { + ispindel->temperature = json_object_get_double(val); + } + if (json_object_object_get_ex(metric, "battery", &val)) { + ispindel->battery = json_object_get_double(val); + } + if (json_object_object_get_ex(metric, "gravity", &val)) { + ispindel->gravity = json_object_get_double(val); + } + } + +// ispindel_dump(ispindel); + + if (new_ispindel) { + if (ispindels == NULL) { + ispindels = ispindel; + } else { + for (tmpp = ispindels; tmpp; tmpp = tmpp->next) { + if (tmpp->next == NULL) { + tmpp->next = ispindel; + break; + } + } + } + ispindel_mysql_insert(ispindel); + } else { + ispindel_mysql_update(ispindel); + } + + /* + * The data is complete, see if we can write a log entry. + */ + if (ispindel->beercode && strlen(ispindel->beercode) && ispindel->beername && strlen(ispindel->beername) && + ispindel->online && (strcmp(ispindel->mode, (char *)"ON") == 0)) { + datetime = malloc(72); + timestamp = time(NULL); + mytime = localtime(×tamp); + snprintf(datetime, 72, "%04d-%02d-%02d %02d:%02d:%02d", + mytime->tm_year + 1900, mytime->tm_mon + 1, mytime->tm_mday, mytime->tm_hour, mytime->tm_min, mytime->tm_sec); + + line = xstrcpy(datetime); + line = xstrcat(line, (char *)","); + snprintf(buf, 64, "%.4f", ispindel->temperature); + line = xstrcat(line, buf); + line = xstrcat(line, (char *)","); + snprintf(buf, 64, "%.5f", ispindel->gravity); + line = xstrcat(line, buf); + line = xstrcat(line, (char *)","); +// snprintf(buf, 64, "%.5f", 1 + (ispindel->gravity / (258.6 - ((ispindel->gravity / 258.2) * 227.1)))); + snprintf(buf, 64, "%.5f", 1.00001 + (0.0038661 * ispindel->gravity) + (1.3488e-5 * ispindel->gravity * ispindel->gravity) + + (4.3074e-8 * ispindel->gravity * ispindel->gravity * ispindel->gravity)); + line = xstrcat(line, buf); + line = xstrcat(line, (char *)","); + snprintf(buf, 64, "%.6f", ispindel->battery); + line = xstrcat(line, buf); + line = xstrcat(line, (char *)","); + snprintf(buf, 64, "%.5f", ispindel->angle); + line = xstrcat(line, buf); + line = xstrcat(line, (char *)","); + snprintf(buf, 64, "%d", ispindel->interval); + line = xstrcat(line, buf); + line = xstrcat(line, (char *)","); + line = xstrcat(line, ispindel->uuid); + + /* + * Build logfile name + */ + logfile = xstrcpy(Config.web_root); + logfile = xstrcat(logfile, (char *)"/log/ispindel/"); + logfile = xstrcat(logfile, ispindel->beercode); + logfile = xstrcat(logfile, (char *)" "); + logfile = xstrcat(logfile, ispindel->beername); + logfile = xstrcat(logfile, (char *)".log"); + + fp = fopen(logfile, "a"); + if (fp) { + fprintf(fp, "%s\n", line); + fclose(fp); + } else { + syslog(LOG_NOTICE, "cannot append to `%s'", logfile); + } + + free(logfile); + logfile = NULL; + free(line); + line = NULL; + free(datetime); + datetime = NULL; + } +} + + + +/* + * Process iSpindel MQTT message. + */ +void ispindel_birth_data(char *topic, char *payload) +{ + char *message_type, *edge_node; + + strtok(topic, "/"); // ignore namespace + strtok(NULL, "/"); + message_type = strtok(NULL, "/"); + edge_node = strtok(NULL, "/\0"); + + if (strcmp("DBIRTH", message_type) == 0) { + ispindel_set(edge_node, payload); + } +} + + + +void ispindel_dump(sys_ispindel_list *ispindel) +{ + if (debug) { + printf("node/alias %s / %s\n", ispindel->node, ispindel->alias); + printf("uuid %s\n", ispindel->uuid); + printf("online %s\n", ispindel->online ? "yes":"no"); + printf("mode %s\n", ispindel->mode); + printf("product %s / %s\n", ispindel->beercode, ispindel->beername); + printf("tilt %.5f\n", ispindel->angle); + printf("temperature %.4f\n", ispindel->temperature); + printf("battery %.6f\n", ispindel->battery); + printf("gravity %.5f\n", ispindel->gravity); + printf("interval %d\n", ispindel->interval); + } +} + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bmsd/ispindels.h Fri May 01 16:37:31 2020 +0200 @@ -0,0 +1,22 @@ +/** + * @file ispindels.h + */ + +#ifndef _ISPINDEL_H +#define _ISPINDEL_H + +void ispindel_dump(sys_ispindel_list *ispindel); + +/** + * @brief Messages received from a iSpindel using the MQTT sender. + * A new node is created if this is the first message of the + * iSpindel, else the last seen time is updated. Then the last + * actual state is recorded. A log line is written when a beer + * is assigned. + * @param topic The MQTT topic string, contains the ispindel type and name + * @param payload The value for the selected keyword. + */ +void ispindel_birth_data(char *topic, char *payload); + + +#endif
--- a/bmsd/mqtt.c Fri Oct 18 13:20:35 2019 +0200 +++ b/bmsd/mqtt.c Fri May 01 16:37:31 2020 +0200 @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2017-2019 + * Copyright (C) 2017-2020 * * Michiel Broek <mbroek at mbse dot eu> * @@ -26,6 +26,7 @@ #include "nodes.h" #include "fermenters.h" #include "co2meters.h" +#include "ispindels.h" extern sys_config Config; @@ -102,6 +103,9 @@ topic = xstrcpy((char *)"mbv1.0/co2meters/#"); // Subscribe to co2meter messages. mosquitto_subscribe(mosq, NULL, topic, 0); free(topic); + topic = xstrcpy((char *)"mbv1.0/ispindels/#"); // Subscribe to ispindel messages. + mosquitto_subscribe(mosq, NULL, topic, 0); + free(topic); topic = NULL; mqtt_status = STATUS_CONNACK_RECVD; } else { @@ -171,6 +175,9 @@ fermenter_log(message->topic, (char *)message->payload); return; } + if (strstr(message->topic, (char *)"fermenters") && strstr(message->topic, (char *)"DCMD")) { + return; // just ignore our own commands. + } if (strstr(message->topic, (char *)"co2meters") && strstr(message->topic, (char *)"DBIRTH")) { co2meter_birth_data(message->topic, (char *)message->payload); return; @@ -179,6 +186,10 @@ co2meter_log(message->topic, (char *)message->payload); return; } + if (strstr(message->topic, (char *)"ispindels") && strstr(message->topic, (char *)"DBIRTH")) { + ispindel_birth_data(message->topic, (char *)message->payload); + return; + } syslog(LOG_NOTICE, "MQTT: message callback %s :: %d", message->topic, message->payloadlen); } else { if (strstr(message->topic, (char *)"NBIRTH")) {
--- a/bmsd/mysql.c Fri Oct 18 13:20:35 2019 +0200 +++ b/bmsd/mysql.c Fri May 01 16:37:31 2020 +0200 @@ -3,7 +3,7 @@ * @brief MySQL/MariaDB access. * @author Michiel Broek <mbroek at mbse dot eu> * - * Copyright (C) 2018-2019 + * Copyright (C) 2018-2020 * * This file is part of the bms (Brewery Management System) * @@ -36,6 +36,7 @@ extern sys_node_list *nodes; extern sys_fermenter_list *fermenters; extern sys_co2meter_list *co2meters; +extern sys_ispindel_list *ispindels; extern int debug; @@ -62,7 +63,8 @@ sys_node_list *node, *tmpp; sys_fermenter_list *fermenter, *tmpf; sys_co2meter_list *co2meter, *tmpc; - int ccnt = 0, ncnt = 0, fcnt = 0; + sys_ispindel_list *ispindel, *tmpi; + int icnt = 0, ccnt = 0, ncnt = 0, fcnt = 0; con = mysql_init(NULL); if (con == NULL) { @@ -97,7 +99,7 @@ node->next = NULL; node->uuid = xstrcpy(row[1]); node->node = xstrcpy(row[2]); - node->online = false; // Will be set using MQTT + node->online = atoi(row[3]); node->group_id = xstrcpy(row[4]); node->hardwaremake = xstrcpy(row[5]); node->hardwaremodel = xstrcpy(row[6]); @@ -115,6 +117,7 @@ node->net_address = xstrcpy(row[18]); node->net_ifname = xstrcpy(row[19]); node->net_rssi = atoi(row[20]); + node->interval = atoi(row[21]); if (nodes == NULL) { nodes = node; @@ -146,7 +149,7 @@ fermenter->uuid = xstrcpy(row[1]); fermenter->alias = xstrcpy(row[2]); fermenter->node = xstrcpy(row[3]); - fermenter->online = false; // Will be set later + fermenter->online = atoi(row[4]); fermenter->beercode = xstrcpy(row[5]); fermenter->beername = xstrcpy(row[6]); fermenter->beeruuid = xstrcpy(row[44]); @@ -242,7 +245,7 @@ co2meter->uuid = xstrcpy(row[1]); co2meter->alias = xstrcpy(row[2]); co2meter->node = xstrcpy(row[3]); - co2meter->online = 0; // Will be set later + co2meter->online = atoi(row[4]); co2meter->beercode = xstrcpy(row[5]); co2meter->beername = xstrcpy(row[6]); co2meter->beeruuid = xstrcpy(row[7]); @@ -272,7 +275,49 @@ } } - syslog(LOG_NOTICE, "MySQL: loaded %d nodes, %d fermenters, %d co2meters", ncnt, fcnt, ccnt); + if (mysql_query(con, "SELECT * FROM mon_ispindels")) { + syslog(LOG_NOTICE, "MySQL: SELECT * FROM mon_ispindels error %u (%s))", mysql_errno(con), mysql_error(con)); + } else { + res_set = mysql_store_result(con); + if (res_set == NULL) { + syslog(LOG_NOTICE, "MySQL: mysq_store_result error %u (%s))", mysql_errno(con), mysql_error(con)); + } else { + while ((row = mysql_fetch_row(res_set)) != NULL) { + ispindel = (sys_ispindel_list *)malloc(sizeof(sys_ispindel_list)); + memset(ispindel, 0, sizeof(sys_ispindel_list)); + ispindel->next = NULL; + ispindel->uuid = xstrcpy(row[1]); + ispindel->alias = xstrcpy(row[2]); + ispindel->node = xstrcpy(row[3]); + ispindel->online = atoi(row[4]); + ispindel->alarm = atoi(row[5]); + ispindel->beercode = xstrcpy(row[6]); + ispindel->beername = xstrcpy(row[7]); + ispindel->beeruuid = xstrcpy(row[8]); + ispindel->angle = atof(row[9]); + ispindel->temperature = atof(row[10]); + ispindel->battery = atof(row[11]); + ispindel->gravity = atof(row[12]); + ispindel->interval = atoi(row[13]); + ispindel->mode = xstrcpy(row[14]); + + if (ispindels == NULL) { + ispindels = ispindel; + } else { + for (tmpi = ispindels; tmpi; tmpi = tmpi->next) { + if (tmpi->next == NULL) { + tmpi->next = ispindel; + break; + } + } + } + icnt++; + } + mysql_free_result(res_set); + } + } + + syslog(LOG_NOTICE, "MySQL: loaded %d nodes, %d fermenters, %d co2meters %d ispindels", ncnt, fcnt, ccnt, icnt); return 0; } @@ -280,6 +325,7 @@ void bms_mysql_end(void) { + sys_ispindel_list *tmpi, *oldtmpi; sys_co2meter_list *tmpp, *oldtmpp; sys_fermenter_list *tmpf, *oldtmpf; sys_node_list *tmpn, *oldtmpn; @@ -290,6 +336,25 @@ if (debug) fprintf(stdout, "MySQL: disconnected\n"); + for (tmpi = ispindels; tmpi; tmpi = oldtmpi) { + oldtmpi = tmpi->next; + if (tmpi->uuid) + free(tmpi->uuid); + if (tmpi->alias) + free(tmpi->alias); + if (tmpi->node) + free(tmpi->node); + if (tmpi->beercode) + free(tmpi->beercode); + if (tmpi->beername) + free(tmpi->beername); + if (tmpi->beeruuid) + free(tmpi->beeruuid); + if (tmpi->mode) + free(tmpi->mode); + free(tmpi); + } + for (tmpp = co2meters; tmpp; tmpp = oldtmpp) { oldtmpp = tmpp->next; if (tmpp->uuid) @@ -397,18 +462,20 @@ int bms_mysql_query(const char *query) { int rc = mysql_query(con, query); + int err = mysql_errno(con); if (rc) { - syslog(LOG_NOTICE, "MySQL: error %u (%s)", mysql_errno(con), mysql_error(con)); + syslog(LOG_NOTICE, "MySQL: error %u (%s)", err, mysql_error(con)); syslog(LOG_NOTICE, query); } else { return 0; } /* Any error execpt server gone away */ - if (rc != 2006) + if (err != 2006) return rc; + syslog(LOG_NOTICE, "Trying to reconnect"); /* Try to reconnect and do the query again */ mysql_close(con); if (mysql_real_connect(con, Config.mysql_host, Config.mysql_user, Config.mysql_pass, Config.mysql_database, Config.mysql_port, NULL, 0) == NULL) { @@ -434,25 +501,25 @@ void node_mysql_insert(sys_node_list *node) { - char *query = malloc(1024), first[21], last[21]; + char *query = malloc(1024), first[73], last[73]; struct tm *mytime; mytime = localtime(&node->firstseen); - snprintf(first, 20, "%04d-%02d-%02d %02d:%02d:%02d", + snprintf(first, 72, "%04d-%02d-%02d %02d:%02d:%02d", mytime->tm_year + 1900, mytime->tm_mon + 1, mytime->tm_mday, mytime->tm_hour, mytime->tm_min, mytime->tm_sec); mytime = localtime(&node->lastseen); - snprintf(last, 20, "%04d-%02d-%02d %02d:%02d:%02d", + snprintf(last, 72, "%04d-%02d-%02d %02d:%02d:%02d", mytime->tm_year + 1900, mytime->tm_mon + 1, mytime->tm_mday, mytime->tm_hour, mytime->tm_min, mytime->tm_sec); snprintf(query, 1023, - "INSERT INTO mon_nodes SET uuid='%s', node='%s', online='%s', group_id='%s', " \ + "INSERT INTO mon_nodes SET uuid='%s', node='%s', online='%d', group_id='%s', " \ "hardwaremake='%s', hardwaremodel='%s', os='%s', os_version='%s', firmware='%s', firstseen='%s', lastseen='%s', " \ "temperature='%.3f', humidity='%.3f', barometer='%.3f', gps_latitude='%.8f', gps_longitude='%.8f', gps_altitude='%.8f', " \ - "net_address='%s', net_ifname='%s', net_rssi='%d'", - node->uuid, node->node, node->online ?"Y":"N", node->group_id, + "net_address='%s', net_ifname='%s', net_rssi='%d', up_interval='%d'", + node->uuid, node->node, node->online ?1:0, node->group_id, node->hardwaremake, node->hardwaremodel, node->os, node->os_version, node->firmware, first, last, node->temperature, node->humidity, node->barometer, node->gps_latitude, node->gps_longitude, node->gps_altitude, - node->net_address, node->net_ifname, node->net_rssi); + node->net_address, node->net_ifname, node->net_rssi, node->interval); if (bms_mysql_query(query) == 0) { syslog(LOG_NOTICE, "MySQL: insert new node %s", node->node); @@ -465,20 +532,20 @@ void node_mysql_update(sys_node_list *node) { - char *query = malloc(1024), last[21]; + char *query = malloc(1024), last[65]; struct tm *mytime; mytime = localtime(&node->lastseen); - snprintf(last, 20, "%04d-%02d-%02d %02d:%02d:%02d", + snprintf(last, 64, "%04d-%02d-%02d %02d:%02d:%02d", mytime->tm_year + 1900, mytime->tm_mon + 1, mytime->tm_mday, mytime->tm_hour, mytime->tm_min, mytime->tm_sec); snprintf(query, 1023, - "UPDATE mon_nodes SET online='%s', hardwaremake='%s', hardwaremodel='%s', os='%s', os_version='%s', firmware='%s', lastseen='%s', " \ + "UPDATE mon_nodes SET online='%d', hardwaremake='%s', hardwaremodel='%s', os='%s', os_version='%s', firmware='%s', lastseen='%s', " \ "temperature='%.3f', humidity='%.3f', barometer='%.3f', gps_latitude='%.8f', gps_longitude='%.8f', gps_altitude='%.8f', " \ - "net_address='%s', net_ifname='%s', net_rssi='%d' WHERE uuid='%s'", - node->online ?"Y":"N", node->hardwaremake, node->hardwaremodel, node->os, node->os_version, node->firmware, last, + "net_address='%s', net_ifname='%s', net_rssi='%d', up_interval='%d' WHERE uuid='%s'", + node->online ? 1:0, node->hardwaremake, node->hardwaremodel, node->os, node->os_version, node->firmware, last, node->temperature, node->humidity, node->barometer, node->gps_latitude, node->gps_longitude, node->gps_altitude, - node->net_address, node->net_ifname, node->net_rssi, node->uuid); + node->net_address, node->net_ifname, node->net_rssi, node->interval, node->uuid); bms_mysql_query(query); free(query); @@ -490,7 +557,7 @@ { char *query = malloc(512); - snprintf(query, 511, "UPDATE mon_nodes SET online='N' WHERE node='%s'", node); + snprintf(query, 511, "UPDATE mon_nodes SET online='0' WHERE node='%s'", node); bms_mysql_query(query); free(query); } @@ -502,7 +569,7 @@ char *query = malloc(2560); snprintf(query, 2559, - "INSERT INTO mon_fermenters SET uuid='%s', alias='%s', node='%s', online='%s', " \ + "INSERT INTO mon_fermenters SET uuid='%s', alias='%s', node='%s', online='%d', " \ "beercode='%s', beername='%s', beeruuid='%s', " \ "air_address='%s', air_state='%s', air_temperature='%.3f', " \ "beer_address='%s', beer_state='%s', beer_temperature='%.3f', " \ @@ -517,7 +584,7 @@ "profile_uuid='%s', profile_name='%s', profile_state='%s', profile_percent='%d', " \ "profile_inittemp_high='%.3f', profile_inittemp_low='%.3f', profile_steps='%s', stage='%s', " \ "yeast_lo='%.1f', yeast_hi='%.1f', webcam_url='%s', webcam_light='%d'", - fermenter->uuid, fermenter->alias, fermenter->node, fermenter->online ? "Y":"N", + fermenter->uuid, fermenter->alias, fermenter->node, fermenter->online ? 1:0, fermenter->beercode ? fermenter->beercode : "", fermenter->beername ? fermenter->beername : "", fermenter->beeruuid ? fermenter->beeruuid : "", fermenter->air_address ? fermenter->air_address : "", fermenter->air_state ? fermenter->air_state : "", fermenter->air_temperature, @@ -548,7 +615,7 @@ char *query = malloc(2560); snprintf(query, 2559, - "UPDATE mon_fermenters SET online='%s', beercode='%s', beername='%s', beeruuid='%s', " \ + "UPDATE mon_fermenters SET online='%d', beercode='%s', beername='%s', beeruuid='%s', " \ "air_address='%s', air_state='%s', air_temperature='%.3f', " \ "beer_address='%s', beer_state='%s', beer_temperature='%.3f', " \ "chiller_address='%s', chiller_state='%s', chiller_temperature='%.3f', " \ @@ -562,7 +629,7 @@ "profile_uuid='%s', profile_name='%s', profile_state='%s', profile_percent='%d', " \ "profile_inittemp_high='%.3f', profile_inittemp_low='%.3f', profile_steps='%s', stage='%s', " \ "yeast_lo='%.1f', yeast_hi='%.1f', webcam_url='%s', webcam_light='%d' WHERE uuid='%s'", - fermenter->online ? "Y":"N", fermenter->beercode ? fermenter->beercode : "", fermenter->beername ? fermenter->beername : "", + fermenter->online ? 1:0, fermenter->beercode ? fermenter->beercode : "", fermenter->beername ? fermenter->beername : "", fermenter->beeruuid ? fermenter->beeruuid : "", fermenter->air_address ? fermenter->air_address : "", fermenter->air_state ? fermenter->air_state : "", fermenter->air_temperature, fermenter->beer_address ? fermenter->beer_address : "", fermenter->beer_state ? fermenter->beer_state : "", fermenter->beer_temperature, @@ -591,9 +658,9 @@ char *query = malloc(512); if (alias) - snprintf(query, 511, "UPDATE mon_fermenters SET online='N' WHERE node='%s' and alias='%s'", node, alias); + snprintf(query, 511, "UPDATE mon_fermenters SET online='0' WHERE node='%s' and alias='%s'", node, alias); else - snprintf(query, 511, "UPDATE mon_fermenters SET online='N' WHERE node='%s'", node); + snprintf(query, 511, "UPDATE mon_fermenters SET online='0' WHERE node='%s'", node); bms_mysql_query(query); free(query); @@ -655,3 +722,111 @@ } + +void ispindel_mysql_insert(sys_ispindel_list *ispindel) +{ + char *query = malloc(2560); + + snprintf(query, 2559, + "INSERT INTO mon_ispindels SET uuid='%s', alias='%s', node='%s', online='%d', mode='%s', alarm='%d', " \ + "angle='%.5f', temperature='%.4f', battery='%.6f', gravity='%.5f', up_interval='%d', og_gravity='0.0'", + ispindel->uuid, ispindel->alias, ispindel->node, ispindel->online ? 1:0, ispindel->mode, ispindel->alarm, + ispindel->angle, ispindel->temperature, ispindel->battery, ispindel->gravity, ispindel->interval); + + if (bms_mysql_query(query) == 0) { + syslog(LOG_NOTICE, "MySQL: insert new ispindel %s", ispindel->node); + } + free(query); +} + + + +void ispindel_mysql_update(sys_ispindel_list *ispindel) +{ + char *query = malloc(2560); + + snprintf(query, 2559, + "UPDATE mon_ispindels SET online='%d', mode='%s', alarm='%d', " \ + "angle='%.5f', temperature='%.4f', battery='%.6f', gravity='%.5f', up_interval='%d', og_gravity=GREATEST(og_gravity, '%.5f') WHERE uuid='%s'", + ispindel->online ? 1:0, ispindel->mode, ispindel->alarm, + ispindel->angle, ispindel->temperature, ispindel->battery, ispindel->gravity, ispindel->interval, ispindel->gravity, ispindel->uuid); + + bms_mysql_query(query); + free(query); +} + + + +void ispindel_mysql_death(char *node) +{ + char *query = malloc(512); + + snprintf(query, 511, "UPDATE mon_ispindels SET online='0' WHERE node='%s'", node); + bms_mysql_query(query); + free(query); +} + + + +/* + * Check using a new MySQL connection because we are running from another thread. + */ +void ispindel_mysql_check(void) +{ + sys_ispindel_list *tmpp; + MYSQL *con2 = NULL; + MYSQL_RES *res_set2; + MYSQL_ROW row2; + + if (ispindels == NULL) + return; + + con2 = mysql_init(NULL); + if (con2 == NULL) { + syslog(LOG_NOTICE, "MySQL: mysql_init() failed"); + return; + } + + if (mysql_real_connect(con2, Config.mysql_host, Config.mysql_user, Config.mysql_pass, Config.mysql_database, Config.mysql_port, NULL, 0) == NULL) { + syslog(LOG_NOTICE, "MySQL: mysql_real_connect() %s", mysql_error(con2)); + return; + } + + if (mysql_query(con2, "SELECT uuid,alias,beercode,beername,beeruuid,mode FROM mon_ispindels;")) { + syslog(LOG_NOTICE, "MySQL: SELECT uuid,alias,beercode,beername,beeruuid,mode FROM mon_ispindels error %u (%s))", mysql_errno(con2), mysql_error(con2)); + } else { + res_set2 = mysql_store_result(con2); + if (res_set2 == NULL) { + syslog(LOG_NOTICE, "MySQL: mysq_store_result error %u (%s))", mysql_errno(con2), mysql_error(con2)); + } else { + while ((row2 = mysql_fetch_row(res_set2)) != NULL) { + for (tmpp = ispindels; tmpp; tmpp = tmpp->next) { + if (strcmp(tmpp->uuid, row2[0]) == 0) { + if (strcmp(tmpp->beercode, row2[2]) || strcmp(tmpp->beername, row2[3]) || strcmp(tmpp->beeruuid, row2[4])) { + syslog(LOG_NOTICE, "ispindel `%s` change beer to `%s %s`", row2[1], row2[2], row2[3]); + if (tmpp->beercode) + free(tmpp->beercode); + tmpp->beercode = xstrcpy(row2[2]); + if (tmpp->beername) + free(tmpp->beername); + tmpp->beername = xstrcpy(row2[3]); + if (tmpp->beeruuid) + free(tmpp->beeruuid); + tmpp->beeruuid = xstrcpy(row2[4]); + } + if (strcmp(tmpp->mode, row2[5])) { + syslog(LOG_NOTICE, "ispindel `%s` change mode `%s`", row2[1], row2[5]); + if (tmpp->mode) + free(tmpp->mode); + tmpp->mode = xstrcpy(row2[5]); + } + } + } + } + mysql_free_result(res_set2); + } + } + + mysql_close(con2); +} +
--- a/bmsd/mysql.h Fri Oct 18 13:20:35 2019 +0200 +++ b/bmsd/mysql.h Fri May 01 16:37:31 2020 +0200 @@ -41,5 +41,16 @@ void co2meter_mysql_update(sys_co2meter_list *co2meter); void co2meter_mysql_death(char *node, char *alias); +void ispindel_mysql_insert(sys_ispindel_list *ispindel); +void ispindel_mysql_update(sys_ispindel_list *ispindel); +void ispindel_mysql_death(char *alias); + +/** + * @brief Check state changes in the database for all iSpindels and + * update the internal memory array. Called every 5 seconds from + * the main server thread. + */ +void ispindel_mysql_check(void); + #endif
--- a/bmsd/nodes.c Fri Oct 18 13:20:35 2019 +0200 +++ b/bmsd/nodes.c Fri May 01 16:37:31 2020 +0200 @@ -3,7 +3,7 @@ * @brief Handle nodes status * @author Michiel Broek <mbroek at mbse dot eu> * - * Copyright (C) 2018-2019 + * Copyright (C) 2018-2020 * * This file is part of the bms (Brewery Management System) * @@ -34,7 +34,7 @@ extern int debug; extern sys_fermenter_list *fermenters; extern sys_co2meter_list *co2meters; - +extern sys_ispindel_list *ispindels; void node_birth_data(char *topic, char *payload) @@ -82,6 +82,7 @@ node->gps_latitude = node->gps_longitude = node->gps_altitude = 0.0; node->net_address = node->net_ifname = NULL; node->net_rssi = 0; + node->interval = 300; } /* @@ -111,6 +112,9 @@ free(node->uuid); node->uuid = xstrcpy((char *)json_object_get_string(val)); } + if (json_object_object_get_ex(metric, "interval", &val)) { + node->interval = json_object_get_int(val); + } if (json_object_object_get_ex(metric, "properties", &metric2)) { if (json_object_object_get_ex(metric2, "hardwaremake", &val)) { if (node->hardwaremake) @@ -214,6 +218,7 @@ printf("GPS %.5f %.5f %.5f\n", node->gps_latitude, node->gps_longitude, node->gps_altitude); printf("net %s:%s\n", node->net_ifname, node->net_address); printf("rssi %d\n", node->net_rssi); + printf("interval %d\n", node->interval); } } @@ -247,11 +252,14 @@ sys_node_list *tmpn; sys_fermenter_list *tmpf; sys_co2meter_list *tmpc; + sys_ispindel_list *tmpi; time_t now = time(NULL); for (tmpn = nodes; tmpn; tmpn = tmpn->next) { - if (tmpn->online && ((now - tmpn->lastseen) > 600)) { - syslog(LOG_NOTICE, "Timeout node `%s/%s'", tmpn->group_id, tmpn->node); +// if (debug) +// printf("%-20s online %s %ld %d\n", tmpn->node, tmpn->online ? "yes":"no ", tmpn->lastseen, tmpn->interval); + if (tmpn->online && ((now - tmpn->lastseen) > (tmpn->interval * 2 + 5))) { // 2 times interval + 5 seconds + syslog(LOG_NOTICE, "Timeout node `%s/%s' after %ld seconds", tmpn->group_id, tmpn->node, (now - tmpn->lastseen)); tmpn->online = false; node_mysql_death(tmpn->node); @@ -274,6 +282,16 @@ } } } + + for (tmpi = ispindels; tmpi; tmpi = tmpi->next) { + if (strcmp(tmpi->node, tmpn->node) == 0) { + if (tmpi->online) { + syslog(LOG_NOTICE, "Timeout ispindel %s", tmpi->node); + tmpi->online = false; + ispindel_mysql_death(tmpi->node); + } + } + } } } }
--- a/config.h.in Fri Oct 18 13:20:35 2019 +0200 +++ b/config.h.in Fri May 01 16:37:31 2020 +0200 @@ -9,3 +9,9 @@ /* According to Sun we MUST define this in the source */ #define _REENTRANT 1 +/* Define if you have the <mysql/mysql.h> header file. */ +#undef HAVE_MYSQL_MYSQL_H + +/* Define if you have the <mariadb/mysql.h> header file. */ +#undef HAVE_MARIADB_MYSQL_H +
--- a/config.status Fri Oct 18 13:20:35 2019 +0200 +++ b/config.status Fri May 01 16:37:31 2020 +0200 @@ -619,9 +619,9 @@ S["CFLAGS"]="-g -O2 -fomit-frame-pointer -fno-strict-aliasing -Wall -Wshadow -Wwrite-strings -Wstrict-prototypes -Winline -I/usr/include/libxml2 -I/usr/include/u"\ "uid" S["CC"]="gcc" -S["CYEARS"]="2016-2019" -S["COPYRIGHT"]="Copyright (C) 2016-2019 Michiel Broek, All Rights Reserved" -S["VERSION"]="0.4.9" +S["CYEARS"]="2016-2020" +S["COPYRIGHT"]="Copyright (C) 2016-2020 Michiel Broek, All Rights Reserved" +S["VERSION"]="0.4.10" S["PACKAGE"]="bms" S["SUBDIRS"]="bmsd doc script tools www" S["target_alias"]="" @@ -710,8 +710,8 @@ D["PACKAGE_STRING"]=" \"\"" D["PACKAGE_BUGREPORT"]=" \"\"" D["PACKAGE_URL"]=" \"\"" -D["VERSION"]=" \"0.4.9\"" -D["COPYRIGHT"]=" \"Copyright (C) 2016-2019 Michiel Broek, All Rights Reserved\"" +D["VERSION"]=" \"0.4.10\"" +D["COPYRIGHT"]=" \"Copyright (C) 2016-2020 Michiel Broek, All Rights Reserved\"" D["STDC_HEADERS"]=" 1" D["HAVE_SYS_TYPES_H"]=" 1" D["HAVE_SYS_STAT_H"]=" 1" @@ -724,7 +724,7 @@ D["HAVE_UNISTD_H"]=" 1" D["HAVE_MOSQUITTO_H"]=" 1" D["HAVE_JSON_C_JSON_H"]=" 1" -D["HAVE_MYSQL_MYSQL_H"]=" 1" +D["HAVE_MARIADB_MYSQL_H"]=" 1" D["HAVE_LIBXML_XMLMEMORY_H"]=" 1" D["HAVE_UUID_UUID_H"]=" 1" D["STDC_HEADERS"]=" 1"
--- a/configure Fri Oct 18 13:20:35 2019 +0200 +++ b/configure Fri May 01 16:37:31 2020 +0200 @@ -2043,9 +2043,9 @@ PACKAGE="bms" -VERSION="0.4.9" -COPYRIGHT="Copyright (C) 2016-2019 Michiel Broek, All Rights Reserved" -CYEARS="2016-2019" +VERSION="0.4.10" +COPYRIGHT="Copyright (C) 2016-2020 Michiel Broek, All Rights Reserved" +CYEARS="2016-2020" @@ -3652,6 +3652,18 @@ done + for ac_header in mariadb/mysql.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "mariadb/mysql.h" "ac_cv_header_mariadb_mysql_h" "$ac_includes_default" +if test "x$ac_cv_header_mariadb_mysql_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MARIADB_MYSQL_H 1 +_ACEOF + +fi + +done + else as_fn_error $? "mysqlclient not found" "$LINENO" 5 fi
--- a/configure.ac Fri Oct 18 13:20:35 2019 +0200 +++ b/configure.ac Fri May 01 16:37:31 2020 +0200 @@ -8,9 +8,9 @@ dnl General settings dnl After changeing the version number, run autoconf! PACKAGE="bms" -VERSION="0.4.9" -COPYRIGHT="Copyright (C) 2016-2019 Michiel Broek, All Rights Reserved" -CYEARS="2016-2019" +VERSION="0.4.10" +COPYRIGHT="Copyright (C) 2016-2020 Michiel Broek, All Rights Reserved" +CYEARS="2016-2020" AC_SUBST(PACKAGE) AC_SUBST(VERSION) AC_SUBST(COPYRIGHT) @@ -66,6 +66,7 @@ if test "$result" = "yes"; then LIBS="$LIBS -lmysqlclient" AC_CHECK_HEADERS(mysql/mysql.h) + AC_CHECK_HEADERS(mariadb/mysql.h) else AC_MSG_ERROR(mysqlclient not found) fi
--- a/doc/bms-ch8.sgml Fri Oct 18 13:20:35 2019 +0200 +++ b/doc/bms-ch8.sgml Fri May 01 16:37:31 2020 +0200 @@ -34,6 +34,8 @@ <listitem><para><code>fermenters</code> is voor vergisting controllers.</para></listitem> <listitem><para><code>co2meters</code> is een drukmeter om bijvoorbeeld hergisting op de fles te monitoren.</para></listitem> +<listitem><para><code>ispindels</code> is een electronische hydrometer die in het gistvat drijft +en de temperatuur en sg verstuurt.</para></listitem> </orderedlist> <para>De volgende <code>message_type</code> namen zijn gedefinieerd:</para> @@ -81,13 +83,19 @@ is de unix tijd sinds 1 januari 1970. Niet alle controllers sturen een timestamp, controllers zonder klok laten dit weg. De tijd wordt dan door <code>bmsd</code> ingevuld en is de tijd dat het bericht ontvangen wordt. -Het `seq' nummer wordt met ieder bericht met 1 verhoogd.</para> +Het `seq' nummer wordt met ieder bericht met 1 verhoogd. +Ook dit nummer is niet altijd aanwezig.</para> +<para>In de `metric' groep is de `interval' optioneel. Dit wordt bijvoorbeeld +verstuurd door iSpindels en is de ingestelde update interval tijd in seconden. +Indien dit niet aanwezig is dan wordt 300 seconden als standaard waarde gebruikt. +Deze waarde wordt gebruikt om een apparaat als offline te markeren indien het langer +als twee maal deze tijd niet wordt gezien.</para> <programlisting> { "timestamp": 1532201089, - "seq": 0, "metric": { "uuid": "b508f01c-1f82-4e8b-b0d2-d88ecfb53031", + "interval":300, "properties": { "hardwaremake": "Raspberry", "hardwaremodel": "Unknown", @@ -158,7 +166,9 @@ "product": { "uuid": "1eb0c7bf-bf06-491c-a086-ac5478d521b9", "code": "CB0001", - "name": "Hoppy Housebeer" + "name": "Hoppy Housebeer", + "yeast_lo": 18.0, + "yeast_hi": 24.0 }, "air": { "address": "70d60411-3ec8-40ab-998a-81fead83025f", @@ -207,11 +217,7 @@ "mode": "BEER", "setpoint": { "low": 21.0, - "high": 21.0 - }, - "webcam": { - "url":"https://the.webcamserver.com:8090/?action=stream", - "light": 1 + "high": 21.5 }, "alarm": 0, "profile": { @@ -223,7 +229,6 @@ "low": 17.9, "high": 18.1 }, - "fridgemode": 0, "steps": [ { "resttime": 2, @@ -273,7 +278,6 @@ <programlisting> { "timestamp": 1532201089, - "seq": 0, "metric": { "product": { "uuid": "1eb0c7bf-bf06-491c-a086-ac5478d521b9", @@ -304,7 +308,6 @@ "power": 100, "usage": 8273772 }, - "sg": 1.023, "event": "Something to mark", "fermenter_uuid": "48c9ae27-3f58-41c9-ae4b-1d57b249c45a" } @@ -318,36 +321,95 @@ De bestandsnamen zijn <code>product_code\ product_name.log</code>. Het interne formaat is:</para> <programlisting> - 2014-11-15 18:39:12,BEER,PRIMARY,20.312,19.750,-1.500,20.5,18.6,18.8,35,12345,0,67890,Whatsup,Fermenter - | | | | | | | | | | | | | | | - 0 datetime + | | | | | | | | | | | | | | - 1 werkwijze ------------+ | | | | | | | | | | | | | - 2 vergisting fase ------------+ | | | | | | | | | | | | - 3 temperatuur lucht -----------------+ | | | | | | | | | | | - 4 temperatuur bier -------------------------+ | | | | | | | | | | - 5 temperatuur koeler ------------------------------+ | | | | | | | | | - 6 temperatuur ruimte -------------------------------------+ | | | | | | | | - 7 instelwaarde laag -------------------------------------------+ | | | | | | | - 8 instelwaarde hoog ------------------------------------------------+ | | | | | | - 9 verwarming vermogen --------------------------------------------------+ | | | | | -10 verwarming verbruik ------------------------------------------------------+ | | | | -11 koeler vermogen --------------------------------------------------------------+ | | | -12 koeler verbruik ------------------------------------------------------------------+ | | -13 gebeurtenis -----------------------------------------------------------------------------+ | -14 vergister uuid -----------------------------------------------------------------------------------+ +2014-11-15 18:39:12,BEER,PRIMARY,20.312,19.750,-1.500,20.5,18.6,18.8,35,12345,0,67890,Whatsup,Fermenter + | | | | | | | | | | | | | | | + 0 datetime + | | | | | | | | | | | | | | + 1 werkwijze ---------+ | | | | | | | | | | | | | + 2 vergisting fase ---------+ | | | | | | | | | | | | + 3 temperatuur lucht --------------+ | | | | | | | | | | | + 4 temperatuur bier ----------------------+ | | | | | | | | | | + 5 temperatuur koeler ---------------------------+ | | | | | | | | | + 6 temperatuur ruimte ----------------------------------+ | | | | | | | | + 7 instelwaarde laag ----------------------------------------+ | | | | | | | + 8 instelwaarde hoog ---------------------------------------------+ | | | | | | + 9 verwarming vermogen -----------------------------------------------+ | | | | | +10 verwarming verbruik ---------------------------------------------------+ | | | | +11 koeler vermogen -----------------------------------------------------------+ | | | +12 koeler verbruik ---------------------------------------------------------------+ | | +13 gebeurtenis --------------------------------------------------------------------------+ | +14 vergister uuid --------------------------------------------------------------------------------+ +</programlisting> +</sect1> + +<sect1 id="payloadco2data"> +<title>Netwerk payload data formaat voor CO2 meters.</title> +<para> +Nog schrijven +</para> +<programlisting> +{ + "seq":228196, + "metric":{ + "units":[ + { + "uuid":"c0ffeeee-dead-beef-caf0-3c71bffe4054", + "alias":"unit1", + "mode":"ON", + "alarm":0, + "temperature":{ + "state":"OK", + "address":"e001191420732a28", + "temperature":20.250 + }, + "pressure":{ + "state":"OK", + "channel":7, + "voltage":0.322, + "zero":0.110, + "bar":0.00 + } + }, + { + "uuid":"c0ffeeee-dead-beef-caf1-3c71bffe4054", + "alias":"unit2", + "mode":"OFF", + "alarm":1, + "temperature":{ + "state":"OK", + "address":"e001191420732a28", + "temperature":20.250 + }, + "pressure":{ + "state":"OK", + "channel":6, + "voltage":0.075, + "zero":0.109, + "bar":0.00 + } + } + ] + } +} </programlisting> </sect1> <sect1 id="payloadco2log"> <title>Netwerk payload log formaat voor CO2 meters.</title> <para> -Voor iedere actieve CO2 meter wordt bij iedere systeemstart een logbericht -gestuurd. Dit is ongeveer iedere 5 minuten. Omdat de CO2 meters eenvoudige +Voor iedere actieve CO2 meter wordt bij iedere systeemstart en iedere vijf +minuten een logbericht gestuurd. Omdat de CO2 meters eenvoudige controllers zijn is er geen tijd en product informatie beschikbaar. Deze ontbrekende gegevens worden aangevuld door <command>bmsd</command> </para> <programlisting> - +{ + "seq":228229, + "metric":{ + "uuid":"c0ffeeee-dead-beef-caf0-3c71bffe4054", + "temperature":21.125, + "pressure":0.000 + } +} </programlisting> <para> De ontvangen CO2 log gegevens worden niet opgeslagen in de SQL database @@ -366,4 +428,103 @@ </programlisting> </sect1> + +<sect1 id="payloadispindeldata"> +<title>Netwerk payload data formaat voor iSpindels.</title> +<para> +Iedere actieve iSpindel stuurt bij iedere systeemstart een bericht. +Daarna na iedere <code>interval</code> tijd in seconden een volgend bericht. +Omdat de iSpindel eenvoudige controllers zijn is er geen tijd en product +informatie beschikbaar. De instellingen voor <code>bmsd</code> in de iSpindel zijn: +</para> + +<orderedlist> +<listitem><para>Unit of temperature: Celsius</para></listitem> +<listitem><para>Service Type: HTTP</para></listitem> +<listitem><para>Token: leeg laten</para></listitem> +<listitem><para>Server Address: het server IP adres</para></listitem> +<listitem><para>Server Port: 80</para></listitem> +<listitem><para>Path / URI: /ispindel/index.php</para></listitem> +</orderedlist> + +<para> +De densiteit wordt standaard door de iSpindel in graden Plato gegeven en zo worden +de gegevens ook verwerkt. Het SG wordt door de <code>/ispindel/index.php</code> +berekend. Dit script verzorgd de omzetting van de iSpindel POST data naar MQTT +data. +</para> + +<informaltable frame="none" rowsep="0" colsep="0"> +<tgroup cols="2"> +<tbody> +<row> +<entry> +<para> +<figure><title>iSpindel menu.</title> +<mediaobject> +<imageobject> +<imagedata valign="top" fileref="bms-ispindel-1.png" scale="15" format="png"> +</imageobject> +</mediaobject> +</figure> +</para> +</entry> +<entry> +<para> +<figure><title>iSpindel configuratie.</title> +<mediaobject> +<imageobject> +<imagedata valign="top" fileref="bms-ispindel-2.png" scale="15" format="png"> +</imageobject> +</mediaobject> +</figure> +</para> +</entry> +</row> +</tbody> +</tgroup> +</informaltable> + +<para> +De ontbrekende gegevens worden aangevuld door <command>bmsd</command> +De volgende gegevens worden via het MQTT protocol ontvangen: +</para> +<programlisting> +{ + "unit":{ + "uuid":"c0ffeeee-cafe-dead-bee0-2af236d50dc9", + "alias":"iSpindel000", + "alarm":0, + "interval":900, + "angle":42.96722, + "temperature":25.5625, + "battery":4.254432, + "gravity":9.306425 + } +} +</programlisting> +<para> +De iSpindel stuurt geen aparte log informatie, alle informatie voor de logfile +wordt uit het standaard bericht gehaald. +De log gegevens worden niet opgeslagen in de SQL database +maar weggeschreven in platte tekst bestanden. Hierdoor is de gelogde informatie sneller toegankelijk. +Ieder brouw product heeft zijn eigen bestand. +De bestanden staan in <code>www/logs/ispindel/</code>. +De bestandsnamen zijn <code>product_code\ product_name.log</code>. +Het interne formaat is:</para> +<programlisting> + 2020-01-05 14:01:53,19.3750,7.08093,1.02806,3.34724,38.78126,900,c0ffeeee-cafe-dead-bee0-2af236d50dc9 + | | | | | | | | + 0 datetime + | | | | | | | + 1 temperatuur -----------+ | | | | | | + 2 densiteit plato ---------------+ | | | | | + 3 densiteit SG --------------------------+ | | | | + 4 batterij voltage ------------------------------+ | | | + 5 tilt hoek ---------------------------------------------+ | | + 6 update interval ----------------------------------------------+ | + 7 ispindel uuid ------------------------------------------------------------------+ +</programlisting> +</sect1> + + </chapter>
--- a/doc/bms.sgml Fri Oct 18 13:20:35 2019 +0200 +++ b/doc/bms.sgml Fri May 01 16:37:31 2020 +0200 @@ -1,4 +1,4 @@ -<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.4//EN" [ +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.5//EN" [ <!ENTITY chapter1 SYSTEM "bms-ch1.sgml"> <!ENTITY chapter2 SYSTEM "bms-ch2.sgml"> <!ENTITY chapter3 SYSTEM "bms-ch3.sgml"> @@ -20,7 +20,7 @@ </authorgroup> <copyright> - <year>2018</year> + <year>2018-2020</year> <holder role='mailto:mbse@mbse.eu'>M. Broek</holder> </copyright>
--- a/doc/docbook-utils.dsl Fri Oct 18 13:20:35 2019 +0200 +++ b/doc/docbook-utils.dsl Fri May 01 16:37:31 2020 +0200 @@ -181,7 +181,7 @@ (define %title-font-family% "Helvetica") ;;What font would you like for the body? -(define %body-font-family% "Palatino") +(define %body-font-family% "Helvetica") ;;What font would you like for mono-seq? (define %mono-font-family% "Courier New") @@ -207,13 +207,13 @@ (define %left-right-margin% 6pi) ;;How much indentation for the body? -(define %body-start-indent% 4pi) +(define %body-start-indent% 2pi) ;;How big is the left margin? (relative to physical page) -(define %left-margin% 8pi) ;white-paper-column +(define %left-margin% 6pi) ;white-paper-column ;;How big is the right margin? (relative to physical page) -(define %right-margin% 8pi) ;white-paper-column +(define %right-margin% 6pi) ;white-paper-column ;;How big do you want the margin at the top? (define %top-margin%
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/Makefile Fri May 01 16:37:31 2020 +0200 @@ -0,0 +1,27 @@ +# Makefile for the mbsePi-apps/thermferm. + +include ../Makefile.global + +OTHER = Makefile bmsd.init + +############################################################################# + +.c.o: + ${CC} ${CFLAGS} ${INCLUDES} ${DEFINES} -c $< + +all: + + +clean: + rm -f filelist Makefile.bak + +install: + ${INSTALL} -c -g root -o root -m 0755 bmsd.init /etc/init.d/bmsd + [ -x /bin/systemctl ] && /bin/systemctl daemon-reload + +filelist: Makefile + BASE=`pwd`; \ + BASE=`basename $${BASE}`; \ + (for f in ${SRCS} ${HDRS} ${OTHER} ;do echo ${PACKAGE}-${VERSION}/$${BASE}/$$f; done) >filelist + +depend:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/bmsd.init Fri May 01 16:37:31 2020 +0200 @@ -0,0 +1,136 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: bmsd +# Required-Start: $local_fs $remote_fs $network $syslog +# Required-Stop: $local_fs $remote_fs $network $syslog +# Should-Start: mosquitto +# Should-Stop: mosquitto +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Brewery Management Daemon +# Description: This program is the central daemon to collect data +# from and control remote devices in a brewery. It is +# the production and inventory database. +### END INIT INFO + +# Author: Michiel Broek <mbroek@mbse.eu> + +# Do NOT "set -e" + +# PATH should only include /usr/* if it runs after the mountnfs.sh script +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="Brewery Management Daemon" +NAME=bmsd +DAEMON=/var/lib/bms/bin/$NAME +#DAEMON_ARGS="--options args" +PIDFILE=/var/lib/bms/.bms/run/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +# Load the VERBOSE setting and other rcS variables +. /lib/init/vars.sh + +# Define LSB log_* functions. +# Depend on lsb-base (>= 3.2-14) to ensure that this file is present +# and status_of_proc is working. +. /lib/lsb/init-functions + +# +# Function that starts the daemon/service +# +do_start() +{ + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # other if daemon could not be started or a failure occured + start-stop-daemon --start --chuid brewery --exec $DAEMON +} + +# +# Function that stops the daemon/service +# +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # other if daemon could not be stopped or a failure occurred + start-stop-daemon --stop --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $DAEMON +} + +# +# Function that sends a SIGHUP to the daemon/service +# +do_reload() { + # + # If the daemon can reload its configuration without + # restarting (for example, when it is sent a SIGHUP), + # then implement that here. + # + return 0 +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + status) + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? + ;; + #reload|force-reload) + # + # If do_reload() is not implemented then leave this commented out + # and leave 'force-reload' as an alias for 'restart'. + # + #log_daemon_msg "Reloading $DESC" "$NAME" + #do_reload + #log_end_msg $? + #;; + restart|force-reload) + # + # If the "reload" option is implemented then remove the + # 'force-reload' alias + # + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac + +:
--- a/www/Makefile Fri Oct 18 13:20:35 2019 +0200 +++ b/www/Makefile Fri May 01 16:37:31 2020 +0200 @@ -3,15 +3,18 @@ include ../Makefile.global -SRC = cmd_fermenter.php cmd_co2meter.php \ - config.php.dist crontasks.php favicon.ico gen_about.php \ +SRC = cmd_fermenter.php cmd_co2meter.php cmd_ispindel.php config.php.dist crontasks.php \ + export_equipments.php export_fermentables.php export_hops.php export_mashs.php \ + export_miscs.php export_styles.php export_suppliers.php export_waters.php \ + export_yeasts.php favicon.ico gen_about.php \ getbrewlog.php getco2meter.php getco2pressurelog.php getfermentablesources.php \ getfermenter.php getfermentlog.php gethopsources.php getmiscsources.php getnode.php \ - getwatersources.php getyeastsources.php import_ingredients.php index.php \ + getwatersources.php getyeastsources.php getispindel.php getispindellog.php \ + import_ingredients.php index.php \ inv_equipments.php inv_fermentables.php inv_hops.php inv_instock.php \ - inv_miscs.php inv_suppliers.php inv_waters.php inv_yeasts.php \ - log_brew.php log_co2pressure.php log_fermentation.php \ - mon_brewer.php mon_co2meter.php mon_fermenter.php mon_node.php \ + inv_miscs.php inv_suppliers.php inv_waters.php inv_yeasts.php inv_yeastlab.php \ + log_brew.php log_co2pressure.php log_fermentation.php log_ispindel.php \ + mon_brewer.php mon_co2meter.php mon_fermenter.php mon_ispindel.php mon_node.php \ prod_archive_code.php prod_archive_date.php prod_archive_name.php prod_beerxml.php \ prod_checklist.php prod_divide.php prod_duplicate.php prod_edit.php prod_export.php prod_forum.php \ prod_impbrew.php prod_inprod.php prod_new.php prod_print.php prod_torecipe.php \ @@ -27,12 +30,10 @@ includes/* fpdf/* import/* OTHER = Makefile CSS_FILES = $(filter-out %-min.css,$(wildcard css/*.css css/**/*.css )) -JS_FILES = $(filter-out %-min.js,$(wildcard js/*.js js/**/*.js )) YUI_COMPRESSOR = yui-compressor YUI_COMPRESSOR_FLAGS = --charset utf-8 --verbose CSS_MINIFIED = $(CSS_FILES:.css=-min.css) -JS_MINIFIED = $(JS_FILES:.js=-min.js) @@ -41,38 +42,34 @@ .c.o: ${CC} ${CFLAGS} ${INCLUDES} ${DEFINES} -c $< -all: minify-css minify-js +all: minify-css clean: - rm -f version.php ${CSS_MINIFIED} ${JS_MINIFIED} + rm -f version.php ${CSS_MINIFIED} minify-css: $(CSS_FILES) $(CSS_MINIFIED) -minify-js: $(JS_FILES) $(JS_MINIFIED) %-min.css: %.css @echo '==> Minifying $<' $(YUI_COMPRESSOR) $(YUI_COMPRESSOR_FLAGS) --type css $< >$@ @echo -%-min.js: %.js - @echo '==> Minifying $<' - $(YUI_COMPRESSOR) $(YUI_COMPRESSOR_FLAGS) --type js $< >$@ - @echo - - install: ${INSTALL} -d -g 314 -o 314 ${PREFIX} ${WWWDIR} ${WWWDIR}/css ${WWWDIR}/fpdf \ - ${WWWDIR}/fpdf/font \ + ${WWWDIR}/fpdf/font ${WWWDIR}/ispindel \ ${WWWDIR}/jqwidgets ${WWWDIR}/js ${WWWDIR}/images/ ${WWWDIR}/includes/ ${INSTALL} -d -g 314 -o 314 -m 0777 ${WWWDIR}/run ${INSTALL} -d -g 314 -o 314 ${WWWDIR}/log ${INSTALL} -d -g 314 -o 314 ${WWWDIR}/log/brews ${INSTALL} -d -g 314 -o 314 ${WWWDIR}/log/fermentation + ${INSTALL} -d -g 314 -o 314 ${WWWDIR}/log/co2pressure + ${INSTALL} -d -g 314 -o 314 ${WWWDIR}/log/ispindel ${INSTALL} -g 314 -o 314 -m 0644 ${SRC} ${WWWDIR}/ ${INSTALL} -g 314 -o 314 -m 0644 version.php ${WWWDIR}/ ${INSTALL} -g 314 -o 314 -m 0644 css/* ${WWWDIR}/css/ ${INSTALL} -g 314 -o 314 -m 0644 images/* ${WWWDIR}/images/ ${INSTALL} -g 314 -o 314 -m 0644 includes/* ${WWWDIR}/includes/ + ${INSTALL} -g 314 -o 314 -m 0644 ispindel/* ${WWWDIR}/ispindel/ cp -r jqwidgets/* ${WWWDIR}/jqwidgets/ chown -R 314:314 ${WWWDIR}/jqwidgets cp -r -p fpdf/* ${WWWDIR}/fpdf/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/cmd_ispindel.php Fri May 01 16:37:31 2020 +0200 @@ -0,0 +1,29 @@ +<?php +require_once('config.php'); + +#Connect to the database +$connect = mysqli_connect(DBASE_HOST, DBASE_USER, DBASE_PASS, DBASE_NAME); +if (! $connect) { + die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); +} +mysqli_set_charset($connect, "utf8" ); +$sql = ""; + +if (isset($_POST['beername']) && isset($_POST['beercode']) && isset($_POST['beeruuid'])) { + $sql = "UPDATE `mon_ispindels` SET "; + $sql .= "beername='" . mysqli_real_escape_string($connect, $_POST['beername']); + $sql .= "', beercode='" . mysqli_real_escape_string($connect, $_POST['beercode']); + $sql .= "', beeruuid='" . mysqli_real_escape_string($connect, $_POST['beeruuid']); + $sql .= "', og_gravity=0 WHERE uuid='" . $_POST['uuid'] . "';"; +} else if (isset($_POST['mode'])) { + $sql = "UPDATE `mon_ispindels` SET mode='" .$_POST['mode'] . "' WHERE uuid='" . $_POST['uuid'] . "';"; +} else { + syslog(LOG_NOTICE, "cmd_ispindel: unknown POST"); +} + +$result = mysqli_query($connect, $sql); +if (! $result) { + syslog(LOG_NOTICE, "cmd_ispindel: result: ".mysqli_error($connect)); +} +echo $result; +?>
--- a/www/crontasks.php Fri Oct 18 13:20:35 2019 +0200 +++ b/www/crontasks.php Fri May 01 16:37:31 2020 +0200 @@ -74,9 +74,9 @@ /* - * Check fementation logs. + * Check several logs. */ -$query = "SELECT record,code,name,log_brew,log_fermentation FROM products;"; +$query = "SELECT record,code,name,log_brew,log_fermentation,log_ispindel,log_co2pressure FROM products;"; $result = mysqli_query($connect, $query); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $logfile = "log/fermentation/" . $row['code'] . " " . $row['name'] . ".log"; @@ -89,6 +89,26 @@ syslog(LOG_NOTICE, $query); $result1 = mysqli_query($connect, $query); } + $logfile = "log/ispindel/" . $row['code'] . " " . $row['name'] . ".log"; + if (file_exists($logfile)) + $ok = 1; + else + $ok = 0; + if ($ok != $row['log_ispindel']) { + $query = "UPDATE products SET log_ispindel='" . $ok . "' WHERE record='" . $row['record'] . "';"; + syslog(LOG_NOTICE, $query); + $result1 = mysqli_query($connect, $query); + } + $logfile = "log/co2pressure/" . $row['code'] . " " . $row['name'] . ".log"; + if (file_exists($logfile)) + $ok = 1; + else + $ok = 0; + if ($ok != $row['log_co2pressure']) { + $query = "UPDATE products SET log_co2pressure='" . $ok . "' WHERE record='" . $row['record'] . "';"; + syslog(LOG_NOTICE, $query); + $result1 = mysqli_query($connect, $query); + } }
--- a/www/css/style-min.css Fri Oct 18 13:20:35 2019 +0200 +++ b/www/css/style-min.css Fri May 01 16:37:31 2020 +0200 @@ -1,1 +1,1 @@ -body{background:#ccc;font-family:Verdana,Arial,sans-serif;margin:0}#MainPanel,#fermenter,#co2meter{width:1278px;height:628px;border:2px solid #4297d7;background:#252526;float:left;color:#eee}#water_totals{width:960px;background:#353536;margin-top:15px;border:1px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}#propagator{width:800px;background:#353536;margin-top:15px;border:1px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}#export_table,#about_table{width:960px;background:#353536;margin:150px;border:2px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}#node_table{width:600px;background:#353536;margin:50px;border:2px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}#fermenter_table,#co2meter_table{width:960px;height:210px;background:#252526;margin:5px;border:2px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}.ebccolor{float:left;margin-left:10px;width:75px;height:23px;border:1px solid #59b4d4;border-radius:6px;moz-border-radius:6px;webkit-border-radius:6px;background:#212121}#fermenter_thermometers,#co2meter_meters{width:960px;height:390px;float:left;background-color:#252526;margin:5px;margin-top:3px;border:2px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}#fermenter_panel_top,#co2meter_panel_top{width:290px;height:100px;float:right;margin:5px;background-color:#252526;border:2px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}#fermenter_doorled,#fermenter_lightled,#fermenter_alarmled,#fermenter_powerled{width:50px;height:30px;float:left;text-align:center;margin-top:15px;margin-left:20px}#co2meter_alarmled,#co2meter_powerled{width:50px;height:30px;float:right;text-align:center;margin-top:15px;margin-right:20px}#co2meter_panel_display{width:290px;height:260px;float:right;margin:5px;margin-top:3px;background-color:#252526;border:2px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}#fermenter_panel_display{width:290px;height:98px;float:right;margin:5px;margin-top:3px;background-color:#252526;border:2px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}#fermenter_display{width:145px;height:98px;float:left;text-align:center}#fermenter_panel_control{width:290px;height:150px;float:right;margin:5px;margin-top:3px;background-color:#252526;border:2px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}#fermenter_led1,#fermenter_led2,#fermenter_led3{width:96px;height:30px;float:left;text-align:center;margin-top:13px}#fermenter_toggle1{float:left;margin-left:29px;margin-top:20px}#fermenter_toggle2,#fermenter_toggle3{float:left;margin-left:60px;margin-top:20px}#fermenter_panel_buttons,#co2meter_panel_buttons{width:290px;height:227px;float:right;margin:5px;margin-top:3px;background-color:#252526;border:2px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}.LEDred_on{margin:5px auto;width:18px;height:18px;background-color:#F40;border-radius:50%;box-shadow:#000 0 0 4px 1px,inset #C33 0 -1px 5px,#f44 0 2px 12px}.LEDred_off{margin:5px auto;width:18px;height:18px;background-color:#820;border-radius:50%;box-shadow:#400 0 0 1px 1px}.LEDyellow_on{margin:5px auto;width:18px;height:18px;background-color:#FF0;border-radius:50%;box-shadow:#000 0 0 4px 1px,inset #860 0 -1px 5px,#DD0 0 2px 12px}.LEDyellow_off{margin:5px auto;width:18px;height:18px;background-color:#A90;border-radius:50%;box-shadow:#440 0 0 1px 1px}.LEDgreen_on{margin:5px auto;width:18px;height:18px;background-color:#5E0;border-radius:50%;box-shadow:#000 0 0 4px 1px,inset #270 0 -1px 5px,#5D0 0 2px 12px}.LEDgreen_off{margin:5px auto;width:18px;height:18px;background-color:#270;border-radius:50%;box-shadow:#250 0 0 1px 1px}.LEDblue_on{margin:5px auto;width:18px;height:18px;background-color:#4AF;border-radius:50%;box-shadow:#000 0 0 4px 1px,inset #247 0 -1px 5px,#48F 0 2px 12px}.LEDblue_off{margin:5px auto;width:18px;height:18px;background-color:#137;border-radius:50%;box-shadow:#024 0 0 1px 1px}#hintBase,#hintStyle,#hintEq{float:left;margin-top:30px;margin-right:20px;padding:5px;width:600px;color:yellow}#section{margin:5px}#baseButtonsWrapper{float:right;margin-top:30px;margin-right:10px;width:160px}#styleButtonsWrapper{float:right;margin-top:30px;margin-right:10px;width:320px}#eqButtonsWrapper{float:right;margin-top:30px;margin-right:10px;width:320px}#completedButtonsWrapper{float:right;margin-right:10px;width:320px;margin-top:160px}.nextButton{float:right;margin-left:0}.backButton{float:left;margin-left:10px} \ No newline at end of file +body{background:#ccc;font-family:Verdana,Arial,sans-serif;margin:0}#MainPanel,#fermenter,#co2meter,#ispindel{width:1278px;height:628px;border:2px solid #4297d7;background:#252526;float:left;color:#eee}#water_totals{width:960px;background:#353536;margin-top:15px;border:1px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}#propagator{width:800px;background:#353536;margin-top:15px;border:1px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}#export_table,#about_table{width:960px;background:#353536;margin:150px;border:2px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}#node_table{width:600px;background:#353536;margin:50px;border:2px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}#fermenter_table,#co2meter_table,#ispindel_table{width:960px;height:210px;background:#252526;margin:5px;border:2px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}.ebccolor{float:left;margin-left:10px;width:75px;height:23px;border:1px solid #59b4d4;border-radius:6px;moz-border-radius:6px;webkit-border-radius:6px;background:#212121}#fermenter_thermometers,#co2meter_meters,#ispindel_meters{width:960px;height:390px;float:left;background-color:#252526;margin:5px;margin-top:3px;border:2px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}#fermenter_panel_top,#co2meter_panel_top,#ispindel_panel_top{width:290px;height:100px;float:right;margin:5px;background-color:#252526;border:2px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}#fermenter_doorled,#fermenter_lightled,#fermenter_alarmled,#fermenter_powerled{width:50px;height:30px;float:left;text-align:center;margin-top:15px;margin-left:20px}#co2meter_alarmled,#co2meter_powerled,#ispindel_alarmled,#ispindel_powerled{width:50px;height:30px;float:right;text-align:center;margin-top:15px;margin-right:20px}#co2meter_panel_display,#ispindel_panel_display{width:290px;height:260px;float:right;margin:5px;margin-top:3px;background-color:#252526;border:2px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}#fermenter_panel_display{width:290px;height:98px;float:right;margin:5px;margin-top:3px;background-color:#252526;border:2px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}#fermenter_display{width:145px;height:98px;float:left;text-align:center}#fermenter_panel_control{width:290px;height:150px;float:right;margin:5px;margin-top:3px;background-color:#252526;border:2px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}#fermenter_led1,#fermenter_led2,#fermenter_led3{width:96px;height:30px;float:left;text-align:center;margin-top:13px}#fermenter_toggle1{float:left;margin-left:29px;margin-top:20px}#fermenter_toggle2,#fermenter_toggle3{float:left;margin-left:60px;margin-top:20px}#fermenter_panel_buttons,#co2meter_panel_buttons,#ispindel_panel_buttons{width:290px;height:227px;float:right;margin:5px;margin-top:3px;background-color:#252526;border:2px solid;border-color:#59b4d4;border-radius:5px 5px 5px 5px}.LEDred_on{margin:5px auto;width:18px;height:18px;background-color:#F40;border-radius:50%;box-shadow:#000 0 0 4px 1px,inset #C33 0 -1px 5px,#f44 0 2px 12px}.LEDred_off{margin:5px auto;width:18px;height:18px;background-color:#820;border-radius:50%;box-shadow:#400 0 0 1px 1px}.LEDyellow_on{margin:5px auto;width:18px;height:18px;background-color:#FF0;border-radius:50%;box-shadow:#000 0 0 4px 1px,inset #860 0 -1px 5px,#DD0 0 2px 12px}.LEDyellow_off{margin:5px auto;width:18px;height:18px;background-color:#A90;border-radius:50%;box-shadow:#440 0 0 1px 1px}.LEDgreen_on{margin:5px auto;width:18px;height:18px;background-color:#5E0;border-radius:50%;box-shadow:#000 0 0 4px 1px,inset #270 0 -1px 5px,#5D0 0 2px 12px}.LEDgreen_off{margin:5px auto;width:18px;height:18px;background-color:#270;border-radius:50%;box-shadow:#250 0 0 1px 1px}.LEDblue_on{margin:5px auto;width:18px;height:18px;background-color:#4AF;border-radius:50%;box-shadow:#000 0 0 4px 1px,inset #247 0 -1px 5px,#48F 0 2px 12px}.LEDblue_off{margin:5px auto;width:18px;height:18px;background-color:#137;border-radius:50%;box-shadow:#024 0 0 1px 1px}#hintBase,#hintStyle,#hintEq{float:left;margin-top:30px;margin-right:20px;padding:5px;width:600px;color:yellow}#section{margin:5px}#baseButtonsWrapper{float:right;margin-top:30px;margin-right:10px;width:160px}#styleButtonsWrapper{float:right;margin-top:30px;margin-right:10px;width:320px}#eqButtonsWrapper{float:right;margin-top:30px;margin-right:10px;width:320px}#completedButtonsWrapper{float:right;margin-right:10px;width:320px;margin-top:160px}.nextButton{float:right;margin-left:0}.backButton{float:left;margin-left:10px} \ No newline at end of file
--- a/www/css/style.css Fri Oct 18 13:20:35 2019 +0200 +++ b/www/css/style.css Fri May 01 16:37:31 2020 +0200 @@ -10,7 +10,8 @@ #MainPanel, #fermenter, -#co2meter { +#co2meter, +#ispindel { width: 1278px; height: 628px; border: 2px solid #4297d7; @@ -65,7 +66,8 @@ #fermenter_table, -#co2meter_table { +#co2meter_table, +#ispindel_table { width: 960px; height: 210px; background: #252526; @@ -105,7 +107,8 @@ */ #fermenter_thermometers, -#co2meter_meters { +#co2meter_meters, +#ispindel_meters { width: 960px; height: 390px; float: left; @@ -140,7 +143,8 @@ * +-------------------------------+ */ #fermenter_panel_top, -#co2meter_panel_top { +#co2meter_panel_top, +#ispindel_panel_top { width: 290px; height: 100px; float: right; @@ -164,7 +168,9 @@ } #co2meter_alarmled, -#co2meter_powerled { +#co2meter_powerled, +#ispindel_alarmled, +#ispindel_powerled { width: 50px; height: 30px; float: right; @@ -173,7 +179,8 @@ margin-right: 20px; } -#co2meter_panel_display { +#co2meter_panel_display, +#ispindel_panel_display { width: 290px; height: 260px; float: right; @@ -241,7 +248,8 @@ #fermenter_panel_buttons, -#co2meter_panel_buttons { +#co2meter_panel_buttons, +#ispindel_panel_buttons { width: 290px; height: 227px; float: right;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/export_equipments.php Fri May 01 16:37:31 2020 +0200 @@ -0,0 +1,134 @@ +<?php +require_once($_SERVER['DOCUMENT_ROOT'].'/config.php'); +require_once($_SERVER['DOCUMENT_ROOT'].'/includes/formulas.php'); + + +$link = mysqli_connect(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME); +if (! $link) { + die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); +} +if (! mysqli_set_charset($link, "utf8" )) { + echo "error"; + return 1; +} + +$result = mysqli_query($link, "SELECT * FROM inventory_equipments ORDER BY name"); +$row = mysqli_fetch_array($result); + + +/* + * Create beerxml output + */ +$xw = xmlwriter_open_memory(); +xmlwriter_set_indent($xw, 1); +$res = xmlwriter_set_indent_string($xw, ' '); + +xmlwriter_start_document($xw, '1.0', 'UTF-8'); + + +xmlwriter_start_element($xw, 'EQUIPMENTS'); +while ($row = mysqli_fetch_array($result)) { + + xmlwriter_start_element($xw, 'EQUIPMENT'); + + xmlwriter_start_element($xw, 'VERSION'); + xmlwriter_text($xw, '1'); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'NAME'); + xmlwriter_text($xw, $row['name']); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'NOTES'); + xmlwriter_text($xw, $row['notes']); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'BOIL_SIZE'); + xmlwriter_text($xw, sprintf("%.4f", floatval($row['boil_size']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'BATCH_SIZE'); + xmlwriter_text($xw, sprintf("%.4f", floatval($row['batch_size']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'TUN_VOLUME'); + xmlwriter_text($xw, sprintf("%.5f", floatval($row['tun_volume']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'TUN_WEIGHT'); + xmlwriter_text($xw, sprintf("%.5f", floatval($row['tun_weight']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'TUN_SPECIFIC_HEAT'); + xmlwriter_text($xw, sprintf("%.5f", floatval($row['tun_specific_heat']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'TUN_HEIGHT'); + xmlwriter_text($xw, sprintf("%.5f", floatval($row['tun_height']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'TRUB_CHILLER_LOSS'); + xmlwriter_text($xw, sprintf("%.5f", floatval($row['trub_chiller_loss']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'EVAP_RATE'); + xmlwriter_text($xw, sprintf("%.5f", floatval($row['evap_rate']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'BOIL_TIME'); + xmlwriter_text($xw, sprintf("%.5f", floatval($row['boil_time']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'CALC_BOIL_VOLUME'); + ($row['calc_boil_volume'] > 1) ? xmlwriter_text($xw, 'TRUE') : xmlwriter_text($xw, 'FALSE'); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'TOP_UP_KETTLE'); + xmlwriter_text($xw, sprintf("%.5f", floatval($row['top_up_kettle']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'HOP_UTILIZATION'); + xmlwriter_text($xw, sprintf("%.5f", floatval($row['hop_utilization']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'LAUTER_VOLUME'); + xmlwriter_text($xw, sprintf("%.5f", floatval($row['lauter_volume']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'LAUTER_HEIGHT'); + xmlwriter_text($xw, sprintf("%.5f", floatval($row['lauter_height']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'LAUTER_DEADSPACE'); + xmlwriter_text($xw, sprintf("%.5f", floatval($row['lauter_deadspace']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'KETTLE_VOLUME'); + xmlwriter_text($xw, sprintf("%.5f", floatval($row['kettle_volume']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'KETTLE_HEIGHT'); + xmlwriter_text($xw, sprintf("%.5f", floatval($row['kettle_height']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'MASH_VOLUME'); + xmlwriter_text($xw, sprintf("%.5f", floatval($row['mash_volume']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'EFFICIENCY'); + xmlwriter_text($xw, sprintf("%.5f", floatval($row['efficiency']))); + xmlwriter_end_element($xw); + + xmlwriter_end_element($xw); // EQUIPMENT +} +xmlwriter_end_element($xw); // EQUIPMENTS + +$beerxml = xmlwriter_output_memory($xw); + +Header('Content-type: text/xml'); +header('Content-Disposition: attachment; filename="equipments.xml"'); +header('Content-Transfer-Encoding: binary'); +header('Expires: 0'); +header('Pragma: no-cache'); +header('Content-Length: '.strlen($beerxml)); +exit($beerxml);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/export_fermentables.php Fri May 01 16:37:31 2020 +0200 @@ -0,0 +1,144 @@ +<?php +require_once($_SERVER['DOCUMENT_ROOT'].'/config.php'); +require_once($_SERVER['DOCUMENT_ROOT'].'/includes/formulas.php'); + + +$link = mysqli_connect(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME); +if (! $link) { + die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); +} +if (! mysqli_set_charset($link, "utf8" )) { + echo "error"; + return 1; +} + +$result = mysqli_query($link, "SELECT * FROM inventory_fermentables ORDER BY supplier,name"); +$row = mysqli_fetch_array($result); + + +$fermentabletype = array( 'Grain', 'Sugar', 'Extract', 'Dry extract', 'Adjunct' ); +$graintype = array( 'Base', 'Roast', 'Crystal', 'Kilned', 'Sour malt', 'Special', 'No malt' ); +$addedtype = array( 'Mash', 'Boil', 'Fermentation', 'Lagering', 'Bottle', 'Kegs' ); + +/* + * Create beerxml output + */ +$xw = xmlwriter_open_memory(); +xmlwriter_set_indent($xw, 1); +$res = xmlwriter_set_indent_string($xw, ' '); + +xmlwriter_start_document($xw, '1.0', 'UTF-8'); + + +xmlwriter_start_element($xw, 'FERMENTABLES'); +while ($row = mysqli_fetch_array($result)) { + + xmlwriter_start_element($xw, 'FERMENTABLES'); + + xmlwriter_start_element($xw, 'VERSION'); + xmlwriter_text($xw, '1'); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'NAME'); + xmlwriter_text($xw, $row['name']); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'NOTES'); + xmlwriter_text($xw, $row['notes']); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'TYPE'); + xmlwriter_text($xw, $fermentabletype[$row['type']]); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'YIELD'); + xmlwriter_text($xw, sprintf("%.5f",floatval($row['yield']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'COLOR'); + xmlwriter_text($xw, sprintf("%.3f",ebc_to_srm(floatval($row['color'])))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'ADD_AFTER_BOIL'); + ($row['added'] > 1) ? xmlwriter_text($xw, 'TRUE') : xmlwriter_text($xw, 'FALSE'); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'ORIGIN'); + xmlwriter_text($xw, $row['origin']); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'SUPPLIER'); + xmlwriter_text($xw, $row['supplier']); + xmlwriter_end_element($xw); + + if (floatval($row['coarse_fine_diff'])) { + xmlwriter_start_element($xw, 'COARSE_FINE_DIFF'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['coarse_fine_diff']))); + xmlwriter_end_element($xw); + } + + if (floatval($row['moisture'])) { + xmlwriter_start_element($xw, 'MOISTURE'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['moisture']))); + xmlwriter_end_element($xw); + } + + if (floatval($row['diastatic_power'])) { + xmlwriter_start_element($xw, 'DIASTATIC_POWER'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['diastatic_power']))); + xmlwriter_end_element($xw); + } + + if (floatval($row['protein'])) { + xmlwriter_start_element($xw, 'PROTEIN'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['protein']))); + xmlwriter_end_element($xw); + } + + if (floatval($row['max_in_batch'])) { + xmlwriter_start_element($xw, 'MAX_IN_BATCH'); + xmlwriter_text($xw, sprintf("%.3f",floatval($row['max_in_batch']))); + xmlwriter_end_element($xw); + } + + xmlwriter_start_element($xw, 'RECOMMEND_MASH'); + ($row['recommend_mash']) ? xmlwriter_text($xw, 'TRUE') : xmlwriter_text($xw, 'FALSE'); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'DISPLAY_COLOR'); + xmlwriter_text($xw, sprintf("%.0f EBC",floatval($row['color']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'GRAINTYPE'); + xmlwriter_text($xw, $graintype[$row['graintype']]); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'ADDED'); + xmlwriter_text($xw, $addedtype[$row['added']]); + xmlwriter_end_element($xw); + + if (floatval($row['di_ph'])) { + xmlwriter_start_element($xw, 'DI_pH'); + xmlwriter_text($xw, sprintf("%.5f",floatval($row['di_ph']))); + xmlwriter_end_element($xw); + } + + if (floatval($row['acid_to_ph_57'])) { + xmlwriter_start_element($xw, 'ACID_TO_pH_5.7'); + xmlwriter_text($xw, sprintf("%.5f",floatval($row['acid_to_ph_57']))); + xmlwriter_end_element($xw); + } + + xmlwriter_end_element($xw); // FERMENTABLE +} +xmlwriter_end_element($xw); // FERMENTABLES + +$beerxml = xmlwriter_output_memory($xw); + +Header('Content-type: text/xml'); +header('Content-Disposition: attachment; filename="fermentables.xml"'); +header('Content-Transfer-Encoding: binary'); +header('Expires: 0'); +header('Pragma: no-cache'); +header('Content-Length: '.strlen($beerxml)); +exit($beerxml);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/export_hops.php Fri May 01 16:37:31 2020 +0200 @@ -0,0 +1,125 @@ +<?php +require_once($_SERVER['DOCUMENT_ROOT'].'/config.php'); +require_once($_SERVER['DOCUMENT_ROOT'].'/includes/formulas.php'); + + +$link = mysqli_connect(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME); +if (! $link) { + die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); +} +if (! mysqli_set_charset($link, "utf8" )) { + echo "error"; + return 1; +} + +$result = mysqli_query($link, "SELECT * FROM inventory_hops ORDER BY origin,name"); +$row = mysqli_fetch_array($result); + + +$hoptype = array( 'Bittering', 'Aroma', 'Both' ); +$hopform = array( 'Pellet', 'Plug', 'Leaf', 'Leaf', 'Leaf' ); + + + +/* + * Create beerxml output + */ +$xw = xmlwriter_open_memory(); +xmlwriter_set_indent($xw, 1); +$res = xmlwriter_set_indent_string($xw, ' '); + +xmlwriter_start_document($xw, '1.0', 'UTF-8'); + + +xmlwriter_start_element($xw, 'HOPS'); +while ($row = mysqli_fetch_array($result)) { + + xmlwriter_start_element($xw, 'HOP'); + + xmlwriter_start_element($xw, 'VERSION'); + xmlwriter_text($xw, '1'); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'NAME'); + xmlwriter_text($xw, $row['name']); + xmlwriter_end_element($xw); + + if (strlen($row['notes'])) { + xmlwriter_start_element($xw, 'NOTES'); + xmlwriter_text($xw, $row['notes']); + xmlwriter_end_element($xw); + } + + xmlwriter_start_element($xw, 'ALWAYS_ON_STOCK'); + ($row['always_on_stock']) ? xmlwriter_text($xw, 'TRUE') : xmlwriter_text($xw, 'FALSE'); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'ALPHA'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['alpha']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'BETA'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['beta']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'HUMULENE'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['humulene']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'CAROPHYLLENE'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['caryophyllene']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'COHUMULONE'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['cohumulone']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'MYRCENE'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['myrcene']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'TOTAL_OIL'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['total_oil']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'HSI'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['hsi']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'TYPE'); + xmlwriter_text($xw, $hoptype[$row['type']]); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'FORM'); + xmlwriter_text($xw, $hopform[$row['form']]); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'ORIGIN'); + xmlwriter_text($xw, $row['origin']); + xmlwriter_end_element($xw); + + if (strlen($row['substitutes'])) { + xmlwriter_start_element($xw, 'SUBSTITUTES'); + xmlwriter_text($xw, $row['substitutes']); + xmlwriter_end_element($xw); + } + + if (floatval($row['cost']) > 0) { + xmlwriter_start_element($xw, 'COST'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['cost']))); + xmlwriter_end_element($xw); + } + + xmlwriter_end_element($xw); // HOP +} +xmlwriter_end_element($xw); // HOPS + +$beerxml = xmlwriter_output_memory($xw); + +Header('Content-type: text/xml'); +header('Content-Disposition: attachment; filename="hops.xml"'); +header('Content-Transfer-Encoding: binary'); +header('Expires: 0'); +header('Pragma: no-cache'); +header('Content-Length: '.strlen($beerxml)); +exit($beerxml);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/export_mashs.php Fri May 01 16:37:31 2020 +0200 @@ -0,0 +1,100 @@ +<?php +require_once($_SERVER['DOCUMENT_ROOT'].'/config.php'); +require_once($_SERVER['DOCUMENT_ROOT'].'/includes/formulas.php'); + + +$link = mysqli_connect(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME); +if (! $link) { + die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); +} +if (! mysqli_set_charset($link, "utf8" )) { + echo "error"; + return 1; +} + +$result = mysqli_query($link, "SELECT * FROM profile_mash ORDER BY name"); +$row = mysqli_fetch_array($result); + + +$mashsteptype = array( 'Infusion', 'Temperature', 'Decoction' ); + + +/* + * Create beerxml output + */ +$xw = xmlwriter_open_memory(); +xmlwriter_set_indent($xw, 1); +$res = xmlwriter_set_indent_string($xw, ' '); + +xmlwriter_start_document($xw, '1.0', 'UTF-8'); + + +xmlwriter_start_element($xw, 'MASHS'); +while ($row = mysqli_fetch_array($result)) { + + xmlwriter_start_element($xw, 'MASH'); + + xmlwriter_start_element($xw, 'VERSION'); + xmlwriter_text($xw, '1'); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'NAME'); + xmlwriter_text($xw, $row['name']); + xmlwriter_end_element($xw); + + if (strlen($row['notes'])) { + xmlwriter_start_element($xw, 'NOTES'); + xmlwriter_text($xw, $row['notes']); + xmlwriter_end_element($xw); + } + + xmlwriter_start_element($xw, 'MASH_STEPS'); + $arr = json_decode($row['steps'], true); + foreach($arr as $item) { //foreach element in $arr + xmlwriter_start_element($xw, 'MASH_STEP'); + + xmlwriter_start_element($xw, 'VERSION'); + xmlwriter_text($xw, '1'); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'NAME'); + xmlwriter_text($xw, $item['step_name']); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'TYPE'); + xmlwriter_text($xw, $mashsteptype[$item['step_type']]); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'STEP_TEMP'); + xmlwriter_text($xw, sprintf("%.4f",floatval($item['step_temp']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'STEP_TIME'); + xmlwriter_text($xw, sprintf("%.3f",floatval($item['step_time']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'RAMP_TIME'); + xmlwriter_text($xw, sprintf("%.3f",floatval($item['ramp_time']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'END_TEMP'); + xmlwriter_text($xw, sprintf("%.4f",floatval($item['end_temp']))); + xmlwriter_end_element($xw); + + xmlwriter_end_element($xw); // MASH_STEP + } + + xmlwriter_end_element($xw); // MASH_STEPS + xmlwriter_end_element($xw); // MASH +} +xmlwriter_end_element($xw); // MASHS + +$beerxml = xmlwriter_output_memory($xw); + +Header('Content-type: text/xml'); +header('Content-Disposition: attachment; filename="mashs.xml"'); +header('Content-Transfer-Encoding: binary'); +header('Expires: 0'); +header('Pragma: no-cache'); +header('Content-Length: '.strlen($beerxml)); +exit($beerxml);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/export_miscs.php Fri May 01 16:37:31 2020 +0200 @@ -0,0 +1,99 @@ +<?php +require_once($_SERVER['DOCUMENT_ROOT'].'/config.php'); +require_once($_SERVER['DOCUMENT_ROOT'].'/includes/formulas.php'); + + +$link = mysqli_connect(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME); +if (! $link) { + die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); +} +if (! mysqli_set_charset($link, "utf8" )) { + echo "error"; + return 1; +} + +$result = mysqli_query($link, "SELECT * FROM inventory_miscs ORDER BY name"); +$row = mysqli_fetch_array($result); + + +$misctype = array( 'Spice', 'Herb', 'Flavor', 'Fining', 'Water agent', 'Yeast nutrient', 'Other' ); +$miscuse = array( 'Starter', 'Mash', 'Boil', 'Primary', 'Secondary', 'Bottling' ); + + + +/* + * Create beerxml output + */ +$xw = xmlwriter_open_memory(); +xmlwriter_set_indent($xw, 1); +$res = xmlwriter_set_indent_string($xw, ' '); + +xmlwriter_start_document($xw, '1.0', 'UTF-8'); + + +xmlwriter_start_element($xw, 'MISCS'); +while ($row = mysqli_fetch_array($result)) { + + xmlwriter_start_element($xw, 'MISC'); + + xmlwriter_start_element($xw, 'VERSION'); + xmlwriter_text($xw, '1'); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'NAME'); + xmlwriter_text($xw, $row['name']); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'TYPE'); + xmlwriter_text($xw, $misctype[$row['type']]); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'AMOUNT_IS_WEIGHT'); + ($row['amount_is_weight']) ? xmlwriter_text($xw, 'TRUE') : xmlwriter_text($xw, 'FALSE'); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'USE'); + xmlwriter_text($xw, $miscuse[$row['use_use']]); + xmlwriter_end_element($xw); + + if (floatval($row['time']) > 0) { + xmlwriter_start_element($xw, 'TIME'); + xmlwriter_text($xw, sprintf("%.3f",floatval($row['time']))); + xmlwriter_end_element($xw); + } + + if (floatval($row['cost']) > 0) { + xmlwriter_start_element($xw, 'COST'); + xmlwriter_text($xw, sprintf("%.5f",floatval($row['cost']))); + xmlwriter_end_element($xw); + } + + xmlwriter_start_element($xw, 'ALWAYS_ON_STOCK'); + ($row['always_on_stock']) ? xmlwriter_text($xw, 'TRUE') : xmlwriter_text($xw, 'FALSE'); + xmlwriter_end_element($xw); + + if (strlen($row['notes'])) { + xmlwriter_start_element($xw, 'NOTES'); + xmlwriter_text($xw, $row['notes']); + xmlwriter_end_element($xw); + } + + if (strlen($row['use_for'])) { + xmlwriter_start_element($xw, 'USE_FOR'); + xmlwriter_text($xw, $row['use_for']); + xmlwriter_end_element($xw); + } + + xmlwriter_end_element($xw); // MISC +} +xmlwriter_end_element($xw); // MISCS + +$beerxml = xmlwriter_output_memory($xw); + +Header('Content-type: text/xml'); +header('Content-Disposition: attachment; filename="miscs.xml"'); +header('Content-Transfer-Encoding: binary'); +header('Expires: 0'); +header('Pragma: no-cache'); +header('Content-Length: '.strlen($beerxml)); +exit($beerxml);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/export_styles.php Fri May 01 16:37:31 2020 +0200 @@ -0,0 +1,151 @@ +<?php +require_once($_SERVER['DOCUMENT_ROOT'].'/config.php'); +require_once($_SERVER['DOCUMENT_ROOT'].'/includes/formulas.php'); + + +$link = mysqli_connect(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME); +if (! $link) { + die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); +} +if (! mysqli_set_charset($link, "utf8" )) { + echo "error"; + return 1; +} + +$result = mysqli_query($link, "SELECT * FROM profile_styles ORDER BY style_guide,style_letter,name"); +$row = mysqli_fetch_array($result); + + +$styletype = array( 'Lager', 'Ale', 'Mead', 'Wheat', 'Mixed', 'Cider' ); + + +/* + * Create beerxml output + */ +$xw = xmlwriter_open_memory(); +xmlwriter_set_indent($xw, 1); +$res = xmlwriter_set_indent_string($xw, ' '); + +xmlwriter_start_document($xw, '1.0', 'UTF-8'); + + +xmlwriter_start_element($xw, 'STYLES'); +while ($row = mysqli_fetch_array($result)) { + + xmlwriter_start_element($xw, 'STYLE'); + + xmlwriter_start_element($xw, 'VERSION'); + xmlwriter_text($xw, '1'); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'NAME'); + xmlwriter_text($xw, $row['name']); + xmlwriter_end_element($xw); + + if (strlen($row['category'])) { + xmlwriter_start_element($xw, 'CATEGORY'); + xmlwriter_text($xw, $row['category']); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'CATEGORY_NUMBER'); + xmlwriter_text($xw, $row['category_number']); + xmlwriter_end_element($xw); + } + + xmlwriter_start_element($xw, 'STYLE_LETTER'); + xmlwriter_text($xw, $row['style_letter']); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'STYLE_GUIDE'); + xmlwriter_text($xw, $row['style_guide']); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'TYPE'); + xmlwriter_text($xw, $styletype[$row['type']]); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'OG_MIN'); + xmlwriter_text($xw, sprintf("%.6f",floatval($row['og_min']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'OG_MAX'); + xmlwriter_text($xw, sprintf("%.6f",floatval($row['og_max']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'FG_MIN'); + xmlwriter_text($xw, sprintf("%.6f",floatval($row['fg_min']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'FG_MAX'); + xmlwriter_text($xw, sprintf("%.6f",floatval($row['fg_max']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'IBU_MIN'); + xmlwriter_text($xw, sprintf("%.3f",floatval($row['ibu_min']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'IBU_MAX'); + xmlwriter_text($xw, sprintf("%.3f",floatval($row['ibu_max']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'COLOR_MIN'); + xmlwriter_text($xw, sprintf("%.3f",ebc_to_srm(floatval($row['color_min'])))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'COLOR_MAX'); + xmlwriter_text($xw, sprintf("%.3f",ebc_to_srm(floatval($row['color_max'])))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'CARB_MIN'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['carb_min']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'CARB_MAX'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['carb_max']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'ABV_MIN'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['abv_min']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'ABV_MAX'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['abv_max']))); + xmlwriter_end_element($xw); + + if (strlen($row['notes'])) { + xmlwriter_start_element($xw, 'NOTES'); + xmlwriter_text($xw, $row['notes']); + xmlwriter_end_element($xw); + } + + if (strlen($row['profile'])) { + xmlwriter_start_element($xw, 'PROFILE'); + xmlwriter_text($xw, $row['profile']); + xmlwriter_end_element($xw); + } + + if (strlen($row['ingredients'])) { + xmlwriter_start_element($xw, 'INGREDIENTS'); + xmlwriter_text($xw, $row['ingredients']); + xmlwriter_end_element($xw); + } + + if (strlen($row['examples'])) { + xmlwriter_start_element($xw, 'EXAMPLES'); + xmlwriter_text($xw, $row['examples']); + xmlwriter_end_element($xw); + } + + xmlwriter_end_element($xw); // STYLE +} +xmlwriter_end_element($xw); // STYLES + +$beerxml = xmlwriter_output_memory($xw); + +Header('Content-type: text/xml'); +header('Content-Disposition: attachment; filename="styles.xml"'); +header('Content-Transfer-Encoding: binary'); +header('Expires: 0'); +header('Pragma: no-cache'); +header('Content-Length: '.strlen($beerxml)); +exit($beerxml);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/export_suppliers.php Fri May 01 16:37:31 2020 +0200 @@ -0,0 +1,103 @@ +<?php +require_once($_SERVER['DOCUMENT_ROOT'].'/config.php'); +require_once($_SERVER['DOCUMENT_ROOT'].'/includes/formulas.php'); + + +$link = mysqli_connect(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME); +if (! $link) { + die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); +} +if (! mysqli_set_charset($link, "utf8" )) { + echo "error"; + return 1; +} + +$result = mysqli_query($link, "SELECT * FROM inventory_suppliers ORDER BY name"); +$row = mysqli_fetch_array($result); + + + +/* + * Create beerxml output + */ +$xw = xmlwriter_open_memory(); +xmlwriter_set_indent($xw, 1); +$res = xmlwriter_set_indent_string($xw, ' '); + +xmlwriter_start_document($xw, '1.0', 'UTF-8'); + + +xmlwriter_start_element($xw, 'SUPPLIERS'); +while ($row = mysqli_fetch_array($result)) { + + xmlwriter_start_element($xw, 'SUPPLIER'); + + xmlwriter_start_element($xw, 'VERSION'); + xmlwriter_text($xw, '1'); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'NAME'); + xmlwriter_text($xw, $row['name']); + xmlwriter_end_element($xw); + + if (strlen($row['notes'])) { + xmlwriter_start_element($xw, 'NOTES'); + xmlwriter_text($xw, $row['notes']); + xmlwriter_end_element($xw); + } + + if (strlen($row['address'])) { + xmlwriter_start_element($xw, 'ADDRESS'); + xmlwriter_text($xw, $row['address']); + xmlwriter_end_element($xw); + } + + if (strlen($row['city'])) { + xmlwriter_start_element($xw, 'CITY'); + xmlwriter_text($xw, $row['city']); + xmlwriter_end_element($xw); + } + + if (strlen($row['zip'])) { + xmlwriter_start_element($xw, 'ZIP'); + xmlwriter_text($xw, $row['zip']); + xmlwriter_end_element($xw); + } + + if (strlen($row['country'])) { + xmlwriter_start_element($xw, 'COUNTRY'); + xmlwriter_text($xw, $row['country']); + xmlwriter_end_element($xw); + } + + if (strlen($row['website'])) { + xmlwriter_start_element($xw, 'WEBSITE'); + xmlwriter_text($xw, $row['website']); + xmlwriter_end_element($xw); + } + + if (strlen($row['email'])) { + xmlwriter_start_element($xw, 'EMAIL'); + xmlwriter_text($xw, $row['email']); + xmlwriter_end_element($xw); + } + + if (strlen($row['phone'])) { + xmlwriter_start_element($xw, 'PHONE'); + xmlwriter_text($xw, $row['phone']); + xmlwriter_end_element($xw); + } + + xmlwriter_end_element($xw); // SUPPLIER +} +xmlwriter_end_element($xw); // SUPPLIERS + +$beerxml = xmlwriter_output_memory($xw); + +Header('Content-type: text/xml'); +header('Content-Disposition: attachment; filename="suppliers.xml"'); +header('Content-Transfer-Encoding: binary'); +header('Expires: 0'); +header('Pragma: no-cache'); +header('Content-Length: '.strlen($beerxml)); +exit($beerxml);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/export_waters.php Fri May 01 16:37:31 2020 +0200 @@ -0,0 +1,99 @@ +<?php +require_once($_SERVER['DOCUMENT_ROOT'].'/config.php'); +require_once($_SERVER['DOCUMENT_ROOT'].'/includes/formulas.php'); + + +$link = mysqli_connect(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME); +if (! $link) { + die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); +} +if (! mysqli_set_charset($link, "utf8" )) { + echo "error"; + return 1; +} + +$result = mysqli_query($link, "SELECT * FROM inventory_waters ORDER BY name"); +$row = mysqli_fetch_array($result); + + + +/* + * Create beerxml output + */ +$xw = xmlwriter_open_memory(); +xmlwriter_set_indent($xw, 1); +$res = xmlwriter_set_indent_string($xw, ' '); + +xmlwriter_start_document($xw, '1.0', 'UTF-8'); + + +xmlwriter_start_element($xw, 'WATERS'); +while ($row = mysqli_fetch_array($result)) { + + xmlwriter_start_element($xw, 'WATER'); + + xmlwriter_start_element($xw, 'VERSION'); + xmlwriter_text($xw, '1'); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'NAME'); + xmlwriter_text($xw, $row['name']); + xmlwriter_end_element($xw); + + if (floatval($row['cost']) > 0) { + xmlwriter_start_element($xw, 'COST'); + xmlwriter_text($xw, sprintf("%.5f",floatval($row['cost']))); + xmlwriter_end_element($xw); + } + + if (strlen($row['notes'])) { + xmlwriter_start_element($xw, 'NOTES'); + xmlwriter_text($xw, $row['notes']); + xmlwriter_end_element($xw); + } + + xmlwriter_start_element($xw, 'CALCIUM'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['calcium']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'BICARBONATE'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['bicarbonate']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'SULFATE'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['sulfate']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'CHLORIDE'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['chloride']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'SODIUM'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['sodium']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'MAGNESIUM'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['magnesium']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'TOTAL_ALKALINITY'); + xmlwriter_text($xw, sprintf("%.4f",floatval($row['total_alkalinity']))); + xmlwriter_end_element($xw); + + xmlwriter_start_element($xw, 'PH'); + xmlwriter_text($xw, sprintf("%.5f",floatval($row['ph']))); + xmlwriter_end_element($xw); + + xmlwriter_end_element($xw); // WATER +} +xmlwriter_end_element($xw); // WATERS + +$beerxml = xmlwriter_output_memory($xw); + +Header('Content-type: text/xml'); +header('Content-Disposition: attachment; filename="waters.xml"'); +header('Content-Transfer-Encoding: binary'); +header('Expires: 0'); +header('Pragma: no-cache'); +header('Content-Length: '.strlen($beerxml)); +exit($beerxml);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/export_yeasts.php Fri May 01 16:37:31 2020 +0200 @@ -0,0 +1,75 @@ +<?php +require_once($_SERVER['DOCUMENT_ROOT'].'/config.php'); +require_once($_SERVER['DOCUMENT_ROOT'].'/includes/formulas.php'); + + +$link = mysqli_connect(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME); +if (! $link) { + die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); +} +if (! mysqli_set_charset($link, "utf8" )) { + echo "error"; + return 1; +} + +$result = mysqli_query($link, "SELECT * FROM inventory_yeasts ORDER BY laboratory,product_id,name"); +$row = mysqli_fetch_array($result); + +function field($x, $field, $value) { + xmlwriter_start_element($x, $field); + xmlwriter_text($x, $value); + xmlwriter_end_element($x); +} + +$yeasttype = array( 'Lager', 'Ale', 'Wheat', 'Wine', 'Champagne', 'Other', 'Other', 'Other', 'Other', 'Other' ); +$yeastform = array( 'Liquid', 'Dry', 'Slant', 'Culture', 'Frozen', 'Bottle', 'Dry' ); +$yeastflocculation = array( 'Low', 'Medium', 'High', 'Very high' ); + + +/* + * Create beerxml output + */ +$xw = xmlwriter_open_memory(); +xmlwriter_set_indent($xw, 1); +$res = xmlwriter_set_indent_string($xw, ' '); + +xmlwriter_start_document($xw, '1.0', 'UTF-8'); + + +xmlwriter_start_element($xw, 'YEASTS'); +while ($row = mysqli_fetch_array($result)) { + + xmlwriter_start_element($xw, 'YEAST'); + + field($xw, 'VERSION', '1'); + field($xw, 'NAME', $row['name']); + field($xw, 'TYPE', $yeasttype[$row['type']]); + field($xw, 'FORM', $yeastform[$row['form']]); + field($xw, 'AMOUNT_IS_WEIGHT', ($row['form'] == '1' || $row['form'] == '6') ? 'TRUE':'FALSE'); + field($xw, 'LABORATORY', $row['laboratory']); + if (strlen($row['product_id'])) + field($xw, 'PRODUCT_ID', $row['product_id']); + field($xw, 'MIN_TEMPERATURE', sprintf("%.4f",floatval($row['min_temperature']))); + field($xw, 'MAX_TEMPERATURE', sprintf("%.4f",floatval($row['max_temperature']))); + field($xw, 'ATTENUATION', sprintf("%.4f",floatval($row['attenuation']))); + field($xw, 'ADD_TO_SECONDARY', ($row['use'] == 0) ? 'FALSE':'TRUE'); + field($xw, 'FLOCCULATION', $yeastflocculation[$row['flocculation']]); + field($xw, 'MAX_REUSE', $row['max_reuse']); + if (floatval($row['cost']) > 0) + field($xw, 'COST', sprintf("%.5f",floatval($row['cost']))); + if (strlen($row['notes'])) + field($xw, 'NOTES', $row['notes']); + + xmlwriter_end_element($xw); // YEAST +} +xmlwriter_end_element($xw); // YEASTS + +$beerxml = xmlwriter_output_memory($xw); + +Header('Content-type: text/xml'); +header('Content-Disposition: attachment; filename="yeasts.xml"'); +header('Content-Transfer-Encoding: binary'); +header('Expires: 0'); +header('Pragma: no-cache'); +header('Content-Length: '.strlen($beerxml)); +exit($beerxml);
--- a/www/getco2pressurelog.php Fri Oct 18 13:20:35 2019 +0200 +++ b/www/getco2pressurelog.php Fri May 01 16:37:31 2020 +0200 @@ -5,15 +5,21 @@ if (isset($_GET["code"])) $code = $_GET["code"] . ' ' . $_GET["name"]; else - $code = "TB0015 Winterbier-2"; + $code = "CB0080 Op stoom"; $filename = 'log/co2pressure/' . $code . '.log'; +if (! file_exists($filename)) { + header("Content-type: application/json"); + echo '{}'; + exit; +} + + /* * From Stackoverflow, the fastest way to count the lines in a file. */ $file = new \SplFileObject($filename, 'r'); $file->seek(PHP_INT_MAX); -// $file->key() = lines in the file. define ('MAX_INTERVALS', 10); $GRAPH_INTERVAL = array ( 0, 1, 5, 15, 30, 60, 120, 240, 480, 720 ); @@ -27,7 +33,6 @@ if ($graphstep > MAX_INTERVALS) $graphstep = MAX_INTERVALS; -//echo $code . '.log lines=' . $file->key() . ' interval=' . $GRAPH_INTERVAL[$graphstep] . ' graphstep=' . $graphstep . PHP_EOL; /* * 2014-11-15 18:39:12,TEMPERATURE,PRESSURE,UUID @@ -58,34 +63,13 @@ (($graphstep == 7) && (substr($buffer, 14, 2) == '00') && (($hr % 4) == 0)) || (($graphstep == 8) && (substr($buffer, 14, 2) == '00') && (($hr % 8) == 0)) || (($graphstep == 9) && (substr($buffer, 14, 2) == '00') && (($hr % 12) == 0))) { -// echo $hr . ' ' . $row[1] . ' ' . $buffer; $lines++; - -// $heat_used = $cool_used = 0; -// if ($row[10] && ($row[10] != "NA") && ($heater_l > 0)) { -// $heat_used = round((intval($row[10]) - $heater_l) * 100 / ($GRAPH_INTERVAL[$graphstep] * 60)); -// } -// if ($row[12] && ($row[12] != "NA") && ($cooler_l > 0)) { -// $cool_used = round((intval($row[12]) - $cooler_l) * 100 / ($GRAPH_INTERVAL[$graphstep] * 60)); -// } - - -// echo $GRAPH_INTERVAL[$graphstep] . ' ' . $heat_used . ' ' . $cool_used . PHP_EOL; - -// if (($heat_used <= 100) && ($cool_used <= 100)) { $logs[] = array( 'date' => $row[0], 'temperature' => $row[1], 'pressure' => $row[2] ); -// } - -// if ($row[10] && ($row[10] != "NA")) -// $heater_l = intval($row[10]); -// if ($row[12] && ($row[12] != "NA")) -// $cooler_l = intval($row[12]); } - } if (!feof($handle)) { echo "Error: unexpected fgets() fail\n"; @@ -94,4 +78,3 @@ } header("Content-type: application/json"); echo json_encode($logs); -//echo $lines . ' lines' . PHP_EOL;
--- a/www/getfermenter.php Fri Oct 18 13:20:35 2019 +0200 +++ b/www/getfermenter.php Fri May 01 16:37:31 2020 +0200 @@ -12,10 +12,5 @@ $query = "SELECT * FROM mon_fermenters WHERE uuid=".$uuid.""; $result = $mysqli->query($query); $resultArray = $result->fetch_array(MYSQLI_ASSOC); -if ($resultArray['online'] == 'Y') { - $resultArray['online'] = 1; -} else { - $resultArray['online'] = 0; -} header("Content-type: application/json"); echo json_encode($resultArray);
--- a/www/getfermentlog.php Fri Oct 18 13:20:35 2019 +0200 +++ b/www/getfermentlog.php Fri May 01 16:37:31 2020 +0200 @@ -8,12 +8,18 @@ $code = "TB0015 Winterbier-2"; $filename = 'log/fermentation/' . $code . '.log'; +if (! file_exists($filename)) { + header("Content-type: application/json"); + echo '{}'; + exit; +} + + /* * From Stackoverflow, the fastest way to count the lines in a file. */ $file = new \SplFileObject($filename, 'r'); $file->seek(PHP_INT_MAX); -// $file->key() = lines in the file. define ('MAX_INTERVALS', 10); $GRAPH_INTERVAL = array ( 0, 1, 5, 15, 30, 60, 120, 240, 480, 720 ); @@ -27,8 +33,6 @@ if ($graphstep > MAX_INTERVALS) $graphstep = MAX_INTERVALS; -//echo $code . '.log lines=' . $file->key() . ' interval=' . $GRAPH_INTERVAL[$graphstep] . ' graphstep=' . $graphstep . PHP_EOL; - /* * 2014-11-15 18:39,BEER,PRIMARY,20.312,19.750,-1.500,20.5,18.6,18.8,35,12345,0,67890,Whatsup * | | | | | | | | | | | | | | @@ -115,4 +119,3 @@ } header("Content-type: application/json"); echo json_encode($logs); -//echo $lines . ' lines' . PHP_EOL;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/getispindel.php Fri May 01 16:37:31 2020 +0200 @@ -0,0 +1,16 @@ +<?php + +require_once('config.php'); + +if (isset($_GET["uuid"])) + $uuid = $_GET["uuid"]; +else + $uuid = "'c0ffeeee-cafe-dead-bee0-2af236d50dc9'"; + + +$mysqli = new mysqli(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME); +$query = "SELECT * FROM mon_ispindels WHERE uuid=".$uuid.""; +$result = $mysqli->query($query); +$resultArray = $result->fetch_array(MYSQLI_ASSOC); +header("Content-type: application/json"); +echo json_encode($resultArray);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/getispindellog.php Fri May 01 16:37:31 2020 +0200 @@ -0,0 +1,50 @@ +<?php + +require_once('config.php'); + +if (isset($_GET["code"])) + $code = $_GET["code"] . ' ' . $_GET["name"]; +else + $code = "CB0081 Keuls"; + +$filename = 'log/ispindel/' . $code . '.log'; +if (! file_exists($filename)) { + header("Content-type: application/json"); + echo '{}'; + exit; +} + + +/* + * 2014-11-15 18:39:12,TEMPERATURE,PLATO,SG,BATTERY,ANGLE,INVERVAL,UUID + * | | | | | + * datetime + | | | | + * temperature ------------+ | | | + * density plato --------------------+ | | + * density sg ----------------------------+ | + * battery ------------------------------------+ + */ +$handle = @fopen($filename, "r"); +if ($handle) { + $lines = 0; + while (($buffer = fgets($handle, 4096)) !== false) { + + $buffer = preg_replace( "/\r|\n/", "", $buffer); + $row = explode(",", $buffer); + $lines++; + + $logs[] = array( + 'date' => $row[0], + 'temperature' => $row[1], + 'plato' => $row[2], + 'sg' => $row[3], + 'battery' => $row[4] + ); + } + if (!feof($handle)) { + echo "Error: unexpected fgets() fail\n"; + } + fclose($handle); +} +header("Content-type: application/json"); +echo json_encode($logs);
--- a/www/getnode.php Fri Oct 18 13:20:35 2019 +0200 +++ b/www/getnode.php Fri May 01 16:37:31 2020 +0200 @@ -13,10 +13,5 @@ $result = $mysqli->query($query); //Copy result into a associative array $resultArray = $result->fetch_array(MYSQLI_ASSOC); -if ($resultArray['online'] == 'Y') { - $resultArray['online'] = 1; -} else { - $resultArray['online'] = 0; -} header("Content-type: application/json"); echo json_encode($resultArray);
--- a/www/getyeastsources.php Fri Oct 18 13:20:35 2019 +0200 +++ b/www/getyeastsources.php Fri May 01 16:37:31 2020 +0200 @@ -23,7 +23,14 @@ 'cells' => $row['cells'], 'inventory' => $row['inventory'], 'cost' => $row['cost'], - 'tolerance' => $row['tolerance'] + 'tolerance' => $row['tolerance'], + 'sta1' => $row['sta1'], + 'bacteria' => $row['bacteria'], + 'harvest_top' => $row['harvest_top'], + 'harvest_time' => $row['harvest_time'], + 'pitch_temperature' => $row['pitch_temperature'], + 'pofpos' => $row['pofpos'], + 'zymocide' => $row['zymocide'] ); } header("Content-type: application/json");
--- a/www/includes/constants.php Fri Oct 18 13:20:35 2019 +0200 +++ b/www/includes/constants.php Fri May 01 16:37:31 2020 +0200 @@ -6,6 +6,7 @@ $ibumethod = array( 'Tinseth', 'Rager', 'Daniels' ); $coolingtype = array( '-', 'Dompelkoeler', 'Tegenstroomkoeler', 'Au bain marie', 'Laten afkoelen' ); $aerationtype = array( 'Geen', 'Lucht', 'Zuurstof' ); +$splitat = array( 'Niet', 'Na maischen', 'Na koken', 'Na koelen', 'Na hoofdgisting', 'Na nagisting', 'Na lageren' ); $added = array( 'Maischen', 'Koken', 'Vergisten', 'Nagisten/lageren', 'Bottelen', 'Fust' ); $fermentabletype = array( 'Mout', 'Suiker', 'Vloeibaar extract', 'Droog extract', 'Ongemout graan' ); @@ -23,5 +24,7 @@ $miscuse = array( 'Starter', 'Maischen', 'Koken', 'Hoofdvergisting', 'Nagisting/lagering', 'Bottelen' ); $mashtype = array( 'Infusie', 'Verwarming', 'Decoctie' ); +$acidtype = array( 'Melkzuur', 'Zoutzuur', 'Fosforzuur', 'Zwavelzuur' ); + ?>
--- a/www/includes/db_divides.php Fri Oct 18 13:20:35 2019 +0200 +++ b/www/includes/db_divides.php Fri May 01 16:37:31 2020 +0200 @@ -4,75 +4,418 @@ require($_SERVER['DOCUMENT_ROOT']."/version.php"); #Connect to the database -$connect = mysqli_connect(DBASE_HOST, DBASE_USER, DBASE_PASS, DBASE_NAME); -if (! $connect) { +$link = mysqli_connect(DBASE_HOST, DBASE_USER, DBASE_PASS, DBASE_NAME); +if (! $link) { die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } -mysqli_set_charset($connect, "utf8" ); +mysqli_set_charset($link, "utf8" ); +$escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c"); +$replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b"); +$rescapers = array("'"); +$rreplacements = array("\\'"); +$disallowed = array('visibleindex','uniqueid','boundindex','uid','h_weight','m_weight'); -if (isset($_POST['insert']) || isset($_POST['update'])) { - if (isset($_POST['insert'])) { - $sql = "INSERT INTO `divides` SET "; - } - if (isset($_POST['update'])) { - $sql = "UPDATE `divides` SET "; +/* + * Server side split batch. Parameters: + * record = original record. + * divide_type = divide moment. + * divide parts = number of divisions + * divide_data = array with { size, factor, part, name, code } where index 0 is original + * + * generate the new records and modify the original record. + * rollback if something goes wrong. + * return ok or error + */ + +if (isset($_POST['record']) && isset($_POST['divide_type']) && isset($_POST['divide_parts']) && isset($_POST['divide_data'])) { + + $rc = 0; + $record = $_POST['record']; + $divide_parts = $_POST['divide_parts']; + $divide_type = $_POST['divide_type']; + $divide_data = array_reverse($_POST['divide_data'], true); // reverse the array so the master record is last. + + syslog(LOG_NOTICE, "db_divide: record " . $record . " divide_type " . $divide_type . " parts " . $divide_parts); + + foreach ($divide_data as $index => &$split) { + syslog(LOG_NOTICE, "db_divide: index " . $index); + + foreach ($split as $key => &$value) { + syslog(LOG_NOTICE, "db_divide: index " . $index . " key " . $key . " value " . $value); } - $sql .= "divide_from='" . mysqli_real_escape_string($connect, $_POST['divide_from']); - $sql .= "', divide_type='" . $_POST['divide_type']; - $sql .= "', divide_size='" . $_POST['divide_size']; - $sql .= "', divide_part='" . $_POST['divide_part']; - $sql .= "', name='" . mysqli_real_escape_string($connect, $_POST['name']); - $sql .= "', code='" . mysqli_real_escape_string($connect, $_POST['code']); - if (isset($_POST['insert'])) { - $sql .= "';"; - } - if (isset($_POST['update'])) { - $sql .= "' WHERE record='" . $_POST['record'] . "';"; + $result = mysqli_query($link, "SELECT * FROM products WHERE record='" . $record . "'"); + if (! $result) { + syslog(LOG_NOTICE, "db_divide: result: ".mysqli_error($link)); } - syslog(LOG_NOTICE, $sql); + $row = mysqli_fetch_array($result); + $factor = floatval($split['factor']); - $result = mysqli_query($connect, $sql); - if (! $result) { - syslog(LOG_NOTICE, "db_divides: ".$sql." result: ".mysqli_error($connect)); - } else { - if (isset($_POST['update'])) { - syslog(LOG_NOTICE, "db_divides: updated record ".$_POST['record']); - } else { - $lastid = mysqli_insert_id($connect); - syslog(LOG_NOTICE, "db_divides: inserted record ".$lastid); - } - } - echo $result; + if ($index == 0) { + /* + * Update the main record + */ + $sql = "UPDATE `products` SET "; + $sql .= "brew_sparge_volume='" . sprintf("%.1f", $row['brew_sparge_volume'] * $factor); + $sql .= "', brew_sparge_est='" . sprintf("%.1f", $row['brew_sparge_est'] * $factor); + $sql .= "', brew_preboil_volume='" . sprintf("%.1f", $row['brew_preboil_volume'] * $factor); + $sql .= "', brew_aboil_volume='" . sprintf("%.1f", $row['brew_aboil_volume'] * $factor); + $sql .= "', brew_fermenter_volume='" . sprintf("%.1f", $row['brew_fermenter_volume'] * $factor); + $sql .= "', brew_fermenter_extrawater='" . sprintf("%.1f", $row['brew_fermenter_extrawater'] * $factor); + $sql .= "', brew_fermenter_tcloss='" . sprintf("%.1f", $row['brew_fermenter_tcloss'] * $factor); + $sql .= "', package_volume='" . sprintf("%.1f", $row['package_volume'] * $factor); + $sql .= "', package_infuse_amount='" . sprintf("%.1f", $row['package_infuse_amount'] * $factor); + $sql .= "', bottle_amount='" . sprintf("%.1f", $row['bottle_amount'] * $factor); + $sql .= "', bottle_priming_water='" . sprintf("%.3f", $row['bottle_priming_water'] * $factor); + $sql .= "', keg_amount='" . sprintf("%.1f", $row['keg_amount'] * $factor); + $sql .= "', keg_priming_water='" . sprintf("%.3f", $row['keg_priming_water'] * $factor); + $sql .= "', batch_size='" . sprintf("%.2f", $row['batch_size'] * $factor); + $sql .= "', boil_size='" . sprintf("%.2f", $row['boil_size'] * $factor); + $sql .= "', sparge_volume='" . sprintf("%.1f", $row['sparge_volume'] * $factor); + $sql .= "', sparge_acid_amount='" . sprintf("%.5f", $row['sparge_acid_amount'] * $factor); + $sql .= "', w1_amount='" . sprintf("%.2f", $row['w1_amount'] * $factor); + $sql .= "', w2_amount='" . sprintf("%.2f", $row['w2_amount'] * $factor); + $sql .= "', wg_amount='" . sprintf("%.2f", $row['wg_amount'] * $factor); + $sql .= "', prop1_volume='" . sprintf("%.3f", $row['prop1_volume'] * $factor); + $sql .= "', prop2_volume='" . sprintf("%.3f", $row['prop2_volume'] * $factor); + $sql .= "', prop3_volume='" . sprintf("%.3f", $row['prop3_volume'] * $factor); + $sql .= "', prop4_volume='" . sprintf("%.3f", $row['prop4_volume'] * $factor); + $sql .= "', divide_type='" . $divide_type; + $sql .= "', divide_parts='" . $divide_parts; + $sql .= "', divide_part='" . $index; + $sql .= "', divide_size='" . floatval($split['size']); + $sql .= "', divide_factor='". $factor; + syslog(LOG_NOTICE, "db_divide: index " . $index . " " . $sql); -} else if (isset($_POST['delete'])) { - // DELETE COMMAND - $sql = "DELETE FROM `divides` WHERE record='".$_POST['record']."';"; - $result = mysqli_query($connect, $sql); - if (! $result) { - syslog(LOG_NOTICE, "db_divides: ".$sql." result: ".mysqli_error($connect)); } else { - syslog(LOG_NOTICE, "db_divides: deleted record ".$_POST['record']); + /* + * Insert splitted batches + */ + $uuid = str_replace("\n", "", file_get_contents('/proc/sys/kernel/random/uuid')); + $sql = "INSERT INTO `products` SET "; + $sql .= "name='" . mysqli_real_escape_string($link, $split['name']); + $sql .= "', uuid='" . $uuid; + $sql .= "', code='" . mysqli_real_escape_string($link, $split['code']); + $sql .= "', birth='" . $row['birth']; + $sql .= "', stage='" . $row['stage']; + $sql .= "', notes='" . mysqli_real_escape_string($link, $row['notes']); + $sql .= "', log_brew='" . $row['log_brew']; + $sql .= "', log_fermentation='" . $row['log_fermentation']; + $sql .= "', log_ispindel='" . $row['log_ispindel']; + $sql .= "', log_co2pressure='" . $row['log_co2pressure']; + $sql .= "', inventory_reduced='" . $row['inventory_reduced'];; + $sql .= "', locked='" . $row['locked'];; + // Equipment + $sql .= "', eq_name='" . mysqli_real_escape_string($link, $row['eq_name']); + $sql .= "', eq_boil_size='" . $row['eq_boil_size']; + $sql .= "', eq_batch_size='" . $row['eq_batch_size']; + $sql .= "', eq_tun_volume='" . $row['eq_tun_volume']; + $sql .= "', eq_tun_weight='" . $row['eq_tun_weight']; + $sql .= "', eq_tun_specific_heat='" . $row['eq_tun_specific_heat']; + $sql .= "', eq_tun_material='" . $row['eq_tun_material']; + $sql .= "', eq_tun_height='" . $row['eq_tun_height']; + $sql .= "', eq_top_up_water='" . $row['eq_top_up_water']; + $sql .= "', eq_trub_chiller_loss='" . $row['eq_trub_chiller_loss']; + $sql .= "', eq_evap_rate='" . $row['eq_evap_rate']; + $sql .= "', eq_boil_time='" . $row['eq_boil_time']; + $sql .= "', eq_calc_boil_volume='" . $row['eq_calc_boil_volume']; + $sql .= "', eq_top_up_kettle='" . $row['eq_top_up_kettle']; + $sql .= "', eq_hop_utilization='" . $row['eq_hop_utilization']; + $sql .= "', eq_notes='" . mysqli_real_escape_string($link, $row['eq_notes']); + $sql .= "', eq_lauter_volume='" . $row['eq_lauter_volume']; + $sql .= "', eq_lauter_height='" . $row['eq_lauter_height']; + $sql .= "', eq_lauter_deadspace='" . $row['eq_lauter_deadspace']; + $sql .= "', eq_kettle_volume='" . $row['eq_kettle_volume']; + $sql .= "', eq_kettle_height='" . $row['eq_kettle_height']; + $sql .= "', eq_mash_volume='" . $row['eq_mash_volume']; + $sql .= "', eq_mash_max='" . $row['eq_mash_max']; + $sql .= "', eq_efficiency='" . $row['eq_efficiency']; + // brewdate + if (strlen($row['brew_date_start'])) + $sql .= "', brew_date_start='" . $row['brew_date_start'] . "'"; + else + $sql .= "', brew_date_start=NULL"; + $sql .= ", brew_mash_ph='" . $row['brew_mash_ph']; + $sql .= "', brew_mash_sg='" . $row['brew_mash_sg']; + $sql .= "', brew_mash_efficiency='" . $row['brew_mash_efficiency']; + $sql .= "', brew_sparge_temperature='" . $row['brew_sparge_temperature']; + $sql .= "', brew_sparge_volume='" . sprintf("%.1f", $row['brew_sparge_volume'] * $factor); + $sql .= "', brew_sparge_est='" . sprintf("%.1f", $row['brew_sparge_est'] * $factor); + $sql .= "', brew_sparge_ph='" . $row['brew_sparge_ph']; + $sql .= "', brew_preboil_volume='" . sprintf("%.1f", $row['brew_preboil_volume'] * $factor); + $sql .= "', brew_preboil_sg='" . $row['brew_preboil_sg']; + $sql .= "', brew_preboil_ph='" . $row['brew_preboil_ph']; + $sql .= "', brew_preboil_efficiency='" . $row['brew_preboil_efficiency']; + $sql .= "', brew_aboil_volume='" . sprintf("%.1f", $row['brew_aboil_volume'] * $factor); + $sql .= "', brew_aboil_sg='" . $row['brew_aboil_sg']; + $sql .= "', brew_aboil_ph='" . $row['brew_aboil_ph']; + $sql .= "', brew_aboil_efficiency='" . $row['brew_aboil_efficiency']; + $sql .= "', brew_cooling_method='" . $row['brew_cooling_method']; + $sql .= "', brew_cooling_time='" . $row['brew_cooling_time']; + $sql .= "', brew_cooling_to='" . $row['brew_cooling_to']; + $sql .= "', brew_whirlpool9='" . $row['brew_whirlpool9']; + $sql .= "', brew_whirlpool7='" . $row['brew_whirlpool7']; + $sql .= "', brew_whirlpool6='" . $row['brew_whirlpool6']; + $sql .= "', brew_whirlpool2='" . $row['brew_whirlpool2']; + $sql .= "', brew_aeration_time='" . $row['brew_aeration_time']; + $sql .= "', brew_aeration_speed='" . $row['brew_aeration_speed']; + $sql .= "', brew_aeration_type='" . $row['brew_aeration_type']; + $sql .= "', brew_fermenter_volume='" . sprintf("%.1f", $row['brew_fermenter_volume'] * $factor); + $sql .= "', brew_fermenter_extrawater='" . sprintf("%.1f", $row['brew_fermenter_extrawater'] * $factor); + $sql .= "', brew_fermenter_tcloss='" . sprintf("%.1f", $row['brew_fermenter_tcloss'] * $factor); + $sql .= "', brew_fermenter_sg='" . $row['brew_fermenter_sg']; + $sql .= "', brew_fermenter_ibu='" . $row['brew_fermenter_ibu']; + $sql .= "', brew_fermenter_color='" . $row['brew_fermenter_color']; + if (strlen($row['brew_date_end'])) + $sql .= "', brew_date_end='" . $row['brew_date_end'] . "'"; + else + $sql .= "', brew_date_end=NULL"; + $sql .= ", og='" . $row['og']; + $sql .= "', fg='" . $row['fg']; + $sql .= "', primary_start_temp='" . $row['primary_start_temp']; + $sql .= "', primary_max_temp='" . $row['primary_max_temp']; + $sql .= "', primary_end_temp='" . $row['primary_end_temp']; + if (strlen($row['primary_end_date'])) + $sql .= "', primary_end_date='" . $row['primary_end_date'] . "'"; + else + $sql .= "', primary_end_date=NULL"; + $sql .= ", primary_end_sg='" . $row['primary_end_sg']; + $sql .= "', secondary_temp='" . $row['secondary_temp']; + $sql .= "', secondary_end_sg='" . $row['secondary_end_sg']; + if (strlen($row['secondary_end_date'])) + $sql .= "', secondary_end_date='" . $row['secondary_end_date'] . "'"; + else + $sql .= "', secondary_end_date=NULL"; + $sql .= ", tertiary_temp='" . $row['tertiary_temp']; + if (strlen($row['package_date'])) + $sql .= "', package_date='" . $row['package_date'] . "'"; + else + $sql .= "', package_date=NULL"; + $sql .= ", package_volume='" . sprintf("%.1f", $row['package_volume'] * $factor); + $sql .= "', package_infuse_amount='" . sprintf("%.1f", $row['package_infuse_amount'] * $factor); + $sql .= "', package_infuse_abv='" . $row['package_infuse_abv']; + $sql .= "', package_infuse_notes='" . mysqli_real_escape_string($link, $row['package_infuse_notes']); + $sql .= "', package_abv='" . $row['package_abv']; + $sql .= "', package_ph='" . $row['package_ph']; + $sql .= "', bottle_amount='" . sprintf("%.1f", $row['bottle_amount'] * $factor); + $sql .= "', bottle_carbonation='" . $row['bottle_carbonation']; + $sql .= "', bottle_priming_sugar='" . $row['bottle_priming_sugar']; + $sql .= "', bottle_priming_water='" . sprintf("%.3f", $row['bottle_priming_water'] * $factor); + $sql .= "', bottle_priming_amount='" . $row['bottle_priming_amount']; + $sql .= "', bottle_carbonation_temp='" . $row['bottle_carbonation_temp']; + $sql .= "', keg_amount='" . sprintf("%.1f", $row['keg_amount'] * $factor); + $sql .= "', keg_carbonation='" . $row['keg_carbonation']; + $sql .= "', keg_priming_sugar='" . $row['keg_priming_sugar']; + $sql .= "', keg_priming_water='" . sprintf("%.3f", $row['keg_priming_water'] * $factor); + $sql .= "', keg_priming_amount='" . $row['keg_priming_amount']; + $sql .= "', keg_carbonation_temp='" . $row['keg_carbonation_temp']; + $sql .= "', keg_forced_carb='" . $row['keg_forced_carb']; + $sql .= "', keg_pressure='" . $row['keg_pressure']; + $sql .= "', taste_notes='"; + $sql .= "', taste_rate='0"; + $sql .= "', taste_date=NULL"; + $sql .= ", taste_color='"; + $sql .= "', taste_transparency='"; + $sql .= "', taste_head='"; + $sql .= "', taste_aroma='"; + $sql .= "', taste_taste='"; + $sql .= "', taste_mouthfeel='"; + $sql .= "', taste_aftertaste='"; + // Style + $sql .= "', st_name='" . mysqli_real_escape_string($link, $row['st_name']); + $sql .= "', st_letter='" . mysqli_real_escape_string($link, $row['st_letter']); + $sql .= "', st_guide='" . mysqli_real_escape_string($link, $row['st_guide']); + $sql .= "', st_type='" . $row['st_type']; + $sql .= "', st_category='" . mysqli_real_escape_string($link, $row['st_category']); + $sql .= "', st_category_number='" . $row['st_category_number']; + $sql .= "', st_og_min='" . $row['st_og_min']; + $sql .= "', st_og_max='" . $row['st_og_max']; + $sql .= "', st_fg_min='" . $row['st_fg_min']; + $sql .= "', st_fg_max='" . $row['st_fg_max']; + $sql .= "', st_ibu_min='" . $row['st_ibu_min']; + $sql .= "', st_ibu_max='" . $row['st_ibu_max']; + $sql .= "', st_color_min='" . $row['st_color_min']; + $sql .= "', st_color_max='" . $row['st_color_max']; + $sql .= "', st_carb_min='" . $row['st_carb_min']; + $sql .= "', st_carb_max='" . $row['st_carb_max']; + $sql .= "', st_abv_min='" . $row['st_abv_min']; + $sql .= "', st_abv_max='" . $row['st_abv_max']; + $sql .= "', type='" . $row['type']; + $sql .= "', batch_size='" . sprintf("%.2f", $row['batch_size'] * $factor); + $sql .= "', boil_size='" . sprintf("%.2f", $row['boil_size'] * $factor); + $sql .= "', boil_time='" . $row['boil_time']; + $sql .= "', efficiency='" . $row['efficiency']; + $sql .= "', est_og='" . $row['est_og']; + $sql .= "', est_og3='" . $row['est_og3']; + $sql .= "', est_fg='" . $row['est_fg']; + $sql .= "', est_abv='" . $row['est_abv']; + $sql .= "', est_carb='" . $row['est_carb']; + $sql .= "', est_color='" . $row['est_color']; + $sql .= "', color_method='" . $row['color_method']; + $sql .= "', est_ibu='" . $row['est_ibu']; + $sql .= "', ibu_method='" . $row['ibu_method']; + $sql .= "', sparge_volume='" . sprintf("%.1f", $row['sparge_volume'] * $factor); + $sql .= "', sparge_acid_amount='" . sprintf("%.5f", $row['sparge_acid_amount'] * $factor); + $sql .= "', sparge_temp='" . $row['sparge_temp']; + $sql .= "', sparge_ph='" . $row['sparge_ph']; + $sql .= "', sparge_source='" . $row['sparge_source']; + $sql .= "', sparge_acid_type='" . $row['sparge_acid_type']; + $sql .= "', sparge_acid_perc='" . $row['sparge_acid_perc']; + $sql .= "', mash_ph='" . $row['mash_ph']; + $sql .= "', mash_name='" . $row['mash_name']; + $sql .= "', calc_acid='" . $row['calc_acid']; + $sql .= "', w1_name='" . mysqli_real_escape_string($link, $row['w1_name']); + $sql .= "', w1_amount='" . sprintf("%.2f", $row['w1_amount'] * $factor); + $sql .= "', w1_calcium='" . $row['w1_calcium']; + $sql .= "', w1_sulfate='" . $row['w1_sulfate']; + $sql .= "', w1_chloride='" . $row['w1_chloride']; + $sql .= "', w1_sodium='" . $row['w1_sodium']; + $sql .= "', w1_magnesium='" . $row['w1_magnesium']; + $sql .= "', w1_total_alkalinity='" . $row['w1_total_alkalinity']; + $sql .= "', w1_ph='" . $row['w1_ph']; + $sql .= "', w1_cost='" . $row['w1_cost']; + $sql .= "', w2_name='" . mysqli_real_escape_string($link, $row['w2_name']); + $sql .= "', w2_amount='" . sprintf("%.2f", $row['w2_amount'] * $factor); + $sql .= "', w2_calcium='" . $row['w2_calcium']; + $sql .= "', w2_sulfate='" . $row['w2_sulfate']; + $sql .= "', w2_chloride='" . $row['w2_chloride']; + $sql .= "', w2_sodium='" . $row['w2_sodium']; + $sql .= "', w2_magnesium='" . $row['w2_magnesium']; + $sql .= "', w2_total_alkalinity='" . $row['w2_total_alkalinity']; + $sql .= "', w2_ph='" . $row['w2_ph']; + $sql .= "', w2_cost='" . $row['w2_cost']; + $sql .= "', wg_amount='" . sprintf("%.2f", $row['wg_amount'] * $factor); + $sql .= "', wg_calcium='" . $row['wg_calcium']; + $sql .= "', wg_sulfate='" . $row['wg_sulfate']; + $sql .= "', wg_chloride='" . $row['wg_chloride']; + $sql .= "', wg_sodium='" . $row['wg_sodium']; + $sql .= "', wg_magnesium='" . $row['wg_magnesium']; + $sql .= "', wg_total_alkalinity='" . $row['wg_total_alkalinity']; + $sql .= "', wg_ph='" . $row['wg_ph']; + $sql .= "', wb_calcium='" . $row['wb_calcium']; + $sql .= "', wb_sulfate='" . $row['wb_sulfate']; + $sql .= "', wb_chloride='" . $row['wb_chloride']; + $sql .= "', wb_sodium='" . $row['wb_sodium']; + $sql .= "', wb_magnesium='" . $row['wb_magnesium']; + $sql .= "', wb_total_alkalinity='" . $row['wb_total_alkalinity']; + $sql .= "', wb_ph='" . $row['wb_ph']; + $sql .= "', wa_acid_name='" . $row['wa_acid_name']; + $sql .= "', wa_acid_perc='" . $row['wa_acid_perc']; + $sql .= "', wa_base_name='" . $row['wa_base_name']; + $sql .= "', starter_enable='" . $row['starter_enable']; + $sql .= "', starter_type='" . $row['starter_type']; + $sql .= "', starter_sg='" . $row['starter_sg']; + $sql .= "', starter_viability='" . $row['starter_viability']; + $sql .= "', prop1_type='" . $row['prop1_type']; + $sql .= "', prop2_type='" . $row['prop2_type']; + $sql .= "', prop3_type='" . $row['prop3_type']; + $sql .= "', prop4_type='" . $row['prop4_type']; + $sql .= "', prop1_volume='" . sprintf("%.3f", $row['prop1_volume'] * $factor); + $sql .= "', prop2_volume='" . sprintf("%.3f", $row['prop2_volume'] * $factor); + $sql .= "', prop3_volume='" . sprintf("%.3f", $row['prop3_volume'] * $factor); + $sql .= "', prop4_volume='" . sprintf("%.3f", $row['prop4_volume'] * $factor); + $sql .= "', divide_type='" . $divide_type; + $sql .= "', divide_parts='" . $divide_parts; + $sql .= "', divide_part='" . $index; + $sql .= "', divide_size='" . floatval($split['size']); + $sql .= "', divide_factor='". $factor; + syslog(LOG_NOTICE, "db_divide: index " . $index . " " . $sql); } - echo $result; + + $fermentables = json_decode($row['json_fermentables'], true); + for ($i = 0; $i < count($fermentables); $i++) { + $fermentables[$i]['f_amount'] = sprintf("%.5f", $fermentables[$i]['f_amount'] * $factor); + } + // syslog(LOG_NOTICE, "db_divide: " . str_replace($rescapers,$rreplacements,json_encode($fermentables, JSON_UNESCAPED_UNICODE))); + $sql .= "', json_fermentables='" . str_replace($rescapers,$rreplacements,json_encode($fermentables, JSON_UNESCAPED_UNICODE)); + + $hops = json_decode($row['json_hops'], true); + for ($i = 0; $i < count($hops); $i++) { + $hops[$i]['h_amount'] = sprintf("%.5f", $hops[$i]['h_amount'] * $factor); + } + // syslog(LOG_NOTICE, "db_divide: " . str_replace($rescapers,$rreplacements,json_encode($hops, JSON_UNESCAPED_UNICODE))); + $sql .= "', json_hops='" . str_replace($rescapers,$rreplacements,json_encode($hops, JSON_UNESCAPED_UNICODE)); + + $miscs = json_decode($row['json_miscs'], true); + for ($i = 0; $i < count($miscs); $i++) { + $miscs[$i]['m_amount'] = sprintf("%.5f", $miscs[$i]['m_amount'] * $factor); + } + // syslog(LOG_NOTICE, "db_divide: " . str_replace($rescapers,$rreplacements,json_encode($miscs, JSON_UNESCAPED_UNICODE))); + $sql .= "', json_miscs='" . str_replace($rescapers,$rreplacements,json_encode($miscs, JSON_UNESCAPED_UNICODE)); + + $yeasts = json_decode($row['json_yeasts'], true); + for ($i = 0; $i < count($yeasts); $i++) { + $yeasts[$i]['y_amount'] = sprintf("%.5f", $yeasts[$i]['y_amount'] * $factor); + } + // syslog(LOG_NOTICE, "db_divide: " . str_replace($rescapers,$rreplacements,json_encode($yeasts, JSON_UNESCAPED_UNICODE))); + $sql .= "', json_yeasts='" . str_replace($rescapers,$rreplacements,json_encode($yeasts, JSON_UNESCAPED_UNICODE)); + + $mashs = json_decode($row['json_mashs'], true); + for ($i = 0; $i < count($mashs); $i++) { + $mashs[$i]['step_infuse_amount'] = sprintf("%.5f", $mashs[$i]['step_infuse_amount'] * $factor); + } + syslog(LOG_NOTICE, "db_divide: " . str_replace($rescapers,$rreplacements,json_encode($mashs, JSON_UNESCAPED_UNICODE))); + $sql .= "', json_mashs='" . str_replace($rescapers,$rreplacements,json_encode($mashs, JSON_UNESCAPED_UNICODE)); + if ($index == 0) { + $sql .= "' WHERE record='" . $record . "';"; + $result2 = mysqli_query($link, $sql); + if (! $result2) { + syslog(LOG_NOTICE, "db_divide: result: ".mysqli_error($link)); + $rc = 1; + break; + } else { + syslog(LOG_NOTICE, "db_divide: updated record ".$record." code ".$split['code']); + } + } else { + $sql .= "';"; + $result2 = mysqli_query($link, $sql); + if (! $result2) { + syslog(LOG_NOTICE, "db_divide: result: ".mysqli_error($link)); + $rc = 1; + break; + } else { + $lastid = mysqli_insert_id($link); + syslog(LOG_NOTICE, "db_divide: inserted record ".$lastid." code ".$split['code']); + /* Copy brew log records */ + if ($row['log_brew'] == '1') { + $result3 = mysqli_query($link, "SELECT * FROM log_brews WHERE code='" . $row['code'] . "'"); + if (! $result3) { + syslog(LOG_NOTICE, "db_divide: result3: ".mysqli_error($link)); + } + while ($row3 = mysqli_fetch_array($result3)) { + $sql3 = "INSERT INTO log_brews SET datetime='" . $row3['datetime']; + $sql3 .= "', version='" . $row3['version']; + $sql3 .= "', uuid='" . $uuid; + $sql3 .= "', code='" . mysqli_real_escape_string($link, $split['code']); + $sql3 .= "', name='" . mysqli_real_escape_string($link, $split['name']); + $sql3 .= "', pv_mlt='" . $row3['pv_mlt']; + $sql3 .= "', pv_hlt='" . $row3['pv_hlt']; + $sql3 .= "', pv_room='" . $row3['pv_room']; + $sql3 .= "', sp_mlt='" . $row3['sp_mlt']; + $sql3 .= "', sp_hlt='" . $row3['sp_hlt']; + $sql3 .= "', pwm_mlt='" . $row3['pwm_mlt']; + $sql3 .= "', pwm_hlt='" . $row3['pwm_hlt']; + $sql3 .= "', event='" . $row3['event'] . "';"; + $result4 = mysqli_query($link, $sql3); + if (! $result4) { + syslog(LOG_NOTICE, "db_divide: result4: ".mysqli_error($link)." ".$sql3); + } + } + } + } + } + + } + syslog(LOG_NOTICE, "db_divide: rc=".$rc); + echo $rc; } else { - // SELECT COMMAND - $query = "SELECT * FROM divides ORDER BY divide_from,divide_part"; - $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect)); - while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { - $divides[] = array( - 'record' => $row['record'], - 'divide_from' => $row['divide_from'], - 'divide_type' => $row['divide_type'], - 'divide_size' => $row['divide_size'], - 'divide_part' => $row['divide_part'], - 'name' => $row['name'], - 'code' => $row['code'] - ); - } - header("Content-type: application/json"); - echo json_encode($divides); + syslog(LOG_NOTICE, "db_divide: missing arguments"); + echo 1; } + + + + ?>
--- a/www/includes/db_inventory_yeasts.php Fri Oct 18 13:20:35 2019 +0200 +++ b/www/includes/db_inventory_yeasts.php Fri May 01 16:37:31 2020 +0200 @@ -26,6 +26,7 @@ $sql .= "', form='" . array_search($_POST['form'], $yeastform); $sql .= "', laboratory='" . mysqli_real_escape_string($connect, $_POST['laboratory']); $sql .= "', product_id='" . mysqli_real_escape_string($connect, $_POST['product_id']); + $sql .= "', short_desc='" . mysqli_real_escape_string($connect, $_POST['short_desc']); $sql .= "', min_temperature='" . $_POST['min_temperature']; $sql .= "', max_temperature='" . $_POST['max_temperature']; $sql .= "', flocculation='" . $_POST['flocculation']; @@ -96,6 +97,7 @@ 'form' => $yeastform[$row['form']], 'laboratory' => $row['laboratory'], 'product_id' => $row['product_id'], + 'short_desc' => $row['short_desc'], 'min_temperature' => $row['min_temperature'], 'max_temperature' => $row['max_temperature'], 'flocculation' => $row['flocculation'],
--- a/www/includes/db_product.php Fri Oct 18 13:20:35 2019 +0200 +++ b/www/includes/db_product.php Fri May 01 16:37:31 2020 +0200 @@ -40,6 +40,8 @@ $sql .= "', notes='" . mysqli_real_escape_string($connect, $_POST['notes']); $sql .= "', log_brew='" . $_POST['log_brew']; $sql .= "', log_fermentation='" . $_POST['log_fermentation']; + $sql .= "', log_ispindel='" . $_POST['log_ispindel']; + $sql .= "', log_co2pressure='" . $_POST['log_co2pressure']; $sql .= "', inventory_reduced='" . $_POST['inventory_reduced']; $sql .= "', locked='" . $_POST['locked']; // Equipment @@ -185,6 +187,7 @@ $sql .= "', boil_time='" . $_POST['boil_time']; $sql .= "', efficiency='" . $_POST['efficiency']; $sql .= "', est_og='" . $_POST['est_og']; + $sql .= "', est_og3='" . $_POST['est_og3']; $sql .= "', est_fg='" . $_POST['est_fg']; $sql .= "', est_abv='" . $_POST['est_abv']; $sql .= "', est_carb='" . $_POST['est_carb']; @@ -262,9 +265,15 @@ $sql .= "', prop4_type='" . $_POST['prop4_type']; $sql .= "', prop4_volume='" . $_POST['prop4_volume']; } - $sql .= "', divide_type='" . $_POST['divide_type']; - $sql .= "', divide_size='" . $_POST['divide_size']; + if ($_POST['yeast_prod_date'] == '') + $sql .= "', yeast_prod_date=NULL"; + else + $sql .= "', yeast_prod_date='" . $_POST['yeast_prod_date'] . "'"; + $sql .= ", divide_type='" . $_POST['divide_type']; + $sql .= "', divide_size='" . floatval($_POST['divide_size']); + $sql .= "', divide_factor='" . floatval($_POST['divide_factor']); $sql .= "', divide_parts='" . $_POST['divide_parts']; + $sql .= "', divide_part='" . $_POST['divide_part']; //syslog(LOG_NOTICE, $sql); $fermentables = '['; @@ -435,6 +444,13 @@ $yeast .= ',"y_tolerance":' . $item['y_tolerance']; $yeast .= ',"y_inventory":' . $item['y_inventory']; $yeast .= ',"y_use":' . $item['y_use']; + $yeast .= ',"y_sta1":' . $item['y_sta1']; + $yeast .= ',"y_bacteria":' . $item['y_bacteria']; + $yeast .= ',"y_harvest_top":' . $item['y_harvest_top']; + $yeast .= ',"y_harvest_time":' . $item['y_harvest_time']; + $yeast .= ',"y_pitch_temperature":' . $item['y_pitch_temperature']; + $yeast .= ',"y_pofpos":' . $item['y_pofpos']; + $yeast .= ',"y_zymocide":' . $item['y_zymocide']; $yeast .= ',"y_cost":' . $item['y_cost'] . '}'; //syslog(LOG_NOTICE, $yeast); $yeasts .= $yeast; @@ -535,7 +551,7 @@ * SELECT, produce a list of products that are not yet Closed. */ if (isset($_GET['select']) && ($_GET['select'] == "inprod")) { - $query = "SELECT record,name,code,birth,stage,brew_date_start,package_date FROM products WHERE stage != '11' ORDER BY birth,code;"; + $query = "SELECT record,name,code,birth,stage,brew_date_start,package_date FROM products WHERE stage != '11' ORDER BY stage,code,birth;"; $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect)); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $brews[] = array( @@ -554,7 +570,7 @@ } if (isset($_GET['select']) && ($_GET['select'] == "archname")) { - $query = "SELECT record,name,code,brew_date_start,st_name,og,fg,batch_size FROM products WHERE stage = '11' ORDER BY name,brew_date_start;"; + $query = "SELECT record,name,code,brew_date_start,st_name,brew_fermenter_sg,fg,batch_size FROM products WHERE stage = '11' ORDER BY name,brew_date_start;"; $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect)); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $brews[] = array( @@ -563,7 +579,7 @@ 'code' => $row['code'], 'date' => substr($row['brew_date_start'], 0, 10), 'style' => $row['st_name'], - 'og' => $row['og'], + 'og' => $row['brew_fermenter_sg'], 'fg' => $row['fg'], 'batch_size' => $row['batch_size'] ); @@ -574,7 +590,7 @@ } if (isset($_GET['select']) && ($_GET['select'] == "archcode")) { - $query = "SELECT record,name,code,brew_date_start,st_name,og,fg,batch_size FROM products WHERE stage = '11' ORDER BY code;"; + $query = "SELECT record,name,code,brew_date_start,st_name,brew_fermenter_sg,fg,batch_size FROM products WHERE stage = '11' ORDER BY code;"; $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect)); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $brews[] = array( @@ -583,7 +599,7 @@ 'code' => $row['code'], 'date' => substr($row['brew_date_start'], 0, 10), 'style' => $row['st_name'], - 'og' => $row['og'], + 'og' => $row['brew_fermenter_sg'], 'fg' => $row['fg'], 'batch_size' => $row['batch_size'] ); @@ -594,7 +610,7 @@ } if (isset($_GET['select']) && ($_GET['select'] == "archdate")) { - $query = "SELECT record,name,code,brew_date_start,st_name,og,fg,batch_size FROM products WHERE stage = '11' ORDER BY brew_date_start;"; + $query = "SELECT record,name,code,brew_date_start,st_name,brew_fermenter_sg,fg,batch_size FROM products WHERE stage = '11' ORDER BY brew_date_start;"; $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect)); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $brews[] = array( @@ -604,7 +620,7 @@ 'year' => substr($row['brew_date_start'], 0, 4), 'date' => substr($row['brew_date_start'], 0, 10), 'style' => $row['st_name'], - 'og' => $row['og'], + 'og' => $row['brew_fermenter_sg'], 'fg' => $row['fg'], 'batch_size' => $row['batch_size'] ); @@ -672,6 +688,8 @@ $brew .= ',"notes":"' . str_replace($escapers, $replacements, $row['notes']); $brew .= '","log_brew":' . $row['log_brew']; $brew .= ',"log_fermentation":' . $row['log_fermentation']; + $brew .= ',"log_ispindel":' . $row['log_ispindel']; + $brew .= ',"log_co2pressure":' . $row['log_co2pressure']; $brew .= ',"inventory_reduced":' . $row['inventory_reduced']; $brew .= ',"locked":' . $row['locked']; $brew .= ',"eq_name":"' . str_replace($escapers, $replacements, $row['eq_name']); @@ -795,6 +813,7 @@ $brew .= ',"boil_time":' . floatval($row['boil_time']); $brew .= ',"efficiency":' . floatval($row['efficiency']); $brew .= ',"est_og":' . floatval($row['est_og']); + $brew .= ',"est_og3":' . floatval($row['est_og3']); $brew .= ',"est_fg":' . floatval($row['est_fg']); $brew .= ',"est_abv":' . floatval($row['est_abv']); $brew .= ',"est_carb":' . floatval($row['est_carb']); @@ -854,7 +873,8 @@ $brew .= ',"starter_type":' . $row['starter_type']; $brew .= ',"starter_sg":' . $row['starter_sg']; $brew .= ',"starter_viability":' . $row['starter_viability']; - $brew .= ',"prop1_type":' . $row['prop1_type']; + $brew .= ',"yeast_prod_date":"' . $row['yeast_prod_date']; + $brew .= '","prop1_type":' . $row['prop1_type']; $brew .= ',"prop1_volume":' . $row['prop1_volume']; $brew .= ',"prop2_type":' . $row['prop2_type']; $brew .= ',"prop2_volume":' . $row['prop2_volume']; @@ -865,7 +885,9 @@ $brew .= ',"divide_type":' . $row['divide_type']; $brew .= ',"divide_size":' . floatval($row['divide_size']); + $brew .= ',"divide_factor":' . floatval($row['divide_factor']); $brew .= ',"divide_parts":' . $row['divide_parts']; + $brew .= ',"divide_part":' . $row['divide_part']; if (isset($_GET['record'])) { // Append stock information. @@ -927,7 +949,8 @@ $yeasts[$i]['y_avail'] = 0; // Ingredient not in db if (! isset($yeasts[$i]['y_tolerance'])) $yeasts[$i]['y_tolerance'] = 0; - $sql2 = "SELECT inventory,tolerance FROM inventory_yeasts "; + $sql2 = "SELECT inventory,tolerance,sta1,bacteria,harvest_top,harvest_time,pitch_temperature,pofpos,zymocide "; + $sql2 .= "FROM inventory_yeasts "; $sql2 .= "WHERE name='".str_replace($rescapers, $rreplacements, $yeasts[$i]['y_name'])."' AND"; $sql2 .= " form='".str_replace($rescapers, $rreplacements, $yeasts[$i]['y_form'])."' AND"; $sql2 .= " laboratory='".str_replace($rescapers, $rreplacements, $yeasts[$i]['y_laboratory'])."' AND"; @@ -936,10 +959,39 @@ if ($obj = mysqli_fetch_object($result2)) { $yeasts[$i]['y_inventory'] = floatval($obj->inventory); $yeasts[$i]['y_avail'] = 1; - if ($yeasts[$i]['y_tolerance'] == 0) { + if ($yeasts[$i]['y_tolerance'] == 0) $yeasts[$i]['y_tolerance'] = floatval($obj->tolerance); // Upgrade alcohol tolerance - } - } + // Upgrade new fields + if (! isset($yeasts[$i]['y_sta1'])) + $yeasts[$i]['y_sta1'] = intval($obj->sta1); + if (! isset($yeasts[$i]['y_bacteria'])) + $yeasts[$i]['y_bacteria'] = intval($obj->bacteria); + if (! isset($yeasts[$i]['y_harvest_top'])) + $yeasts[$i]['y_harvest_top'] = intval($obj->harvest_top); + if (! isset($yeasts[$i]['y_harvest_time'])) + $yeasts[$i]['y_harvest_time'] = intval($obj->harvest_time); + if (! isset($yeasts[$i]['y_pitch_temperature'])) + $yeasts[$i]['y_pitch_temperature'] = floatval($obj->pitch_temperature); + if (! isset($yeasts[$i]['y_pofpos'])) + $yeasts[$i]['y_pofpos'] = intval($obj->pofpos); + if (! isset($yeasts[$i]['y_zymocide'])) + $yeasts[$i]['y_zymocide'] = intval($obj->zymocide); + } else { + if (! isset($yeasts[$i]['y_sta1'])) + $yeasts[$i]['y_sta1'] = 0; + if (! isset($yeasts[$i]['y_bacteria'])) + $yeasts[$i]['y_bacteria'] = 0; + if (! isset($yeasts[$i]['y_harvest_top'])) + $yeasts[$i]['y_harvest_top'] = 0; + if (! isset($yeasts[$i]['y_harvest_time'])) + $yeasts[$i]['y_harvest_time'] = 0; + if (! isset($yeasts[$i]['y_pitch_temperature'])) + $yeasts[$i]['y_pitch_temperature'] = 0; + if (! isset($yeasts[$i]['y_pofpos'])) + $yeasts[$i]['y_pofpos'] = 0; + if (! isset($yeasts[$i]['y_zymocide'])) + $yeasts[$i]['y_zymocide'] = 0; + } mysqli_free_result($result2); } }
--- a/www/includes/db_recipes.php Fri Oct 18 13:20:35 2019 +0200 +++ b/www/includes/db_recipes.php Fri May 01 16:37:31 2020 +0200 @@ -285,6 +285,13 @@ $yeast .= ',"y_tolerance":' . $item['y_tolerance']; $yeast .= ',"y_inventory":' . $item['y_inventory']; $yeast .= ',"y_use":' . $item['y_use']; + $yeast .= ',"y_sta1":' . $item['y_sta1']; + $yeast .= ',"y_bacteria":' . $item['y_bacteria']; + $yeast .= ',"y_harvest_top":' . $item['y_harvest_top']; + $yeast .= ',"y_harvest_time":' . $item['y_harvest_time']; + $yeast .= ',"y_pitch_temperature":' . $item['y_pitch_temperature']; + $yeast .= ',"y_pofpos":' . $item['y_pofpos']; + $yeast .= ',"y_zymocide":' . $item['y_zymocide']; $yeast .= ',"y_cost":' . $item['y_cost'] . '}'; syslog(LOG_NOTICE, $yeast); $yeasts .= $yeast; @@ -518,7 +525,8 @@ $yeasts[$i]['y_avail'] = 0; // Ingredient not in db if (! isset($yeasts[$i]['y_tolerance'])) $yeasts[$i]['y_tolerance'] = 0; - $sql2 = "SELECT inventory,tolerance FROM inventory_yeasts "; + $sql2 = "SELECT inventory,tolerance,sta1,bacteria,harvest_top,harvest_time,pitch_temperature,pofpos,zymocide "; + $sql2 .= "FROM inventory_yeasts "; $sql2 .= "WHERE name='".str_replace($rescapers, $rreplacements, $yeasts[$i]['y_name'])."' AND"; $sql2 .= " form='".str_replace($rescapers, $rreplacements, $yeasts[$i]['y_form'])."' AND"; $sql2 .= " laboratory='".str_replace($rescapers, $rreplacements, $yeasts[$i]['y_laboratory'])."' AND"; @@ -527,13 +535,43 @@ if ($obj = mysqli_fetch_object($result2)) { $yeasts[$i]['y_inventory'] = floatval($obj->inventory); $yeasts[$i]['y_avail'] = 1; - if ($yeasts[$i]['y_tolerance'] == 0) { + if ($yeasts[$i]['y_tolerance'] == 0) $yeasts[$i]['y_tolerance'] = floatval($obj->tolerance); // Upgrade alcohol tolerance - } + // Upgrade new fields + if (! isset($yeasts[$i]['y_sta1'])) + $yeasts[$i]['y_sta1'] = intval($obj->sta1); + if (! isset($yeasts[$i]['y_bacteria'])) + $yeasts[$i]['y_bacteria'] = intval($obj->bacteria); + if (! isset($yeasts[$i]['y_harvest_top'])) + $yeasts[$i]['y_harvest_top'] = intval($obj->harvest_top); + if (! isset($yeasts[$i]['y_harvest_time'])) + $yeasts[$i]['y_harvest_time'] = intval($obj->harvest_time); + if (! isset($yeasts[$i]['y_pitch_temperature'])) + $yeasts[$i]['y_pitch_temperature'] = floatval($obj->pitch_temperature); + if (! isset($yeasts[$i]['y_pofpos'])) + $yeasts[$i]['y_pofpos'] = intval($obj->pofpos); + if (! isset($yeasts[$i]['y_zymocide'])) + $yeasts[$i]['y_zymocide'] = intval($obj->zymocide); + } else { + if (! isset($yeasts[$i]['y_sta1'])) + $yeasts[$i]['y_sta1'] = 0; + if (! isset($yeasts[$i]['y_bacteria'])) + $yeasts[$i]['y_bacteria'] = 0; + if (! isset($yeasts[$i]['y_harvest_top'])) + $yeasts[$i]['y_harvest_top'] = 0; + if (! isset($yeasts[$i]['y_harvest_time'])) + $yeasts[$i]['y_harvest_time'] = 0; + if (! isset($yeasts[$i]['y_pitch_temperature'])) + $yeasts[$i]['y_pitch_temperature'] = 0; + if (! isset($yeasts[$i]['y_pofpos'])) + $yeasts[$i]['y_pofpos'] = 0; + if (! isset($yeasts[$i]['y_zymocide'])) + $yeasts[$i]['y_zymocide'] = 0; } mysqli_free_result($result2); } } + syslog(LOG_NOTICE, json_encode($yeasts, JSON_UNESCAPED_UNICODE)); $recipes .= ',"yeasts":' . json_encode($yeasts, JSON_UNESCAPED_UNICODE); } else { // Just leave it.
--- a/www/includes/db_setup.php Fri Oct 18 13:20:35 2019 +0200 +++ b/www/includes/db_setup.php Fri May 01 16:37:31 2020 +0200 @@ -34,6 +34,7 @@ $sql .= "', brix_correction='" . $_POST['brix_correction']; $sql .= "', grain_absorbtion='" . $_POST['grain_absorbtion']; $sql .= "', default_water='" . $default_water; + $sql .= "', my_yeastlab='" . $_POST['my_yeastlab']; $sql .= "' WHERE record='1';"; //syslog(LOG_NOTICE, $sql); $result = mysqli_query($connect, $sql); @@ -65,6 +66,7 @@ $data .= ',"brix_correction":' . floatval($row['brix_correction']); $data .= ',"grain_absorbtion":' . floatval($row['grain_absorbtion']); $data .= ',"default_water":"' . str_replace($escapers, $replacements, $default_water); + $data .= '","my_yeastlab":"' . str_replace($escapers, $replacements, $row['my_yeastlab']); $data .= '"}'; } header("Content-type: application/json");
--- a/www/includes/formulas.php Fri Oct 18 13:20:35 2019 +0200 +++ b/www/includes/formulas.php Fri May 01 16:37:31 2020 +0200 @@ -115,17 +115,27 @@ function sg_to_plato($sg) { - if ($sg > 0.5) - return 259 - 259 / $sg; - return 0; +// if ($sg > 0.5) +// return 259 - 259 / $sg; +// return 0; + return -668.962 + (1262.45 * $sg) - (776.43 * $sg * $sg) + (182.94 * $sg * $sg * $sg); } function plato_to_sg($plato) { - if ($plato < 259) - return 259 / (259 - $plato); - return 1.000; +// if ($plato < 259) +// return 259 / (259 - $plato); +// return 1.000; + return 1.00001 + (0.0038661 * $plato) + (1.3488e-5 * $plato * $plato) + (4.3074e-8 * $plato * $plato * $plato); +} + + + +function calc_svg($og, $fg) { + $oe = sg_to_plato($og); + $ae = sg_to_plato($fg); + return ($oe - $ae) / $oe * 100; } @@ -175,9 +185,6 @@ function abvol($og, $fg) { $factor = $og * 3157 * pow(10, -5) + 9.716 * pow(10, -2); return ($og * 1000 - $fg * 1000) * $factor; - //if ((4.749804 - $fg) <> 0) - // return 486.8693 * ($og - $fg) / (4.749804 - $fg); - //return 0; } @@ -202,7 +209,7 @@ -function calc_IBU($useat, $form, $sg, $volume, $mass, $boiltime, $alpha, $method) +function calc_IBU($useat, $form, $sg, $volume, $mass, $boiltime, $alpha, $method, $whirlpool9, $whirlpool7, $whirlpool6) { global $my_factor_mashhop; global $my_factor_fwh; @@ -234,13 +241,31 @@ $pfactor += $my_factor_cryohop / 100; } + $whirlibus = 0; + if ($useat == 3 || $useat == 4) { // Flameout or any whirlpool + if ($whirlpool9) { + $whirlibus += ($mass * ($alpha / 100) * 20) / $volume * $whirlpool9 / 50; + } else { + if ($useat == 3) // Flameout hops are 2 minutes in this range. + $whirlibus += ($mass * ($alpha / 100) * 20) / $volume * (2 / 50); + } + if ($whirlpool7) { + $whirlibus += ($mass * ($alpha / 100) * 6) / $volume * $whirlpool7 / 50; + } else { + if ($useat == 3) // Flameout hops are 4 minutes in this range. + $whirlibus += ($mass * ($alpha / 100) * 6) / $volume * (4 / 50); + } + if ($whirlpool6) + $whirlibus += ($mass * ($alpha / 100) * 2) / $volume * $whirlpool6 / 50; + } + $ibu = 0; if (($method == 0) || ($method == 3)) { // Tinseth or Garetz // For Garetz, we need the $ibu $AddedAlphaAcids = (($alpha / 100) * $mass * 1000) / $volume; $Bigness_factor = 1.65 * pow( 0.000125, $sg - 1); $BoilTime_factor = ((1 - exp(-0.04 * $boiltime)) / 4.15); $utiisation = $Bigness_factor * $BoilTime_factor; - $ibu = (round($utiisation * $AddedAlphaAcids * $fmoment * $pfactor * 10) / 10.0); + $ibu = (round(($utiisation * $AddedAlphaAcids * $fmoment * $pfactor + $whirlibus) * 10) / 10.0); } if ($method == 2) { // Daniels @@ -252,7 +277,7 @@ $sgfactor = 0; else $sgfactor = (($sg * 1000) - 1050) / 200; - $ibu = $fmoment * (($mass * $alpha * $boilfactor * 0.1) / ($volume * (1 + $sgfactor))); + $ibu = $fmoment * (($mass * $alpha * $boilfactor * 0.1) / ($volume * (1 + $sgfactor))) + $whirlibus; } if ($method == 1) { // Rager $boilfactor = $fmoment * 18.11 + 13.86 * tanh(($boiltime * 31.32) / 18.27); @@ -260,7 +285,7 @@ $sgfactor = 0; else $sgfactor = (($sg * 1000) - 1050) / 200; - $ibu = ($mass * $alpha * $boilfactor * 0.1) / ($volume * (1 + $sgfactor)); + $ibu = ($mass * $alpha * $boilfactor * 0.1) / ($volume * (1 + $sgfactor)) + $whirlibus; } if ($method == 3) { // Garetz, not in use. /* Something is wrong, late hops and dryhops give negative results. */ @@ -272,8 +297,6 @@ $tempfactor = (32.8/550)*0.02+1; $ibu = ($boilfactor * $alpha * $mass * 0.1) / ($volume * $sgfactor * $hopratefactor * $tempfactor); } - /* TODO: Noonan and Mosher */ - return $ibu; }
--- a/www/includes/global.inc.php Fri Oct 18 13:20:35 2019 +0200 +++ b/www/includes/global.inc.php Fri May 01 16:37:31 2020 +0200 @@ -142,7 +142,7 @@ my_color_method = "<?php echo $my_color_method; ?>", my_brix_correction = "<?php echo $my_brix_correction; ?>", my_grain_absorbtion = "<?php echo $my_grain_absorbtion; ?>", my_default_water = "<?php echo $my_default_water; ?>"; </script> - <script src="js/jquery-1.11.1-min.js"></script> + <script src="js/jquery-1.11.1.js"></script> <script src="jqwidgets/jqxcore.js"></script> <script src="jqwidgets/jqxwindow.js"></script> <script src="jqwidgets/jqxmenu.js"></script> @@ -179,7 +179,7 @@ <script src="jqwidgets/jqxfileupload.js"></script> <script src="jqwidgets/jqxpanel.js"></script> <script src="jqwidgets/globalization/globalize.js"></script> - <script src="js/global-min.js"></script> + <script src="js/global.js"></script> <?php if (strlen($loadjs)) echo ' <script src="js/'.$loadjs.'.js"></script>'.PHP_EOL; @@ -205,7 +205,7 @@ $connect = mysqli_connect(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME); $result = mysqli_query($connect, "SELECT uuid,node,online,net_address FROM mon_nodes ORDER BY node"); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { - if ($row['online'] == "Y") + if ($row['online'] == 1) $img = "network-idle.png"; else $img = "network-error.png"; @@ -220,7 +220,7 @@ <?php $result = mysqli_query($connect, "SELECT uuid,node,alias,online,mode FROM mon_fermenters ORDER BY node,alias"); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { - if ($row['online'] == "Y") + if ($row['online'] == 1) $img = "network-idle.png"; else $img = "network-error.png"; @@ -245,6 +245,21 @@ ?> </ul> </li> + <li><img style='float: left; margin-right: 5px;' src='images/fermenter.png' />iSpindels + <ul style='width: 250px;'> +<?php +$result = mysqli_query($connect, "SELECT uuid,node,alias,online FROM mon_ispindels ORDER BY node,alias"); +while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { + if ($row['online'] == 1) + $img = "network-idle.png"; + else + $img = "network-error.png"; + echo ' <li><img style="float: left; margin-right: 5px;" src="images/'.$img.'" /><a href="mon_ispindel.php?uuid='.$row['uuid'].'">'.$row['alias'].'</a></li>'.PHP_EOL; +} +mysqli_free_result($result); +?> + </ul> + </li> </ul> </li> <li style='width: 80px;'>Productie @@ -290,6 +305,7 @@ <li><img style='float: left; margin-left: 3px; margin-right: 9px;' src='images/water.png' /><a href="inv_waters.php">Brouwwater</a></li> <li><img style='float: left; margin-right: 5px;' src='images/mash.png' /><a href="inv_equipments.php">Brouw apparatuur</a></li> <li><img style='float: left; margin-left: 3px; margin-right: 8px;' src='images/database.png' /><a href="inv_instock.php">Voorraad lijst</a></li> + <li><img style='float: left; margin-left: 3px; margin-right: 8px;' src='images/science.png' /><a href="inv_yeastlab.php">Gistbank lijst</a></li> </ul> </li> <li style='width: 80px;'>Instellingen
--- a/www/inv_waters.php Fri Oct 18 13:20:35 2019 +0200 +++ b/www/inv_waters.php Fri May 01 16:37:31 2020 +0200 @@ -26,28 +26,37 @@ <td colspan="4"> </td> </tr> <tr> - <td style="vertical-align: top; float: right;">Calcium (Ca) mg/l:</td> + <td style="vertical-align: top; float: right;">Calcium (Ca) mg/L:</td> <td><div id="calcium"></div></td> - <td style="vertical-align: top; float: right;">Chloride (Cl) mg/l:</td> + <td style="vertical-align: top; float: right;">Sulfaat (CaSO4) mg/L:</td> + <td><div id="sulfate"></div></td> + </tr> + <tr> + <td style="vertical-align: top; float: right;">Magnesium (Mg) mg/L:</td> + <td><div id="magnesium"></div></td> + <td style="vertical-align: top; float: right;">Chloride (Cl) mg/L:</td> <td><div id="chloride"></div></td> </tr> <tr> - <td style="vertical-align: top; float: right;">Magnesium (Mg) mg/l:</td> - <td><div id="magnesium"></div></td> - <td style="vertical-align: top; float: right;">Sulfaat (CaSO4) mg/l:</td> - <td><div id="sulfate"></div></td> + <td style="vertical-align: top; float: right;">Natrium (Na) mg/L:</td> + <td><div id="sodium"></div></td> + <td style="vertical-align: top; float: right;">Bicarbonaat (HCO3) mg/L:</td> <!-- Input for total_alkalinity --> + <td><div id="bicarbonate"></div></td> </tr> <tr> - <td style="vertical-align: top; float: right;">Natrium (Na) mg/l:</td> - <td><div id="sodium"></div></td> - <td style="vertical-align: top; float: right;">Bicarbonaat (HCO3) mg/l:</td> <!-- Input for total_alkalinity --> - <td><div id="bicarbonate"></div></td> + <td></td> + <td></td> + <td style="vertical-align: top; float: right;">Totale alkaliteit (CaCO3) mg/L:</td> + <td><div id="total_alkalinity"></div></td> + </tr> + <tr> + <td colspan="4"> </td> </tr> <tr> <td style="vertical-align: top; float: right;">Zuurgraad (pH):</td> <td><div id="ph"></div></td> - <td style="vertical-align: top; float: right;">Totale alkaliteit (CaCO3) mg/l:</td> - <td><div id="total_alkalinity"></div></td> + <td style="vertical-align: top; float: right;">Ionen balans meq/L:</td> + <td><div style="float: left;" id="balance"></div><div style="float: left; margin-left: 10px;" id="wr_balance"></div></td> </tr> <tr> <td colspan="4"> </td> @@ -63,10 +72,10 @@ <td><div id="cost"></div></td> </tr> <tr> - <td style="padding-top: 110px; float: right;"><input type="button" id="Delete" value="Verwijder" /></td> + <td style="padding-top: 70px; float: right;"><input type="button" id="Delete" value="Verwijder" /></td> <td></td> <td></td> - <td style="padding-top: 110px;"><input style="margin-right: 5px;" type="button" id="Save" value="Sla op" /><input id="Cancel" type="button" value="Annuleer" /></td> + <td style="padding-top: 70px;"><input style="margin-right: 5px;" type="button" id="Save" value="Sla op" /><input id="Cancel" type="button" value="Annuleer" /></td> </tr> </table> </div>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/inv_yeastlab.php Fri May 01 16:37:31 2020 +0200 @@ -0,0 +1,162 @@ +<?php +require_once($_SERVER['DOCUMENT_ROOT'].'/includes/global.inc.php'); +require_once($_SERVER['DOCUMENT_ROOT'].'/includes/constants.php'); +require_once($_SERVER['DOCUMENT_ROOT'].'/fpdf/fpdf.php'); + +define('EURO', chr(128) ); + +$link = mysqli_connect(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME); +if (! $link) { + die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); +} +if (! mysqli_set_charset($link, "utf8" )) { + echo "error"; + return 1; +} + +setlocale ( LC_ALL, 'nl_NL.UTF-8'); +date_default_timezone_set('Europe/Amsterdam'); +$prdate = date(DATE_RFC2822); + +$sql = "SELECT brewery_name,my_yeastlab FROM profile_setup WHERE record = '1';"; +$result = mysqli_query($link, $sql); +if ($row=mysqli_fetch_array($result)) { + $my_brewery = iconv('UTF-8','windows-1252',$row['brewery_name']); + $my_lab = $row['my_yeastlab']; +} else { + $my_brewery = $my_lab = ''; +} + + +class PDF_MySQL_Table extends FPDF +{ + protected $ProcessingTable=false; + protected $aCols=array(); + protected $TableX; + protected $HeaderColor; + protected $RowColors; + protected $TotalColor; + protected $ColorIndex; + + function Header() { + // Print the table header if necessary + if ($this->ProcessingTable) + $this->TableHeader(); + } + + function TableHeader() { + $this->SetFont('Helvetica','B',9); + $this->SetX($this->TableX); + $this->SetFillColor($this->HeaderColor[0],$this->HeaderColor[1],$this->HeaderColor[2]); + foreach($this->aCols as $col) + $this->Cell($col['w'],5,$col['c'],0,0,$col['a'],true); + $this->Ln(); + } + + function CalcWidths($width, $align) { + // Compute the widths of the columns + $TableWidth=0; + foreach($this->aCols as $i=>$col) { + $w=$col['w']; + if($w==-1) + $w=$width/count($this->aCols); + elseif(substr($w,-1)=='%') + $w=$w/100*$width; + $this->aCols[$i]['w']=$w; + $TableWidth+=$w; + } + // Compute the abscissa of the table + if($align=='C') + $this->TableX=max(($this->w-$TableWidth)/2,0); + elseif($align=='R') + $this->TableX=max($this->w-$this->rMargin-$TableWidth,0); + else + $this->TableX=$this->lMargin; + } + + function AddCol($width=-1, $caption='', $align='L') { + $this->aCols[]=array('c'=>$caption,'w'=>$width,'a'=>$align); + } + + function TableYeasts($link,$prop) { + global $yeasttype; + global $yeastform; + global $my_lab; + $this->AddCol( 60,'Gist','L'); + $this->AddCol( 50,'Omschrijving','L'); + $this->AddCol( 18,'Soort','L'); + $this->AddCol( 18,'Vorm','L'); + $this->AddCol( 20,'Voorraad','R'); + $this->AddCol( 25,'Datum','L'); + $prop['width']=$this->w-$this->lMargin-$this->rMargin; + $prop['align']='L'; + $cMargin=$this->cMargin; + $this->cMargin=$prop['padding']; + $this->HeaderColor=$prop['HeaderColor']; + $this->TotalColor=$prop['TotalColor']; + $this->RowColors=array($prop['color1'],$prop['color2']); + $this->CalcWidths($prop['width'],$prop['align']); + $this->TableHeader(); + $this->SetFont('Helvetica','',9); + $this->ColorIndex=0; + $this->ProcessingTable=true; + + $sql = "SELECT name,type,form,inventory,production_date,short_desc FROM inventory_yeasts "; + $sql .= "WHERE inventory > 0 AND laboratory = '".$my_lab."' ORDER BY product_id"; + $result = mysqli_query($link, $sql); + + while ($row=mysqli_fetch_array($result)) { + if ($row['form'] == 0) + $stock = floatval($row['inventory']); + else + $stock = floatval($row['inventory']) * 1000.0; + $form = array( 'pak', 'gr', 'ml', 'ml', 'ml', 'ml', 'gr' ); + + $this->SetX($this->TableX); + $ci=$this->ColorIndex; + $this->SetFillColor($this->RowColors[$ci][0],$this->RowColors[$ci][1],$this->RowColors[$ci][2]); + $this->Cell(60,5,iconv('UTF-8','windows-1252',$row['name']),0,0,'L',true); + $this->Cell(50,5,iconv('UTF-8','windows-1252',$row['short_desc']),0,0,'L',true); + $this->Cell(18,5,iconv('UTF-8','windows-1252',$yeasttype[$row['type']]),0,0,'L',true); + $this->Cell(18,5,iconv('UTF-8','windows-1252',$yeastform[$row['form']]),0,0,'L',true); + $this->Cell(20,5,sprintf("%10.1f ",$stock).$form[$row['form']],0,0,'R',true); + $this->Cell(25,5,$row['production_date'],0,0,'L',true); + $this->Ln(); + $this->ColorIndex=1-$ci; + } + + $this->ProcessingTable=false; + $this->cMargin=$cMargin; + $this->aCols=array(); + } +} + + + +class PDF extends PDF_MySQL_Table { + function Header() { + global $prdate; + global $my_brewery; + $this->Image('images/logo.png',10,6,30); + // Title + $this->SetFont('Helvetica','',18); + $this->SetX(45); + $this->Cell(0,10,'Gistbank van '.$my_brewery,0,1,'L'); + $this->Ln(1); + $this->SetFont('Helvetica','',10); + $this->SetX(45); + $this->Cell(17,5,'Datum:',0,0,'L'); + $this->Cell(0,5,$prdate,0,1,'L'); + $this->Ln(18); + // Ensure table header is printed + parent::Header(); + } +} + + +$pdf = new PDF(); +$pdf->AddPage(); +$prop = array('HeaderColor'=>array(255,150,100), 'color1'=>array(210,245,255), + 'color2'=>array(255,255,210), 'TotalColor'=>array(255,150,100), 'padding'=>2); +$pdf->TableYeasts($link,$prop); +$pdf->Output();
--- a/www/inv_yeasts.php Fri Oct 18 13:20:35 2019 +0200 +++ b/www/inv_yeasts.php Fri May 01 16:37:31 2020 +0200 @@ -65,24 +65,24 @@ <td align="left"><div id="max_reuse"></div></td> </tr> <tr> + <td align="right" style="vertical-align: top;">Gistbank tekst:</td> + <td align="left" colspan="3" style="vertical-align: top;"><input id="short_desc" /></td> + <td align="right" style="vertical-align: top;">Ent temperatuur °C:</td> + <td align="left"><div id="pitch_temperature"></div></td> + </tr> + <tr> <td align="right" style="vertical-align: top;">POF+:</td> <td align="left"><div id="pofpos"></div></td> <td align="right" style="vertical-align: top;">Zymocide+:</td> <td align="left"><div id="zymocide"></div></td> - <td align="right" style="vertical-align: top;">Ent temperatuur °C:</td> - <td align="left"><div id="pitch_temperature"></div></td> + <td align="right" style="vertical-align: top;">Oogst tijd uren:</td> + <td align="left"><div id="harvest_time"></div></td> </tr> <tr> <td align="right" style="vertical-align: top;">STA1 (diastatic) gen:</td> <td align="left"><div id="sta1"></div></td> <td align="right" style="vertical-align: top;">Oogst van boven:</td> <td align="left"><div id="harvest_top"></div></td> - <td align="right" style="vertical-align: top;">Oogst tijd uren:</td> - <td align="left"><div id="harvest_time"></div></td> - </tr> - <tr> - <td></td><td></td> - <td></td><td></td> <td align="right" style="vertical-align: top;">Bevat bacteriën:</td> <td align="left"><div id="bacteria"></div></td> </tr>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/ispindel/index.php Fri May 01 16:37:31 2020 +0200 @@ -0,0 +1,52 @@ +<?php + +require($_SERVER['DOCUMENT_ROOT']."/config.php"); + +if ($_SERVER['HTTP_USER_AGENT'] == 'ESP8266HTTPClient') { + // /usr/bin/mosquitto_pub -h host] [-p port] [-u username [-P password]] -t topic -m message + $publisher = '/usr/bin/mosquitto_pub -h '.MQTT_HOST.' -t '; + + $input = file_get_contents('php://input'); + //syslog(LOG_NOTICE, "ispindel " . $input); + $data = json_decode($input, true ); + $node = 'ispindel-' . sprintf("%06x", floatval($data['ID'])); + + $alarm = 0; + $interval = $data['interval']; + if (floatval($data['battery']) < 3.3) { + $alarm += 4; + if (($interval * 3) < 3600) + $interval = 3600; // at least 3600 seconds when the battery is low. + else + $interval = $interval * 3; + } + + $uuid = 'c0ffeeee-cafe-dead-beef-' . sprintf("%06x", 0xffffff - floatval($data['ID'])) . sprintf("%06x", floatval($data['ID'])); + $topic = 'mbv1.0/ispindels/NBIRTH/' . $node; + $payload = '{"metric":{"uuid":"' . $uuid . '","interval":' . $interval . ','; + $payload .= '"properties":{"hardwaremake":"Wemos","hardwaremodel":"D1 mini","os":"Unknown","os_version":"Unknown","FW":"Unknown"},'; + $payload .= '"net":{"address":"' . $_SERVER['REMOTE_ADDR'] . '","ifname":"sta","rssi":' . $data['RSSI'] . '}}}'; + $pub = $publisher . $topic . ' -m \'' . $payload . '\''; + exec($pub); + + $alarm = 0; + if (floatval($data['battery']) < 3.3) + $alarm += 4; + + if ($data['temp_units'] == 'K') { + $tempC = floatval($data['temperature']) - 273.15; + } else if ($data['temp_units'] == 'F') { + $tempC = floatval($data['temperature']) / 1.8 - 32; + } else { + $tempC = floatval($data['temperature']); + } + + $uuid = 'c0ffeeee-cafe-dead-bee0-' . sprintf("%06x", 0xffffff - floatval($data['ID'])) . sprintf("%06x", floatval($data['ID'])); + $topic = 'mbv1.0/ispindels/DBIRTH/' . $node; + $payload = '{"unit":{"uuid":"' . $uuid .'","alias":"' . $data['name'] . '","alarm":' . $alarm . ',"interval":' . $interval; + $payload .= ',"angle":' . $data['angle'] . ',"temperature":' . $tempC . ',"battery":' . $data['battery'] . ',"gravity":' . $data['gravity'] . '}}'; + $pub = $publisher . $topic . ' -m \'' .$payload . '\''; + exec($pub); +} + +?>
--- a/www/jqwidgets/jqx-all.js Fri Oct 18 13:20:35 2019 +0200 +++ b/www/jqwidgets/jqx-all.js Fri May 01 16:37:31 2020 +0200 @@ -1,18 +1,18 @@ /* -jQWidgets v8.1.4 (2019-July) -Copyright (c) 2011-2019 jQWidgets. +jQWidgets v9.0.0 (2020-Jan) +Copyright (c) 2011-2020 jQWidgets. License: https://jqwidgets.com/license/ */ /* eslint-disable */ -var oldBrowser=document.all&&!document.addEventListener;if(!oldBrowser){(function(bd,G){var q,an,ak=bd.document,bo=bd.location,bt=bd.navigator,ax=bd.JQXLite,X=bd.$,aR=Array.prototype.push,aD=Array.prototype.slice,aA=Array.prototype.indexOf,y=Object.prototype.toString,b=Object.prototype.hasOwnProperty,aw=String.prototype.trim,C=function(bu,bv){return new C.fn.init(bu,bv,q)},aE=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,at=/\S/,a8=/\s+/,S=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,aF=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,e=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,j=/^[\],:{}\s]*$/,t=/(?:^|:|,)(?:\s*\[)+/g,a5=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,K=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,au=/^-ms-/,aS=/-([\da-z])/gi,m=function(bu,bv){return(bv+"").toUpperCase()},a4=function(){if(ak.addEventListener){ak.removeEventListener("DOMContentLoaded",a4,false);C.ready()}else{if(ak.readyState==="complete"){ak.detachEvent("onreadystatechange",a4);C.ready()}}},a0={};C.fn=C.prototype={constructor:C,init:function(bu,bx,by){var bw,bz,bv,bA;if(!bu){return this}if(bu.nodeType){this.context=this[0]=bu;this.length=1;return this}if(typeof bu==="string"){if(bu.charAt(0)==="<"&&bu.charAt(bu.length-1)===">"&&bu.length>=3){bw=[null,bu,null]}else{bw=aF.exec(bu)}if(bw&&(bw[1]||!bx)){if(bw[1]){bx=bx instanceof C?bx[0]:bx;bA=(bx&&bx.nodeType?bx.ownerDocument||bx:ak);bu=C.parseHTML(bw[1],bA,true);if(e.test(bw[1])&&C.isPlainObject(bx)){this.attr.call(bu,bx,true)}return C.merge(this,bu)}else{bz=ak.getElementById(bw[2]);if(bz&&bz.parentNode){if(bz.id!==bw[2]){return by.find(bu)}this.length=1;this[0]=bz}this.context=ak;this.selector=bu;return this}}else{if(!bx||bx.jqx){return(bx||by).find(bu)}else{return this.constructor(bx).find(bu)}}}else{if(C.isFunction(bu)){return by.ready(bu)}}if(bu.selector!==G){this.selector=bu.selector;this.context=bu.context}return C.makeArray(bu,this)},selector:"",jqx:"4.5.0",length:0,size:function(){return this.length},toArray:function(){return aD.call(this)},get:function(bu){return bu==null?this.toArray():(bu<0?this[this.length+bu]:this[bu])},pushStack:function(bv,bx,bu){var bw=C.merge(this.constructor(),bv);bw.prevObject=this;bw.context=this.context;if(bx==="find"){bw.selector=this.selector+(this.selector?" ":"")+bu}else{if(bx){bw.selector=this.selector+"."+bx+"("+bu+")"}}return bw},each:function(bv,bu){return C.each(this,bv,bu)},ready:function(bu){C.ready.promise().done(bu);return this},eq:function(bu){bu=+bu;return bu===-1?this.slice(bu):this.slice(bu,bu+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(aD.apply(this,arguments),"slice",aD.call(arguments).join(","))},map:function(bu){return this.pushStack(C.map(this,function(bw,bv){return bu.call(bw,bv,bw)}))},end:function(){return this.prevObject||this.constructor(null)},push:aR,sort:[].sort,splice:[].splice};C.fn.init.prototype=C.fn;C.extend=C.fn.extend=function(){var bD,bw,bu,bv,bA,bB,bz=arguments[0]||{},by=1,bx=arguments.length,bC=false;if(typeof bz==="boolean"){bC=bz;bz=arguments[1]||{};by=2}if(typeof bz!=="object"&&!C.isFunction(bz)){bz={}}if(bx===by){bz=this;--by}for(;by<bx;by++){if((bD=arguments[by])!=null){for(bw in bD){bu=bz[bw];bv=bD[bw];if(bz===bv){continue}if(bC&&bv&&(C.isPlainObject(bv)||(bA=C.isArray(bv)))){if(bA){bA=false;bB=bu&&C.isArray(bu)?bu:[]}else{bB=bu&&C.isPlainObject(bu)?bu:{}}bz[bw]=C.extend(bC,bB,bv)}else{if(bv!==G){bz[bw]=bv}}}}}return bz};C.extend({noConflict:function(bu){if(bd.$===C){bd.$=X}if(bu&&bd.JQXLite===C){bd.JQXLite=ax}return C},isReady:false,readyWait:1,holdReady:function(bu){if(bu){C.readyWait++}else{C.ready(true)}},ready:function(bu){if(bu===true?--C.readyWait:C.isReady){return}if(!ak.body){return setTimeout(C.ready,1)}C.isReady=true;if(bu!==true&&--C.readyWait>0){return}an.resolveWith(ak,[C]);if(C.fn.trigger){C(ak).trigger("ready").off("ready")}},isFunction:function(bu){return C.type(bu)==="function"},isArray:Array.isArray||function(bu){return C.type(bu)==="array"},isWindow:function(bu){return bu!=null&&bu==bu.window},isNumeric:function(bu){return !isNaN(parseFloat(bu))&&isFinite(bu)},type:function(bu){return bu==null?String(bu):a0[y.call(bu)]||"object"},isPlainObject:function(bw){if(!bw||C.type(bw)!=="object"||bw.nodeType||C.isWindow(bw)){return false}try{if(bw.constructor&&!b.call(bw,"constructor")&&!b.call(bw.constructor.prototype,"isPrototypeOf")){return false}}catch(bv){return false}var bu;for(bu in bw){}return bu===G||b.call(bw,bu)},isEmptyObject:function(bv){var bu;for(bu in bv){return false}return true},error:function(bu){throw new Error(bu)},parseHTML:function(bx,bw,bu){var bv;if(!bx||typeof bx!=="string"){return null}if(typeof bw==="boolean"){bu=bw;bw=0}bw=bw||ak;if((bv=e.exec(bx))){return[bw.createElement(bv[1])]}bv=C.buildFragment([bx],bw,bu?null:[]);return C.merge([],(bv.cacheable?C.clone(bv.fragment):bv.fragment).childNodes)},parseJSON:function(bu){if(!bu||typeof bu!=="string"){return null}bu=C.trim(bu);if(bd.JSON&&bd.JSON.parse){return bd.JSON.parse(bu)}if(j.test(bu.replace(a5,"@").replace(K,"]").replace(t,""))){return(new Function("return "+bu))()}C.error("Invalid JSON: "+bu)},parseXML:function(bw){var bu,bv;if(!bw||typeof bw!=="string"){return null}try{if(bd.DOMParser){bv=new DOMParser();bu=bv.parseFromString(bw,"text/xml")}else{bu=new ActiveXObject("Microsoft.XMLDOM");bu.async="false";bu.loadXML(bw)}}catch(bx){bu=G}if(!bu||!bu.documentElement||bu.getElementsByTagName("parsererror").length){C.error("Invalid XML: "+bw)}return bu},noop:function(){},globalEval:function(bu){if(bu&&at.test(bu)){(bd.execScript||function(bv){bd["eval"].call(bd,bv)})(bu)}},camelCase:function(bu){return bu.replace(au,"ms-").replace(aS,m)},nodeName:function(bv,bu){return bv.nodeName&&bv.nodeName.toLowerCase()===bu.toLowerCase()},each:function(bz,bA,bw){var bv,bx=0,by=bz.length,bu=by===G||C.isFunction(bz);if(bw){if(bu){for(bv in bz){if(bA.apply(bz[bv],bw)===false){break}}}else{for(;bx<by;){if(bA.apply(bz[bx++],bw)===false){break}}}}else{if(bu){for(bv in bz){if(bA.call(bz[bv],bv,bz[bv])===false){break}}}else{for(;bx<by;){if(bA.call(bz[bx],bx,bz[bx++])===false){break}}}}return bz},trim:aw&&!aw.call("\uFEFF\xA0")?function(bu){return bu==null?"":aw.call(bu)}:function(bu){return bu==null?"":(bu+"").replace(S,"")},makeArray:function(bu,bw){var bx,bv=bw||[];if(bu!=null){bx=C.type(bu);if(bu.length==null||bx==="string"||bx==="function"||bx==="regexp"||C.isWindow(bu)){aR.call(bv,bu)}else{C.merge(bv,bu)}}return bv},inArray:function(bx,bv,bw){var bu;if(bv){if(aA){return aA.call(bv,bx,bw)}bu=bv.length;bw=bw?bw<0?Math.max(0,bu+bw):bw:0;for(;bw<bu;bw++){if(bw in bv&&bv[bw]===bx){return bw}}}return -1},merge:function(by,bw){var bu=bw.length,bx=by.length,bv=0;if(typeof bu==="number"){for(;bv<bu;bv++){by[bx++]=bw[bv]}}else{while(bw[bv]!==G){by[bx++]=bw[bv++]}}by.length=bx;return by},grep:function(bv,bA,bu){var bz,bw=[],bx=0,by=bv.length;bu=!!bu;for(;bx<by;bx++){bz=!!bA(bv[bx],bx);if(bu!==bz){bw.push(bv[bx])}}return bw},map:function(bu,bB,bC){var bz,bA,by=[],bw=0,bv=bu.length,bx=bu instanceof C||bv!==G&&typeof bv==="number"&&((bv>0&&bu[0]&&bu[bv-1])||bv===0||C.isArray(bu));if(bx){for(;bw<bv;bw++){bz=bB(bu[bw],bw,bC);if(bz!=null){by[by.length]=bz}}}else{for(bA in bu){bz=bB(bu[bA],bA,bC);if(bz!=null){by[by.length]=bz}}}return by.concat.apply([],by)},guid:1,proxy:function(by,bx){var bw,bu,bv;if(typeof bx==="string"){bw=by[bx];bx=by;by=bw}if(!C.isFunction(by)){return G}bu=aD.call(arguments,2);bv=function(){return by.apply(bx,bu.concat(aD.call(arguments)))};bv.guid=by.guid=by.guid||C.guid++;return bv},access:function(bu,bA,bD,bB,by,bE,bC){var bw,bz=bD==null,bx=0,bv=bu.length;if(bD&&typeof bD==="object"){for(bx in bD){C.access(bu,bA,bx,bD[bx],1,bE,bB)}by=1}else{if(bB!==G){bw=bC===G&&C.isFunction(bB);if(bz){if(bw){bw=bA;bA=function(bG,bF,bH){return bw.call(C(bG),bH)}}else{bA.call(bu,bB);bA=null}}if(bA){for(;bx<bv;bx++){bA(bu[bx],bD,bw?bB.call(bu[bx],bx,bA(bu[bx],bD)):bB,bC)}}by=1}}return by?bu:bz?bA.call(bu):bv?bA(bu[0],bD):bE},now:function(){return(new Date()).getTime()}});C.ready.promise=function(bx){if(!an){an=C.Deferred();if(ak.readyState==="complete"){setTimeout(C.ready,1)}else{if(ak.addEventListener){ak.addEventListener("DOMContentLoaded",a4,false);bd.addEventListener("load",C.ready,false)}else{ak.attachEvent("onreadystatechange",a4);bd.attachEvent("onload",C.ready);var bw=false;try{bw=bd.frameElement==null&&ak.documentElement}catch(bv){}if(bw&&bw.doScroll){(function bu(){if(!C.isReady){try{bw.doScroll("left")}catch(by){return setTimeout(bu,50)}C.ready()}})()}}}}return an.promise(bx)};C.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(bv,bu){a0["[object "+bu+"]"]=bu.toLowerCase()});q=C(ak);var aX={};function B(bv){var bu=aX[bv]={};C.each(bv.split(a8),function(bx,bw){bu[bw]=true});return bu}C.Callbacks=function(bE){bE=typeof bE==="string"?(aX[bE]||B(bE)):C.extend({},bE);var bx,bu,by,bw,bz,bA,bB=[],bC=!bE.once&&[],bv=function(bF){bx=bE.memory&&bF;bu=true;bA=bw||0;bw=0;bz=bB.length;by=true;for(;bB&&bA<bz;bA++){if(bB[bA].apply(bF[0],bF[1])===false&&bE.stopOnFalse){bx=false;break}}by=false;if(bB){if(bC){if(bC.length){bv(bC.shift())}}else{if(bx){bB=[]}else{bD.disable()}}}},bD={add:function(){if(bB){var bG=bB.length;(function bF(bH){C.each(bH,function(bJ,bI){var bK=C.type(bI);if(bK==="function"){if(!bE.unique||!bD.has(bI)){bB.push(bI)}}else{if(bI&&bI.length&&bK!=="string"){bF(bI)}}})})(arguments);if(by){bz=bB.length}else{if(bx){bw=bG;bv(bx)}}}return this},remove:function(){if(bB){C.each(arguments,function(bH,bF){var bG;while((bG=C.inArray(bF,bB,bG))>-1){bB.splice(bG,1);if(by){if(bG<=bz){bz--}if(bG<=bA){bA--}}}})}return this},has:function(bF){return C.inArray(bF,bB)>-1},empty:function(){bB=[];return this},disable:function(){bB=bC=bx=G;return this},disabled:function(){return !bB},lock:function(){bC=G;if(!bx){bD.disable()}return this},locked:function(){return !bC},fireWith:function(bG,bF){bF=bF||[];bF=[bG,bF.slice?bF.slice():bF];if(bB&&(!bu||bC)){if(by){bC.push(bF)}else{bv(bF)}}return this},fire:function(){bD.fireWith(this,arguments);return this},fired:function(){return !!bu}};return bD};C.extend({Deferred:function(bw){var bv=[["resolve","done",C.Callbacks("once memory"),"resolved"],["reject","fail",C.Callbacks("once memory"),"rejected"],["notify","progress",C.Callbacks("memory")]],bx="pending",by={state:function(){return bx},always:function(){bu.done(arguments).fail(arguments);return this},then:function(){var bz=arguments;return C.Deferred(function(bA){C.each(bv,function(bC,bB){var bE=bB[0],bD=bz[bC];bu[bB[1]](C.isFunction(bD)?function(){var bF=bD.apply(this,arguments);if(bF&&C.isFunction(bF.promise)){bF.promise().done(bA.resolve).fail(bA.reject).progress(bA.notify)}else{bA[bE+"With"](this===bu?bA:this,[bF])}}:bA[bE])});bz=null}).promise()},promise:function(bz){return bz!=null?C.extend(bz,by):by}},bu={};by.pipe=by.then;C.each(bv,function(bA,bz){var bC=bz[2],bB=bz[3];by[bz[1]]=bC.add;if(bB){bC.add(function(){bx=bB},bv[bA^1][2].disable,bv[2][2].lock)}bu[bz[0]]=bC.fire;bu[bz[0]+"With"]=bC.fireWith});by.promise(bu);if(bw){bw.call(bu,bu)}return bu},when:function(by){var bw=0,bA=aD.call(arguments),bu=bA.length,bv=bu!==1||(by&&C.isFunction(by.promise))?bu:0,bD=bv===1?by:C.Deferred(),bx=function(bF,bG,bE){return function(bH){bG[bF]=this;bE[bF]=arguments.length>1?aD.call(arguments):bH;if(bE===bC){bD.notifyWith(bG,bE)}else{if(!(--bv)){bD.resolveWith(bG,bE)}}}},bC,bz,bB;if(bu>1){bC=new Array(bu);bz=new Array(bu);bB=new Array(bu);for(;bw<bu;bw++){if(bA[bw]&&C.isFunction(bA[bw].promise)){bA[bw].promise().done(bx(bw,bB,bA)).fail(bD.reject).progress(bx(bw,bz,bC))}else{--bv}}}if(!bv){bD.resolveWith(bB,bA)}return bD.promise()}});C.support=(function(){var bG,bF,bD,bE,bx,bC,bB,bz,by,bw,bu,bv=ak.createElement("div");bv.setAttribute("className","t");bv.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";bF=bv.getElementsByTagName("*");bD=bv.getElementsByTagName("a")[0];if(!bF||!bD||!bF.length){return{}}bE=ak.createElement("select");bx=bE.appendChild(ak.createElement("option"));bC=bv.getElementsByTagName("input")[0];bD.style.cssText="top:1px;float:left;opacity:.5";bG={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bD.getAttribute("style")),hrefNormalized:(bD.getAttribute("href")==="/a"),opacity:/^0.5/.test(bD.style.opacity),cssFloat:!!bD.style.cssFloat,checkOn:(bC.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!ak.createElement("form").enctype,html5Clone:ak.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>",boxModel:(ak.compatMode==="CSS1Compat"),submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true,boxSizingReliable:true,pixelPosition:false};bC.checked=true;bG.noCloneChecked=bC.cloneNode(true).checked;bE.disabled=true;bG.optDisabled=!bx.disabled;try{delete bv.test}catch(bA){bG.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",bu=function(){bG.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick");bv.detachEvent("onclick",bu)}bC=ak.createElement("input");bC.value="t";bC.setAttribute("type","radio");bG.radioValue=bC.value==="t";bC.setAttribute("checked","checked");bC.setAttribute("name","t");bv.appendChild(bC);bB=ak.createDocumentFragment();bB.appendChild(bv.lastChild);bG.checkClone=bB.cloneNode(true).cloneNode(true).lastChild.checked;bG.appendChecked=bC.checked;bB.removeChild(bC);bB.appendChild(bv);if(bv.attachEvent){for(by in {submit:true,change:true,focusin:true}){bz="on"+by;bw=(bz in bv);if(!bw){bv.setAttribute(bz,"return;");bw=(typeof bv[bz]==="function")}bG[by+"Bubbles"]=bw}}C(function(){var bI,bM,bK,bL,bJ="padding:0;margin:0;border:0;display:block;overflow:hidden;",bH=ak.getElementsByTagName("body")[0];if(!bH){return}bI=ak.createElement("div");bI.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px";bH.insertBefore(bI,bH.firstChild);bM=ak.createElement("div");bI.appendChild(bM);bM.innerHTML="<table><tr><td></td><td>t</td></tr></table>";bK=bM.getElementsByTagName("td");bK[0].style.cssText="padding:0;margin:0;border:0;display:none";bw=(bK[0].offsetHeight===0);bK[0].style.display="";bK[1].style.display="none";bG.reliableHiddenOffsets=bw&&(bK[0].offsetHeight===0);bM.innerHTML="";bM.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%;";bG.boxSizing=(bM.offsetWidth===4);bG.doesNotIncludeMarginInBodyOffset=(bH.offsetTop!==1);if(bd.getComputedStyle){bG.pixelPosition=(bd.getComputedStyle(bM,null)||{}).top!=="1%";bG.boxSizingReliable=(bd.getComputedStyle(bM,null)||{width:"4px"}).width==="4px";bL=ak.createElement("div");bL.style.cssText=bM.style.cssText=bJ;bL.style.marginRight=bL.style.width="0";bM.style.width="1px";bM.appendChild(bL);bG.reliableMarginRight=!parseFloat((bd.getComputedStyle(bL,null)||{}).marginRight)}if(typeof bM.style.zoom!=="undefined"){bM.innerHTML="";bM.style.cssText=bJ+"width:1px;padding:1px;display:inline;zoom:1";bG.inlineBlockNeedsLayout=(bM.offsetWidth===3);bM.style.display="block";bM.style.overflow="visible";bM.innerHTML="<div></div>";bM.firstChild.style.width="5px";bG.shrinkWrapBlocks=(bM.offsetWidth!==3);bI.style.zoom=1}bH.removeChild(bI);bI=bM=bK=bL=null});bB.removeChild(bv);bF=bD=bE=bx=bC=bB=bv=null;return bG})();var aK=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,aq=/([A-Z])/g;C.extend({cache:{},deletedIds:[],uuid:0,expando:"JQXLite"+(C.fn.jqx+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(bu){bu=bu.nodeType?C.cache[bu[C.expando]]:bu[C.expando];return !!bu&&!M(bu)},data:function(bx,bv,bz,by){if(!C.acceptData(bx)){return}var bA,bC,bD=C.expando,bB=typeof bv==="string",bE=bx.nodeType,bu=bE?C.cache:bx,bw=bE?bx[bD]:bx[bD]&&bD;if((!bw||!bu[bw]||(!by&&!bu[bw].data))&&bB&&bz===G){return}if(!bw){if(bE){bx[bD]=bw=C.deletedIds.pop()||C.guid++}else{bw=bD}}if(!bu[bw]){bu[bw]={};if(!bE){bu[bw].toJSON=C.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){bu[bw]=C.extend(bu[bw],bv)}else{bu[bw].data=C.extend(bu[bw].data,bv)}}bA=bu[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==G){bA[C.camelCase(bv)]=bz}if(bB){bC=bA[bv];if(bC==null){bC=bA[C.camelCase(bv)]}}else{bC=bA}return bC},removeData:function(bx,bv,by){if(!C.acceptData(bx)){return}var bB,bA,bz,bC=bx.nodeType,bu=bC?C.cache:bx,bw=bC?bx[C.expando]:C.expando;if(!bu[bw]){return}if(bv){bB=by?bu[bw]:bu[bw].data;if(bB){if(!C.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=C.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA<bz;bA++){delete bB[bv[bA]]}if(!(by?M:C.isEmptyObject)(bB)){return}}}if(!by){delete bu[bw].data;if(!M(bu[bw])){return}}if(bC){C.cleanData([bx],true)}else{if(C.support.deleteExpando||bu!=bu.window){delete bu[bw]}else{bu[bw]=null}}},_data:function(bv,bu,bw){return C.data(bv,bu,bw,true)},acceptData:function(bv){var bu=bv.nodeName&&C.noData[bv.nodeName.toLowerCase()];return !bu||bu!==true&&bv.getAttribute("classid")===bu}});C.fn.extend({data:function(bD,bC){var by,bv,bB,bu,bx,bw=this[0],bA=0,bz=null;if(bD===G){if(this.length){bz=C.data(bw);if(bw.nodeType===1&&!C._data(bw,"parsedAttrs")){bB=bw.attributes;for(bx=bB.length;bA<bx;bA++){bu=bB[bA].name;if(!bu.indexOf("data-")){bu=C.camelCase(bu.substring(5));a9(bw,bu,bz[bu])}}C._data(bw,"parsedAttrs",true)}}return bz}if(typeof bD==="object"){return this.each(function(){C.data(this,bD)})}by=bD.split(".",2);by[1]=by[1]?"."+by[1]:"";bv=by[1]+"!";return C.access(this,function(bE){if(bE===G){bz=this.triggerHandler("getData"+bv,[by[0]]);if(bz===G&&bw){bz=C.data(bw,bD);bz=a9(bw,bD,bz)}return bz===G&&by[1]?this.data(by[0]):bz}by[1]=bE;this.each(function(){var bF=C(this);bF.triggerHandler("setData"+bv,by);C.data(this,bD,bE);bF.triggerHandler("changeData"+bv,by)})},null,bC,arguments.length>1,null,false)},removeData:function(bu){return this.each(function(){C.removeData(this,bu)})}});function a9(bw,bv,bx){if(bx===G&&bw.nodeType===1){var bu="data-"+bv.replace(aq,"-$1").toLowerCase();bx=bw.getAttribute(bu);if(typeof bx==="string"){try{bx=bx==="true"?true:bx==="false"?false:bx==="null"?null:+bx+""===bx?+bx:aK.test(bx)?C.parseJSON(bx):bx}catch(by){}C.data(bw,bv,bx)}else{bx=G}}return bx}function M(bv){var bu;for(bu in bv){if(bu==="data"&&C.isEmptyObject(bv[bu])){continue}if(bu!=="toJSON"){return false}}return true}C.extend({queue:function(bw,bv,bx){var bu;if(bw){bv=(bv||"fx")+"queue";bu=C._data(bw,bv);if(bx){if(!bu||C.isArray(bx)){bu=C._data(bw,bv,C.makeArray(bx))}else{bu.push(bx)}}return bu||[]}},dequeue:function(bz,by){by=by||"fx";var bv=C.queue(bz,by),bA=bv.length,bx=bv.shift(),bu=C._queueHooks(bz,by),bw=function(){C.dequeue(bz,by)};if(bx==="inprogress"){bx=bv.shift();bA--}if(bx){if(by==="fx"){bv.unshift("inprogress")}delete bu.stop;bx.call(bz,bw,bu)}if(!bA&&bu){bu.empty.fire()}},_queueHooks:function(bw,bv){var bu=bv+"queueHooks";return C._data(bw,bu)||C._data(bw,bu,{empty:C.Callbacks("once memory").add(function(){C.removeData(bw,bv+"queue",true);C.removeData(bw,bu,true)})})}});C.fn.extend({queue:function(bu,bv){var bw=2;if(typeof bu!=="string"){bv=bu;bu="fx";bw--}if(arguments.length<bw){return C.queue(this[0],bu)}return bv===G?this:this.each(function(){var bx=C.queue(this,bu,bv);C._queueHooks(this,bu);if(bu==="fx"&&bx[0]!=="inprogress"){C.dequeue(this,bu)}})},dequeue:function(bu){return this.each(function(){C.dequeue(this,bu)})},delay:function(bv,bu){bv=C.fx?C.fx.speeds[bv]||bv:bv;bu=bu||"fx";return this.queue(bu,function(bx,bw){var by=setTimeout(bx,bv);bw.stop=function(){clearTimeout(by)}})},clearQueue:function(bu){return this.queue(bu||"fx",[])},promise:function(bw,bA){var bv,bx=1,bB=C.Deferred(),bz=this,bu=this.length,by=function(){if(!(--bx)){bB.resolveWith(bz,[bz])}};if(typeof bw!=="string"){bA=bw;bw=G}bw=bw||"fx";while(bu--){bv=C._data(bz[bu],bw+"queueHooks");if(bv&&bv.empty){bx++;bv.empty.add(by)}}by();return bB.promise(bA)}});var bh,aT,ay,aI=/[\t\r\n]/g,aP=/\r/g,d=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,h=/^a(?:rea|)$/i,ae=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,A=C.support.getSetAttribute;C.fn.extend({attr:function(bu,bv){return C.access(this,C.attr,bu,bv,arguments.length>1)},removeAttr:function(bu){return this.each(function(){C.removeAttr(this,bu)})},prop:function(bu,bv){return C.access(this,C.prop,bu,bv,arguments.length>1)},removeProp:function(bu){bu=C.propFix[bu]||bu;return this.each(function(){try{this[bu]=G;delete this[bu]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,bu;if(C.isFunction(by)){return this.each(function(bC){C(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by==="string"){bA=by.split(a8);for(bw=0,bv=this.length;bw<bv;bw++){bx=this[bw];if(bx.nodeType===1){if(!bx.className&&bA.length===1){bx.className=by}else{bz=" "+bx.className+" ";for(bB=0,bu=bA.length;bB<bu;bB++){if(bz.indexOf(" "+bA[bB]+" ")<0){bz+=bA[bB]+" "}}bx.className=C.trim(bz)}}}}return this},removeClass:function(bA){var bx,by,bz,bB,bv,bw,bu;if(C.isFunction(bA)){return this.each(function(bC){C(this).removeClass(bA.call(this,bC,this.className))})}if((bA&&typeof bA==="string")||bA===G){bx=(bA||"").split(a8);for(bw=0,bu=this.length;bw<bu;bw++){bz=this[bw];if(bz.nodeType===1&&bz.className){by=(" "+bz.className+" ").replace(aI," ");for(bB=0,bv=bx.length;bB<bv;bB++){while(by.indexOf(" "+bx[bB]+" ")>=0){by=by.replace(" "+bx[bB]+" "," ")}}bz.className=bA?C.trim(by):""}}}return this},toggleClass:function(bx,bv){var bw=typeof bx,bu=typeof bv==="boolean";if(C.isFunction(bx)){return this.each(function(by){C(this).toggleClass(bx.call(this,by,this.className,bv),bv)})}return this.each(function(){if(bw==="string"){var bA,bz=0,by=C(this),bB=bv,bC=bx.split(a8);while((bA=bC[bz++])){bB=bu?bB:!by.hasClass(bA);by[bB?"addClass":"removeClass"](bA)}}else{if(bw==="undefined"||bw==="boolean"){if(this.className){C._data(this,"__className__",this.className)}this.className=this.className||bx===false?"":C._data(this,"__className__")||""}}})},hasClass:function(bu){var bx=" "+bu+" ",bw=0,bv=this.length;for(;bw<bv;bw++){if(this[bw].nodeType===1&&(" "+this[bw].className+" ").replace(aI," ").indexOf(bx)>=0){return true}}return false},val:function(bx){var bu,bv,by,bw=this[0];if(!arguments.length){if(bw){bu=C.valHooks[bw.type]||C.valHooks[bw.nodeName.toLowerCase()];if(bu&&"get" in bu&&(bv=bu.get(bw,"value"))!==G){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aP,""):bv==null?"":bv}return}by=C.isFunction(bx);return this.each(function(bA){var bB,bz=C(this);if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(C.isArray(bB)){bB=C.map(bB,function(bC){return bC==null?"":bC+""})}}}bu=C.valHooks[this.type]||C.valHooks[this.nodeName.toLowerCase()];if(!bu||!("set" in bu)||bu.set(this,bB,"value")===G){this.value=bB}})}});C.extend({valHooks:{option:{get:function(bu){var bv=bu.attributes.value;return !bv||bv.specified?bu.value:bu.text}},select:{get:function(bu){var bA,bw,bC=bu.options,by=bu.selectedIndex,bx=bu.type==="select-one"||by<0,bB=bx?null:[],bz=bx?by+1:bC.length,bv=by<0?bz:bx?by:0;for(;bv<bz;bv++){bw=bC[bv];if((bw.selected||bv===by)&&(C.support.optDisabled?!bw.disabled:bw.getAttribute("disabled")===null)&&(!bw.parentNode.disabled||!C.nodeName(bw.parentNode,"optgroup"))){bA=C(bw).val();if(bx){return bA}bB.push(bA)}}return bB},set:function(bv,bw){var bu=C.makeArray(bw);C(bv).find("option").each(function(){this.selected=C.inArray(C(this).val(),bu)>=0});if(!bu.length){bv.selectedIndex=-1}return bu}}},attrFn:{},attr:function(bA,bx,bB,bz){var bw,bu,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&C.isFunction(C.fn[bx])){return C(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return C.prop(bA,bx,bB)}by=bv!==1||!C.isXMLDoc(bA);if(by){bx=bx.toLowerCase();bu=C.attrHooks[bx]||(ae.test(bx)?aT:bh)}if(bB!==G){if(bB===null){C.removeAttr(bA,bx);return}else{if(bu&&"set" in bu&&by&&(bw=bu.set(bA,bB,bx))!==G){return bw}else{bA.setAttribute(bx,bB+"");return bB}}}else{if(bu&&"get" in bu&&by&&(bw=bu.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?G:bw}}},removeAttr:function(bx,bz){var by,bA,bv,bu,bw=0;if(bz&&bx.nodeType===1){bA=bz.split(a8);for(;bw<bA.length;bw++){bv=bA[bw];if(bv){by=C.propFix[bv]||bv;bu=ae.test(bv);if(!bu){C.attr(bx,bv,"")}bx.removeAttribute(A?bv:by);if(bu&&by in bx){bx[by]=false}}}}},attrHooks:{type:{set:function(bu,bv){if(d.test(bu.nodeName)&&bu.parentNode){C.error("type property can't be changed")}else{if(!C.support.radioValue&&bv==="radio"&&C.nodeName(bu,"input")){var bw=bu.value;bu.setAttribute("type",bv);if(bw){bu.value=bw}return bv}}}},value:{get:function(bv,bu){if(bh&&C.nodeName(bv,"button")){return bh.get(bv,bu)}return bu in bv?bv.value:null},set:function(bv,bw,bu){if(bh&&C.nodeName(bv,"button")){return bh.set(bv,bw,bu)}bv.value=bw}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(bz,bx,bA){var bw,bu,by,bv=bz.nodeType;if(!bz||bv===3||bv===8||bv===2){return}by=bv!==1||!C.isXMLDoc(bz);if(by){bx=C.propFix[bx]||bx;bu=C.propHooks[bx]}if(bA!==G){if(bu&&"set" in bu&&(bw=bu.set(bz,bA,bx))!==G){return bw}else{return(bz[bx]=bA)}}else{if(bu&&"get" in bu&&(bw=bu.get(bz,bx))!==null){return bw}else{return bz[bx]}}},propHooks:{tabIndex:{get:function(bv){var bu=bv.getAttributeNode("tabindex");return bu&&bu.specified?parseInt(bu.value,10):z.test(bv.nodeName)||h.test(bv.nodeName)&&bv.href?0:G}}}});aT={get:function(bv,bu){var bx,bw=C.prop(bv,bu);return bw===true||typeof bw!=="boolean"&&(bx=bv.getAttributeNode(bu))&&bx.nodeValue!==false?bu.toLowerCase():G},set:function(bv,bx,bu){var bw;if(bx===false){C.removeAttr(bv,bu)}else{bw=C.propFix[bu]||bu;if(bw in bv){bv[bw]=true}bv.setAttribute(bu,bu.toLowerCase())}return bu}};if(!C.support.enctype){C.propFix.enctype="encoding"}var bf=/^(?:textarea|input|select)$/i,n=/^([^\.]*|)(?:\.(.+)|)$/,F=/(?:^|\s)hover(\.\S+|)\b/,aH=/^key/,bi=/^(?:mouse|contextmenu)|click/,N=/^(?:focusinfocus|focusoutblur)$/,bs=function(bu){return C.event.special.hover?bu:bu.replace(F,"mouseenter$1 mouseleave$1")};C.event={add:function(bx,bB,bI,bz,by){var bC,bA,bJ,bH,bG,bE,bu,bF,bv,bw,bD;if(bx.nodeType===3||bx.nodeType===8||!bB||!bI||!(bC=C._data(bx))){return}if(bI.handler){bv=bI;bI=bv.handler;by=bv.selector}if(!bI.guid){bI.guid=C.guid++}bJ=bC.events;if(!bJ){bC.events=bJ={}}bA=bC.handle;if(!bA){bC.handle=bA=function(bK){return typeof C!=="undefined"&&(!bK||C.event.triggered!==bK.type)?C.event.dispatch.apply(bA.elem,arguments):G};bA.elem=bx}bB=C.trim(bs(bB)).split(" ");for(bH=0;bH<bB.length;bH++){bG=n.exec(bB[bH])||[];bE=bG[1];bu=(bG[2]||"").split(".").sort();bD=C.event.special[bE]||{};bE=(by?bD.delegateType:bD.bindType)||bE;bD=C.event.special[bE]||{};bF=C.extend({type:bE,origType:bG[1],data:bz,handler:bI,guid:bI.guid,selector:by,needsContext:by&&C.expr.match.needsContext.test(by),namespace:bu.join(".")},bv);bw=bJ[bE];if(!bw){bw=bJ[bE]=[];bw.delegateCount=0;if(!bD.setup||bD.setup.call(bx,bz,bu,bA)===false){if(bx.addEventListener){bx.addEventListener(bE,bA,false)}else{if(bx.attachEvent){bx.attachEvent("on"+bE,bA)}}}}if(bD.add){bD.add.call(bx,bF);if(!bF.handler.guid){bF.handler.guid=bI.guid}}if(by){bw.splice(bw.delegateCount++,0,bF)}else{bw.push(bF)}C.event.global[bE]=true}bx=null},global:{},remove:function(bx,bC,bI,by,bB){var bJ,bK,bF,bw,bv,bz,bA,bH,bE,bu,bG,bD=C.hasData(bx)&&C._data(bx);if(!bD||!(bH=bD.events)){return}bC=C.trim(bs(bC||"")).split(" ");for(bJ=0;bJ<bC.length;bJ++){bK=n.exec(bC[bJ])||[];bF=bw=bK[1];bv=bK[2];if(!bF){for(bF in bH){C.event.remove(bx,bF+bC[bJ],bI,by,true)}continue}bE=C.event.special[bF]||{};bF=(by?bE.delegateType:bE.bindType)||bF;bu=bH[bF]||[];bz=bu.length;bv=bv?new RegExp("(^|\\.)"+bv.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(bA=0;bA<bu.length;bA++){bG=bu[bA];if((bB||bw===bG.origType)&&(!bI||bI.guid===bG.guid)&&(!bv||bv.test(bG.namespace))&&(!by||by===bG.selector||by==="**"&&bG.selector)){bu.splice(bA--,1);if(bG.selector){bu.delegateCount--}if(bE.remove){bE.remove.call(bx,bG)}}}if(bu.length===0&&bz!==bu.length){if(!bE.teardown||bE.teardown.call(bx,bv,bD.handle)===false){C.removeEvent(bx,bF,bD.handle)}delete bH[bF]}}if(C.isEmptyObject(bH)){delete bD.handle;C.removeData(bx,"events",true)}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(bv,bC,bA,bJ){if(bA&&(bA.nodeType===3||bA.nodeType===8)){return}var bu,bx,bD,bH,bz,by,bF,bE,bB,bI,bG=bv.type||bv,bw=[];if(N.test(bG+C.event.triggered)){return}if(bG.indexOf("!")>=0){bG=bG.slice(0,-1);bx=true}if(bG.indexOf(".")>=0){bw=bG.split(".");bG=bw.shift();bw.sort()}if((!bA||C.event.customEvent[bG])&&!C.event.global[bG]){return}bv=typeof bv==="object"?bv[C.expando]?bv:new C.Event(bG,bv):new C.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bx;bv.namespace=bw.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bw.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){bu=C.cache;for(bD in bu){if(bu[bD].events&&bu[bD].events[bG]){C.event.trigger(bv,bC,bu[bD].handle.elem,true)}}return}bv.result=G;if(!bv.target){bv.target=bA}bC=bC!=null?C.makeArray(bC):[];bC.unshift(bv);bF=C.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bC)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!C.isWindow(bA)){bI=bF.delegateType||bG;bH=N.test(bI+bG)?bA:bA.parentNode;for(bz=bA;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz===(bA.ownerDocument||ak)){bB.push([bz.defaultView||bz.parentWindow||bd,bI])}}for(bD=0;bD<bB.length&&!bv.isPropagationStopped();bD++){bH=bB[bD][0];bv.type=bB[bD][1];bE=(C._data(bH,"events")||{})[bv.type]&&C._data(bH,"handle");if(bE){bE.apply(bH,bC)}bE=by&&bH[by];if(bE&&C.acceptData(bH)&&bE.apply&&bE.apply(bH,bC)===false){bv.preventDefault()}}bv.type=bG;if(!bJ&&!bv.isDefaultPrevented()){if((!bF._default||bF._default.apply(bA.ownerDocument,bC)===false)&&!(bG==="click"&&C.nodeName(bA,"a"))&&C.acceptData(bA)){if(by&&bA[bG]&&((bG!=="focus"&&bG!=="blur")||bv.target.offsetWidth!==0)&&!C.isWindow(bA)){bz=bA[by];if(bz){bA[by]=null}C.event.triggered=bG;bA[bG]();C.event.triggered=G;if(bz){bA[by]=bz}}}}return bv.result},dispatch:function(bu){bu=C.event.fix(bu||bd.event);var bB,bA,bK,bE,bD,bv,bC,bI,bx,bJ,by=((C._data(this,"events")||{})[bu.type]||[]),bz=by.delegateCount,bG=aD.call(arguments),bw=!bu.exclusive&&!bu.namespace,bF=C.event.special[bu.type]||{},bH=[];bG[0]=bu;bu.delegateTarget=this;if(bF.preDispatch&&bF.preDispatch.call(this,bu)===false){return}if(bz&&!(bu.button&&bu.type==="click")){for(bK=bu.target;bK!=this;bK=bK.parentNode||this){if(bK.disabled!==true||bu.type!=="click"){bD={};bC=[];for(bB=0;bB<bz;bB++){bI=by[bB];bx=bI.selector;if(bD[bx]===G){bD[bx]=bI.needsContext?C(bx,this).index(bK)>=0:C.find(bx,this,null,[bK]).length}if(bD[bx]){bC.push(bI)}}if(bC.length){bH.push({elem:bK,matches:bC})}}}}if(by.length>bz){bH.push({elem:this,matches:by.slice(bz)})}for(bB=0;bB<bH.length&&!bu.isPropagationStopped();bB++){bv=bH[bB];bu.currentTarget=bv.elem;for(bA=0;bA<bv.matches.length&&!bu.isImmediatePropagationStopped();bA++){bI=bv.matches[bA];if(bw||(!bu.namespace&&!bI.namespace)||bu.namespace_re&&bu.namespace_re.test(bI.namespace)){bu.data=bI.data;bu.handleObj=bI;bE=((C.event.special[bI.origType]||{}).handle||bI.handler).apply(bv.elem,bG);if(bE!==G){bu.result=bE;if(bE===false){bu.preventDefault();bu.stopPropagation()}}}}}if(bF.postDispatch){bF.postDispatch.call(this,bu)}return bu.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(bv,bu){if(bv.which==null){bv.which=bu.charCode!=null?bu.charCode:bu.keyCode}return bv}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(bx,bw){var by,bz,bu,bv=bw.button,bA=bw.fromElement;if(bx.pageX==null&&bw.clientX!=null){by=bx.target.ownerDocument||ak;bz=by.documentElement;bu=by.body;bx.pageX=bw.clientX+(bz&&bz.scrollLeft||bu&&bu.scrollLeft||0)-(bz&&bz.clientLeft||bu&&bu.clientLeft||0);bx.pageY=bw.clientY+(bz&&bz.scrollTop||bu&&bu.scrollTop||0)-(bz&&bz.clientTop||bu&&bu.clientTop||0)}if(!bx.relatedTarget&&bA){bx.relatedTarget=bA===bx.target?bw.toElement:bA}if(!bx.which&&bv!==G){bx.which=(bv&1?1:(bv&2?3:(bv&4?2:0)))}return bx}},fix:function(bw){if(bw[C.expando]){return bw}var bv,bz,bu=bw,bx=C.event.fixHooks[bw.type]||{},by=bx.props?this.props.concat(bx.props):this.props;bw=C.Event(bu);for(bv=by.length;bv;){bz=by[--bv];bw[bz]=bu[bz]}if(!bw.target){bw.target=bu.srcElement||ak}if(bw.target.nodeType===3){bw.target=bw.target.parentNode}bw.metaKey=!!bw.metaKey;return bx.filter?bx.filter(bw,bu):bw},special:{load:{noBubble:true},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(bw,bv,bu){if(C.isWindow(this)){this.onbeforeunload=bu}},teardown:function(bv,bu){if(this.onbeforeunload===bu){this.onbeforeunload=null}}}},simulate:function(bv,bx,bw,bu){var by=C.extend(new C.Event(),bw,{type:bv,isSimulated:true,originalEvent:{}});if(bu){C.event.trigger(by,null,bx)}else{C.event.dispatch.call(bx,by)}if(by.isDefaultPrevented()){bw.preventDefault()}}};C.event.handle=C.event.dispatch;C.removeEvent=ak.removeEventListener?function(bv,bu,bw){if(bv.removeEventListener){bv.removeEventListener(bu,bw,false)}}:function(bw,bv,bx){var bu="on"+bv;if(bw.detachEvent){if(typeof bw[bu]==="undefined"){bw[bu]=null}bw.detachEvent(bu,bx)}};C.Event=function(bv,bu){if(!(this instanceof C.Event)){return new C.Event(bv,bu)}if(bv&&bv.type){this.originalEvent=bv;this.type=bv.type;this.isDefaultPrevented=(bv.defaultPrevented||bv.returnValue===false||bv.getPreventDefault&&bv.getPreventDefault())?f:bn}else{this.type=bv}if(bu){C.extend(this,bu)}this.timeStamp=bv&&bv.timeStamp||C.now();this[C.expando]=true};function bn(){return false}function f(){return true}C.Event.prototype={preventDefault:function(){this.isDefaultPrevented=f;var bu=this.originalEvent;if(!bu){return}if(bu.preventDefault){bu.preventDefault()}else{bu.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=f;var bu=this.originalEvent;if(!bu){return}if(bu.stopPropagation){bu.stopPropagation()}bu.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=f;this.stopPropagation()},isDefaultPrevented:bn,isPropagationStopped:bn,isImmediatePropagationStopped:bn};C.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bv,bu){C.event.special[bv]={delegateType:bu,bindType:bu,handle:function(bz){var bx,bB=this,bA=bz.relatedTarget,by=bz.handleObj,bw=by.selector;if(!bA||(bA!==bB&&!C.contains(bB,bA))){bz.type=by.origType;bx=by.handler.apply(this,arguments);bz.type=bu}return bx}}});C.fn.extend({on:function(bw,bu,bz,by,bv){var bA,bx;if(typeof bw==="object"){if(typeof bu!=="string"){bz=bz||bu;bu=G}for(bx in bw){this.on(bx,bu,bz,bw[bx],bv)}return this}if(bz==null&&by==null){by=bu;bz=bu=G}else{if(by==null){if(typeof bu==="string"){by=bz;bz=G}else{by=bz;bz=bu;bu=G}}}if(by===false){by=bn}else{if(!by){return this}}if(bv===1){bA=by;by=function(bB){C().off(bB);return bA.apply(this,arguments)};by.guid=bA.guid||(bA.guid=C.guid++)}return this.each(function(){C.event.add(this,bw,by,bz,bu)})},off:function(bw,bu,by){var bv,bx;if(bw&&bw.preventDefault&&bw.handleObj){bv=bw.handleObj;C(bw.delegateTarget).off(bv.namespace?bv.origType+"."+bv.namespace:bv.origType,bv.selector,bv.handler);return this}if(typeof bw==="object"){for(bx in bw){this.off(bx,bu,bw[bx])}return this}if(bu===false||typeof bu==="function"){by=bu;bu=G}if(by===false){by=bn}return this.each(function(){C.event.remove(this,bw,by,bu)})},delegate:function(bu,bv,bx,bw){return this.on(bv,bu,bx,bw)},undelegate:function(bu,bv,bw){return arguments.length===1?this.off(bu,"**"):this.off(bv,bu||"**",bw)},trigger:function(bu,bv){return this.each(function(){C.event.trigger(bu,bv,this)})},triggerHandler:function(bu,bv){if(this[0]){return C.event.trigger(bu,bv,this[0],true)}},toggle:function(bx){var bv=arguments,bu=bx.guid||C.guid++,bw=0,by=function(bz){var bA=(C._data(this,"lastToggle"+bx.guid)||0)%bw;C._data(this,"lastToggle"+bx.guid,bA+1);bz.preventDefault();return bv[bA].apply(this,arguments)||false};by.guid=bu;while(bw<bv.length){bv[bw++].guid=bu}return this.click(by)},hover:function(bu,bv){return this.mouseenter(bu).mouseleave(bv||bu)}});C.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(bv,bu){C.fn[bu]=function(bx,bw){if(bw==null){bw=bx;bx=null}return arguments.length>0?this.on(bu,null,bx,bw):this.trigger(bu)};if(aH.test(bu)){C.event.fixHooks[bu]=C.event.keyHooks}if(bi.test(bu)){C.event.fixHooks[bu]=C.event.mouseHooks}}); +var oldBrowser=document.all&&!document.addEventListener;if(!oldBrowser){(function(bd,G){var q,an,ak=bd.document,bo=bd.location,bt=bd.navigator,ax=bd.JQXLite,X=bd.$,aR=Array.prototype.push,aD=Array.prototype.slice,aA=Array.prototype.indexOf,y=Object.prototype.toString,b=Object.prototype.hasOwnProperty,aw=String.prototype.trim,C=function(bu,bv){return new C.fn.init(bu,bv,q)},aE=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,at=/\S/,a8=/\s+/,S=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,aF=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,e=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,j=/^[\],:{}\s]*$/,t=/(?:^|:|,)(?:\s*\[)+/g,a5=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,K=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,au=/^-ms-/,aS=/-([\da-z])/gi,m=function(bu,bv){return(bv+"").toUpperCase()},a4=function(){if(ak.addEventListener){ak.removeEventListener("DOMContentLoaded",a4,false);C.ready()}else{if(ak.readyState==="complete"){ak.detachEvent("onreadystatechange",a4);C.ready()}}},a0={};C.fn=C.prototype={constructor:C,init:function(bu,bx,by){var bw,bz,bv,bA;if(!bu){return this}if(bu.nodeType){this.context=this[0]=bu;this.length=1;return this}if(typeof bu==="string"){if(bu.charAt(0)==="<"&&bu.charAt(bu.length-1)===">"&&bu.length>=3){bw=[null,bu,null]}else{bw=aF.exec(bu)}if(bw&&(bw[1]||!bx)){if(bw[1]){bx=bx instanceof C?bx[0]:bx;bA=(bx&&bx.nodeType?bx.ownerDocument||bx:ak);bu=C.parseHTML(bw[1],bA,true);if(e.test(bw[1])&&C.isPlainObject(bx)){this.attr.call(bu,bx,true)}return C.merge(this,bu)}else{bz=ak.getElementById(bw[2]);if(bz&&bz.parentNode){if(bz.id!==bw[2]){return by.find(bu)}this.length=1;this[0]=bz}this.context=ak;this.selector=bu;return this}}else{if(!bx||bx.jqx){return(bx||by).find(bu)}else{return this.constructor(bx).find(bu)}}}else{if(C.isFunction(bu)){return by.ready(bu)}}if(bu.selector!==G){this.selector=bu.selector;this.context=bu.context}return C.makeArray(bu,this)},selector:"",jqx:"4.5.0",length:0,size:function(){return this.length},toArray:function(){return aD.call(this)},get:function(bu){return bu==null?this.toArray():(bu<0?this[this.length+bu]:this[bu])},pushStack:function(bv,bx,bu){var bw=C.merge(this.constructor(),bv);bw.prevObject=this;bw.context=this.context;if(bx==="find"){bw.selector=this.selector+(this.selector?" ":"")+bu}else{if(bx){bw.selector=this.selector+"."+bx+"("+bu+")"}}return bw},each:function(bv,bu){return C.each(this,bv,bu)},ready:function(bu){C.ready.promise().done(bu);return this},eq:function(bu){bu=+bu;return bu===-1?this.slice(bu):this.slice(bu,bu+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(aD.apply(this,arguments),"slice",aD.call(arguments).join(","))},map:function(bu){return this.pushStack(C.map(this,function(bw,bv){return bu.call(bw,bv,bw)}))},end:function(){return this.prevObject||this.constructor(null)},push:aR,sort:[].sort,splice:[].splice};C.fn.init.prototype=C.fn;C.extend=C.fn.extend=function(){var bD,bw,bu,bv,bA,bB,bz=arguments[0]||{},by=1,bx=arguments.length,bC=false;if(typeof bz==="boolean"){bC=bz;bz=arguments[1]||{};by=2}if(typeof bz!=="object"&&!C.isFunction(bz)){bz={}}if(bx===by){bz=this;--by}for(;by<bx;by++){if((bD=arguments[by])!=null){for(bw in bD){bu=bz[bw];bv=bD[bw];if(bz===bv){continue}if(bC&&bv&&(C.isPlainObject(bv)||(bA=C.isArray(bv)))){if(bA){bA=false;bB=bu&&C.isArray(bu)?bu:[]}else{bB=bu&&C.isPlainObject(bu)?bu:{}}bz[bw]=C.extend(bC,bB,bv)}else{if(bv!==G){bz[bw]=bv}}}}}return bz};C.extend({noConflict:function(bu){if(bd.$===C){bd.$=X}if(bu&&bd.JQXLite===C){bd.JQXLite=ax}return C},isReady:false,readyWait:1,holdReady:function(bu){if(bu){C.readyWait++}else{C.ready(true)}},ready:function(bu){if(bu===true?--C.readyWait:C.isReady){return}if(!ak.body){return setTimeout(C.ready,1)}C.isReady=true;if(bu!==true&&--C.readyWait>0){return}an.resolveWith(ak,[C]);if(C.fn.trigger){C(ak).trigger("ready").off("ready")}},isFunction:function(bu){return C.type(bu)==="function"},isArray:Array.isArray||function(bu){return C.type(bu)==="array"},isWindow:function(bu){return bu!=null&&bu==bu.window},isNumeric:function(bu){return !isNaN(parseFloat(bu))&&isFinite(bu)},type:function(bu){return bu==null?String(bu):a0[y.call(bu)]||"object"},isPlainObject:function(bw){if(!bw||C.type(bw)!=="object"||bw.nodeType||C.isWindow(bw)){return false}try{if(bw.constructor&&!b.call(bw,"constructor")&&!b.call(bw.constructor.prototype,"isPrototypeOf")){return false}}catch(bv){return false}var bu;for(bu in bw){}return bu===G||b.call(bw,bu)},isEmptyObject:function(bv){var bu;for(bu in bv){return false}return true},error:function(bu){throw new Error(bu)},parseHTML:function(bx,bw,bu){var bv;if(!bx||typeof bx!=="string"){return null}if(typeof bw==="boolean"){bu=bw;bw=0}bw=bw||ak;if((bv=e.exec(bx))){return[bw.createElement(bv[1])]}bv=C.buildFragment([bx],bw,bu?null:[]);return C.merge([],(bv.cacheable?C.clone(bv.fragment):bv.fragment).childNodes)},parseJSON:function(bu){if(!bu||typeof bu!=="string"){return null}bu=C.trim(bu);if(bd.JSON&&bd.JSON.parse){return bd.JSON.parse(bu)}if(j.test(bu.replace(a5,"@").replace(K,"]").replace(t,""))){return(new Function("return "+bu))()}C.error("Invalid JSON: "+bu)},parseXML:function(bw){var bu,bv;if(!bw||typeof bw!=="string"){return null}try{if(bd.DOMParser){bv=new DOMParser();bu=bv.parseFromString(bw,"text/xml")}else{bu=new ActiveXObject("Microsoft.XMLDOM");bu.async="false";bu.loadXML(bw)}}catch(bx){bu=G}if(!bu||!bu.documentElement||bu.getElementsByTagName("parsererror").length){C.error("Invalid XML: "+bw)}return bu},noop:function(){},globalEval:function(bu){if(bu&&at.test(bu)){(bd.execScript||function(bv){bd["eval"].call(bd,bv)})(bu)}},camelCase:function(bu){return bu.replace(au,"ms-").replace(aS,m)},nodeName:function(bv,bu){return bv.nodeName&&bv.nodeName.toLowerCase()===bu.toLowerCase()},each:function(bz,bA,bw){var bv,bx=0,by=bz.length,bu=by===G||C.isFunction(bz);if(bw){if(bu){for(bv in bz){if(bA.apply(bz[bv],bw)===false){break}}}else{for(;bx<by;){if(bA.apply(bz[bx++],bw)===false){break}}}}else{if(bu){for(bv in bz){if(bA.call(bz[bv],bv,bz[bv])===false){break}}}else{for(;bx<by;){if(bA.call(bz[bx],bx,bz[bx++])===false){break}}}}return bz},trim:aw&&!aw.call("\uFEFF\xA0")?function(bu){return bu==null?"":aw.call(bu)}:function(bu){return bu==null?"":(bu+"").replace(S,"")},makeArray:function(bu,bw){var bx,bv=bw||[];if(bu!=null){bx=C.type(bu);if(bu.length==null||bx==="string"||bx==="function"||bx==="regexp"||C.isWindow(bu)){aR.call(bv,bu)}else{C.merge(bv,bu)}}return bv},inArray:function(bx,bv,bw){var bu;if(bv){if(aA){return aA.call(bv,bx,bw)}bu=bv.length;bw=bw?bw<0?Math.max(0,bu+bw):bw:0;for(;bw<bu;bw++){if(bw in bv&&bv[bw]===bx){return bw}}}return -1},merge:function(by,bw){var bu=bw.length,bx=by.length,bv=0;if(typeof bu==="number"){for(;bv<bu;bv++){by[bx++]=bw[bv]}}else{while(bw[bv]!==G){by[bx++]=bw[bv++]}}by.length=bx;return by},grep:function(bv,bA,bu){var bz,bw=[],bx=0,by=bv.length;bu=!!bu;for(;bx<by;bx++){bz=!!bA(bv[bx],bx);if(bu!==bz){bw.push(bv[bx])}}return bw},map:function(bu,bB,bC){var bz,bA,by=[],bw=0,bv=bu.length,bx=bu instanceof C||bv!==G&&typeof bv==="number"&&((bv>0&&bu[0]&&bu[bv-1])||bv===0||C.isArray(bu));if(bx){for(;bw<bv;bw++){bz=bB(bu[bw],bw,bC);if(bz!=null){by[by.length]=bz}}}else{for(bA in bu){bz=bB(bu[bA],bA,bC);if(bz!=null){by[by.length]=bz}}}return by.concat.apply([],by)},guid:1,proxy:function(by,bx){var bw,bu,bv;if(typeof bx==="string"){bw=by[bx];bx=by;by=bw}if(!C.isFunction(by)){return G}bu=aD.call(arguments,2);bv=function(){return by.apply(bx,bu.concat(aD.call(arguments)))};bv.guid=by.guid=by.guid||C.guid++;return bv},access:function(bu,bA,bD,bB,by,bE,bC){var bw,bz=bD==null,bx=0,bv=bu.length;if(bD&&typeof bD==="object"){for(bx in bD){C.access(bu,bA,bx,bD[bx],1,bE,bB)}by=1}else{if(bB!==G){bw=bC===G&&C.isFunction(bB);if(bz){if(bw){bw=bA;bA=function(bG,bF,bH){return bw.call(C(bG),bH)}}else{bA.call(bu,bB);bA=null}}if(bA){for(;bx<bv;bx++){bA(bu[bx],bD,bw?bB.call(bu[bx],bx,bA(bu[bx],bD)):bB,bC)}}by=1}}return by?bu:bz?bA.call(bu):bv?bA(bu[0],bD):bE},now:function(){return(new Date()).getTime()}});C.ready.promise=function(bx){if(!an){an=C.Deferred();if(ak.readyState==="complete"){setTimeout(C.ready,1)}else{if(ak.addEventListener){ak.addEventListener("DOMContentLoaded",a4,false);bd.addEventListener("load",C.ready,false)}else{ak.attachEvent("onreadystatechange",a4);bd.attachEvent("onload",C.ready);var bw=false;try{bw=bd.frameElement==null&&ak.documentElement}catch(bv){}if(bw&&bw.doScroll){(function bu(){if(!C.isReady){try{bw.doScroll("left")}catch(by){return setTimeout(bu,50)}C.ready()}})()}}}}return an.promise(bx)};C.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(bv,bu){a0["[object "+bu+"]"]=bu.toLowerCase()});q=C(ak);var aX={};function B(bv){var bu=aX[bv]={};C.each(bv.split(a8),function(bx,bw){bu[bw]=true});return bu}C.Callbacks=function(bE){bE=typeof bE==="string"?(aX[bE]||B(bE)):C.extend({},bE);var bx,bu,by,bw,bz,bA,bB=[],bC=!bE.once&&[],bv=function(bF){bx=bE.memory&&bF;bu=true;bA=bw||0;bw=0;bz=bB.length;by=true;for(;bB&&bA<bz;bA++){if(bB[bA].apply(bF[0],bF[1])===false&&bE.stopOnFalse){bx=false;break}}by=false;if(bB){if(bC){if(bC.length){bv(bC.shift())}}else{if(bx){bB=[]}else{bD.disable()}}}},bD={add:function(){if(bB){var bG=bB.length;(function bF(bH){C.each(bH,function(bJ,bI){var bK=C.type(bI);if(bK==="function"){if(!bE.unique||!bD.has(bI)){bB.push(bI)}}else{if(bI&&bI.length&&bK!=="string"){bF(bI)}}})})(arguments);if(by){bz=bB.length}else{if(bx){bw=bG;bv(bx)}}}return this},remove:function(){if(bB){C.each(arguments,function(bH,bF){var bG;while((bG=C.inArray(bF,bB,bG))>-1){bB.splice(bG,1);if(by){if(bG<=bz){bz--}if(bG<=bA){bA--}}}})}return this},has:function(bF){return C.inArray(bF,bB)>-1},empty:function(){bB=[];return this},disable:function(){bB=bC=bx=G;return this},disabled:function(){return !bB},lock:function(){bC=G;if(!bx){bD.disable()}return this},locked:function(){return !bC},fireWith:function(bG,bF){bF=bF||[];bF=[bG,bF.slice?bF.slice():bF];if(bB&&(!bu||bC)){if(by){bC.push(bF)}else{bv(bF)}}return this},fire:function(){bD.fireWith(this,arguments);return this},fired:function(){return !!bu}};return bD};C.extend({Deferred:function(bw){var bv=[["resolve","done",C.Callbacks("once memory"),"resolved"],["reject","fail",C.Callbacks("once memory"),"rejected"],["notify","progress",C.Callbacks("memory")]],bx="pending",by={state:function(){return bx},always:function(){bu.done(arguments).fail(arguments);return this},then:function(){var bz=arguments;return C.Deferred(function(bA){C.each(bv,function(bC,bB){var bE=bB[0],bD=bz[bC];bu[bB[1]](C.isFunction(bD)?function(){var bF=bD.apply(this,arguments);if(bF&&C.isFunction(bF.promise)){bF.promise().done(bA.resolve).fail(bA.reject).progress(bA.notify)}else{bA[bE+"With"](this===bu?bA:this,[bF])}}:bA[bE])});bz=null}).promise()},promise:function(bz){return bz!=null?C.extend(bz,by):by}},bu={};by.pipe=by.then;C.each(bv,function(bA,bz){var bC=bz[2],bB=bz[3];by[bz[1]]=bC.add;if(bB){bC.add(function(){bx=bB},bv[bA^1][2].disable,bv[2][2].lock)}bu[bz[0]]=bC.fire;bu[bz[0]+"With"]=bC.fireWith});by.promise(bu);if(bw){bw.call(bu,bu)}return bu},when:function(by){var bw=0,bA=aD.call(arguments),bu=bA.length,bv=bu!==1||(by&&C.isFunction(by.promise))?bu:0,bD=bv===1?by:C.Deferred(),bx=function(bF,bG,bE){return function(bH){bG[bF]=this;bE[bF]=arguments.length>1?aD.call(arguments):bH;if(bE===bC){bD.notifyWith(bG,bE)}else{if(!(--bv)){bD.resolveWith(bG,bE)}}}},bC,bz,bB;if(bu>1){bC=new Array(bu);bz=new Array(bu);bB=new Array(bu);for(;bw<bu;bw++){if(bA[bw]&&C.isFunction(bA[bw].promise)){bA[bw].promise().done(bx(bw,bB,bA)).fail(bD.reject).progress(bx(bw,bz,bC))}else{--bv}}}if(!bv){bD.resolveWith(bB,bA)}return bD.promise()}});C.support=(function(){var bG,bF,bD,bE,bx,bC,bB,bz,by,bw,bu,bv=ak.createElement("div");bv.setAttribute("className","t");bv.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";bF=bv.getElementsByTagName("*");bD=bv.getElementsByTagName("a")[0];if(!bF||!bD||!bF.length){return{}}bE=ak.createElement("select");bx=bE.appendChild(ak.createElement("option"));bC=bv.getElementsByTagName("input")[0];bD.style.cssText="top:1px;float:left;opacity:.5";bG={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bD.getAttribute("style")),hrefNormalized:(bD.getAttribute("href")==="/a"),opacity:/^0.5/.test(bD.style.opacity),cssFloat:!!bD.style.cssFloat,checkOn:(bC.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!ak.createElement("form").enctype,html5Clone:ak.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>",boxModel:(ak.compatMode==="CSS1Compat"),submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true,boxSizingReliable:true,pixelPosition:false};bC.checked=true;bG.noCloneChecked=bC.cloneNode(true).checked;bE.disabled=true;bG.optDisabled=!bx.disabled;try{delete bv.test}catch(bA){bG.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",bu=function(){bG.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick");bv.detachEvent("onclick",bu)}bC=ak.createElement("input");bC.value="t";bC.setAttribute("type","radio");bG.radioValue=bC.value==="t";bC.setAttribute("checked","checked");bC.setAttribute("name","t");bv.appendChild(bC);bB=ak.createDocumentFragment();bB.appendChild(bv.lastChild);bG.checkClone=bB.cloneNode(true).cloneNode(true).lastChild.checked;bG.appendChecked=bC.checked;bB.removeChild(bC);bB.appendChild(bv);if(bv.attachEvent){for(by in {submit:true,change:true,focusin:true}){bz="on"+by;bw=(bz in bv);if(!bw){bv.setAttribute(bz,"return;");bw=(typeof bv[bz]==="function")}bG[by+"Bubbles"]=bw}}C(function(){var bI,bM,bK,bL,bJ="padding:0;margin:0;border:0;display:block;overflow:hidden;",bH=ak.getElementsByTagName("body")[0];if(!bH){return}bI=ak.createElement("div");bI.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px";bH.insertBefore(bI,bH.firstChild);bM=ak.createElement("div");bI.appendChild(bM);bM.innerHTML="<table><tr><td></td><td>t</td></tr></table>";bK=bM.getElementsByTagName("td");bK[0].style.cssText="padding:0;margin:0;border:0;display:none";bw=(bK[0].offsetHeight===0);bK[0].style.display="";bK[1].style.display="none";bG.reliableHiddenOffsets=bw&&(bK[0].offsetHeight===0);bM.innerHTML="";bM.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%;";bG.boxSizing=(bM.offsetWidth===4);bG.doesNotIncludeMarginInBodyOffset=(bH.offsetTop!==1);if(bd.getComputedStyle){bG.pixelPosition=(bd.getComputedStyle(bM,null)||{}).top!=="1%";bG.boxSizingReliable=(bd.getComputedStyle(bM,null)||{width:"4px"}).width==="4px";bL=ak.createElement("div");bL.style.cssText=bM.style.cssText=bJ;bL.style.marginRight=bL.style.width="0";bM.style.width="1px";bM.appendChild(bL);bG.reliableMarginRight=!parseFloat((bd.getComputedStyle(bL,null)||{}).marginRight)}if(typeof bM.style.zoom!=="undefined"){bM.innerHTML="";bM.style.cssText=bJ+"width:1px;padding:1px;display:inline;zoom:1";bG.inlineBlockNeedsLayout=(bM.offsetWidth===3);bM.style.display="block";bM.style.overflow="visible";bM.innerHTML="<div></div>";bM.firstChild.style.width="5px";bG.shrinkWrapBlocks=(bM.offsetWidth!==3);bI.style.zoom=1}bH.removeChild(bI);bI=bM=bK=bL=null});bB.removeChild(bv);bF=bD=bE=bx=bC=bB=bv=null;return bG})();var aK=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,aq=/([A-Z])/g;C.extend({cache:{},deletedIds:[],uuid:0,expando:"JQXLite"+(C.fn.jqx+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(bu){bu=bu.nodeType?C.cache[bu[C.expando]]:bu[C.expando];return !!bu&&!M(bu)},data:function(bx,bv,bz,by){if(!C.acceptData(bx)){return}var bA,bC,bD=C.expando,bB=typeof bv==="string",bE=bx.nodeType,bu=bE?C.cache:bx,bw=bE?bx[bD]:bx[bD]&&bD;if((!bw||!bu[bw]||(!by&&!bu[bw].data))&&bB&&bz===G){return}if(!bw){if(bE){bx[bD]=bw=C.deletedIds.pop()||C.guid++}else{bw=bD}}if(!bu[bw]){bu[bw]={};if(!bE){bu[bw].toJSON=C.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){bu[bw]=C.extend(bu[bw],bv)}else{bu[bw].data=C.extend(bu[bw].data,bv)}}bA=bu[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==G){bA[C.camelCase(bv)]=bz}if(bB){bC=bA[bv];if(bC==null){bC=bA[C.camelCase(bv)]}}else{bC=bA}return bC},removeData:function(bx,bv,by){if(!C.acceptData(bx)){return}var bB,bA,bz,bC=bx.nodeType,bu=bC?C.cache:bx,bw=bC?bx[C.expando]:C.expando;if(!bu[bw]){return}if(bv){bB=by?bu[bw]:bu[bw].data;if(bB){if(!C.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=C.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA<bz;bA++){delete bB[bv[bA]]}if(!(by?M:C.isEmptyObject)(bB)){return}}}if(!by){delete bu[bw].data;if(!M(bu[bw])){return}}if(bC){C.cleanData([bx],true)}else{if(C.support.deleteExpando||bu!=bu.window){delete bu[bw]}else{bu[bw]=null}}},_data:function(bv,bu,bw){return C.data(bv,bu,bw,true)},acceptData:function(bv){var bu=bv.nodeName&&C.noData[bv.nodeName.toLowerCase()];return !bu||bu!==true&&bv.getAttribute("classid")===bu}});C.fn.extend({data:function(bD,bC){var by,bv,bB,bu,bx,bw=this[0],bA=0,bz=null;if(bD===G){if(this.length){bz=C.data(bw);if(bw.nodeType===1&&!C._data(bw,"parsedAttrs")){bB=bw.attributes;for(bx=bB.length;bA<bx;bA++){bu=bB[bA].name;if(!bu.indexOf("data-")){bu=C.camelCase(bu.substring(5));a9(bw,bu,bz[bu])}}C._data(bw,"parsedAttrs",true)}}return bz}if(typeof bD==="object"){return this.each(function(){C.data(this,bD)})}by=bD.split(".",2);by[1]=by[1]?"."+by[1]:"";bv=by[1]+"!";return C.access(this,function(bE){if(bE===G){bz=this.triggerHandler("getData"+bv,[by[0]]);if(bz===G&&bw){bz=C.data(bw,bD);bz=a9(bw,bD,bz)}return bz===G&&by[1]?this.data(by[0]):bz}by[1]=bE;this.each(function(){var bF=C(this);bF.triggerHandler("setData"+bv,by);C.data(this,bD,bE);bF.triggerHandler("changeData"+bv,by)})},null,bC,arguments.length>1,null,false)},removeData:function(bu){return this.each(function(){C.removeData(this,bu)})}});function a9(bw,bv,bx){if(bx===G&&bw.nodeType===1){var bu="data-"+bv.replace(aq,"-$1").toLowerCase();bx=bw.getAttribute(bu);if(typeof bx==="string"){try{bx=bx==="true"?true:bx==="false"?false:bx==="null"?null:+bx+""===bx?+bx:aK.test(bx)?C.parseJSON(bx):bx}catch(by){}C.data(bw,bv,bx)}else{bx=G}}return bx}function M(bv){var bu;for(bu in bv){if(bu==="data"&&C.isEmptyObject(bv[bu])){continue}if(bu!=="toJSON"){return false}}return true}C.extend({queue:function(bw,bv,bx){var bu;if(bw){bv=(bv||"fx")+"queue";bu=C._data(bw,bv);if(bx){if(!bu||C.isArray(bx)){bu=C._data(bw,bv,C.makeArray(bx))}else{bu.push(bx)}}return bu||[]}},dequeue:function(bz,by){by=by||"fx";var bv=C.queue(bz,by),bA=bv.length,bx=bv.shift(),bu=C._queueHooks(bz,by),bw=function(){C.dequeue(bz,by)};if(bx==="inprogress"){bx=bv.shift();bA--}if(bx){if(by==="fx"){bv.unshift("inprogress")}delete bu.stop;bx.call(bz,bw,bu)}if(!bA&&bu){bu.empty.fire()}},_queueHooks:function(bw,bv){var bu=bv+"queueHooks";return C._data(bw,bu)||C._data(bw,bu,{empty:C.Callbacks("once memory").add(function(){C.removeData(bw,bv+"queue",true);C.removeData(bw,bu,true)})})}});C.fn.extend({queue:function(bu,bv){var bw=2;if(typeof bu!=="string"){bv=bu;bu="fx";bw--}if(arguments.length<bw){return C.queue(this[0],bu)}return bv===G?this:this.each(function(){var bx=C.queue(this,bu,bv);C._queueHooks(this,bu);if(bu==="fx"&&bx[0]!=="inprogress"){C.dequeue(this,bu)}})},dequeue:function(bu){return this.each(function(){C.dequeue(this,bu)})},delay:function(bv,bu){bv=C.fx?C.fx.speeds[bv]||bv:bv;bu=bu||"fx";return this.queue(bu,function(bx,bw){var by=setTimeout(bx,bv);bw.stop=function(){clearTimeout(by)}})},clearQueue:function(bu){return this.queue(bu||"fx",[])},promise:function(bw,bA){var bv,bx=1,bB=C.Deferred(),bz=this,bu=this.length,by=function(){if(!(--bx)){bB.resolveWith(bz,[bz])}};if(typeof bw!=="string"){bA=bw;bw=G}bw=bw||"fx";while(bu--){bv=C._data(bz[bu],bw+"queueHooks");if(bv&&bv.empty){bx++;bv.empty.add(by)}}by();return bB.promise(bA)}});var bh,aT,ay,aI=/[\t\r\n]/g,aP=/\r/g,d=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,h=/^a(?:rea|)$/i,ae=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,A=C.support.getSetAttribute;C.fn.extend({attr:function(bu,bv){return C.access(this,C.attr,bu,bv,arguments.length>1)},removeAttr:function(bu){return this.each(function(){C.removeAttr(this,bu)})},prop:function(bu,bv){return C.access(this,C.prop,bu,bv,arguments.length>1)},removeProp:function(bu){bu=C.propFix[bu]||bu;return this.each(function(){try{this[bu]=G;delete this[bu]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,bu;if(C.isFunction(by)){return this.each(function(bC){C(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by==="string"){bA=by.split(a8);for(bw=0,bv=this.length;bw<bv;bw++){bx=this[bw];if(bx.nodeType===1){if(!bx.className&&bA.length===1){bx.className=by}else{bz=" "+bx.className+" ";for(bB=0,bu=bA.length;bB<bu;bB++){if(bz.indexOf(" "+bA[bB]+" ")<0){bz+=bA[bB]+" "}}bx.className=C.trim(bz)}}}}return this},removeClass:function(bA){var bx,by,bz,bB,bv,bw,bu;if(C.isFunction(bA)){return this.each(function(bC){C(this).removeClass(bA.call(this,bC,this.className))})}if((bA&&typeof bA==="string")||bA===G){bx=(bA||"").split(a8);for(bw=0,bu=this.length;bw<bu;bw++){bz=this[bw];if(bz.nodeType===1&&bz.className){by=(" "+bz.className+" ").replace(aI," ");for(bB=0,bv=bx.length;bB<bv;bB++){while(by.indexOf(" "+bx[bB]+" ")>=0){by=by.replace(" "+bx[bB]+" "," ")}}bz.className=bA?C.trim(by):""}}}return this},toggleClass:function(bx,bv){var bw=typeof bx,bu=typeof bv==="boolean";if(C.isFunction(bx)){return this.each(function(by){C(this).toggleClass(bx.call(this,by,this.className,bv),bv)})}return this.each(function(){if(bw==="string"){var bA,bz=0,by=C(this),bB=bv,bC=bx.split(a8);while((bA=bC[bz++])){bB=bu?bB:!by.hasClass(bA);by[bB?"addClass":"removeClass"](bA)}}else{if(bw==="undefined"||bw==="boolean"){if(this.className){C._data(this,"__className__",this.className)}this.className=this.className||bx===false?"":C._data(this,"__className__")||""}}})},hasClass:function(bu){var bx=" "+bu+" ",bw=0,bv=this.length;for(;bw<bv;bw++){if(this[bw].nodeType===1&&(" "+this[bw].className+" ").replace(aI," ").indexOf(bx)>=0){return true}}return false},val:function(bx){var bu,bv,by,bw=this[0];if(!arguments.length){if(bw){bu=C.valHooks[bw.type]||C.valHooks[bw.nodeName.toLowerCase()];if(bu&&"get" in bu&&(bv=bu.get(bw,"value"))!==G){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aP,""):bv==null?"":bv}return}by=C.isFunction(bx);return this.each(function(bA){var bB,bz=C(this);if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(C.isArray(bB)){bB=C.map(bB,function(bC){return bC==null?"":bC+""})}}}bu=C.valHooks[this.type]||C.valHooks[this.nodeName.toLowerCase()];if(!bu||!("set" in bu)||bu.set(this,bB,"value")===G){this.value=bB}})}});C.extend({valHooks:{option:{get:function(bu){var bv=bu.attributes.value;return !bv||bv.specified?bu.value:bu.text}},select:{get:function(bu){var bA,bw,bC=bu.options,by=bu.selectedIndex,bx=bu.type==="select-one"||by<0,bB=bx?null:[],bz=bx?by+1:bC.length,bv=by<0?bz:bx?by:0;for(;bv<bz;bv++){bw=bC[bv];if((bw.selected||bv===by)&&(C.support.optDisabled?!bw.disabled:bw.getAttribute("disabled")===null)&&(!bw.parentNode.disabled||!C.nodeName(bw.parentNode,"optgroup"))){bA=C(bw).val();if(bx){return bA}bB.push(bA)}}return bB},set:function(bv,bw){var bu=C.makeArray(bw);C(bv).find("option").each(function(){this.selected=C.inArray(C(this).val(),bu)>=0});if(!bu.length){bv.selectedIndex=-1}return bu}}},attrFn:{},attr:function(bA,bx,bB,bz){var bw,bu,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&C.isFunction(C.fn[bx])){return C(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return C.prop(bA,bx,bB)}by=bv!==1||!C.isXMLDoc(bA);if(by){bx=bx.toLowerCase();bu=C.attrHooks[bx]||(ae.test(bx)?aT:bh)}if(bB!==G){if(bB===null){C.removeAttr(bA,bx);return}else{if(bu&&"set" in bu&&by&&(bw=bu.set(bA,bB,bx))!==G){return bw}else{bA.setAttribute(bx,bB+"");return bB}}}else{if(bu&&"get" in bu&&by&&(bw=bu.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?G:bw}}},removeAttr:function(bx,bz){var by,bA,bv,bu,bw=0;if(bz&&bx.nodeType===1){bA=bz.split(a8);for(;bw<bA.length;bw++){bv=bA[bw];if(bv){by=C.propFix[bv]||bv;bu=ae.test(bv);if(!bu){C.attr(bx,bv,"")}bx.removeAttribute(A?bv:by);if(bu&&by in bx){bx[by]=false}}}}},attrHooks:{type:{set:function(bu,bv){if(d.test(bu.nodeName)&&bu.parentNode){C.error("type property can't be changed")}else{if(!C.support.radioValue&&bv==="radio"&&C.nodeName(bu,"input")){var bw=bu.value;bu.setAttribute("type",bv);if(bw){bu.value=bw}return bv}}}},value:{get:function(bv,bu){if(bh&&C.nodeName(bv,"button")){return bh.get(bv,bu)}return bu in bv?bv.value:null},set:function(bv,bw,bu){if(bh&&C.nodeName(bv,"button")){return bh.set(bv,bw,bu)}bv.value=bw}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(bz,bx,bA){var bw,bu,by,bv=bz.nodeType;if(!bz||bv===3||bv===8||bv===2){return}by=bv!==1||!C.isXMLDoc(bz);if(by){bx=C.propFix[bx]||bx;bu=C.propHooks[bx]}if(bA!==G){if(bu&&"set" in bu&&(bw=bu.set(bz,bA,bx))!==G){return bw}else{return(bz[bx]=bA)}}else{if(bu&&"get" in bu&&(bw=bu.get(bz,bx))!==null){return bw}else{return bz[bx]}}},propHooks:{tabIndex:{get:function(bv){var bu=bv.getAttributeNode("tabindex");return bu&&bu.specified?parseInt(bu.value,10):z.test(bv.nodeName)||h.test(bv.nodeName)&&bv.href?0:G}}}});aT={get:function(bv,bu){var bx,bw=C.prop(bv,bu);return bw===true||typeof bw!=="boolean"&&(bx=bv.getAttributeNode(bu))&&bx.nodeValue!==false?bu.toLowerCase():G},set:function(bv,bx,bu){var bw;if(bx===false){C.removeAttr(bv,bu)}else{bw=C.propFix[bu]||bu;if(bw in bv){bv[bw]=true}bv.setAttribute(bu,bu.toLowerCase())}return bu}};if(!C.support.enctype){C.propFix.enctype="encoding"}var bf=/^(?:textarea|input|select)$/i,n=/^([^\.]*|)(?:\.(.+)|)$/,F=/(?:^|\s)hover(\.\S+|)\b/,aH=/^key/,bi=/^(?:mouse|contextmenu)|click/,N=/^(?:focusinfocus|focusoutblur)$/,bs=function(bu){return C.event.special.hover?bu:bu.replace(F,"mouseenter$1 mouseleave$1")};C.event={add:function(bx,bB,bI,bz,by){var bC,bA,bJ,bH,bG,bE,bu,bF,bv,bw,bD;if(bx.nodeType===3||bx.nodeType===8||!bB||!bI||!(bC=C._data(bx))){return}if(bI.handler){bv=bI;bI=bv.handler;by=bv.selector}if(!bI.guid){bI.guid=C.guid++}bJ=bC.events;if(!bJ){bC.events=bJ={}}bA=bC.handle;if(!bA){bC.handle=bA=function(bK){return typeof C!=="undefined"&&(!bK||C.event.triggered!==bK.type)?C.event.dispatch.apply(bA.elem,arguments):G};bA.elem=bx}bB=C.trim(bs(bB)).split(" ");for(bH=0;bH<bB.length;bH++){bG=n.exec(bB[bH])||[];bE=bG[1];bu=(bG[2]||"").split(".").sort();bD=C.event.special[bE]||{};bE=(by?bD.delegateType:bD.bindType)||bE;bD=C.event.special[bE]||{};bF=C.extend({type:bE,origType:bG[1],data:bz,handler:bI,guid:bI.guid,selector:by,needsContext:by&&C.expr.match.needsContext.test(by),namespace:bu.join(".")},bv);bw=bJ[bE];if(!bw){bw=bJ[bE]=[];bw.delegateCount=0;if(!bD.setup||bD.setup.call(bx,bz,bu,bA)===false){if(bx.addEventListener){if(bz&&bz.passive!==G){bx.addEventListener(bE,bA,bz)}else{bx.addEventListener(bE,bA,false)}}else{if(bx.attachEvent){bx.attachEvent("on"+bE,bA)}}}}if(bD.add){bD.add.call(bx,bF);if(!bF.handler.guid){bF.handler.guid=bI.guid}}if(by){bw.splice(bw.delegateCount++,0,bF)}else{bw.push(bF)}C.event.global[bE]=true}bx=null},global:{},remove:function(bx,bC,bI,by,bB){var bJ,bK,bF,bw,bv,bz,bA,bH,bE,bu,bG,bD=C.hasData(bx)&&C._data(bx);if(!bD||!(bH=bD.events)){return}bC=C.trim(bs(bC||"")).split(" ");for(bJ=0;bJ<bC.length;bJ++){bK=n.exec(bC[bJ])||[];bF=bw=bK[1];bv=bK[2];if(!bF){for(bF in bH){C.event.remove(bx,bF+bC[bJ],bI,by,true)}continue}bE=C.event.special[bF]||{};bF=(by?bE.delegateType:bE.bindType)||bF;bu=bH[bF]||[];bz=bu.length;bv=bv?new RegExp("(^|\\.)"+bv.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(bA=0;bA<bu.length;bA++){bG=bu[bA];if((bB||bw===bG.origType)&&(!bI||bI.guid===bG.guid)&&(!bv||bv.test(bG.namespace))&&(!by||by===bG.selector||by==="**"&&bG.selector)){bu.splice(bA--,1);if(bG.selector){bu.delegateCount--}if(bE.remove){bE.remove.call(bx,bG)}}}if(bu.length===0&&bz!==bu.length){if(!bE.teardown||bE.teardown.call(bx,bv,bD.handle)===false){C.removeEvent(bx,bF,bD.handle)}delete bH[bF]}}if(C.isEmptyObject(bH)){delete bD.handle;C.removeData(bx,"events",true)}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(bv,bC,bA,bJ){if(bA&&(bA.nodeType===3||bA.nodeType===8)){return}var bu,bx,bD,bH,bz,by,bF,bE,bB,bI,bG=bv.type||bv,bw=[];if(N.test(bG+C.event.triggered)){return}if(bG.indexOf("!")>=0){bG=bG.slice(0,-1);bx=true}if(bG.indexOf(".")>=0){bw=bG.split(".");bG=bw.shift();bw.sort()}if((!bA||C.event.customEvent[bG])&&!C.event.global[bG]){return}bv=typeof bv==="object"?bv[C.expando]?bv:new C.Event(bG,bv):new C.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bx;bv.namespace=bw.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bw.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){bu=C.cache;for(bD in bu){if(bu[bD].events&&bu[bD].events[bG]){C.event.trigger(bv,bC,bu[bD].handle.elem,true)}}return}bv.result=G;if(!bv.target){bv.target=bA}bC=bC!=null?C.makeArray(bC):[];bC.unshift(bv);bF=C.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bC)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!C.isWindow(bA)){bI=bF.delegateType||bG;bH=N.test(bI+bG)?bA:bA.parentNode;for(bz=bA;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz===(bA.ownerDocument||ak)){bB.push([bz.defaultView||bz.parentWindow||bd,bI])}}for(bD=0;bD<bB.length&&!bv.isPropagationStopped();bD++){bH=bB[bD][0];bv.type=bB[bD][1];bE=(C._data(bH,"events")||{})[bv.type]&&C._data(bH,"handle");if(bE){bE.apply(bH,bC)}bE=by&&bH[by];if(bE&&C.acceptData(bH)&&bE.apply&&bE.apply(bH,bC)===false){bv.preventDefault()}}bv.type=bG;if(!bJ&&!bv.isDefaultPrevented()){if((!bF._default||bF._default.apply(bA.ownerDocument,bC)===false)&&!(bG==="click"&&C.nodeName(bA,"a"))&&C.acceptData(bA)){if(by&&bA[bG]&&((bG!=="focus"&&bG!=="blur")||bv.target.offsetWidth!==0)&&!C.isWindow(bA)){bz=bA[by];if(bz){bA[by]=null}C.event.triggered=bG;bA[bG]();C.event.triggered=G;if(bz){bA[by]=bz}}}}return bv.result},dispatch:function(bu){bu=C.event.fix(bu||bd.event);var bB,bA,bK,bE,bD,bv,bC,bI,bx,bJ,by=((C._data(this,"events")||{})[bu.type]||[]),bz=by.delegateCount,bG=aD.call(arguments),bw=!bu.exclusive&&!bu.namespace,bF=C.event.special[bu.type]||{},bH=[];bG[0]=bu;bu.delegateTarget=this;if(bF.preDispatch&&bF.preDispatch.call(this,bu)===false){return}if(bz&&!(bu.button&&bu.type==="click")){for(bK=bu.target;bK!=this;bK=bK.parentNode||this){if(bK.disabled!==true||bu.type!=="click"){bD={};bC=[];for(bB=0;bB<bz;bB++){bI=by[bB];bx=bI.selector;if(bD[bx]===G){bD[bx]=bI.needsContext?C(bx,this).index(bK)>=0:C.find(bx,this,null,[bK]).length}if(bD[bx]){bC.push(bI)}}if(bC.length){bH.push({elem:bK,matches:bC})}}}}if(by.length>bz){bH.push({elem:this,matches:by.slice(bz)})}for(bB=0;bB<bH.length&&!bu.isPropagationStopped();bB++){bv=bH[bB];bu.currentTarget=bv.elem;for(bA=0;bA<bv.matches.length&&!bu.isImmediatePropagationStopped();bA++){bI=bv.matches[bA];if(bw||(!bu.namespace&&!bI.namespace)||bu.namespace_re&&bu.namespace_re.test(bI.namespace)){bu.data=bI.data;bu.handleObj=bI;bE=((C.event.special[bI.origType]||{}).handle||bI.handler).apply(bv.elem,bG);if(bE!==G){bu.result=bE;if(bE===false){bu.preventDefault();bu.stopPropagation()}}}}}if(bF.postDispatch){bF.postDispatch.call(this,bu)}return bu.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(bv,bu){if(bv.which==null){bv.which=bu.charCode!=null?bu.charCode:bu.keyCode}return bv}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(bx,bw){var by,bz,bu,bv=bw.button,bA=bw.fromElement;if(bx.pageX==null&&bw.clientX!=null){by=bx.target.ownerDocument||ak;bz=by.documentElement;bu=by.body;bx.pageX=bw.clientX+(bz&&bz.scrollLeft||bu&&bu.scrollLeft||0)-(bz&&bz.clientLeft||bu&&bu.clientLeft||0);bx.pageY=bw.clientY+(bz&&bz.scrollTop||bu&&bu.scrollTop||0)-(bz&&bz.clientTop||bu&&bu.clientTop||0)}if(!bx.relatedTarget&&bA){bx.relatedTarget=bA===bx.target?bw.toElement:bA}if(!bx.which&&bv!==G){bx.which=(bv&1?1:(bv&2?3:(bv&4?2:0)))}return bx}},fix:function(bw){if(bw[C.expando]){return bw}var bv,bz,bu=bw,bx=C.event.fixHooks[bw.type]||{},by=bx.props?this.props.concat(bx.props):this.props;bw=C.Event(bu);for(bv=by.length;bv;){bz=by[--bv];bw[bz]=bu[bz]}if(!bw.target){bw.target=bu.srcElement||ak}if(bw.target.nodeType===3){bw.target=bw.target.parentNode}bw.metaKey=!!bw.metaKey;return bx.filter?bx.filter(bw,bu):bw},special:{load:{noBubble:true},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(bw,bv,bu){if(C.isWindow(this)){this.onbeforeunload=bu}},teardown:function(bv,bu){if(this.onbeforeunload===bu){this.onbeforeunload=null}}}},simulate:function(bv,bx,bw,bu){var by=C.extend(new C.Event(),bw,{type:bv,isSimulated:true,originalEvent:{}});if(bu){C.event.trigger(by,null,bx)}else{C.event.dispatch.call(bx,by)}if(by.isDefaultPrevented()){bw.preventDefault()}}};C.event.handle=C.event.dispatch;C.removeEvent=ak.removeEventListener?function(bv,bu,bw){if(bv.removeEventListener){bv.removeEventListener(bu,bw,false)}}:function(bw,bv,bx){var bu="on"+bv;if(bw.detachEvent){if(typeof bw[bu]==="undefined"){bw[bu]=null}bw.detachEvent(bu,bx)}};C.Event=function(bv,bu){if(!(this instanceof C.Event)){return new C.Event(bv,bu)}if(bv&&bv.type){this.originalEvent=bv;this.type=bv.type;this.isDefaultPrevented=(bv.defaultPrevented||bv.returnValue===false||bv.getPreventDefault&&bv.getPreventDefault())?f:bn}else{this.type=bv}if(bu){C.extend(this,bu)}this.timeStamp=bv&&bv.timeStamp||C.now();this[C.expando]=true};function bn(){return false}function f(){return true}C.Event.prototype={preventDefault:function(){this.isDefaultPrevented=f;var bu=this.originalEvent;if(!bu){return}if(bu.preventDefault){bu.preventDefault()}else{bu.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=f;var bu=this.originalEvent;if(!bu){return}if(bu.stopPropagation){bu.stopPropagation()}bu.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=f;this.stopPropagation()},isDefaultPrevented:bn,isPropagationStopped:bn,isImmediatePropagationStopped:bn};C.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bv,bu){C.event.special[bv]={delegateType:bu,bindType:bu,handle:function(bz){var bx,bB=this,bA=bz.relatedTarget,by=bz.handleObj,bw=by.selector;if(!bA||(bA!==bB&&!C.contains(bB,bA))){bz.type=by.origType;bx=by.handler.apply(this,arguments);bz.type=bu}return bx}}});C.fn.extend({on:function(bw,bu,bz,by,bv){var bA,bx;if(typeof bw==="object"){if(typeof bu!=="string"){bz=bz||bu;bu=G}for(bx in bw){this.on(bx,bu,bz,bw[bx],bv)}return this}if(bz==null&&by==null){by=bu;bz=bu=G}else{if(by==null){if(typeof bu==="string"){by=bz;bz=G}else{by=bz;bz=bu;bu=G}}}if(by===false){by=bn}else{if(!by){return this}}if(bv===1){bA=by;by=function(bB){C().off(bB);return bA.apply(this,arguments)};by.guid=bA.guid||(bA.guid=C.guid++)}return this.each(function(){C.event.add(this,bw,by,bz,bu)})},off:function(bw,bu,by){var bv,bx;if(bw&&bw.preventDefault&&bw.handleObj){bv=bw.handleObj;C(bw.delegateTarget).off(bv.namespace?bv.origType+"."+bv.namespace:bv.origType,bv.selector,bv.handler);return this}if(typeof bw==="object"){for(bx in bw){this.off(bx,bu,bw[bx])}return this}if(bu===false||typeof bu==="function"){by=bu;bu=G}if(by===false){by=bn}return this.each(function(){C.event.remove(this,bw,by,bu)})},delegate:function(bu,bv,bx,bw){return this.on(bv,bu,bx,bw)},undelegate:function(bu,bv,bw){return arguments.length===1?this.off(bu,"**"):this.off(bv,bu||"**",bw)},trigger:function(bu,bv){return this.each(function(){C.event.trigger(bu,bv,this)})},triggerHandler:function(bu,bv){if(this[0]){return C.event.trigger(bu,bv,this[0],true)}},toggle:function(bx){var bv=arguments,bu=bx.guid||C.guid++,bw=0,by=function(bz){var bA=(C._data(this,"lastToggle"+bx.guid)||0)%bw;C._data(this,"lastToggle"+bx.guid,bA+1);bz.preventDefault();return bv[bA].apply(this,arguments)||false};by.guid=bu;while(bw<bv.length){bv[bw++].guid=bu}return this.click(by)},hover:function(bu,bv){return this.mouseenter(bu).mouseleave(bv||bu)}});C.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(bv,bu){C.fn[bu]=function(bx,bw){if(bw==null){bw=bx;bx=null}return arguments.length>0?this.on(bu,null,bx,bw):this.trigger(bu)};if(aH.test(bu)){C.event.fixHooks[bu]=C.event.keyHooks}if(bi.test(bu)){C.event.fixHooks[bu]=C.event.mouseHooks}}); /*! * Sizzle CSS Selector Engine * Copyright 2012 JQXLite Foundation and other contributors * Released under the MIT license * http://sizzlejs.com/ */ -(function(cn,bM){var cs,bF,cg,bv,bR,b5,bI,bL,bH,ce,bE=true,bZ="undefined",cu=("sizcache"+Math.random()).replace(".",""),bz=String,bD=cn.document,bG=bD.documentElement,bW=0,bK=0,b9=[].pop,cr=[].push,bQ=[].slice,bT=[].indexOf||function(cE){var cD=0,cC=this.length;for(;cD<cC;cD++){if(this[cD]===cE){return cD}}return -1},cw=function(cC,cD){cC[cu]=cD==null||cD;return cC},cA=function(){var cC={},cD=[];return cw(function(cE,cF){if(cD.push(cE)>cg.cacheLength){delete cC[cD.shift()]}return(cC[cE+" "]=cF)},cC)},cp=cA(),cq=cA(),bS=cA(),b3="[\\x20\\t\\r\\n\\f]",bP="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",bN=bP.replace("w","w#"),cz="([*^$|!~]?=)",ck="\\["+b3+"*("+bP+")"+b3+"*(?:"+cz+b3+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+bN+")|)|)"+b3+"*\\]",cB=":("+bP+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+ck+")|[^:]|\\\\.)*|.*))\\)|)",b4=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+b3+"*((?:-\\d)?\\d*)"+b3+"*\\)|)(?=[^-]|$)",co=new RegExp("^"+b3+"+|((?:^|[^\\\\])(?:\\\\.)*)"+b3+"+$","g"),bA=new RegExp("^"+b3+"*,"+b3+"*"),cc=new RegExp("^"+b3+"*([\\x20\\t\\r\\n\\f>+~])"+b3+"*"),ch=new RegExp(cB),cj=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,b8=/^:not/,cm=/[\x20\t\r\n\f]*[+~]/,cv=/:not\($/,bX=/h\d/i,ci=/input|select|textarea|button/i,bY=/\\(?!\\)/g,cb={ID:new RegExp("^#("+bP+")"),CLASS:new RegExp("^\\.("+bP+")"),NAME:new RegExp("^\\[name=['\"]?("+bP+")['\"]?\\]"),TAG:new RegExp("^("+bP.replace("w","w*")+")"),ATTR:new RegExp("^"+ck),PSEUDO:new RegExp("^"+cB),POS:new RegExp(b4,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+b3+"*(even|odd|(([+-]|)(\\d*)n|)"+b3+"*(?:([+-]|)"+b3+"*(\\d+)|))"+b3+"*\\)|)","i"),needsContext:new RegExp("^"+b3+"*[>+~]|"+b4,"i")},cf=function(cC){var cE=bD.createElement("div");try{return cC(cE)}catch(cD){return false}finally{cE=null}},bC=cf(function(cC){cC.appendChild(bD.createComment(""));return !cC.getElementsByTagName("*").length}),b7=cf(function(cC){cC.innerHTML="<a href='#'></a>";return cC.firstChild&&typeof cC.firstChild.getAttribute!==bZ&&cC.firstChild.getAttribute("href")==="#"}),bV=cf(function(cD){cD.innerHTML="<select></select>";var cC=typeof cD.lastChild.getAttribute("multiple");return cC!=="boolean"&&cC!=="string"}),b6=cf(function(cC){cC.innerHTML="<div class='hidden e'></div><div class='hidden'></div>";if(!cC.getElementsByClassName||!cC.getElementsByClassName("e").length){return false}cC.lastChild.className="e";return cC.getElementsByClassName("e").length===2}),bu=cf(function(cD){cD.id=cu+0;cD.innerHTML="<a name='"+cu+"'></a><div name='"+cu+"'></div>";bG.insertBefore(cD,bG.firstChild);var cC=bD.getElementsByName&&bD.getElementsByName(cu).length===2+bD.getElementsByName(cu+0).length;bF=!bD.getElementById(cu);bG.removeChild(cD);return cC});try{bQ.call(bG.childNodes,0)[0].nodeType}catch(cy){bQ=function(cD){var cE,cC=[];for(;(cE=this[cD]);cD++){cC.push(cE)}return cC}}function cl(cF,cC,cH,cK){cH=cH||[];cC=cC||bD;var cI,cD,cJ,cE,cG=cC.nodeType;if(!cF||typeof cF!=="string"){return cH}if(cG!==1&&cG!==9){return[]}cJ=bR(cC);if(!cJ&&!cK){if((cI=cj.exec(cF))){if((cE=cI[1])){if(cG===9){cD=cC.getElementById(cE);if(cD&&cD.parentNode){if(cD.id===cE){cH.push(cD);return cH}}else{return cH}}else{if(cC.ownerDocument&&(cD=cC.ownerDocument.getElementById(cE))&&b5(cC,cD)&&cD.id===cE){cH.push(cD);return cH}}}else{if(cI[2]){cr.apply(cH,bQ.call(cC.getElementsByTagName(cF),0));return cH}else{if((cE=cI[3])&&b6&&cC.getElementsByClassName){cr.apply(cH,bQ.call(cC.getElementsByClassName(cE),0));return cH}}}}}return ct(cF.replace(co,"$1"),cC,cH,cK,cJ)}cl.matches=function(cD,cC){return cl(cD,null,null,cC)};cl.matchesSelector=function(cC,cD){return cl(cD,null,null,[cC]).length>0};function cd(cC){return function(cE){var cD=cE.nodeName.toLowerCase();return cD==="input"&&cE.type===cC}}function by(cC){return function(cE){var cD=cE.nodeName.toLowerCase();return(cD==="input"||cD==="button")&&cE.type===cC}}function ca(cC){return cw(function(cD){cD=+cD;return cw(function(cE,cI){var cG,cF=cC([],cE.length,cD),cH=cF.length;while(cH--){if(cE[(cG=cF[cH])]){cE[cG]=!(cI[cG]=cE[cG])}}})})}bv=cl.getText=function(cG){var cF,cD="",cE=0,cC=cG.nodeType;if(cC){if(cC===1||cC===9||cC===11){if(typeof cG.textContent==="string"){return cG.textContent}else{for(cG=cG.firstChild;cG;cG=cG.nextSibling){cD+=bv(cG)}}}else{if(cC===3||cC===4){return cG.nodeValue}}}else{for(;(cF=cG[cE]);cE++){cD+=bv(cF)}}return cD};bR=cl.isXML=function(cC){var cD=cC&&(cC.ownerDocument||cC).documentElement;return cD?cD.nodeName!=="HTML":false};b5=cl.contains=bG.contains?function(cD,cC){var cF=cD.nodeType===9?cD.documentElement:cD,cE=cC&&cC.parentNode;return cD===cE||!!(cE&&cE.nodeType===1&&cF.contains&&cF.contains(cE))}:bG.compareDocumentPosition?function(cD,cC){return cC&&!!(cD.compareDocumentPosition(cC)&16)}:function(cD,cC){while((cC=cC.parentNode)){if(cC===cD){return true}}return false};cl.attr=function(cE,cD){var cF,cC=bR(cE);if(!cC){cD=cD.toLowerCase()}if((cF=cg.attrHandle[cD])){return cF(cE)}if(cC||bV){return cE.getAttribute(cD)}cF=cE.getAttributeNode(cD);return cF?typeof cE[cD]==="boolean"?cE[cD]?cD:null:cF.specified?cF.value:null:null};cg=cl.selectors={cacheLength:50,createPseudo:cw,match:cb,attrHandle:b7?{}:{href:function(cC){return cC.getAttribute("href",2)},type:function(cC){return cC.getAttribute("type")}},find:{ID:bF?function(cF,cE,cD){if(typeof cE.getElementById!==bZ&&!cD){var cC=cE.getElementById(cF);return cC&&cC.parentNode?[cC]:[]}}:function(cF,cE,cD){if(typeof cE.getElementById!==bZ&&!cD){var cC=cE.getElementById(cF);return cC?cC.id===cF||typeof cC.getAttributeNode!==bZ&&cC.getAttributeNode("id").value===cF?[cC]:bM:[]}},TAG:bC?function(cC,cD){if(typeof cD.getElementsByTagName!==bZ){return cD.getElementsByTagName(cC)}}:function(cC,cG){var cF=cG.getElementsByTagName(cC);if(cC==="*"){var cH,cE=[],cD=0;for(;(cH=cF[cD]);cD++){if(cH.nodeType===1){cE.push(cH)}}return cE}return cF},NAME:bu&&function(cC,cD){if(typeof cD.getElementsByName!==bZ){return cD.getElementsByName(name)}},CLASS:b6&&function(cE,cD,cC){if(typeof cD.getElementsByClassName!==bZ&&!cC){return cD.getElementsByClassName(cE)}}},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(cC){cC[1]=cC[1].replace(bY,"");cC[3]=(cC[4]||cC[5]||"").replace(bY,"");if(cC[2]==="~="){cC[3]=" "+cC[3]+" "}return cC.slice(0,4)},CHILD:function(cC){cC[1]=cC[1].toLowerCase();if(cC[1]==="nth"){if(!cC[2]){cl.error(cC[0])}cC[3]=+(cC[3]?cC[4]+(cC[5]||1):2*(cC[2]==="even"||cC[2]==="odd"));cC[4]=+((cC[6]+cC[7])||cC[2]==="odd")}else{if(cC[2]){cl.error(cC[0])}}return cC},PSEUDO:function(cD){var cE,cC;if(cb.CHILD.test(cD[0])){return null}if(cD[3]){cD[2]=cD[3]}else{if((cE=cD[4])){if(ch.test(cE)&&(cC=bw(cE,true))&&(cC=cE.indexOf(")",cE.length-cC)-cE.length)){cE=cE.slice(0,cC);cD[0]=cD[0].slice(0,cC)}cD[2]=cE}}return cD.slice(0,3)}},filter:{ID:bF?function(cC){cC=cC.replace(bY,"");return function(cD){return cD.getAttribute("id")===cC}}:function(cC){cC=cC.replace(bY,"");return function(cE){var cD=typeof cE.getAttributeNode!==bZ&&cE.getAttributeNode("id");return cD&&cD.value===cC}},TAG:function(cC){if(cC==="*"){return function(){return true}}cC=cC.replace(bY,"").toLowerCase();return function(cD){return cD.nodeName&&cD.nodeName.toLowerCase()===cC}},CLASS:function(cC){var cD=cp[cu][cC+" "];return cD||(cD=new RegExp("(^|"+b3+")"+cC+"("+b3+"|$)"))&&cp(cC,function(cE){return cD.test(cE.className||(typeof cE.getAttribute!==bZ&&cE.getAttribute("class"))||"")})},ATTR:function(cE,cD,cC){return function(cH,cG){var cF=cl.attr(cH,cE);if(cF==null){return cD==="!="}if(!cD){return true}cF+="";return cD==="="?cF===cC:cD==="!="?cF!==cC:cD==="^="?cC&&cF.indexOf(cC)===0:cD==="*="?cC&&cF.indexOf(cC)>-1:cD==="$="?cC&&cF.substr(cF.length-cC.length)===cC:cD==="~="?(" "+cF+" ").indexOf(cC)>-1:cD==="|="?cF===cC||cF.substr(0,cC.length+1)===cC+"-":false}},CHILD:function(cC,cE,cF,cD){if(cC==="nth"){return function(cI){var cH,cJ,cG=cI.parentNode;if(cF===1&&cD===0){return true}if(cG){cJ=0;for(cH=cG.firstChild;cH;cH=cH.nextSibling){if(cH.nodeType===1){cJ++;if(cI===cH){break}}}}cJ-=cD;return cJ===cF||(cJ%cF===0&&cJ/cF>=0)}}return function(cH){var cG=cH;switch(cC){case"only":case"first":while((cG=cG.previousSibling)){if(cG.nodeType===1){return false}}if(cC==="first"){return true}cG=cH;case"last":while((cG=cG.nextSibling)){if(cG.nodeType===1){return false}}return true}}},PSEUDO:function(cF,cE){var cC,cD=cg.pseudos[cF]||cg.setFilters[cF.toLowerCase()]||cl.error("unsupported pseudo: "+cF);if(cD[cu]){return cD(cE)}if(cD.length>1){cC=[cF,cF,"",cE];return cg.setFilters.hasOwnProperty(cF.toLowerCase())?cw(function(cI,cK){var cH,cG=cD(cI,cE),cJ=cG.length;while(cJ--){cH=bT.call(cI,cG[cJ]);cI[cH]=!(cK[cH]=cG[cJ])}}):function(cG){return cD(cG,0,cC)}}return cD}},pseudos:{not:cw(function(cC){var cD=[],cE=[],cF=bI(cC.replace(co,"$1"));return cF[cu]?cw(function(cH,cM,cK,cI){var cL,cG=cF(cH,null,cI,[]),cJ=cH.length;while(cJ--){if((cL=cG[cJ])){cH[cJ]=!(cM[cJ]=cL)}}}):function(cI,cH,cG){cD[0]=cI;cF(cD,null,cG,cE);return !cE.pop()}}),has:cw(function(cC){return function(cD){return cl(cC,cD).length>0}}),contains:cw(function(cC){return function(cD){return(cD.textContent||cD.innerText||bv(cD)).indexOf(cC)>-1}}),enabled:function(cC){return cC.disabled===false},disabled:function(cC){return cC.disabled===true},checked:function(cC){var cD=cC.nodeName.toLowerCase();return(cD==="input"&&!!cC.checked)||(cD==="option"&&!!cC.selected)},selected:function(cC){if(cC.parentNode){cC.parentNode.selectedIndex}return cC.selected===true},parent:function(cC){return !cg.pseudos.empty(cC)},empty:function(cD){var cC;cD=cD.firstChild;while(cD){if(cD.nodeName>"@"||(cC=cD.nodeType)===3||cC===4){return false}cD=cD.nextSibling}return true},header:function(cC){return bX.test(cC.nodeName)},text:function(cE){var cD,cC;return cE.nodeName.toLowerCase()==="input"&&(cD=cE.type)==="text"&&((cC=cE.getAttribute("type"))==null||cC.toLowerCase()===cD)},radio:cd("radio"),checkbox:cd("checkbox"),file:cd("file"),password:cd("password"),image:cd("image"),submit:by("submit"),reset:by("reset"),button:function(cD){var cC=cD.nodeName.toLowerCase();return cC==="input"&&cD.type==="button"||cC==="button"},input:function(cC){return ci.test(cC.nodeName)},focus:function(cC){var cD=cC.ownerDocument;return cC===cD.activeElement&&(!cD.hasFocus||cD.hasFocus())&&!!(cC.type||cC.href||~cC.tabIndex)},active:function(cC){return cC===cC.ownerDocument.activeElement},first:ca(function(){return[0]}),last:ca(function(cC,cD){return[cD-1]}),eq:ca(function(cC,cE,cD){return[cD<0?cD+cE:cD]}),even:ca(function(cC,cE){for(var cD=0;cD<cE;cD+=2){cC.push(cD)}return cC}),odd:ca(function(cC,cE){for(var cD=1;cD<cE;cD+=2){cC.push(cD)}return cC}),lt:ca(function(cC,cF,cE){for(var cD=cE<0?cE+cF:cE;--cD>=0;){cC.push(cD)}return cC}),gt:ca(function(cC,cF,cE){for(var cD=cE<0?cE+cF:cE;++cD<cF;){cC.push(cD)}return cC})}};function bx(cD,cC,cE){if(cD===cC){return cE}var cF=cD.nextSibling;while(cF){if(cF===cC){return -1}cF=cF.nextSibling}return 1}bL=bG.compareDocumentPosition?function(cD,cC){if(cD===cC){bH=true;return 0}return(!cD.compareDocumentPosition||!cC.compareDocumentPosition?cD.compareDocumentPosition:cD.compareDocumentPosition(cC)&4)?-1:1}:function(cK,cJ){if(cK===cJ){bH=true;return 0}else{if(cK.sourceIndex&&cJ.sourceIndex){return cK.sourceIndex-cJ.sourceIndex}}var cH,cD,cE=[],cC=[],cG=cK.parentNode,cI=cJ.parentNode,cL=cG;if(cG===cI){return bx(cK,cJ)}else{if(!cG){return -1}else{if(!cI){return 1}}}while(cL){cE.unshift(cL);cL=cL.parentNode}cL=cI;while(cL){cC.unshift(cL);cL=cL.parentNode}cH=cE.length;cD=cC.length;for(var cF=0;cF<cH&&cF<cD;cF++){if(cE[cF]!==cC[cF]){return bx(cE[cF],cC[cF])}}return cF===cH?bx(cK,cC[cF],-1):bx(cE[cF],cJ,1)};[0,0].sort(bL);bE=!bH;cl.uniqueSort=function(cE){var cF,cG=[],cD=1,cC=0;bH=bE;cE.sort(bL);if(bH){for(;(cF=cE[cD]);cD++){if(cF===cE[cD-1]){cC=cG.push(cD)}}while(cC--){cE.splice(cG[cC],1)}}return cE};cl.error=function(cC){throw new Error("Syntax error, unrecognized expression: "+cC)};function bw(cG,cL){var cD,cH,cJ,cK,cI,cE,cC,cF=cq[cu][cG+" "];if(cF){return cL?0:cF.slice(0)}cI=cG;cE=[];cC=cg.preFilter;while(cI){if(!cD||(cH=bA.exec(cI))){if(cH){cI=cI.slice(cH[0].length)||cI}cE.push(cJ=[])}cD=false;if((cH=cc.exec(cI))){cJ.push(cD=new bz(cH.shift()));cI=cI.slice(cD.length);cD.type=cH[0].replace(co," ")}for(cK in cg.filter){if((cH=cb[cK].exec(cI))&&(!cC[cK]||(cH=cC[cK](cH)))){cJ.push(cD=new bz(cH.shift()));cI=cI.slice(cD.length);cD.type=cK;cD.matches=cH}}if(!cD){break}}return cL?cI.length:cI?cl.error(cG):cq(cG,cE).slice(0)}function b1(cG,cE,cF){var cC=cE.dir,cH=cF&&cE.dir==="parentNode",cD=bK++;return cE.first?function(cK,cJ,cI){while((cK=cK[cC])){if(cH||cK.nodeType===1){return cG(cK,cJ,cI)}}}:function(cL,cK,cJ){if(!cJ){var cI,cM=bW+" "+cD+" ",cN=cM+cs;while((cL=cL[cC])){if(cH||cL.nodeType===1){if((cI=cL[cu])===cN){return cL.sizset}else{if(typeof cI==="string"&&cI.indexOf(cM)===0){if(cL.sizset){return cL}}else{cL[cu]=cN;if(cG(cL,cK,cJ)){cL.sizset=true;return cL}cL.sizset=false}}}}}else{while((cL=cL[cC])){if(cH||cL.nodeType===1){if(cG(cL,cK,cJ)){return cL}}}}}}function bJ(cC){return cC.length>1?function(cG,cF,cD){var cE=cC.length;while(cE--){if(!cC[cE](cG,cF,cD)){return false}}return true}:cC[0]}function b0(cC,cD,cE,cF,cI){var cG,cL=[],cH=0,cJ=cC.length,cK=cD!=null;for(;cH<cJ;cH++){if((cG=cC[cH])){if(!cE||cE(cG,cF,cI)){cL.push(cG);if(cK){cD.push(cH)}}}}return cL}function cx(cE,cD,cG,cF,cH,cC){if(cF&&!cF[cu]){cF=cx(cF)}if(cH&&!cH[cu]){cH=cx(cH,cC)}return cw(function(cS,cP,cK,cR){var cU,cQ,cM,cL=[],cT=[],cJ=cP.length,cI=cS||bU(cD||"*",cK.nodeType?[cK]:cK,[]),cN=cE&&(cS||!cD)?b0(cI,cL,cE,cK,cR):cI,cO=cG?cH||(cS?cE:cJ||cF)?[]:cP:cN;if(cG){cG(cN,cO,cK,cR)}if(cF){cU=b0(cO,cT);cF(cU,[],cK,cR);cQ=cU.length;while(cQ--){if((cM=cU[cQ])){cO[cT[cQ]]=!(cN[cT[cQ]]=cM)}}}if(cS){if(cH||cE){if(cH){cU=[];cQ=cO.length;while(cQ--){if((cM=cO[cQ])){cU.push((cN[cQ]=cM))}}cH(null,(cO=[]),cU,cR)}cQ=cO.length;while(cQ--){if((cM=cO[cQ])&&(cU=cH?bT.call(cS,cM):cL[cQ])>-1){cS[cU]=!(cP[cU]=cM)}}}}else{cO=b0(cO===cP?cO.splice(cJ,cO.length):cO);if(cH){cH(null,cP,cO,cR)}else{cr.apply(cP,cO)}}})}function b2(cI){var cD,cG,cE,cH=cI.length,cL=cg.relative[cI[0].type],cM=cL||cg.relative[" "],cF=cL?1:0,cJ=b1(function(cN){return cN===cD},cM,true),cK=b1(function(cN){return bT.call(cD,cN)>-1},cM,true),cC=[function(cP,cO,cN){return(!cL&&(cN||cO!==ce))||((cD=cO).nodeType?cJ(cP,cO,cN):cK(cP,cO,cN))}];for(;cF<cH;cF++){if((cG=cg.relative[cI[cF].type])){cC=[b1(bJ(cC),cG)]}else{cG=cg.filter[cI[cF].type].apply(null,cI[cF].matches);if(cG[cu]){cE=++cF;for(;cE<cH;cE++){if(cg.relative[cI[cE].type]){break}}return cx(cF>1&&bJ(cC),cF>1&&cI.slice(0,cF-1).join("").replace(co,"$1"),cG,cF<cE&&b2(cI.slice(cF,cE)),cE<cH&&b2((cI=cI.slice(cE))),cE<cH&&cI.join(""))}cC.push(cG)}}return bJ(cC)}function bB(cF,cE){var cC=cE.length>0,cG=cF.length>0,cD=function(cQ,cK,cP,cO,cW){var cL,cM,cR,cV=[],cU=0,cN="0",cH=cQ&&[],cS=cW!=null,cT=ce,cJ=cQ||cG&&cg.find.TAG("*",cW&&cK.parentNode||cK),cI=(bW+=cT==null?1:Math.E);if(cS){ce=cK!==bD&&cK;cs=cD.el}for(;(cL=cJ[cN])!=null;cN++){if(cG&&cL){for(cM=0;(cR=cF[cM]);cM++){if(cR(cL,cK,cP)){cO.push(cL);break}}if(cS){bW=cI;cs=++cD.el}}if(cC){if((cL=!cR&&cL)){cU--}if(cQ){cH.push(cL)}}}cU+=cN;if(cC&&cN!==cU){for(cM=0;(cR=cE[cM]);cM++){cR(cH,cV,cK,cP)}if(cQ){if(cU>0){while(cN--){if(!(cH[cN]||cV[cN])){cV[cN]=b9.call(cO)}}}cV=b0(cV)}cr.apply(cO,cV);if(cS&&!cQ&&cV.length>0&&(cU+cE.length)>1){cl.uniqueSort(cO)}}if(cS){bW=cI;ce=cT}return cH};cD.el=0;return cC?cw(cD):cD}bI=cl.compile=function(cC,cH){var cE,cD=[],cG=[],cF=bS[cu][cC+" "];if(!cF){if(!cH){cH=bw(cC)}cE=cH.length;while(cE--){cF=b2(cH[cE]);if(cF[cu]){cD.push(cF)}else{cG.push(cF)}}cF=bS(cC,bB(cG,cD))}return cF};function bU(cD,cG,cF){var cE=0,cC=cG.length;for(;cE<cC;cE++){cl(cD,cG[cE],cF)}return cF}function ct(cE,cC,cG,cK,cJ){var cH,cN,cD,cM,cL,cI=bw(cE),cF=cI.length;if(!cK){if(cI.length===1){cN=cI[0]=cI[0].slice(0);if(cN.length>2&&(cD=cN[0]).type==="ID"&&cC.nodeType===9&&!cJ&&cg.relative[cN[1].type]){cC=cg.find.ID(cD.matches[0].replace(bY,""),cC,cJ)[0];if(!cC){return cG}cE=cE.slice(cN.shift().length)}for(cH=cb.POS.test(cE)?-1:cN.length-1;cH>=0;cH--){cD=cN[cH];if(cg.relative[(cM=cD.type)]){break}if((cL=cg.find[cM])){if((cK=cL(cD.matches[0].replace(bY,""),cm.test(cN[0].type)&&cC.parentNode||cC,cJ))){cN.splice(cH,1);cE=cK.length&&cN.join("");if(!cE){cr.apply(cG,bQ.call(cK,0));return cG}break}}}}}bI(cE,cI)(cK,cC,cJ,cG,cm.test(cE));return cG}if(bD.querySelectorAll){(function(){var cH,cI=ct,cG=/'|\\/g,cE=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,cD=[":focus"],cC=[":active"],cF=bG.matchesSelector||bG.mozMatchesSelector||bG.webkitMatchesSelector||bG.oMatchesSelector||bG.msMatchesSelector;cf(function(cJ){cJ.innerHTML="<select><option selected=''></option></select>";if(!cJ.querySelectorAll("[selected]").length){cD.push("\\["+b3+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)")}if(!cJ.querySelectorAll(":checked").length){cD.push(":checked")}});cf(function(cJ){cJ.innerHTML="<p test=''></p>";if(cJ.querySelectorAll("[test^='']").length){cD.push("[*^$]="+b3+"*(?:\"\"|'')")}cJ.innerHTML="<input type='hidden'/>";if(!cJ.querySelectorAll(":enabled").length){cD.push(":enabled",":disabled")}});cD=new RegExp(cD.join("|"));ct=function(cP,cK,cR,cU,cT){if(!cU&&!cT&&!cD.test(cP)){var cN,cS,cM=true,cJ=cu,cL=cK,cQ=cK.nodeType===9&&cP;if(cK.nodeType===1&&cK.nodeName.toLowerCase()!=="object"){cN=bw(cP);if((cM=cK.getAttribute("id"))){cJ=cM.replace(cG,"\\$&")}else{cK.setAttribute("id",cJ)}cJ="[id='"+cJ+"'] ";cS=cN.length;while(cS--){cN[cS]=cJ+cN[cS].join("")}cL=cm.test(cP)&&cK.parentNode||cK;cQ=cN.join(",")}if(cQ){try{cr.apply(cR,bQ.call(cL.querySelectorAll(cQ),0));return cR}catch(cO){}finally{if(!cM){cK.removeAttribute("id")}}}}return cI(cP,cK,cR,cU,cT)};if(cF){cf(function(cK){cH=cF.call(cK,"div");try{cF.call(cK,"[test!='']:sizzle");cC.push("!=",cB)}catch(cJ){}});cC=new RegExp(cC.join("|"));cl.matchesSelector=function(cK,cM){cM=cM.replace(cE,"='$1']");if(!bR(cK)&&!cC.test(cM)&&!cD.test(cM)){try{var cJ=cF.call(cK,cM);if(cJ||cH||cK.document&&cK.document.nodeType!==11){return cJ}}catch(cL){}}return cl(cM,null,null,[cK]).length>0}}})()}cg.pseudos.nth=cg.pseudos.eq;function bO(){}cg.filters=bO.prototype=cg.pseudos;cg.setFilters=new bO();cl.attr=C.attr;C.find=cl;C.expr=cl.selectors;C.expr[":"]=C.expr.pseudos;C.unique=cl.uniqueSort;C.text=cl.getText;C.isXMLDoc=cl.isXML;C.contains=cl.contains})(bd);var U=/Until$/,ag=/^(?:parents|prev(?:Until|All))/,bq=/^.[^:#\[\.,]*$/,aQ=C.expr.match.needsContext,ao={children:true,contents:true,next:true,prev:true};C.fn.extend({find:function(bu){var by,bv,bA,bB,bz,bx,bw=this;if(typeof bu!=="string"){return C(bu).filter(function(){for(by=0,bv=bw.length;by<bv;by++){if(C.contains(bw[by],this)){return true}}})}bx=this.pushStack("","find",bu);for(by=0,bv=this.length;by<bv;by++){bA=bx.length;C.find(bu,this[by],bx);if(by>0){for(bB=bA;bB<bx.length;bB++){for(bz=0;bz<bA;bz++){if(bx[bz]===bx[bB]){bx.splice(bB--,1);break}}}}}return bx},has:function(bx){var bw,bv=C(bx,this),bu=bv.length;return this.filter(function(){for(bw=0;bw<bu;bw++){if(C.contains(this,bv[bw])){return true}}})},not:function(bu){return this.pushStack(az(this,bu,false),"not",bu)},filter:function(bu){return this.pushStack(az(this,bu,true),"filter",bu)},is:function(bu){return !!bu&&(typeof bu==="string"?aQ.test(bu)?C(bu,this.context).index(this[0])>=0:C.filter(bu,this).length>0:this.filter(bu).length>0)},closest:function(by,bx){var bz,bw=0,bu=this.length,bv=[],bA=aQ.test(by)||typeof by!=="string"?C(by,bx||this.context):0;for(;bw<bu;bw++){bz=this[bw];while(bz&&bz.ownerDocument&&bz!==bx&&bz.nodeType!==11){if(bA?bA.index(bz)>-1:C.find.matchesSelector(bz,by)){bv.push(bz);break}bz=bz.parentNode}}bv=bv.length>1?C.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(bu){if(!bu){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof bu==="string"){return C.inArray(this[0],C(bu))}return C.inArray(bu.jqx?bu[0]:bu,this)},add:function(bu,bv){var bx=typeof bu==="string"?C(bu,bv):C.makeArray(bu&&bu.nodeType?[bu]:bu),bw=C.merge(this.get(),bx);return this.pushStack(x(bx[0])||x(bw[0])?bw:C.unique(bw))},addBack:function(bu){return this.add(bu==null?this.prevObject:this.prevObject.filter(bu))}});C.fn.andSelf=C.fn.addBack;function x(bu){return !bu||!bu.parentNode||bu.parentNode.nodeType===11}function aB(bv,bu){do{bv=bv[bu]}while(bv&&bv.nodeType!==1);return bv}C.each({parent:function(bv){var bu=bv.parentNode;return bu&&bu.nodeType!==11?bu:null},parents:function(bu){return C.dir(bu,"parentNode")},parentsUntil:function(bv,bu,bw){return C.dir(bv,"parentNode",bw)},next:function(bu){return aB(bu,"nextSibling")},prev:function(bu){return aB(bu,"previousSibling")},nextAll:function(bu){return C.dir(bu,"nextSibling")},prevAll:function(bu){return C.dir(bu,"previousSibling")},nextUntil:function(bv,bu,bw){return C.dir(bv,"nextSibling",bw)},prevUntil:function(bv,bu,bw){return C.dir(bv,"previousSibling",bw)},siblings:function(bu){return C.sibling((bu.parentNode||{}).firstChild,bu)},children:function(bu){return C.sibling(bu.firstChild)},contents:function(bu){return C.nodeName(bu,"iframe")?bu.contentDocument||bu.contentWindow.document:C.merge([],bu.childNodes)}},function(bu,bv){C.fn[bu]=function(by,bw){var bx=C.map(this,bv,by);if(!U.test(bu)){bw=by}if(bw&&typeof bw==="string"){bx=C.filter(bw,bx)}bx=this.length>1&&!ao[bu]?C.unique(bx):bx;if(this.length>1&&ag.test(bu)){bx=bx.reverse()}return this.pushStack(bx,bu,aD.call(arguments).join(","))}});C.extend({filter:function(bw,bu,bv){if(bv){bw=":not("+bw+")"}return bu.length===1?C.find.matchesSelector(bu[0],bw)?[bu[0]]:[]:C.find.matches(bw,bu)},dir:function(bw,bv,by){var bu=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===G||bx.nodeType!==1||!C(bx).is(by))){if(bx.nodeType===1){bu.push(bx)}bx=bx[bv]}return bu},sibling:function(bw,bv){var bu=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){bu.push(bw)}}return bu}});function az(bx,bw,bu){bw=bw||0;if(C.isFunction(bw)){return C.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===bu})}else{if(bw.nodeType){return C.grep(bx,function(bz,by){return(bz===bw)===bu})}else{if(typeof bw==="string"){var bv=C.grep(bx,function(by){return by.nodeType===1});if(bq.test(bw)){return C.filter(bw,bv,!bu)}else{bw=C.filter(bw,bv)}}}}return C.grep(bx,function(bz,by){return(C.inArray(bz,bw)>=0)===bu})}function a(bu){var bw=aJ.split("|"),bv=bu.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aJ="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",aa=/ JQXLite\d+="(?:null|\d+)"/g,ah=/^\s+/,L=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,c=/<([\w:]+)/,v=/<tbody/i,P=/<|&#?\w+;/,W=/<(?:script|style|link)/i,I=/<(?:script|object|embed|option|style)/i,ac=new RegExp("<(?:"+aJ+")[\\s/>]","i"),R=/^(?:checkbox|radio)$/,o=/checked\s*(?:[^=]|=\s*.checked.)/i,bp=/\/(java|ecma)script/i,aG=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,am={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},T=a(ak),bg=T.appendChild(ak.createElement("div"));am.optgroup=am.option;am.tbody=am.tfoot=am.colgroup=am.caption=am.thead;am.th=am.td;if(!C.support.htmlSerialize){am._default=[1,"X<div>","</div>"]}C.fn.extend({text:function(bu){return C.access(this,function(bv){return bv===G?C.text(this):this.empty().append((this[0]&&this[0].ownerDocument||ak).createTextNode(bv))},null,bu,arguments.length)},wrapAll:function(bu){if(C.isFunction(bu)){return this.each(function(bw){C(this).wrapAll(bu.call(this,bw))})}if(this[0]){var bv=C(bu,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(bu){if(C.isFunction(bu)){return this.each(function(bv){C(this).wrapInner(bu.call(this,bv))})}return this.each(function(){var bv=C(this),bw=bv.contents();if(bw.length){bw.wrapAll(bu)}else{bv.append(bu)}})},wrap:function(bu){var bv=C.isFunction(bu);return this.each(function(bw){C(this).wrapAll(bv?bu.call(this,bw):bu)})},unwrap:function(){return this.parent().each(function(){if(!C.nodeName(this,"body")){C(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(bu){if(this.nodeType===1||this.nodeType===11){this.appendChild(bu)}})},prepend:function(){return this.domManip(arguments,true,function(bu){if(this.nodeType===1||this.nodeType===11){this.insertBefore(bu,this.firstChild)}})},before:function(){if(!x(this[0])){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}if(arguments.length){var bu=C.clean(arguments);return this.pushStack(C.merge(bu,this),"before",this.selector)}},after:function(){if(!x(this[0])){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}if(arguments.length){var bu=C.clean(arguments);return this.pushStack(C.merge(this,bu),"after",this.selector)}},remove:function(bu,bx){var bw,bv=0;for(;(bw=this[bv])!=null;bv++){if(!bu||C.filter(bu,[bw]).length){if(!bx&&bw.nodeType===1){C.cleanData(bw.getElementsByTagName("*"));C.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){var bv,bu=0;for(;(bv=this[bu])!=null;bu++){if(bv.nodeType===1){C.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,bu){bv=bv==null?false:bv;bu=bu==null?bv:bu;return this.map(function(){return C.clone(this,bv,bu)})},html:function(bu){return C.access(this,function(by){var bx=this[0]||{},bw=0,bv=this.length;if(by===G){return bx.nodeType===1?bx.innerHTML.replace(aa,""):G}if(typeof by==="string"&&!W.test(by)&&(C.support.htmlSerialize||!ac.test(by))&&(C.support.leadingWhitespace||!ah.test(by))&&!am[(c.exec(by)||["",""])[1].toLowerCase()]){by=by.replace(L,"<$1></$2>");try{for(;bw<bv;bw++){bx=this[bw]||{};if(bx.nodeType===1){C.cleanData(bx.getElementsByTagName("*"));bx.innerHTML=by}}bx=0}catch(bz){}}if(bx){this.empty().append(by)}},null,bu,arguments.length)},replaceWith:function(bu){if(!x(this[0])){if(C.isFunction(bu)){return this.each(function(bx){var bw=C(this),bv=bw.html();bw.replaceWith(bu.call(this,bx,bv))})}if(typeof bu!=="string"){bu=C(bu).detach()}return this.each(function(){var bw=this.nextSibling,bv=this.parentNode;C(this).remove();if(bw){C(bw).before(bu)}else{C(bv).append(bu)}})}return this.length?this.pushStack(C(C.isFunction(bu)?bu():bu),"replaceWith",bu):this},detach:function(bu){return this.remove(bu,true)},domManip:function(bA,bE,bD){bA=[].concat.apply([],bA);var bw,by,bz,bC,bx=0,bB=bA[0],bv=[],bu=this.length;if(!C.support.checkClone&&bu>1&&typeof bB==="string"&&o.test(bB)){return this.each(function(){C(this).domManip(bA,bE,bD)})}if(C.isFunction(bB)){return this.each(function(bG){var bF=C(this);bA[0]=bB.call(this,bG,bE?bF.html():G);bF.domManip(bA,bE,bD)})}if(this[0]){bw=C.buildFragment(bA,this,bv);bz=bw.fragment;by=bz.firstChild;if(bz.childNodes.length===1){bz=by}if(by){bE=bE&&C.nodeName(by,"tr");for(bC=bw.cacheable||bu-1;bx<bu;bx++){bD.call(bE&&C.nodeName(this[bx],"table")?a3(this[bx],"tbody"):this[bx],bx===bC?bz:C.clone(bz,true,true))}}bz=by=null;if(bv.length){C.each(bv,function(bF,bG){if(bG.src){if(C.ajax){C.ajax({url:bG.src,type:"GET",dataType:"script",async:false,global:false,"throws":true})}else{C.error("no ajax")}}else{C.globalEval((bG.text||bG.textContent||bG.innerHTML||"").replace(aG,""))}if(bG.parentNode){bG.parentNode.removeChild(bG)}})}}return this}});function a3(bv,bu){return bv.getElementsByTagName(bu)[0]||bv.appendChild(bv.ownerDocument.createElement(bu))}function r(bB,bv){if(bv.nodeType!==1||!C.hasData(bB)){return}var by,bx,bu,bA=C._data(bB),bz=C._data(bv,bA),bw=bA.events;if(bw){delete bz.handle;bz.events={};for(by in bw){for(bx=0,bu=bw[by].length;bx<bu;bx++){C.event.add(bv,by,bw[by][bx])}}}if(bz.data){bz.data=C.extend({},bz.data)}}function ab(bv,bu){var bw;if(bu.nodeType!==1){return}if(bu.clearAttributes){bu.clearAttributes()}if(bu.mergeAttributes){bu.mergeAttributes(bv)}bw=bu.nodeName.toLowerCase();if(bw==="object"){if(bu.parentNode){bu.outerHTML=bv.outerHTML}if(C.support.html5Clone&&(bv.innerHTML&&!C.trim(bu.innerHTML))){bu.innerHTML=bv.innerHTML}}else{if(bw==="input"&&R.test(bv.type)){bu.defaultChecked=bu.checked=bv.checked;if(bu.value!==bv.value){bu.value=bv.value}}else{if(bw==="option"){bu.selected=bv.defaultSelected}else{if(bw==="input"||bw==="textarea"){bu.defaultValue=bv.defaultValue}else{if(bw==="script"&&bu.text!==bv.text){bu.text=bv.text}}}}}bu.removeAttribute(C.expando)}C.buildFragment=function(bx,by,bv){var bw,bu,bz,bA=bx[0];by=by||ak;by=!by.nodeType&&by[0]||by;by=by.ownerDocument||by;if(bx.length===1&&typeof bA==="string"&&bA.length<512&&by===ak&&bA.charAt(0)==="<"&&!I.test(bA)&&(C.support.checkClone||!o.test(bA))&&(C.support.html5Clone||!ac.test(bA))){bu=true;bw=C.fragments[bA];bz=bw!==G}if(!bw){bw=by.createDocumentFragment();C.clean(bx,by,bw,bv);if(bu){C.fragments[bA]=bz&&bw}}return{fragment:bw,cacheable:bu}};C.fragments={};C.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(bu,bv){C.fn[bu]=function(bw){var by,bA=0,bz=[],bC=C(bw),bx=bC.length,bB=this.length===1&&this[0].parentNode;if((bB==null||bB&&bB.nodeType===11&&bB.childNodes.length===1)&&bx===1){bC[bv](this[0]);return this}else{for(;bA<bx;bA++){by=(bA>0?this.clone(true):this).get();C(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,bu,bC.selector)}}});function bk(bu){if(typeof bu.getElementsByTagName!=="undefined"){return bu.getElementsByTagName("*")}else{if(typeof bu.querySelectorAll!=="undefined"){return bu.querySelectorAll("*")}else{return[]}}}function al(bu){if(R.test(bu.type)){bu.defaultChecked=bu.checked}}C.extend({clone:function(by,bA,bw){var bu,bv,bx,bz;if(C.support.html5Clone||C.isXMLDoc(by)||!ac.test("<"+by.nodeName+">")){bz=by.cloneNode(true)}else{bg.innerHTML=by.outerHTML;bg.removeChild(bz=bg.firstChild)}if((!C.support.noCloneEvent||!C.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!C.isXMLDoc(by)){ab(by,bz);bu=bk(by);bv=bk(bz);for(bx=0;bu[bx];++bx){if(bv[bx]){ab(bu[bx],bv[bx])}}}if(bA){r(by,bz);if(bw){bu=bk(by);bv=bk(bz);for(bx=0;bu[bx];++bx){r(bu[bx],bv[bx])}}}bu=bv=null;return bz},clean:function(bH,bw,bu,bx){var bE,bD,bG,bL,bA,bK,bB,by,bv,bF,bJ,bC,bz=bw===ak&&T,bI=[];if(!bw||typeof bw.createDocumentFragment==="undefined"){bw=ak}for(bE=0;(bG=bH[bE])!=null;bE++){if(typeof bG==="number"){bG+=""}if(!bG){continue}if(typeof bG==="string"){if(!P.test(bG)){bG=bw.createTextNode(bG)}else{bz=bz||a(bw);bB=bw.createElement("div");bz.appendChild(bB);bG=bG.replace(L,"<$1></$2>");bL=(c.exec(bG)||["",""])[1].toLowerCase();bA=am[bL]||am._default;bK=bA[0];bB.innerHTML=bA[1]+bG+bA[2];while(bK--){bB=bB.lastChild}if(!C.support.tbody){by=v.test(bG);bv=bL==="table"&&!by?bB.firstChild&&bB.firstChild.childNodes:bA[1]==="<table>"&&!by?bB.childNodes:[];for(bD=bv.length-1;bD>=0;--bD){if(C.nodeName(bv[bD],"tbody")&&!bv[bD].childNodes.length){bv[bD].parentNode.removeChild(bv[bD])}}}if(!C.support.leadingWhitespace&&ah.test(bG)){bB.insertBefore(bw.createTextNode(ah.exec(bG)[0]),bB.firstChild)}bG=bB.childNodes;bB.parentNode.removeChild(bB)}}if(bG.nodeType){bI.push(bG)}else{C.merge(bI,bG)}}if(bB){bG=bB=bz=null}if(!C.support.appendChecked){for(bE=0;(bG=bI[bE])!=null;bE++){if(C.nodeName(bG,"input")){al(bG)}else{if(typeof bG.getElementsByTagName!=="undefined"){C.grep(bG.getElementsByTagName("input"),al)}}}}if(bu){bJ=function(bM){if(!bM.type||bp.test(bM.type)){return bx?bx.push(bM.parentNode?bM.parentNode.removeChild(bM):bM):bu.appendChild(bM)}};for(bE=0;(bG=bI[bE])!=null;bE++){if(!(C.nodeName(bG,"script")&&bJ(bG))){bu.appendChild(bG);if(typeof bG.getElementsByTagName!=="undefined"){bC=C.grep(C.merge([],bG.getElementsByTagName("script")),bJ);bI.splice.apply(bI,[bE+1,0].concat(bC));bE+=bC.length}}}}return bI},cleanData:function(bv,bD){var by,bw,bx,bC,bz=0,bE=C.expando,bu=C.cache,bA=C.support.deleteExpando,bB=C.event.special;for(;(bx=bv[bz])!=null;bz++){if(bD||C.acceptData(bx)){bw=bx[bE];by=bw&&bu[bw];if(by){if(by.events){for(bC in by.events){if(bB[bC]){C.event.remove(bx,bC)}else{C.removeEvent(bx,bC,by.handle)}}}if(bu[bw]){delete bu[bw];if(bA){delete bx[bE]}else{if(bx.removeAttribute){bx.removeAttribute(bE)}else{bx[bE]=null}}C.deletedIds.push(bw)}}}}}});(function(){var bu,bv;C.uaMatch=function(bx){bx=bx.toLowerCase();var bw=/(chrome)[ \/]([\w.]+)/.exec(bx)||/(webkit)[ \/]([\w.]+)/.exec(bx)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(bx)||/(msie) ([\w.]+)/.exec(bx)||bx.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(bx)||[];return{browser:bw[1]||"",version:bw[2]||"0"}};bu=C.uaMatch(bt.userAgent);bv={};if(bu.browser){bv[bu.browser]=true;bv.version=bu.version}if(bv.chrome){bv.webkit=true}else{if(bv.webkit){bv.safari=true}}C.browser=bv;C.sub=function(){function bx(bz,bA){return new bx.fn.init(bz,bA)}C.extend(true,bx,this);bx.superclass=this;bx.fn=bx.prototype=this();bx.fn.constructor=bx;bx.sub=this.sub;bx.fn.init=function by(bz,bA){if(bA&&bA instanceof C&&!(bA instanceof bx)){bA=bx(bA)}return C.fn.init.call(this,bz,bA,bw)};bx.fn.init.prototype=bx.fn;var bw=bx(ak);return bx}})();var Q,bc,l,ad=/alpha\([^)]*\)/i,aj=/opacity=([^)]*)/,w=/^(top|right|bottom|left)$/,ai=/^(none|table(?!-c[ea]).+)/,av=/^margin/,i=new RegExp("^("+aE+")(.*)$","i"),aV=new RegExp("^("+aE+")(?!px)[a-z%]+$","i"),E=new RegExp("^([-+])=("+aE+")","i"),J={BODY:"block"},ba={position:"absolute",visibility:"hidden",display:"block"},aL={letterSpacing:0,fontWeight:400},D=["Top","Right","Bottom","Left"],O=["Webkit","O","Moz","ms"],be=C.fn.toggle;function a2(bx,bv){if(bv in bx){return bv}var by=bv.charAt(0).toUpperCase()+bv.slice(1),bu=bv,bw=O.length;while(bw--){bv=O[bw]+by;if(bv in bx){return bv}}return bu}function ap(bv,bu){bv=bu||bv;return C.css(bv,"display")==="none"||!C.contains(bv.ownerDocument,bv)}function bb(bz,bu){var by,bA,bv=[],bw=0,bx=bz.length;for(;bw<bx;bw++){by=bz[bw];if(!by.style){continue}bv[bw]=C._data(by,"olddisplay");if(bu){if(!bv[bw]&&by.style.display==="none"){by.style.display=""}if(by.style.display===""&&ap(by)){bv[bw]=C._data(by,"olddisplay",aN(by.nodeName))}}else{bA=Q(by,"display");if(!bv[bw]&&bA!=="none"){C._data(by,"olddisplay",bA)}}}for(bw=0;bw<bx;bw++){by=bz[bw];if(!by.style){continue}if(!bu||by.style.display==="none"||by.style.display===""){by.style.display=bu?bv[bw]||"":"none"}}return bz}C.fn.extend({css:function(bu,bv){return C.access(this,function(bx,bw,by){return by!==G?C.style(bx,bw,by):C.css(bx,bw)},bu,bv,arguments.length>1)},show:function(){return bb(this,true)},hide:function(){return bb(this)},toggle:function(bw,bv){var bu=typeof bw==="boolean";if(C.isFunction(bw)&&C.isFunction(bv)){return be.apply(this,arguments)}return this.each(function(){if(bu?bw:ap(this)){C(this).show()}else{C(this).hide()}})}});C.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var bu=Q(bw,"opacity");return bu===""?"1":bu}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":C.support.cssFloat?"cssFloat":"styleFloat"},style:function(bw,bv,bC,bx){if(!bw||bw.nodeType===3||bw.nodeType===8||!bw.style){return}var bA,bB,bD,by=C.camelCase(bv),bu=bw.style;bv=C.cssProps[by]||(C.cssProps[by]=a2(bu,by));bD=C.cssHooks[bv]||C.cssHooks[by];if(bC!==G){bB=typeof bC;if(bB==="string"&&(bA=E.exec(bC))){bC=(bA[1]+1)*bA[2]+parseFloat(C.css(bw,bv));bB="number"}if(bC==null||bB==="number"&&isNaN(bC)){return}if(bB==="number"&&!C.cssNumber[by]){bC+="px"}if(!bD||!("set" in bD)||(bC=bD.set(bw,bC,bx))!==G){try{bu[bv]=bC}catch(bz){}}}else{if(bD&&"get" in bD&&(bA=bD.get(bw,false,bx))!==G){return bA}return bu[bv]}},css:function(bA,by,bz,bv){var bB,bx,bu,bw=C.camelCase(by);by=C.cssProps[bw]||(C.cssProps[bw]=a2(bA.style,bw));bu=C.cssHooks[by]||C.cssHooks[bw];if(bu&&"get" in bu){bB=bu.get(bA,true,bv)}if(bB===G){bB=Q(bA,by)}if(bB==="normal"&&by in aL){bB=aL[by]}if(bz||bv!==G){bx=parseFloat(bB);return bz||C.isNumeric(bx)?bx||0:bB}return bB},swap:function(by,bx,bz){var bw,bv,bu={};for(bv in bx){bu[bv]=by.style[bv];by.style[bv]=bx[bv]}bw=bz.call(by);for(bv in bx){by.style[bv]=bu[bv]}return bw}});if(bd.getComputedStyle){Q=function(bB,bv){var bu,by,bx,bA,bz=bd.getComputedStyle(bB,null),bw=bB.style;if(bz){bu=bz.getPropertyValue(bv)||bz[bv];if(bu===""&&!C.contains(bB.ownerDocument,bB)){bu=C.style(bB,bv)}if(aV.test(bu)&&av.test(bv)){by=bw.width;bx=bw.minWidth;bA=bw.maxWidth;bw.minWidth=bw.maxWidth=bw.width=bu;bu=bz.width;bw.width=by;bw.minWidth=bx;bw.maxWidth=bA}}return bu}}else{if(ak.documentElement.currentStyle){Q=function(by,bw){var bz,bu,bv=by.currentStyle&&by.currentStyle[bw],bx=by.style;if(bv==null&&bx&&bx[bw]){bv=bx[bw]}if(aV.test(bv)&&!w.test(bw)){bz=bx.left;bu=by.runtimeStyle&&by.runtimeStyle.left;if(bu){by.runtimeStyle.left=by.currentStyle.left}bx.left=bw==="fontSize"?"1em":bv;bv=bx.pixelLeft+"px";bx.left=bz;if(bu){by.runtimeStyle.left=bu}}return bv===""?"auto":bv}}}function aO(bu,bw,bx){var bv=i.exec(bw);return bv?Math.max(0,bv[1]-(bx||0))+(bv[2]||"px"):bw}function aZ(bx,bv,bu,bz){var bw=bu===(bz?"border":"content")?4:bv==="width"?1:0,by=0;for(;bw<4;bw+=2){if(bu==="margin"){by+=C.css(bx,bu+D[bw],true)}if(bz){if(bu==="content"){by-=parseFloat(Q(bx,"padding"+D[bw]))||0}if(bu!=="margin"){by-=parseFloat(Q(bx,"border"+D[bw]+"Width"))||0}}else{by+=parseFloat(Q(bx,"padding"+D[bw]))||0;if(bu!=="padding"){by+=parseFloat(Q(bx,"border"+D[bw]+"Width"))||0}}}return by}function Y(bx,bv,bu){var by=bv==="width"?bx.offsetWidth:bx.offsetHeight,bw=true,bz=C.support.boxSizing&&C.css(bx,"boxSizing")==="border-box";if(by<=0||by==null){by=Q(bx,bv);if(by<0||by==null){by=bx.style[bv]}if(aV.test(by)){return by}bw=bz&&(C.support.boxSizingReliable||by===bx.style[bv]);by=parseFloat(by)||0}return(by+aZ(bx,bv,bu||(bz?"border":"content"),bw))+"px"}function aN(bw){if(J[bw]){return J[bw]}var bu=C("<"+bw+">").appendTo(ak.body),bv=bu.css("display");bu.remove();if(bv==="none"||bv===""){bc=ak.body.appendChild(bc||C.extend(ak.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!l||!bc.createElement){l=(bc.contentWindow||bc.contentDocument).document;l.write("<!doctype html><html><body>");l.close()}bu=l.body.appendChild(l.createElement(bw));bv=Q(bu,"display");ak.body.removeChild(bc)}J[bw]=bv;return bv}C.each(["height","width"],function(bv,bu){C.cssHooks[bu]={get:function(by,bx,bw){if(bx){if(by.offsetWidth===0&&ai.test(Q(by,"display"))){return C.swap(by,ba,function(){return Y(by,bu,bw)})}else{return Y(by,bu,bw)}}},set:function(bx,by,bw){return aO(bx,by,bw?aZ(bx,bu,bw,C.support.boxSizing&&C.css(bx,"boxSizing")==="border-box"):0)}}});if(!C.support.opacity){C.cssHooks.opacity={get:function(bv,bu){return aj.test((bu&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(0.01*parseFloat(RegExp.$1))+"":bu?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,bu=C.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&C.trim(bw.replace(ad,""))===""&&bx.removeAttribute){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ad.test(bw)?bw.replace(ad,bu):bw+" "+bu}}}C(function(){if(!C.support.reliableMarginRight){C.cssHooks.marginRight={get:function(bv,bu){return C.swap(bv,{display:"inline-block"},function(){if(bu){return Q(bv,"marginRight")}})}}}if(!C.support.pixelPosition&&C.fn.position){C.each(["top","left"],function(bu,bv){C.cssHooks[bv]={get:function(by,bx){if(bx){var bw=Q(by,bv);return aV.test(bw)?C(by).position()[bv]+"px":bw}}}})}});if(C.expr&&C.expr.filters){C.expr.filters.hidden=function(bu){return(bu.offsetWidth===0&&bu.offsetHeight===0)||(!C.support.reliableHiddenOffsets&&((bu.style&&bu.style.display)||Q(bu,"display"))==="none")};C.expr.filters.visible=function(bu){return !C.expr.filters.hidden(bu)}}C.each({margin:"",padding:"",border:"Width"},function(bu,bv){C.cssHooks[bu+bv]={expand:function(by){var bx,bz=typeof by==="string"?by.split(" "):[by],bw={};for(bx=0;bx<4;bx++){bw[bu+D[bx]+bv]=bz[bx]||bz[bx-2]||bz[0]}return bw}};if(!av.test(bu)){C.cssHooks[bu+bv].set=aO}});var g=/%20/g,af=/\[\]$/,br=/\r?\n/g,aU=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,p=/^(?:select|textarea)/i;C.fn.extend({serialize:function(){return C.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?C.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||p.test(this.nodeName)||aU.test(this.type))}).map(function(bu,bv){var bw=C(this).val();return bw==null?null:C.isArray(bw)?C.map(bw,function(by,bx){return{name:bv.name,value:by.replace(br,"\r\n")}}):{name:bv.name,value:bw.replace(br,"\r\n")}}).get()}});C.param=function(bu,bw){var bx,bv=[],by=function(bz,bA){bA=C.isFunction(bA)?bA():(bA==null?"":bA);bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===G){bw=C.ajaxSettings&&C.ajaxSettings.traditional}if(C.isArray(bu)||(bu.jqx&&!C.isPlainObject(bu))){C.each(bu,function(){by(this.name,this.value)})}else{for(bx in bu){s(bx,bu[bx],bw,by)}}return bv.join("&").replace(g,"+")};function s(bw,by,bv,bx){var bu;if(C.isArray(by)){C.each(by,function(bA,bz){if(bv||af.test(bw)){bx(bw,bz)}else{s(bw+"["+(typeof bz==="object"?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&C.type(by)==="object"){for(bu in by){s(bw+"["+bu+"]",by[bu],bv,bx)}}else{bx(bw,by)}}}if(C.support.ajax){C.ajaxTransport(function(bu){if(!bu.crossDomain||C.support.cors){var bv;return{send:function(bB,bw){var bz,by,bA=bu.xhr();if(bu.username){bA.open(bu.type,bu.url,bu.async,bu.username,bu.password)}else{bA.open(bu.type,bu.url,bu.async)}if(bu.xhrFields){for(by in bu.xhrFields){bA[by]=bu.xhrFields[by]}}if(bu.mimeType&&bA.overrideMimeType){bA.overrideMimeType(bu.mimeType)}if(!bu.crossDomain&&!bB["X-Requested-With"]){bB["X-Requested-With"]="XMLHttpRequest"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((bu.hasContent&&bu.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=G;if(bz){bA.onreadystatechange=C.noop;if(xhrOnUnloadAbort){delete xhrCallbacks[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}try{bI.text=bA.responseText}catch(bJ){}try{bD=bA.statusText}catch(bJ){bD=""}if(!bF&&bu.isLocal&&!bu.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!bu.async){bv()}else{if(bA.readyState===4){setTimeout(bv,0)}else{bz=++xhrId;if(xhrOnUnloadAbort){if(!xhrCallbacks){xhrCallbacks={};C(bd).unload(xhrOnUnloadAbort)}xhrCallbacks[bz]=bv}bA.onreadystatechange=bv}}},abort:function(){if(bv){bv(0,1)}}}}})}var a6,a1,ar=/^(?:toggle|show|hide)$/,aM=new RegExp("^(?:([-+])=|)("+aE+")([a-z%]*)$","i"),a7=/queueHooks$/,k=[bm],H={"*":[function(bu,bB){var bx,bC,bD=this.createTween(bu,bB),by=aM.exec(bB),bz=bD.cur(),bv=+bz||0,bw=1,bA=20;if(by){bx=+by[2];bC=by[3]||(C.cssNumber[bu]?"":"px");if(bC!=="px"&&bv){bv=C.css(bD.elem,bu,true)||bx||1;do{bw=bw||".5";bv=bv/bw;C.style(bD.elem,bu,bv+bC)}while(bw!==(bw=bD.cur()/bz)&&bw!==1&&--bA)}bD.unit=bC;bD.start=bv;bD.end=by[1]?bv+(by[1]+1)*bx:bx}return bD}]};function bl(){setTimeout(function(){a6=G},0);return(a6=C.now())}function Z(bv,bu){C.each(bu,function(bA,by){var bz=(H[bA]||[]).concat(H["*"]),bw=0,bx=bz.length;for(;bw<bx;bw++){if(bz[bw].call(bv,bA,by)){return}}})}function bj(bw,bA,bD){var bE,bz=0,bu=0,bv=k.length,bC=C.Deferred().always(function(){delete by.elem}),by=function(){var bK=a6||bl(),bH=Math.max(0,bx.startTime+bx.duration-bK),bF=bH/bx.duration||0,bJ=1-bF,bG=0,bI=bx.tweens.length;for(;bG<bI;bG++){bx.tweens[bG].run(bJ)}bC.notifyWith(bw,[bx,bJ,bH]);if(bJ<1&&bI){return bH}else{bC.resolveWith(bw,[bx]);return false}},bx=bC.promise({elem:bw,props:C.extend({},bA),opts:C.extend(true,{specialEasing:{}},bD),originalProperties:bA,originalOptions:bD,startTime:a6||bl(),duration:bD.duration,tweens:[],createTween:function(bI,bF,bH){var bG=C.Tween(bw,bx.opts,bI,bF,bx.opts.specialEasing[bI]||bx.opts.easing);bx.tweens.push(bG);return bG},stop:function(bG){var bF=0,bH=bG?bx.tweens.length:0;for(;bF<bH;bF++){bx.tweens[bF].run(1)}if(bG){bC.resolveWith(bw,[bx,bG])}else{bC.rejectWith(bw,[bx,bG])}return this}}),bB=bx.props;aW(bB,bx.opts.specialEasing);for(;bz<bv;bz++){bE=k[bz].call(bx,bw,bB,bx.opts);if(bE){return bE}}Z(bx,bB);if(C.isFunction(bx.opts.start)){bx.opts.start.call(bw,bx)}C.fx.timer(C.extend(by,{anim:bx,queue:bx.opts.queue,elem:bw}));return bx.progress(bx.opts.progress).done(bx.opts.done,bx.opts.complete).fail(bx.opts.fail).always(bx.opts.always)}function aW(bx,bz){var bw,bv,bA,by,bu;for(bw in bx){bv=C.camelCase(bw);bA=bz[bv];by=bx[bw];if(C.isArray(by)){bA=by[1];by=bx[bw]=by[0]}if(bw!==bv){bx[bv]=by;delete bx[bw]}bu=C.cssHooks[bv];if(bu&&"expand" in bu){by=bu.expand(by);delete bx[bv];for(bw in by){if(!(bw in bx)){bx[bw]=by[bw];bz[bw]=bA}}}else{bz[bv]=bA}}}C.Animation=C.extend(bj,{tweener:function(bv,by){if(C.isFunction(bv)){by=bv;bv=["*"]}else{bv=bv.split(" ")}var bx,bu=0,bw=bv.length;for(;bu<bw;bu++){bx=bv[bu];H[bx]=H[bx]||[];H[bx].unshift(by)}},prefilter:function(bv,bu){if(bu){k.unshift(bv)}else{k.push(bv)}}});function bm(by,bE,bu){var bD,bw,bG,bx,bK,bA,bJ,bI,bH,bz=this,bv=by.style,bF={},bC=[],bB=by.nodeType&&ap(by);if(!bu.queue){bI=C._queueHooks(by,"fx");if(bI.unqueued==null){bI.unqueued=0;bH=bI.empty.fire;bI.empty.fire=function(){if(!bI.unqueued){bH()}}}bI.unqueued++;bz.always(function(){bz.always(function(){bI.unqueued--;if(!C.queue(by,"fx").length){bI.empty.fire()}})})}if(by.nodeType===1&&("height" in bE||"width" in bE)){bu.overflow=[bv.overflow,bv.overflowX,bv.overflowY];if(C.css(by,"display")==="inline"&&C.css(by,"float")==="none"){if(!C.support.inlineBlockNeedsLayout||aN(by.nodeName)==="inline"){bv.display="inline-block"}else{bv.zoom=1}}}if(bu.overflow){bv.overflow="hidden";if(!C.support.shrinkWrapBlocks){bz.done(function(){bv.overflow=bu.overflow[0];bv.overflowX=bu.overflow[1];bv.overflowY=bu.overflow[2]})}}for(bD in bE){bG=bE[bD];if(ar.exec(bG)){delete bE[bD];bA=bA||bG==="toggle";if(bG===(bB?"hide":"show")){continue}bC.push(bD)}}bx=bC.length;if(bx){bK=C._data(by,"fxshow")||C._data(by,"fxshow",{});if("hidden" in bK){bB=bK.hidden}if(bA){bK.hidden=!bB}if(bB){C(by).show()}else{bz.done(function(){C(by).hide()})}bz.done(function(){var bL;C.removeData(by,"fxshow",true);for(bL in bF){C.style(by,bL,bF[bL])}});for(bD=0;bD<bx;bD++){bw=bC[bD];bJ=bz.createTween(bw,bB?bK[bw]:0);bF[bw]=bK[bw]||C.style(by,bw);if(!(bw in bK)){bK[bw]=bJ.start;if(bB){bJ.end=bJ.start;bJ.start=bw==="width"||bw==="height"?1:0}}}}}function u(bw,bv,by,bu,bx){return new u.prototype.init(bw,bv,by,bu,bx)}C.Tween=u;u.prototype={constructor:u,init:function(bx,bv,bz,bu,by,bw){this.elem=bx;this.prop=bz;this.easing=by||"swing";this.options=bv;this.start=this.now=this.cur();this.end=bu;this.unit=bw||(C.cssNumber[bz]?"":"px")},cur:function(){var bu=u.propHooks[this.prop];return bu&&bu.get?bu.get(this):u.propHooks._default.get(this)},run:function(bw){var bv,bu=u.propHooks[this.prop];if(this.options.duration){this.pos=bv=C.easing[this.easing](bw,this.options.duration*bw,0,1,this.options.duration)}else{this.pos=bv=bw}this.now=(this.end-this.start)*bv+this.start;if(this.options.step){this.options.step.call(this.elem,this.now,this)}if(bu&&bu.set){bu.set(this)}else{u.propHooks._default.set(this)}return this}};u.prototype.init.prototype=u.prototype;u.propHooks={_default:{get:function(bv){var bu;if(bv.elem[bv.prop]!=null&&(!bv.elem.style||bv.elem.style[bv.prop]==null)){return bv.elem[bv.prop]}bu=C.css(bv.elem,bv.prop,false,"");return !bu||bu==="auto"?0:bu},set:function(bu){if(C.fx.step[bu.prop]){C.fx.step[bu.prop](bu)}else{if(bu.elem.style&&(bu.elem.style[C.cssProps[bu.prop]]!=null||C.cssHooks[bu.prop])){C.style(bu.elem,bu.prop,bu.now+bu.unit)}else{bu.elem[bu.prop]=bu.now}}}}};u.propHooks.scrollTop=u.propHooks.scrollLeft={set:function(bu){if(bu.elem.nodeType&&bu.elem.parentNode){bu.elem[bu.prop]=bu.now}}};C.each(["toggle","show","hide"],function(bv,bu){var bw=C.fn[bu];C.fn[bu]=function(bx,bz,by){return bx==null||typeof bx==="boolean"||(!bv&&C.isFunction(bx)&&C.isFunction(bz))?bw.apply(this,arguments):this.animate(aY(bu,true),bx,bz,by)}});C.fn.extend({fadeTo:function(bu,bx,bw,bv){return this.filter(ap).css("opacity",0).show().end().animate({opacity:bx},bu,bw,bv)},animate:function(bA,bx,bz,by){var bw=C.isEmptyObject(bA),bu=C.speed(bx,bz,by),bv=function(){var bB=bj(this,C.extend({},bA),bu);if(bw){bB.stop(true)}};return bw||bu.queue===false?this.each(bv):this.queue(bu.queue,bv)},stop:function(bw,bv,bu){var bx=function(by){var bz=by.stop;delete by.stop;bz(bu)};if(typeof bw!=="string"){bu=bv;bv=bw;bw=G}if(bv&&bw!==false){this.queue(bw||"fx",[])}return this.each(function(){var bB=true,by=bw!=null&&bw+"queueHooks",bA=C.timers,bz=C._data(this);if(by){if(bz[by]&&bz[by].stop){bx(bz[by])}}else{for(by in bz){if(bz[by]&&bz[by].stop&&a7.test(by)){bx(bz[by])}}}for(by=bA.length;by--;){if(bA[by].elem===this&&(bw==null||bA[by].queue===bw)){bA[by].anim.stop(bu);bB=false;bA.splice(by,1)}}if(bB||!bu){C.dequeue(this,bw)}})}});function aY(bw,by){var bx,bu={height:bw},bv=0;by=by?1:0;for(;bv<4;bv+=2-by){bx=D[bv];bu["margin"+bx]=bu["padding"+bx]=bw}if(by){bu.opacity=bu.width=bw}return bu}C.each({slideDown:aY("show"),slideUp:aY("hide"),slideToggle:aY("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(bu,bv){C.fn[bu]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});C.speed=function(bw,bx,bv){var bu=bw&&typeof bw==="object"?C.extend({},bw):{complete:bv||!bv&&bx||C.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!C.isFunction(bx)&&bx};bu.duration=C.fx.off?0:typeof bu.duration==="number"?bu.duration:bu.duration in C.fx.speeds?C.fx.speeds[bu.duration]:C.fx.speeds._default;if(bu.queue==null||bu.queue===true){bu.queue="fx"}bu.old=bu.complete;bu.complete=function(){if(C.isFunction(bu.old)){bu.old.call(this)}if(bu.queue){C.dequeue(this,bu.queue)}};return bu};C.easing={linear:function(bu){return bu},swing:function(bu){return 0.5-Math.cos(bu*Math.PI)/2}};C.timers=[];C.fx=u.prototype.init;C.fx.tick=function(){var bw,bv=C.timers,bu=0;a6=C.now();for(;bu<bv.length;bu++){bw=bv[bu];if(!bw()&&bv[bu]===bw){bv.splice(bu--,1)}}if(!bv.length){C.fx.stop()}a6=G};C.fx.timer=function(bu){if(bu()&&C.timers.push(bu)&&!a1){a1=setInterval(C.fx.tick,C.fx.interval)}};C.fx.interval=13;C.fx.stop=function(){clearInterval(a1);a1=null};C.fx.speeds={slow:600,fast:200,_default:400};C.fx.step={};if(C.expr&&C.expr.filters){C.expr.filters.animated=function(bu){return C.grep(C.timers,function(bv){return bu===bv.elem}).length}}var V=/^(?:body|html)$/i;C.fn.offset=function(bE){if(arguments.length){return bE===G?this:this.each(function(bF){C.offset.setOffset(this,bE,bF)})}var bv,bA,bB,by,bC,bu,bx,bz={top:0,left:0},bw=this[0],bD=bw&&bw.ownerDocument;if(!bD){return}if((bA=bD.body)===bw){return C.offset.bodyOffset(bw)}bv=bD.documentElement;if(!C.contains(bv,bw)){return bz}if(typeof bw.getBoundingClientRect!=="undefined"){bz=bw.getBoundingClientRect()}bB=aC(bD);by=bv.clientTop||bA.clientTop||0;bC=bv.clientLeft||bA.clientLeft||0;bu=bB.pageYOffset||bv.scrollTop;bx=bB.pageXOffset||bv.scrollLeft;return{top:bz.top+bu-by,left:bz.left+bx-bC}};C.offset={bodyOffset:function(bu){var bw=bu.offsetTop,bv=bu.offsetLeft;if(C.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(C.css(bu,"marginTop"))||0;bv+=parseFloat(C.css(bu,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=C.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=C(bx),bv=bz.offset(),bu=C.css(bx,"top"),bE=C.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&C.inArray("auto",[bu,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(bu)||0;by=parseFloat(bE)||0}if(C.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};C.fn.extend({isRendered:function(){var bv=this;var bu=this[0];if(bu.parentNode==null||(bu.offsetWidth===0||bu.offsetHeight===0)){return false}return true},getSizeFromStyle:function(){var by=this;var bx=null;var bu=null;var bw=this[0];var bv;if(bw.style.width){bx=bw.style.width}if(bw.style.height){bu=bw.style.height}if(bd.getComputedStyle){bv=getComputedStyle(bw,null)}else{bv=bw.currentStyle}if(bv){if(bv.width){bx=bv.width}if(bv.height){bu=bv.height}}if(bx==="0px"){bx=0}if(bu==="0px"){bu=0}if(bx===null){bx=0}if(bu===null){bu=0}return{width:bx,height:bu}},initAnimate:function(){},sizeStyleChanged:function(bx){var bw=this;var by;var bu=function(bz){var bA=by;if(bz&&bz[0]&&bz[0].attributeName==="style"&&bz[0].type==="attributes"){if(bA.element.offsetWidth!==bA.offsetWidth||bA.element.offsetHeight!==bA.offsetHeight){bA.offsetWidth=bA.element.offsetWidth;bA.offsetHeight=bA.element.offsetHeight;if(bw.isRendered()){bA.callback()}}}};by={element:bw[0],offsetWidth:bw[0].offsetWidth,offsetHeight:bw[0].offsetHeight,callback:bx};try{if(!bw.elementStyleObserver){bw.elementStyleObserver=new MutationObserver(bu);bw.elementStyleObserver.observe(bw[0],{attributes:true,childList:false,characterData:false})}}catch(bv){}},position:function(){if(!this[0]){return}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),bu=V.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(C.css(bw,"marginTop"))||0;bx.left-=parseFloat(C.css(bw,"marginLeft"))||0;bu.top+=parseFloat(C.css(bv[0],"borderTopWidth"))||0;bu.left+=parseFloat(C.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-bu.top,left:bx.left-bu.left}},offsetParent:function(){return this.map(function(){var bu=this.offsetParent||ak.body;while(bu&&(!V.test(bu.nodeName)&&C.css(bu,"position")==="static")){bu=bu.offsetParent}return bu||ak.body})}});C.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(bw,bv){var bu=/Y/.test(bv);C.fn[bw]=function(bx){return C.access(this,function(by,bB,bA){var bz=aC(by);if(bA===G){return bz?(bv in bz)?bz[bv]:bz.document.documentElement[bB]:by[bB]}if(bz){bz.scrollTo(!bu?bA:C(bz).scrollLeft(),bu?bA:C(bz).scrollTop())}else{by[bB]=bA}},bw,bx,arguments.length,null)}});function aC(bu){return C.isWindow(bu)?bu:bu.nodeType===9?bu.defaultView||bu.parentWindow:false}C.each({Height:"height",Width:"width"},function(bu,bv){C.each({padding:"inner"+bu,content:bv,"":"outer"+bu},function(bw,bx){C.fn[bx]=function(bB,bA){var bz=arguments.length&&(bw||typeof bB!=="boolean"),by=bw||(bB===true||bA===true?"margin":"border");return C.access(this,function(bD,bC,bE){var bF;if(C.isWindow(bD)){return bD.document.documentElement["client"+bu]}if(bD.nodeType===9){bF=bD.documentElement;return Math.max(bD.body["scroll"+bu],bF["scroll"+bu],bD.body["offset"+bu],bF["offset"+bu],bF["client"+bu])}return bE===G?C.css(bD,bC,bE,by):C.style(bD,bC,bE,by)},bv,bz?bB:G,bz,null)}})});bd.JQXLite=bd.jqxHelper=C;if(typeof define==="function"&&define.amd&&define.amd.JQXLite){define("jqx",[],function(){return C})}})(window)}(function(a){if(a.jQuery){a.minQuery=a.JQXLite=a.jQuery;return}if(!a.$){a.$=a.minQuery=a.JQXLite}else{a.minQuery=a.JQXLite=a.$}})(window);JQXLite.generateID=function(){var a=function(){return(((1+Math.random())*65536)|0).toString(16).substring(1)};var b="";do{b="jqx"+a()+a()+a()}while($("#"+b).length>0);return b};var jqxBaseFramework=window.jqxBaseFramework=window.minQuery||window.jQuery;(function(b){b.jqx=b.jqx||{};window.jqx=b.jqx;var a={createInstance:function(c,e,g){if(e=="jqxDataAdapter"){var f=g[0];var d=g[1]||{};return new b.jqx.dataAdapter(f,d)}b(c)[e](g||{});return b(c)[e]("getInstance")}};window.jqwidgets=a;b.jqx.define=function(c,d,e){c[d]=function(){if(this.baseType){this.base=new c[this.baseType]();this.base.defineInstance()}this.defineInstance();this.metaInfo()};c[d].prototype.defineInstance=function(){};c[d].prototype.metaInfo=function(){};c[d].prototype.base=null;c[d].prototype.baseType=undefined;if(e&&c[e]){c[d].prototype.baseType=e}};b.jqx.invoke=function(f,e){if(e.length==0){return}var g=typeof(e)==Array||e.length>0?e[0]:e;var d=typeof(e)==Array||e.length>1?Array.prototype.slice.call(e,1):b({}).toArray();while(f[g]==undefined&&f.base!=null){if(f[g]!=undefined&&b.isFunction(f[g])){return f[g].apply(f,d)}if(typeof g=="string"){var c=g.toLowerCase();if(f[c]!=undefined&&b.isFunction(f[c])){return f[c].apply(f,d)}}f=f.base}if(f[g]!=undefined&&b.isFunction(f[g])){return f[g].apply(f,d)}if(typeof g=="string"){var c=g.toLowerCase();if(f[c]!=undefined&&b.isFunction(f[c])){return f[c].apply(f,d)}}return};b.jqx.getByPriority=function(c){var e=undefined;for(var d=0;d<c.length&&e==undefined;d++){if(e==undefined&&c[d]!=undefined){e=c[d]}}return e};b.jqx.hasProperty=function(d,c){if(typeof(c)=="object"){for(var f in c){var e=d;while(e){if(e.hasOwnProperty(f)){return true}if(e.hasOwnProperty(f.toLowerCase())){return true}e=e.base}return false}}else{while(d){if(d.hasOwnProperty(c)){return true}if(d.hasOwnProperty(c.toLowerCase())){return true}d=d.base}}return false};b.jqx.hasFunction=function(f,e){if(e.length==0){return false}if(f==undefined){return false}var g=typeof(e)==Array||e.length>0?e[0]:e;var d=typeof(e)==Array||e.length>1?Array.prototype.slice.call(e,1):{};while(f[g]==undefined&&f.base!=null){if(f[g]&&b.isFunction(f[g])){return true}if(typeof g=="string"){var c=g.toLowerCase();if(f[c]&&b.isFunction(f[c])){return true}}f=f.base}if(f[g]&&b.isFunction(f[g])){return true}if(typeof g=="string"){var c=g.toLowerCase();if(f[c]&&b.isFunction(f[c])){return true}}return false};b.jqx.isPropertySetter=function(d,c){if(c.length==1&&typeof(c[0])=="object"){return true}if(c.length==2&&typeof(c[0])=="string"&&!b.jqx.hasFunction(d,c)){return true}return false};b.jqx.validatePropertySetter=function(g,e,c){if(!b.jqx.propertySetterValidation){return true}if(e.length==1&&typeof(e[0])=="object"){for(var f in e[0]){var h=g;while(!h.hasOwnProperty(f)&&h.base){h=h.base}if(!h||!h.hasOwnProperty(f)){if(!c){var d=h.hasOwnProperty(f.toString().toLowerCase());if(!d){throw"Invalid property: "+f}else{return true}}return false}}return true}if(e.length!=2){if(!c){throw"Invalid property: "+e.length>=0?e[0]:""}return false}while(!g.hasOwnProperty(e[0])&&g.base){g=g.base}if(!g||!g.hasOwnProperty(e[0])){if(!c){throw"Invalid property: "+e[0]}return false}return true};if(!Object.keys){Object.keys=(function(){var e=Object.prototype.hasOwnProperty,f=!({toString:null}).propertyIsEnumerable("toString"),d=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],c=d.length;return function(j){if(typeof j!=="object"&&(typeof j!=="function"||j===null)){throw new TypeError("Object.keys called on non-object")}var g=[],k,h;for(k in j){if(e.call(j,k)){g.push(k)}}if(f){for(h=0;h<c;h++){if(e.call(j,d[h])){g.push(d[h])}}}return g}}())}b.jqx.set=function(f,i){var d=0;if(i.length==1&&typeof(i[0])=="object"){if(f.isInitialized&&Object.keys&&Object.keys(i[0]).length>1){var g=!f.base?f.element:f.base.element;var c=b.data(g,f.widgetName).initArgs;if(c&&JSON&&JSON.stringify&&i[0]&&c[0]){try{if(JSON.stringify(i[0])==JSON.stringify(c[0])){var h=true;b.each(i[0],function(l,m){if(f[l]!=m){h=false;return false}});if(h){return}}}catch(e){}}f.batchUpdate=i[0];var j={};var k={};b.each(i[0],function(l,m){var n=f;while(!n.hasOwnProperty(l)&&n.base!=null){n=n.base}if(n.hasOwnProperty(l)){if(f[l]!=m){j[l]=f[l];k[l]=m;d++}}else{if(n.hasOwnProperty(l.toLowerCase())){if(f[l.toLowerCase()]!=m){j[l.toLowerCase()]=f[l.toLowerCase()];k[l.toLowerCase()]=m;d++}}}});if(d<2){f.batchUpdate=null}}b.each(i[0],function(l,m){var n=f;while(!n.hasOwnProperty(l)&&n.base!=null){n=n.base}if(n.hasOwnProperty(l)){b.jqx.setvalueraiseevent(n,l,m)}else{if(n.hasOwnProperty(l.toLowerCase())){b.jqx.setvalueraiseevent(n,l.toLowerCase(),m)}else{if(b.jqx.propertySetterValidation){throw"jqxCore: invalid property '"+l+"'"}}}});if(f.batchUpdate!=null){f.batchUpdate=null;if(f.propertiesChangedHandler&&d>1){f.propertiesChangedHandler(f,j,k)}}}else{if(i.length==2){while(!f.hasOwnProperty(i[0])&&f.base){f=f.base}if(f.hasOwnProperty(i[0])){b.jqx.setvalueraiseevent(f,i[0],i[1])}else{if(f.hasOwnProperty(i[0].toLowerCase())){b.jqx.setvalueraiseevent(f,i[0].toLowerCase(),i[1])}else{if(b.jqx.propertySetterValidation){throw"jqxCore: invalid property '"+i[0]+"'"}}}}}};b.jqx.setvalueraiseevent=function(d,e,f){var c=d[e];d[e]=f;if(!d.isInitialized){return}if(d.propertyChangedHandler!=undefined){d.propertyChangedHandler(d,e,c,f)}if(d.propertyChangeMap!=undefined&&d.propertyChangeMap[e]!=undefined){d.propertyChangeMap[e](d,e,c,f)}};b.jqx.get=function(f,e){if(e==undefined||e==null){return undefined}if(f.propertyMap){var d=f.propertyMap(e);if(d!=null){return d}}if(f.hasOwnProperty(e)){return f[e]}if(f.hasOwnProperty(e.toLowerCase())){return f[e.toLowerCase()]}var c=undefined;if(typeof(e)==Array){if(e.length!=1){return undefined}c=e[0]}else{if(typeof(e)=="string"){c=e}}while(!f.hasOwnProperty(c)&&f.base){f=f.base}if(f){return f[c]}return undefined};b.jqx.serialize=function(f){var c="";if(b.isArray(f)){c="[";for(var e=0;e<f.length;e++){if(e>0){c+=", "}c+=b.jqx.serialize(f[e])}c+="]"}else{if(typeof(f)=="object"){c="{";var d=0;for(var e in f){if(d++>0){c+=", "}c+=e+": "+b.jqx.serialize(f[e])}c+="}"}else{c=f.toString()}}return c};b.jqx.propertySetterValidation=true;b.jqx.jqxWidgetProxy=function(h,d,c){var e=b(d);var g=b.data(d,h);if(g==undefined){return undefined}var f=g.instance;if(b.jqx.hasFunction(f,c)){return b.jqx.invoke(f,c)}if(b.jqx.isPropertySetter(f,c)){if(b.jqx.validatePropertySetter(f,c)){b.jqx.set(f,c);return undefined}}else{if(typeof(c)=="object"&&c.length==0){return}else{if(typeof(c)=="object"&&c.length==1&&b.jqx.hasProperty(f,c[0])){return b.jqx.get(f,c[0])}else{if(typeof(c)=="string"&&b.jqx.hasProperty(f,c[0])){return b.jqx.get(f,c)}}}}throw"jqxCore: Invalid parameter '"+b.jqx.serialize(c)+"' does not exist."};b.jqx.applyWidget=function(d,f,l,m){var h=false;try{h=window.MSApp!=undefined}catch(g){}var n=b(d);if(!m){m=new b.jqx["_"+f]()}else{m.host=n;m.element=d}if(d.id==""){d.id=b.jqx.utilities.createId()}var k={host:n,element:d,instance:m,initArgs:l};m.widgetName=f;b.data(d,f,k);b.data(d,"jqxWidget",k.instance);var j=new Array();var m=k.instance;while(m){m.isInitialized=false;j.push(m);m=m.base}j.reverse();j[0].theme=b.jqx.theme||"";b.jqx.jqxWidgetProxy(f,d,l);for(var c in j){m=j[c];if(c==0){m.host=n;m.element=d;m.WinJS=h}if(m!=undefined){if(m.definedInstance){m.definedInstance()}if(m.createInstance!=null){if(h){MSApp.execUnsafeLocalFunction(function(){m.createInstance(l)})}else{m.createInstance(l)}}}}for(var c in j){if(j[c]!=undefined){j[c].isInitialized=true}}if(h){MSApp.execUnsafeLocalFunction(function(){k.instance.refresh(true)})}else{k.instance.refresh(true)}};b.jqx.jqxWidget=function(c,d,g){var j=false;try{var l=Array.prototype.slice.call(g,0)}catch(i){var l=""}try{j=window.MSApp!=undefined}catch(i){}var h=c;var m="";if(d){m="_"+d}b.jqx.define(b.jqx,"_"+h,m);var k=new Array();if(!window[h]){var f=function(n){if(n==null){return""}var e=b.type(n);switch(e){case"string":case"number":case"date":case"boolean":case"bool":if(n===null){return""}return n.toString()}var o="";b.each(n,function(q,r){var t=r;if(q>0){o+=", "}o+="[";var p=0;if(b.type(t)=="object"){for(var s in t){if(p>0){o+=", "}o+="{"+s+":"+t[s]+"}";p++}}else{if(p>0){o+=", "}o+="{"+q+":"+t+"}";p++}o+="]"});return o};a[h]=window[h]=function(e,s){var n=[];if(!s){s={}}n.push(s);var o=e;if(b.type(o)==="object"&&e[0]){o=e[0].id;if(o===""){o=e[0].id=b.jqx.utilities.createId()}}else{if(b.type(e)==="object"&&e&&e.nodeName){o=e.id;if(o===""){o=e.id=b.jqx.utilities.createId()}}}if(window.jqxWidgets&&window.jqxWidgets[o]){if(s){b.each(window.jqxWidgets[o],function(t){var u=b(this.element).data();if(u&&u.jqxWidget){b(this.element)[h](s)}})}if(window.jqxWidgets[o].length==1){var q=b(window.jqxWidgets[o][0].widgetInstance.element).data();if(q&&q.jqxWidget){return window.jqxWidgets[o][0]}}var q=b(window.jqxWidgets[o][0].widgetInstance.element).data();if(q&&q.jqxWidget){return window.jqxWidgets[o]}}var p=b(e);if(p.length===0){p=b("<div></div>");if(h==="jqxInput"||h==="jqxPasswordInput"||h==="jqxMaskedInput"){p=b("<input/>")}if(h==="jqxTextArea"){p=b("<textarea></textarea>")}if(h==="jqxButton"||h==="jqxRepeatButton"||h==="jqxToggleButton"){p=b("<button/>")}if(h==="jqxSplitter"){p=b("<div><div>Panel 1</div><div>Panel 2</div></div>")}if(h==="jqxTabs"){p=b("<div><ul><li>Tab 1</li><li>Tab 2</li></ul><div>Content 1</div><div>Content 2</div></div>")}if(h==="jqxRibbon"){p=b("<div><ul><li>Tab 1</li><li>Tab 2</li></ul><div><div>Content 1</div><div>Content 2</div></div></div>")}if(h==="jqxDocking"){p=b("<div><div><div><div>Title 1</div><div>Content 1</div></div></div></div>")}if(h==="jqxWindow"){p=b("<div><div>Title 1</div><div>Content 1</div></div>")}}var r=[];b.each(p,function(w){var y=p[w];b.jqx.applyWidget(y,h,n,undefined);if(!k[h]){var u=b.data(y,"jqxWidget");var x=b.jqx["_"+h].prototype.defineInstance();var v={};if(b.jqx["_"+h].prototype.metaInfo){v=b.jqx["_"+h].prototype.metaInfo()}if(h=="jqxDockingLayout"){x=b.extend(x,b.jqx._jqxLayout.prototype.defineInstance())}if(h=="jqxToggleButton"||h=="jqxRepeatButton"){x=b.extend(x,b.jqx._jqxButton.prototype.defineInstance())}if(h=="jqxTreeGrid"){x=b.extend(x,b.jqx._jqxDataTable.prototype.defineInstance())}var t=function(A){var z=b.data(A,"jqxWidget");this.widgetInstance=z;var B=b.extend(this,z);B.on=B.addEventListener=function(D,E){B.addHandler(!B.base?B.host:B.base.host,D,E)};B.off=B.removeEventListener=function(D){B.removeHandler(!B.base?B.host:B.base.host,D)};for(var C in z){if(b.type(z[C])=="function"){B[C]=b.proxy(z[C],z)}}return B};k[h]=t;b.each(x,function(A,z){Object.defineProperty(t.prototype,A,{get:function(){if(this.widgetInstance){return this.widgetInstance[A]}return z},set:function(H){if(this.widgetInstance&&(this.widgetInstance[A]!=H||A==="width"||A==="height")){var F=this.widgetInstance[A];var E=H;var D=b.type(F);var B=b.type(E);var G=false;if(D!=B||A==="source"||A==="width"||A==="height"){G=true}if(G||(f(F)!=f(E))){var C={};C[A]=H;if(this.widgetInstance.host){this.widgetInstance.host[h](C)}else{this.widgetInstance.base.host[h](C)}this.widgetInstance[A]=H;if(this.widgetInstance.propertyUpdated){this.widgetInstance.propertyUpdated(A,F,H)}}}}})})}var u=new k[h](y);r.push(u);if(!window.jqxWidgets){window.jqxWidgets=new Array()}if(!window.jqxWidgets[o]){window.jqxWidgets[o]=new Array()}window.jqxWidgets[o].push(u)});if(r.length===1){return r[0]}return r}}b.fn[h]=function(){var e=Array.prototype.slice.call(arguments,0);if(e.length==0||(e.length==1&&typeof(e[0])=="object")){if(this.length==0){if(this.selector){throw new Error("Invalid Selector - "+this.selector+"! Please, check whether the used ID or CSS Class name is correct.")}else{throw new Error("Invalid Selector! Please, check whether the used ID or CSS Class name is correct.")}}return this.each(function(){var q=b(this);var p=this;var r=b.data(p,h);if(r==null){b.jqx.applyWidget(p,h,e,undefined)}else{b.jqx.jqxWidgetProxy(h,this,e)}})}else{if(this.length==0){if(this.selector){throw new Error("Invalid Selector - "+this.selector+"! Please, check whether the used ID or CSS Class name is correct.")}else{throw new Error("Invalid Selector! Please, check whether the used ID or CSS Class name is correct.")}}var o=null;var n=0;this.each(function(){var p=b.jqx.jqxWidgetProxy(h,this,e);if(n==0){o=p;n++}else{if(n==1){var q=[];q.push(o);o=q}o.push(p)}})}return o};try{b.extend(b.jqx["_"+h].prototype,Array.prototype.slice.call(g,0)[0])}catch(i){}b.extend(b.jqx["_"+h].prototype,{toThemeProperty:function(e,n){return b.jqx.toThemeProperty(this,e,n)},isMaterialized:function(){if(!this.theme){return false}if(this.theme.indexOf("material")>=0){return true}},isModern:function(){if(!this.theme){return false}if(this.theme.indexOf("light")>=0){return true}if(this.theme==="dark"){return true}},_addBarAndLabel:function(p){var o=this;var e=b("<label></label");e[0].innerHTML=this.placeHolder;e.addClass(o.toThemeProperty("jqx-input-label"));p.after(e);o.label=e;var n=b("<span></span>");p.after(n);n.addClass(o.toThemeProperty("jqx-input-bar"));o.bar=n;o.bar.css("top",this.host.height())}});b.jqx["_"+h].prototype.refresh=function(){if(this.base){this.base.refresh(true)}};b.jqx["_"+h].prototype.createInstance=function(){};b.jqx["_"+h].prototype.addEventHandler=function(n,e){if(this.base){this.base.host.on(n,e)}else{this.host.on(n,e)}};b.jqx["_"+h].prototype.removeEventHandler=function(n,e){if(this.base){this.base.host.off(n)}else{this.host.off(n)}};b.jqx["_"+h].prototype.applyTo=function(o,n){if(!(n instanceof Array)){var e=[];e.push(n);n=e}b.jqx.applyWidget(o,h,n,this)};b.jqx["_"+h].prototype.getInstance=function(){return this};b.jqx["_"+h].prototype.propertyChangeMap={};b.jqx["_"+h].prototype.addHandler=function(p,e,n,o){b.jqx.addHandler(b(p),e,n,o)};b.jqx["_"+h].prototype.removeHandler=function(o,e,n){b.jqx.removeHandler(b(o),e,n)};b.jqx["_"+h].prototype.setOptions=function(){if(!this.host||!this.host.length||this.host.length!=1){return}return b.jqx.jqxWidgetProxy(h,this.host[0],arguments)}};b.jqx.toThemeProperty=function(d,e,j){if(d.theme==""){return e}var h=e.split(" ");var c="";for(var g=0;g<h.length;g++){if(g>0){c+=" "}var f=h[g];if(j!=null&&j){c+=f+"-"+d.theme}else{c+=f+" "+f+"-"+d.theme}}return c};b.jqx.addHandler=function(h,j,f,g){var d=j.split(" ");for(var c=0;c<d.length;c++){var e=d[c];if(window.addEventListener){switch(e){case"mousewheel":if(b.jqx.browser.mozilla){h[0].addEventListener("DOMMouseScroll",f,false)}else{h[0].addEventListener("mousewheel",f,false)}continue;case"mousemove":if(!g){h[0].addEventListener("mousemove",f,false);continue}break}}if(g==undefined||g==null){if(h.on){h.on(e,f)}else{h.bind(e,f)}}else{if(h.on){h.on(e,g,f)}else{h.bind(e,g,f)}}}};b.jqx.removeHandler=function(g,h,f){if(!h){if(g.off){g.off()}else{g.unbind()}return}var d=h.split(" ");for(var c=0;c<d.length;c++){var e=d[c];if(window.removeEventListener){switch(e){case"mousewheel":if(b.jqx.browser.mozilla){g[0].removeEventListener("DOMMouseScroll",f,false)}else{g[0].removeEventListener("mousewheel",f,false)}continue;case"mousemove":if(f){g[0].removeEventListener("mousemove",f,false);continue}break}}if(e==undefined){if(g.off){g.off()}else{g.unbind()}continue}if(f==undefined){if(g.off){g.off(e)}else{g.unbind(e)}}else{if(g.off){g.off(e,f)}else{g.unbind(e,f)}}}};b.jqx.credits=b.jqx.credits||"";b.jqx.theme=b.jqx.theme||"";b.jqx.scrollAnimation=b.jqx.scrollAnimation||false;b.jqx.resizeDelay=b.jqx.resizeDelay||10;b.jqx.ready=function(){b(window).trigger("jqxReady")};b.jqx.init=function(){b.each(arguments[0],function(c,d){if(c=="theme"){b.jqx.theme=d}if(c=="scrollBarSize"){b.jqx.utilities.scrollBarSize=d}if(c=="touchScrollBarSize"){b.jqx.utilities.touchScrollBarSize=d}if(c=="scrollBarButtonsVisibility"){b.jqx.utilities.scrollBarButtonsVisibility=d}})};b.jqx.utilities=b.jqx.utilities||{};b.extend(b.jqx.utilities,{scrollBarSize:13,touchScrollBarSize:8,scrollBarButtonsVisibility:"visible",createId:function(){var c=function(){return(((1+Math.random())*65536)|0).toString(16).substring(1)};return"jqxWidget"+c()+c()+c()},setTheme:function(g,h,f){if(typeof f==="undefined"){return}if(!f[0].className.split){return}if(g===undefined){g=""}if(h===undefined){h=""}var j=f[0].className.split(" "),c=[],k=[],e=f.children();for(var d=0;d<j.length;d+=1){if(j[d].indexOf(g)>=0){if(g.length>0){c.push(j[d]);k.push(j[d].replace(g,h))}else{k.push(j[d].replace("-"+h,"")+"-"+h)}}}this._removeOldClasses(c,f);this._addNewClasses(k,f);for(var d=0;d<e.length;d+=1){this.setTheme(g,h,b(e[d]))}},_removeOldClasses:function(e,d){for(var c=0;c<e.length;c+=1){d.removeClass(e[c])}},_addNewClasses:function(e,d){for(var c=0;c<e.length;c+=1){d.addClass(e[c])}},getOffset:function(c){var e=b.jqx.mobile.getLeftPos(c[0]);var d=b.jqx.mobile.getTopPos(c[0]);return{top:d,left:e}},resize:function(h,t,q,p){if(p===undefined){p=true}var m=-1;var l=this;var e=function(v){if(!l.hiddenWidgets){return -1}var w=-1;for(var u=0;u<l.hiddenWidgets.length;u++){if(v.id){if(l.hiddenWidgets[u].id==v.id){w=u;break}}else{if(l.hiddenWidgets[u].id==v[0].id){w=u;break}}}return w};if(this.resizeHandlers){for(var j=0;j<this.resizeHandlers.length;j++){if(h.id){if(this.resizeHandlers[j].id==h.id){m=j;break}}else{if(this.resizeHandlers[j].id==h[0].id){m=j;break}}}if(q===true){if(m!=-1){this.resizeHandlers.splice(m,1);if(this.watchedElementData&&this.watchedElementData.length>0){this.watchedElementData.splice(m,1)}}if(this.resizeHandlers.length==0){var o=b(window);if(o.off){o.off("resize.jqx");o.off("orientationchange.jqx");o.off("orientationchanged.jqx")}else{o.unbind("resize.jqx");o.unbind("orientationchange.jqx");o.unbind("orientationchanged.jqx")}this.resizeHandlers=null}var c=e(h);if(c!=-1&&this.hiddenWidgets){this.hiddenWidgets.splice(c,1)}return}}else{if(q===true){var c=e(h);if(c!=-1&&this.hiddenWidgets){this.hiddenWidgets.splice(c,1)}return}}var l=this;var n=function(w,F){if(!l.resizeHandlers){return}var G=function(J){var i=-1;var K=J.parentNode;while(K){i++;K=K.parentNode}return i};var v=function(L,J){if(!L.widget||!J.widget){return 0}var K=G(L.widget[0]);var i=G(J.widget[0]);try{if(K<i){return -1}if(K>i){return 1}}catch(M){var N=M}return 0};var x=function(J){if(l.hiddenWidgets.length>0){l.hiddenWidgets.sort(v);var i=function(){var L=false;var N=new Array();for(var M=0;M<l.hiddenWidgets.length;M++){var K=l.hiddenWidgets[M];if(b.jqx.isHidden(K.widget)){L=true;N.push(K)}else{if(K.callback){K.callback(F)}}}l.hiddenWidgets=N;if(!L){clearInterval(l.__resizeInterval)}};if(J==false){i();if(l.__resizeInterval){clearInterval(l.__resizeInterval)}return}if(l.__resizeInterval){clearInterval(l.__resizeInterval)}l.__resizeInterval=setInterval(function(){i()},100)}};if(l.hiddenWidgets&&l.hiddenWidgets.length>0){x(false)}l.hiddenWidgets=new Array();l.resizeHandlers.sort(v);for(var C=0;C<l.resizeHandlers.length;C++){var I=l.resizeHandlers[C];var E=I.widget;var B=I.data;if(!B){continue}if(!B.jqxWidget){continue}var u=B.jqxWidget.width;var H=B.jqxWidget.height;if(B.jqxWidget.base){if(u==undefined){u=B.jqxWidget.base.width}if(H==undefined){H=B.jqxWidget.base.height}}if(u===undefined&&H===undefined){u=B.jqxWidget.element.style.width;H=B.jqxWidget.element.style.height}var D=false;if(u!=null&&u.toString().indexOf("%")!=-1){D=true}if(H!=null&&H.toString().indexOf("%")!=-1){D=true}if(b.jqx.isHidden(E)){if(e(E)===-1){if(D||w===true){if(I.data.nestedWidget!==true){l.hiddenWidgets.push(I)}}}}else{if(w===undefined||w!==true){if(D){I.callback(F);if(l.watchedElementData){for(var z=0;z<l.watchedElementData.length;z++){if(l.watchedElementData[z].element==B.jqxWidget.element){l.watchedElementData[z].offsetWidth=B.jqxWidget.element.offsetWidth;l.watchedElementData[z].offsetHeight=B.jqxWidget.element.offsetHeight;break}}}if(l.hiddenWidgets.indexOf(I)>=0){l.hiddenWidgets.splice(l.hiddenWidgets.indexOf(I),1)}}if(B.jqxWidget.element){var y=B.jqxWidget.element.className;if(y.indexOf("dropdownlist")>=0||y.indexOf("datetimeinput")>=0||y.indexOf("combobox")>=0||y.indexOf("menu")>=0){if(B.jqxWidget.isOpened){var A=B.jqxWidget.isOpened();if(A){if(F&&F=="resize"&&b.jqx.mobile.isTouchDevice()){continue}B.jqxWidget.close()}}}}}}}x()};if(!this.resizeHandlers){this.resizeHandlers=new Array();var o=b(window);if(o.on){this._resizeTimer=null;this._initResize=null;o.on("resize.jqx",function(i){if(l._resizeTimer!=undefined){clearTimeout(l._resizeTimer)}if(!l._initResize){l._initResize=true;n(null,"resize")}else{l._resizeTimer=setTimeout(function(){n(null,"resize")},b.jqx.resizeDelay)}});o.on("orientationchange.jqx",function(i){n(null,"orientationchange")});o.on("orientationchanged.jqx",function(i){n(null,"orientationchange")})}else{o.bind("resize.jqx",function(i){n(null,"orientationchange")});o.bind("orientationchange.jqx",function(i){n(null,"orientationchange")});o.bind("orientationchanged.jqx",function(i){n(null,"orientationchange")})}}var f=h.data();if(p){if(m===-1){this.resizeHandlers.push({id:h[0].id,widget:h,callback:t,data:f})}}try{var d=f.jqxWidget.width;var s=f.jqxWidget.height;if(f.jqxWidget.base){if(d==undefined){d=f.jqxWidget.base.width}if(s==undefined){s=f.jqxWidget.base.height}}if(d===undefined&&s===undefined){d=f.jqxWidget.element.style.width;s=f.jqxWidget.element.style.height}var k=false;if(d!=null&&d.toString().indexOf("%")!=-1){k=true}if(s!=null&&s.toString().indexOf("%")!=-1){k=true}if(k){if(!this.watchedElementData){this.watchedElementData=[]}var l=this;var g=function(i){if(l.watchedElementData.forEach){l.watchedElementData.forEach(function(u){if(u.element.offsetWidth!==u.offsetWidth||u.element.offsetHeight!==u.offsetHeight){u.offsetWidth=u.element.offsetWidth;u.offsetHeight=u.element.offsetHeight;if(u.timer){clearTimeout(u.timer)}u.timer=setTimeout(function(){if(!b.jqx.isHidden(b(u.element))){u.callback()}else{u.timer=setInterval(function(){if(!b.jqx.isHidden(b(u.element))){clearInterval(u.timer);u.callback()}},100)}})}})}};l.watchedElementData.push({element:h[0],offsetWidth:h[0].offsetWidth,offsetHeight:h[0].offsetHeight,callback:t});if(!l.observer){l.observer=new MutationObserver(g);l.observer.observe(document.body,{attributes:true,childList:true,characterData:true})}}}catch(r){}if(b.jqx.isHidden(h)&&p===true){n(true)}b.jqx.resize=function(){n(null,"resize")}},parseJSON:function(e){if(!e||typeof e!=="string"){return null}var c=/^[\],:{}\s]*$/,g=/(?:^|:|,)(?:\s*\[)+/g,d=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,f=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g;e=b.trim(e);if(window.JSON&&window.JSON.parse){return window.JSON.parse(e)}if(c.test(e.replace(d,"@").replace(f,"]").replace(g,""))){return(new Function("return "+e))()}throw new Error("Invalid JSON: "+e)},html:function(d,e){if(!b(d).on){return b(d).html(e)}try{return b.access(d,function(s){var f=d[0]||{},m=0,j=d.length;if(s===undefined){return f.nodeType===1?f.innerHTML.replace(rinlinejQuery,""):undefined}var r=/<(?:script|style|link)/i,n="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",h=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,p=/<([\w:]+)/,g=/<(?:script|object|embed|option|style)/i,k=new RegExp("<(?:"+n+")[\\s/>]","i"),q=/^\s+/,t={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};if(typeof s==="string"&&!r.test(s)&&(b.support.htmlSerialize||!k.test(s))&&(b.support.leadingWhitespace||!q.test(s))&&!t[(p.exec(s)||["",""])[1].toLowerCase()]){s=s.replace(h,"<$1></$2>");try{for(;m<j;m++){f=this[m]||{};if(f.nodeType===1){b.cleanData(f.getElementsByTagName("*"));f.innerHTML=s}}f=0}catch(o){}}if(f){d.empty().append(s)}},null,e,arguments.length)}catch(c){return b(d).html(e)}},hasTransform:function(e){var d="";d=e.css("transform");if(d==""||d=="none"){d=e.parents().css("transform");if(d==""||d=="none"){var c=b.jqx.utilities.getBrowser();if(c.browser=="msie"){d=e.css("-ms-transform");if(d==""||d=="none"){d=e.parents().css("-ms-transform")}}else{if(c.browser=="chrome"){d=e.css("-webkit-transform");if(d==""||d=="none"){d=e.parents().css("-webkit-transform")}}else{if(c.browser=="opera"){d=e.css("-o-transform");if(d==""||d=="none"){d=e.parents().css("-o-transform")}}else{if(c.browser=="mozilla"){d=e.css("-moz-transform");if(d==""||d=="none"){d=e.parents().css("-moz-transform")}}}}}}else{return d!=""&&d!="none"}}if(d==""||d=="none"){d=b(document.body).css("transform")}return d!=""&&d!="none"&&d!=null},getBrowser:function(){var d=navigator.userAgent.toLowerCase();var c=/(chrome)[ \/]([\w.]+)/.exec(d)||/(webkit)[ \/]([\w.]+)/.exec(d)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(d)||/(msie) ([\w.]+)/.exec(d)||d.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(d)||[];var e={browser:c[1]||"",version:c[2]||"0"};if(d.indexOf("rv:11.0")>=0&&d.indexOf(".net4.0c")>=0){e.browser="msie";e.version="11";c[1]="msie"}if(d.indexOf("edge")>=0){e.browser="msie";e.version="12";c[1]="msie"}e[c[1]]=c[1];return e}});b.jqx.browser=b.jqx.utilities.getBrowser();b.jqx.isHidden=function(d){if(!d||!d[0]){return false}var c=d[0].offsetWidth,e=d[0].offsetHeight;if(c===0||e===0){return true}else{return false}};b.jqx.ariaEnabled=true;b.jqx.aria=function(d,f,e){if(!b.jqx.ariaEnabled){return}if(f==undefined){b.each(d.aria,function(h,i){var k=!d.base?d.host.attr(h):d.base.host.attr(h);if(k!=undefined&&!b.isFunction(k)){var j=k;switch(i.type){case"number":j=new Number(k);if(isNaN(j)){j=k}break;case"boolean":j=k=="true"?true:false;break;case"date":j=new Date(k);if(j=="Invalid Date"||isNaN(j)){j=k}break}d[i.name]=j}else{var k=d[i.name];if(b.isFunction(k)){k=d[i.name]()}if(k==undefined){k=""}try{!d.base?d.host.attr(h,k.toString()):d.base.host.attr(h,k.toString())}catch(g){}}})}else{try{if(d.host){if(!d.base){if(d.host){if(d.element.setAttribute){d.element.setAttribute(f,e.toString())}else{d.host.attr(f,e.toString())}}else{d.attr(f,e.toString())}}else{if(d.base.host){d.base.host.attr(f,e.toString())}else{d.attr(f,e.toString())}}}else{if(d.setAttribute){d.setAttribute(f,e.toString())}}}catch(c){}}};if(!Array.prototype.indexOf){Array.prototype.indexOf=function(d){var c=this.length;var e=Number(arguments[1])||0;e=(e<0)?Math.ceil(e):Math.floor(e);if(e<0){e+=c}for(;e<c;e++){if(e in this&&this[e]===d){return e}}return -1}}b.jqx.mobile=b.jqx.mobile||{};b.jqx.position=function(c){var f=parseInt(c.pageX);var e=parseInt(c.pageY);if(b.jqx.mobile.isTouchDevice()){var d=b.jqx.mobile.getTouches(c);var g=d[0];f=parseInt(g.pageX);e=parseInt(g.pageY)}return{left:f,top:e}};b.extend(b.jqx.mobile,{_touchListener:function(i,g){var c=function(j,l){var k=document.createEvent("MouseEvents");k.initMouseEvent(j,l.bubbles,l.cancelable,l.view,l.detail,l.screenX,l.screenY,l.clientX,l.clientY,l.ctrlKey,l.altKey,l.shiftKey,l.metaKey,l.button,l.relatedTarget);k._pageX=l.pageX;k._pageY=l.pageY;return k};var h={mousedown:"touchstart",mouseup:"touchend",mousemove:"touchmove"};var f=c(h[i.type],i);i.target.dispatchEvent(f);var d=i.target["on"+h[i.type]];if(typeof d==="function"){d(i)}},setMobileSimulator:function(d,f){if(this.isTouchDevice()){return}this.simulatetouches=true;if(f==false){this.simulatetouches=false}var e={mousedown:"touchstart",mouseup:"touchend",mousemove:"touchmove"};var c=this;if(window.addEventListener){var g=function(){for(var h in e){if(d.addEventListener){d.removeEventListener(h,c._touchListener);d.addEventListener(h,c._touchListener,false)}}};if(b.jqx.browser.msie){g()}else{g()}}},isTouchDevice:function(){if(this.touchDevice!=undefined){return this.touchDevice}var d="Browser CodeName: "+navigator.appCodeName+"";d+="Browser Name: "+navigator.appName+"";d+="Browser Version: "+navigator.appVersion+"";d+="Platform: "+navigator.platform+"";d+="User-agent header: "+navigator.userAgent+"";if(d.indexOf("Android")!=-1){return true}if(d.indexOf("IEMobile")!=-1){return true}if(d.indexOf("Windows Phone")!=-1){return true}if(d.indexOf("WPDesktop")!=-1){return true}if(d.indexOf("ZuneWP7")!=-1){return true}if(d.indexOf("BlackBerry")!=-1&&d.indexOf("Mobile Safari")!=-1){return true}if(d.indexOf("ipod")!=-1){return true}if(d.indexOf("nokia")!=-1||d.indexOf("Nokia")!=-1){return true}if(d.indexOf("Chrome/17")!=-1){return false}if(d.indexOf("CrOS")!=-1){return false}if(d.indexOf("Opera")!=-1&&d.indexOf("Mobi")==-1&&d.indexOf("Mini")==-1&&d.indexOf("Platform: Win")!=-1){return false}if(d.indexOf("HybridDeviceTouch")!=-1){return true}if(d.indexOf("HybridDeviceMouse")!=-1){return false}if(d.indexOf("Opera")!=-1&&d.indexOf("Mobi")!=-1&&d.indexOf("Opera Mobi")!=-1){return true}if(d.indexOf("Mozilla/5.0 (X11; Linux x86_64)")!=-1){return false}var f={ios:"i(?:Pad|Phone|Pod)(?:.*)CPU(?: iPhone)? OS ",android:"(Android |HTC_|Silk/)",blackberry:"BlackBerry(?:.*)Version/",rimTablet:"RIM Tablet OS ",webos:"(?:webOS|hpwOS)/",bada:"Bada/"};try{if(this.touchDevice!=undefined){return this.touchDevice}this.touchDevice=false;for(var h in f){if(f.hasOwnProperty(h)){var k=f[h];var g=d.match(new RegExp("(?:"+k+")([^\\s;]+)"));if(g){if(h.toString()=="blackberry"){this.touchDevice=false;return false}this.touchDevice=true;return true}}}var j=navigator.userAgent;if(navigator.platform.toLowerCase().indexOf("win")!=-1){if(j.indexOf("Windows Phone")>=0||j.indexOf("WPDesktop")>=0||j.indexOf("IEMobile")>=0||j.indexOf("ZuneWP7")>=0){this.touchDevice=true;return true}else{if(j.indexOf("Touch")>=0){var c=("MSPointerDown" in window)||("pointerdown" in window);if(c){this.touchDevice=true;return true}if(j.indexOf("ARM")>=0){this.touchDevice=true;return true}this.touchDevice=false;return false}}}if(navigator.platform.toLowerCase().indexOf("win")!=-1){this.touchDevice=false;return false}if(("ontouchstart" in window)||window.DocumentTouch&&document instanceof DocumentTouch){this.touchDevice=true}return this.touchDevice}catch(l){this.touchDevice=false;return false}},getLeftPos:function(c){var d=c.offsetLeft;while((c=c.offsetParent)!=null){if(c.tagName!="HTML"){d+=c.offsetLeft;if(document.all){d+=c.clientLeft}}}return d},getTopPos:function(d){var f=d.offsetTop;var c=b(d).coord();while((d=d.offsetParent)!=null){if(d.tagName!="HTML"){f+=(d.offsetTop-d.scrollTop);if(document.all){f+=d.clientTop}}}var e=navigator.userAgent.toLowerCase();var g=(e.indexOf("windows phone")!=-1||e.indexOf("WPDesktop")!=-1||e.indexOf("ZuneWP7")!=-1||e.indexOf("msie 9")!=-1||e.indexOf("msie 11")!=-1||e.indexOf("msie 10")!=-1)&&e.indexOf("touch")!=-1;if(g){return c.top}if(this.isSafariMobileBrowser()){if(this.isSafari4MobileBrowser()&&this.isIPadSafariMobileBrowser()){return f}if(e.indexOf("version/7")!=-1){return c.top}if(e.indexOf("version/6")!=-1||e.indexOf("version/5")!=-1){f=f+b(window).scrollTop()}if(/(Android.*Chrome\/[.0-9]* (!?Mobile))/.exec(navigator.userAgent)){return f+b(window).scrollTop()}if(/(Android.*Chrome\/[.0-9]* Mobile)/.exec(navigator.userAgent)){return f+b(window).scrollTop()}return c.top}return f},isChromeMobileBrowser:function(){var d=navigator.userAgent.toLowerCase();var c=d.indexOf("android")!=-1;return c},isOperaMiniMobileBrowser:function(){var d=navigator.userAgent.toLowerCase();var c=d.indexOf("opera mini")!=-1||d.indexOf("opera mobi")!=-1;return c},isOperaMiniBrowser:function(){var d=navigator.userAgent.toLowerCase();var c=d.indexOf("opera mini")!=-1;return c},isNewSafariMobileBrowser:function(){var d=navigator.userAgent.toLowerCase();var c=d.indexOf("ipad")!=-1||d.indexOf("iphone")!=-1||d.indexOf("ipod")!=-1;c=c&&(d.indexOf("version/5")!=-1);return c},isSafari4MobileBrowser:function(){var d=navigator.userAgent.toLowerCase();var c=d.indexOf("ipad")!=-1||d.indexOf("iphone")!=-1||d.indexOf("ipod")!=-1;c=c&&(d.indexOf("version/4")!=-1);return c},isWindowsPhone:function(){var d=navigator.userAgent.toLowerCase();var c=(d.indexOf("windows phone")!=-1||d.indexOf("WPDesktop")!=-1||d.indexOf("ZuneWP7")!=-1||d.indexOf("msie 9")!=-1||d.indexOf("msie 11")!=-1||d.indexOf("msie 10")!=-1&&d.indexOf("touch")!=-1);return c},isSafariMobileBrowser:function(){var d=navigator.userAgent.toLowerCase();if(/(Android.*Chrome\/[.0-9]* (!?Mobile))/.exec(navigator.userAgent)){return true}if(/(Android.*Chrome\/[.0-9]* Mobile)/.exec(navigator.userAgent)){return true}var c=d.indexOf("ipad")!=-1||d.indexOf("iphone")!=-1||d.indexOf("ipod")!=-1||d.indexOf("mobile safari")!=-1;return c},isIPadSafariMobileBrowser:function(){var d=navigator.userAgent.toLowerCase();var c=d.indexOf("ipad")!=-1;return c},isMobileBrowser:function(){var d=navigator.userAgent.toLowerCase();var c=d.indexOf("ipad")!=-1||d.indexOf("iphone")!=-1||d.indexOf("android")!=-1;return c},getTouches:function(c){if(c.originalEvent){if(c.originalEvent.touches&&c.originalEvent.touches.length){return c.originalEvent.touches}else{if(c.originalEvent.changedTouches&&c.originalEvent.changedTouches.length){return c.originalEvent.changedTouches}}}if(!c.touches){c.touches=new Array();c.touches[0]=c.originalEvent!=undefined?c.originalEvent:c;if(c.originalEvent!=undefined&&c.pageX){c.touches[0]=c}if(c.type=="mousemove"){c.touches[0]=c}}return c.touches},getTouchEventName:function(c){if(this.isWindowsPhone()){var d=navigator.userAgent.toLowerCase();if(d.indexOf("windows phone 7")!=-1){if(c.toLowerCase().indexOf("start")!=-1){return"MSPointerDown"}if(c.toLowerCase().indexOf("move")!=-1){return"MSPointerMove"}if(c.toLowerCase().indexOf("end")!=-1){return"MSPointerUp"}}if(c.toLowerCase().indexOf("start")!=-1){return"pointerdown"}if(c.toLowerCase().indexOf("move")!=-1){return"pointermove"}if(c.toLowerCase().indexOf("end")!=-1){return"pointerup"}}else{return c}},dispatchMouseEvent:function(c,g,f){if(this.simulatetouches){return}var d=document.createEvent("MouseEvent");d.initMouseEvent(c,true,true,g.view,1,g.screenX,g.screenY,g.clientX,g.clientY,false,false,false,false,0,null);if(f!=null){f.dispatchEvent(d)}},getRootNode:function(c){while(c.nodeType!==1){c=c.parentNode}return c},setTouchScroll:function(c,d){if(!this.enableScrolling){this.enableScrolling=[]}this.enableScrolling[d]=c},touchScroll:function(B,M,Z,H,x,n){if(B==null){return}var G=this;var f=0;var r=0;var g=0;var i=0;var t=0;var j=0;if(!this.scrolling){this.scrolling=[]}this.scrolling[H]=false;var k=false;var p=b(B);var R=["select","input","textarea"];var X=0;var J=0;if(!this.enableScrolling){this.enableScrolling=[]}this.enableScrolling[H]=true;var H=H;var w=this.getTouchEventName("touchstart")+".touchScroll";var D=this.getTouchEventName("touchend")+".touchScroll";var ab=this.getTouchEventName("touchmove")+".touchScroll";var l,W,z,ah,V,Y,aj,Q,aa,d,F,ad,af,O,e,v,u,S,c,E,ag,o;Q=M;var aj=0;var aa=0;var h=0;var T=0;var ai=0;var Y=x.jqxScrollBar("max");var o=325;function A(am){if(am.targetTouches&&(am.targetTouches.length>=1)){return am.targetTouches[0].clientY}else{if(am.originalEvent&&am.originalEvent.clientY!==undefined){return am.originalEvent.clientY}else{var al=G.getTouches(am);return al[0].clientY}}}function ae(am){if(am.targetTouches&&(am.targetTouches.length>=1)){return am.targetTouches[0].clientX}else{if(am.originalEvent&&am.originalEvent.clientX!==undefined){return am.originalEvent.clientX}else{var al=G.getTouches(am);return al[0].clientX}}}var I=function(){var ap,am,aq,ao;ap=Date.now();am=ap-v;v=ap;aq=aa-e;var an=h-ah;e=aa;ah=h;F=true;ao=1000*aq/(1+am);var al=1000*an/(1+am);af=0.8*ao+0.2*af;O=0.8*al+0.2*O};var C=false;var X=function(am){if(!G.enableScrolling[H]){return true}if(b.inArray(am.target.tagName.toLowerCase(),R)!==-1){return}aa=n.jqxScrollBar("value");h=x.jqxScrollBar("value");var an=G.getTouches(am);var ao=an[0];if(an.length==1){G.dispatchMouseEvent("mousedown",ao,G.getRootNode(ao.target))}Y=x.jqxScrollBar("max");Q=n.jqxScrollBar("max");function al(ap){C=false;F=true;d=A(ap);ag=ae(ap);af=S=O=0;e=aa;ah=h;v=Date.now();clearInterval(u);u=setInterval(I,100);T=aa;ai=h;if(aa>0&&aa<Q&&n[0].style.visibility!="hidden"){}}al(am);k=false;r=ao.pageY;t=ao.pageX;if(G.simulatetouches){if(ao._pageY!=undefined){r=ao._pageY;t=ao._pageX}}G.scrolling[H]=true;f=0;i=0;return true};if(p.on){p.on(w,X)}else{p.bind(w,X)}var ac=function(am,al){aa=(am>Q)?Q:(am<aj)?aj:am;Z(null,am,0,0,al);return(am>Q)?"max":(am<aj)?"min":"value"};var m=function(am,al){h=(am>Y)?Y:(am<aj)?aj:am;Z(am,null,0,0,al);return(am>Y)?"max":(am<aj)?"min":"value"};function U(){var al,am;if(S){al=Date.now()-v;am=-S*Math.exp(-al/o);if(am>0.5||am<-0.5){ac(c+am);requestAnimationFrame(U)}else{ac(c)}}}function N(){var al,am;if(S){al=Date.now()-v;am=-S*Math.exp(-al/o);if(am>0.5||am<-0.5){m(E+am);requestAnimationFrame(N)}else{m(E)}}}var y=function(al){if(!G.enableScrolling[H]){return true}if(!G.scrolling[H]){return true}if(C){al.preventDefault();al.stopPropagation()}var aq=G.getTouches(al);if(aq.length>1){return true}var am=aq[0].pageY;var ao=aq[0].pageX;if(G.simulatetouches){if(aq[0]._pageY!=undefined){am=aq[0]._pageY;ao=aq[0]._pageX}}var au=am-r;var av=ao-t;J=am;var at=ao;g=au-f;j=av-i;k=true;f=au;i=av;var an=x!=null?x[0].style.visibility!="hidden":true;var ar=n!=null?n[0].style.visibility!="hidden":true;function ap(ay){var aA,az,ax;if(F){aA=A(ay);ax=ae(ay);az=d-aA;V=ag-ax;var aw="value";if(az>2||az<-2){d=aA;aw=ac(aa+az,ay);I();if(aw=="min"&&T===0){return true}if(aw=="max"&&T===Q){return true}if(!ar){return true}ay.preventDefault();ay.stopPropagation();C=true;return false}else{if(V>2||V<-2){ag=ax;aw=m(h+V,ay);I();if(aw=="min"&&ai===0){return true}if(aw=="max"&&ai===Y){return true}if(!an){return true}C=true;ay.preventDefault();ay.stopPropagation();return false}}ay.preventDefault()}}if(an||ar){if((an)||(ar)){ap(al)}}};if(p.on){p.on(ab,y)}else{p.bind(ab,y)}var s=function(am){if(!G.enableScrolling[H]){return true}var an=G.getTouches(am)[0];if(!G.scrolling[H]){return true}F=false;clearInterval(u);if(af>10||af<-10){S=0.8*af;c=Math.round(aa+S);v=Date.now();requestAnimationFrame(U)}else{if(O>10||O<-10){S=0.8*O;E=Math.round(h+S);v=Date.now();requestAnimationFrame(N)}else{}}G.scrolling[H]=false;if(k){G.dispatchMouseEvent("mouseup",an,am.target)}else{var an=G.getTouches(am)[0],al=G.getRootNode(an.target);G.dispatchMouseEvent("mouseup",an,al);G.dispatchMouseEvent("click",an,al);return true}};if(this.simulatetouches){var q=b(window).on!=undefined||b(window).bind;var P=function(al){try{s(al)}catch(am){}G.scrolling[H]=false};b(window).on!=undefined?b(document).on("mouseup.touchScroll",P):b(document).bind("mouseup.touchScroll",P);if(window.frameElement){if(window.top!=null){var L=function(al){try{s(al)}catch(am){}G.scrolling[H]=false};if(window.top.document){b(window.top.document).on?b(window.top.document).on("mouseup",L):b(window.top.document).bind("mouseup",L)}}}var ak=b(document).on!=undefined||b(document).bind;var K=function(al){if(!G.scrolling[H]){return true}G.scrolling[H]=false;var an=G.getTouches(al)[0],am=G.getRootNode(an.target);G.dispatchMouseEvent("mouseup",an,am);G.dispatchMouseEvent("click",an,am)};b(document).on!=undefined?b(document).on("touchend",K):b(document).bind("touchend",K)}if(p.on){p.on("dragstart",function(al){al.preventDefault()});p.on("selectstart",function(al){al.preventDefault()})}p.on?p.on(D+" touchcancel.touchScroll",s):p.bind(D+" touchcancel.touchScroll",s)}});b.jqx.cookie=b.jqx.cookie||{};b.extend(b.jqx.cookie,{cookie:function(f,g,d){if(arguments.length>1&&String(g)!=="[object Object]"){d=b.extend({},d);if(g===null||g===undefined){d.expires=-1}if(typeof d.expires==="number"){var i=d.expires,e=d.expires=new Date();e.setDate(e.getDate()+i)}g=String(g);return(document.cookie=[encodeURIComponent(f),"=",d.raw?g:encodeURIComponent(g),d.expires?"; expires="+d.expires.toUTCString():"",d.path?"; path="+d.path:"",d.domain?"; domain="+d.domain:"",d.secure?"; secure":""].join(""))}d=g||{};var c,h=d.raw?function(j){return j}:decodeURIComponent;return(c=new RegExp("(?:^|; )"+encodeURIComponent(f)+"=([^;]*)").exec(document.cookie))?h(c[1]):null}});b.jqx.string=b.jqx.string||{};b.extend(b.jqx.string,{replace:function(g,e,f){if(e===f){return this}var c=g;var d=c.indexOf(e);while(d!=-1){c=c.replace(e,f);d=c.indexOf(e)}return c},contains:function(c,d){if(c==null||d==null){return false}return c.indexOf(d)!=-1},containsIgnoreCase:function(c,d){if(c==null||d==null){return false}return c.toString().toUpperCase().indexOf(d.toString().toUpperCase())!=-1},equals:function(c,d){if(c==null||d==null){return false}c=this.normalize(c);if(d.length==c.length){return c.slice(0,d.length)==d}return false},equalsIgnoreCase:function(c,d){if(c==null||d==null){return false}c=this.normalize(c);if(d.length==c.length){return c.toUpperCase().slice(0,d.length)==d.toUpperCase()}return false},startsWith:function(c,d){if(c==null||d==null){return false}return c.slice(0,d.length)==d},startsWithIgnoreCase:function(c,d){if(c==null||d==null){return false}return c.toUpperCase().slice(0,d.length)==d.toUpperCase()},normalize:function(c){if(c.charCodeAt(c.length-1)==65279){c=c.substring(0,c.length-1)}return c},endsWith:function(c,d){if(c==null||d==null){return false}c=this.normalize(c);return c.slice(-d.length)==d},endsWithIgnoreCase:function(c,d){if(c==null||d==null){return false}c=this.normalize(c);return c.toUpperCase().slice(-d.length)==d.toUpperCase()}});b.extend(b.easing,{easeOutBack:function(f,g,e,j,i,h){if(h==undefined){h=1.70158}return j*((g=g/i-1)*g*((h+1)*g+h)+1)+e},easeInQuad:function(f,g,e,i,h){return i*(g/=h)*g+e},easeInOutCirc:function(f,g,e,i,h){if((g/=h/2)<1){return -i/2*(Math.sqrt(1-g*g)-1)+e}return i/2*(Math.sqrt(1-(g-=2)*g)+1)+e},easeInOutSine:function(f,g,e,i,h){return -i/2*(Math.cos(Math.PI*g/h)-1)+e},easeInCubic:function(f,g,e,i,h){return i*(g/=h)*g*g+e},easeOutCubic:function(f,g,e,i,h){return i*((g=g/h-1)*g*g+1)+e},easeInOutCubic:function(f,g,e,i,h){if((g/=h/2)<1){return i/2*g*g*g+e}return i/2*((g-=2)*g*g+2)+e},easeInSine:function(f,g,e,i,h){return -i*Math.cos(g/h*(Math.PI/2))+i+e},easeOutSine:function(f,g,e,i,h){return i*Math.sin(g/h*(Math.PI/2))+e},easeInOutSine:function(f,g,e,i,h){return -i/2*(Math.cos(Math.PI*g/h)-1)+e}})})(jqxBaseFramework);(function(b){if(b.event&&b.event.special){b.extend(b.event.special,{close:{noBubble:true},open:{noBubble:true},cellclick:{noBubble:true},rowclick:{noBubble:true},tabclick:{noBubble:true},selected:{noBubble:true},expanded:{noBubble:true},collapsed:{noBubble:true},valuechanged:{noBubble:true},expandedItem:{noBubble:true},collapsedItem:{noBubble:true},expandingItem:{noBubble:true},collapsingItem:{noBubble:true}})}if(b.fn.extend){b.fn.extend({ischildof:function(g){if(!b(this).parents){var c=g.element.contains(this.element);return c}var e=b(this).parents().get();for(var d=0;d<e.length;d++){if(typeof g!="string"){var f=e[d];if(g!==undefined){if(f==g[0]){return true}}}else{if(g!==undefined){if(b(e[d]).is(g)){return true}}}}return false}})}b.fn.jqxProxy=function(){var e=b(this).data().jqxWidget;var c=Array.prototype.slice.call(arguments,0);var d=e.element;if(!d){d=e.base.element}return b.jqx.jqxWidgetProxy(e.widgetName,d,c)};var a=b.originalVal=b.fn.val;b.fn.val=function(d){if(typeof d=="undefined"){if(b(this).hasClass("jqx-widget")){var c=b(this).data().jqxWidget;if(c&&c.val){return c.val()}}if(this[0]&&this[0].tagName.toLowerCase().indexOf("angular")>=0){var c=b(this).find(".jqx-widget").data().jqxWidget;if(c&&c.val){return c.val()}}return a.call(this)}else{if(b(this).hasClass("jqx-widget")){var c=b(this).data().jqxWidget;if(c&&c.val){if(arguments.length!=2){return c.val(d)}else{return c.val(d,arguments[1])}}}if(this[0]&&this[0].tagName.toLowerCase().indexOf("angular")>=0){var c=b(this).find(".jqx-widget").data().jqxWidget;if(c&&c.val){if(arguments.length!=2){return c.val(d)}else{return c.val(d,arguments[1])}}}return a.call(this,d)}};if(b.fn.modal&&b.fn.modal.Constructor){b.fn.modal.Constructor.prototype.enforceFocus=function(){b(document).off("focusin.bs.modal").on("focusin.bs.modal",b.proxy(function(c){if(this.$element[0]!==c.target&&!this.$element.has(c.target).length){if(b(c.target).parents().hasClass("jqx-popup")){return true}this.$element.trigger("focus")}},this))}}b.fn.coord=function(n){var e,j,i={top:0,left:0},f=this[0],l=f&&f.ownerDocument;if(!l){return}e=l.documentElement;if(!b.contains(e,f)){return i}if(typeof f.getBoundingClientRect!==undefined){i=f.getBoundingClientRect()}var d=function(o){return b.isWindow(o)?o:o.nodeType===9?o.defaultView||o.parentWindow:false};j=d(l);var h=0;var c=0;var g=navigator.userAgent.toLowerCase();var m=g.indexOf("ipad")!=-1||g.indexOf("iphone")!=-1;if(m){h=2}if(true==n){if(document.body.style.position!="static"&&document.body.style.position!=""){var k=b(document.body).coord();h=-k.left;c=-k.top}}return{top:c+i.top+(j.pageYOffset||e.scrollTop)-(e.clientTop||0),left:h+i.left+(j.pageXOffset||e.scrollLeft)-(e.clientLeft||0)}};b.jqx.ripplers=[];b.jqx.ripple=function(f,e,o){if(!e){e=f}var h=b(f);var j=false;h.append("<span class='ink'></span>");var p=h.find(".ink");var c=false;for(var g=0;g<b.jqx.ripplers.length;g++){var k=b.jqx.ripplers[g];if(k.element[0]===f[0]){c=true;break}}if(!c){b.jqx.ripplers.push({ink:p,element:f,hostElement:e,hostElementType:o})}if(o==="checkbox"||o==="radiobutton"){var l=Math.max(h.outerWidth(),h.outerHeight());p.css({height:l,width:l});var n=h.width()/2-p.width()/2;var m=h.height()/2-p.height()/2;p.css({top:m+"px",left:n+"px"})}if(b.jqx.ripplers.length===1){b(document).on("mouseup",function(r){b.jqx.ripple.mouseCaptured=false;for(var q=0;q<b.jqx.ripplers.length;q++){var d=b.jqx.ripplers[q];d.ink.removeClass("active");d.element.removeClass("active");if(o!=="checkbox"&&o!=="radiobutton"){if(d.ink.hasClass("animate")){d.ink.removeClass("animate")}}}})}e.off("mousedown.ripple");e.on("mousedown.ripple",function(i){var d=b(f);b.jqx.ripple.mouseCaptured=true;setTimeout(function(){if(d.find(".ink").length==0){d.append("<span class='ink'></span>")}var r=d.find(".ink");r.removeClass("animate");if(!r.height()&&!r.width()){var s=Math.max(d.outerWidth(),d.outerHeight());r.css({height:s,width:s})}if(o==="checkbox"||o==="radiobutton"){if(o==="checkbox"){if(e.jqxCheckBox("disabled")){return}}if(o==="radiobutton"){if(e.jqxRadioButton("disabled")){return}}var q=d.width()/2-r.width()/2;var t=d.height()/2-r.height()/2;r.css({top:t+"px",left:q+"px"}).addClass("animate");r.on("animationend",function(){if(b.jqx.ripple.mouseCaptured){r.removeClass("animate");r.addClass("active");f.addClass("active")}});return}var q=i.pageX-d.offset().left-r.width()/2;var t=i.pageY-d.offset().top-r.height()/2;r.css({top:t+"px",left:q+"px"}).addClass("animate")})})}})(jqxBaseFramework); +(function(cn,bM){var cs,bF,cg,bv,bR,b5,bI,bL,bH,ce,bE=true,bZ="undefined",cu=("sizcache"+Math.random()).replace(".",""),bz=String,bD=cn.document,bG=bD.documentElement,bW=0,bK=0,b9=[].pop,cr=[].push,bQ=[].slice,bT=[].indexOf||function(cE){var cD=0,cC=this.length;for(;cD<cC;cD++){if(this[cD]===cE){return cD}}return -1},cw=function(cC,cD){cC[cu]=cD==null||cD;return cC},cA=function(){var cC={},cD=[];return cw(function(cE,cF){if(cD.push(cE)>cg.cacheLength){delete cC[cD.shift()]}return(cC[cE+" "]=cF)},cC)},cp=cA(),cq=cA(),bS=cA(),b3="[\\x20\\t\\r\\n\\f]",bP="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",bN=bP.replace("w","w#"),cz="([*^$|!~]?=)",ck="\\["+b3+"*("+bP+")"+b3+"*(?:"+cz+b3+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+bN+")|)|)"+b3+"*\\]",cB=":("+bP+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+ck+")|[^:]|\\\\.)*|.*))\\)|)",b4=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+b3+"*((?:-\\d)?\\d*)"+b3+"*\\)|)(?=[^-]|$)",co=new RegExp("^"+b3+"+|((?:^|[^\\\\])(?:\\\\.)*)"+b3+"+$","g"),bA=new RegExp("^"+b3+"*,"+b3+"*"),cc=new RegExp("^"+b3+"*([\\x20\\t\\r\\n\\f>+~])"+b3+"*"),ch=new RegExp(cB),cj=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,b8=/^:not/,cm=/[\x20\t\r\n\f]*[+~]/,cv=/:not\($/,bX=/h\d/i,ci=/input|select|textarea|button/i,bY=/\\(?!\\)/g,cb={ID:new RegExp("^#("+bP+")"),CLASS:new RegExp("^\\.("+bP+")"),NAME:new RegExp("^\\[name=['\"]?("+bP+")['\"]?\\]"),TAG:new RegExp("^("+bP.replace("w","w*")+")"),ATTR:new RegExp("^"+ck),PSEUDO:new RegExp("^"+cB),POS:new RegExp(b4,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+b3+"*(even|odd|(([+-]|)(\\d*)n|)"+b3+"*(?:([+-]|)"+b3+"*(\\d+)|))"+b3+"*\\)|)","i"),needsContext:new RegExp("^"+b3+"*[>+~]|"+b4,"i")},cf=function(cC){var cE=bD.createElement("div");try{return cC(cE)}catch(cD){return false}finally{cE=null}},bC=cf(function(cC){cC.appendChild(bD.createComment(""));return !cC.getElementsByTagName("*").length}),b7=cf(function(cC){cC.innerHTML="<a href='#'></a>";return cC.firstChild&&typeof cC.firstChild.getAttribute!==bZ&&cC.firstChild.getAttribute("href")==="#"}),bV=cf(function(cD){cD.innerHTML="<select></select>";var cC=typeof cD.lastChild.getAttribute("multiple");return cC!=="boolean"&&cC!=="string"}),b6=cf(function(cC){cC.innerHTML="<div class='hidden e'></div><div class='hidden'></div>";if(!cC.getElementsByClassName||!cC.getElementsByClassName("e").length){return false}cC.lastChild.className="e";return cC.getElementsByClassName("e").length===2}),bu=cf(function(cD){cD.id=cu+0;cD.innerHTML="<a name='"+cu+"'></a><div name='"+cu+"'></div>";bG.insertBefore(cD,bG.firstChild);var cC=bD.getElementsByName&&bD.getElementsByName(cu).length===2+bD.getElementsByName(cu+0).length;bF=!bD.getElementById(cu);bG.removeChild(cD);return cC});try{bQ.call(bG.childNodes,0)[0].nodeType}catch(cy){bQ=function(cD){var cE,cC=[];for(;(cE=this[cD]);cD++){cC.push(cE)}return cC}}function cl(cF,cC,cH,cK){cH=cH||[];cC=cC||bD;var cI,cD,cJ,cE,cG=cC.nodeType;if(!cF||typeof cF!=="string"){return cH}if(cG!==1&&cG!==9){return[]}cJ=bR(cC);if(!cJ&&!cK){if((cI=cj.exec(cF))){if((cE=cI[1])){if(cG===9){cD=cC.getElementById(cE);if(cD&&cD.parentNode){if(cD.id===cE){cH.push(cD);return cH}}else{return cH}}else{if(cC.ownerDocument&&(cD=cC.ownerDocument.getElementById(cE))&&b5(cC,cD)&&cD.id===cE){cH.push(cD);return cH}}}else{if(cI[2]){cr.apply(cH,bQ.call(cC.getElementsByTagName(cF),0));return cH}else{if((cE=cI[3])&&b6&&cC.getElementsByClassName){cr.apply(cH,bQ.call(cC.getElementsByClassName(cE),0));return cH}}}}}return ct(cF.replace(co,"$1"),cC,cH,cK,cJ)}cl.matches=function(cD,cC){return cl(cD,null,null,cC)};cl.matchesSelector=function(cC,cD){return cl(cD,null,null,[cC]).length>0};function cd(cC){return function(cE){var cD=cE.nodeName.toLowerCase();return cD==="input"&&cE.type===cC}}function by(cC){return function(cE){var cD=cE.nodeName.toLowerCase();return(cD==="input"||cD==="button")&&cE.type===cC}}function ca(cC){return cw(function(cD){cD=+cD;return cw(function(cE,cI){var cG,cF=cC([],cE.length,cD),cH=cF.length;while(cH--){if(cE[(cG=cF[cH])]){cE[cG]=!(cI[cG]=cE[cG])}}})})}bv=cl.getText=function(cG){var cF,cD="",cE=0,cC=cG.nodeType;if(cC){if(cC===1||cC===9||cC===11){if(typeof cG.textContent==="string"){return cG.textContent}else{for(cG=cG.firstChild;cG;cG=cG.nextSibling){cD+=bv(cG)}}}else{if(cC===3||cC===4){return cG.nodeValue}}}else{for(;(cF=cG[cE]);cE++){cD+=bv(cF)}}return cD};bR=cl.isXML=function(cC){var cD=cC&&(cC.ownerDocument||cC).documentElement;return cD?cD.nodeName!=="HTML":false};b5=cl.contains=bG.contains?function(cD,cC){var cF=cD.nodeType===9?cD.documentElement:cD,cE=cC&&cC.parentNode;return cD===cE||!!(cE&&cE.nodeType===1&&cF.contains&&cF.contains(cE))}:bG.compareDocumentPosition?function(cD,cC){return cC&&!!(cD.compareDocumentPosition(cC)&16)}:function(cD,cC){while((cC=cC.parentNode)){if(cC===cD){return true}}return false};cl.attr=function(cE,cD){var cF,cC=bR(cE);if(!cC){cD=cD.toLowerCase()}if((cF=cg.attrHandle[cD])){return cF(cE)}if(cC||bV){return cE.getAttribute(cD)}cF=cE.getAttributeNode(cD);return cF?typeof cE[cD]==="boolean"?cE[cD]?cD:null:cF.specified?cF.value:null:null};cg=cl.selectors={cacheLength:50,createPseudo:cw,match:cb,attrHandle:b7?{}:{href:function(cC){return cC.getAttribute("href",2)},type:function(cC){return cC.getAttribute("type")}},find:{ID:bF?function(cF,cE,cD){if(typeof cE.getElementById!==bZ&&!cD){var cC=cE.getElementById(cF);return cC&&cC.parentNode?[cC]:[]}}:function(cF,cE,cD){if(typeof cE.getElementById!==bZ&&!cD){var cC=cE.getElementById(cF);return cC?cC.id===cF||typeof cC.getAttributeNode!==bZ&&cC.getAttributeNode("id").value===cF?[cC]:bM:[]}},TAG:bC?function(cC,cD){if(typeof cD.getElementsByTagName!==bZ){return cD.getElementsByTagName(cC)}}:function(cC,cG){var cF=cG.getElementsByTagName(cC);if(cC==="*"){var cH,cE=[],cD=0;for(;(cH=cF[cD]);cD++){if(cH.nodeType===1){cE.push(cH)}}return cE}return cF},NAME:bu&&function(cC,cD){if(typeof cD.getElementsByName!==bZ){return cD.getElementsByName(name)}},CLASS:b6&&function(cE,cD,cC){if(typeof cD.getElementsByClassName!==bZ&&!cC){return cD.getElementsByClassName(cE)}}},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(cC){cC[1]=cC[1].replace(bY,"");cC[3]=(cC[4]||cC[5]||"").replace(bY,"");if(cC[2]==="~="){cC[3]=" "+cC[3]+" "}return cC.slice(0,4)},CHILD:function(cC){cC[1]=cC[1].toLowerCase();if(cC[1]==="nth"){if(!cC[2]){cl.error(cC[0])}cC[3]=+(cC[3]?cC[4]+(cC[5]||1):2*(cC[2]==="even"||cC[2]==="odd"));cC[4]=+((cC[6]+cC[7])||cC[2]==="odd")}else{if(cC[2]){cl.error(cC[0])}}return cC},PSEUDO:function(cD){var cE,cC;if(cb.CHILD.test(cD[0])){return null}if(cD[3]){cD[2]=cD[3]}else{if((cE=cD[4])){if(ch.test(cE)&&(cC=bw(cE,true))&&(cC=cE.indexOf(")",cE.length-cC)-cE.length)){cE=cE.slice(0,cC);cD[0]=cD[0].slice(0,cC)}cD[2]=cE}}return cD.slice(0,3)}},filter:{ID:bF?function(cC){cC=cC.replace(bY,"");return function(cD){return cD.getAttribute("id")===cC}}:function(cC){cC=cC.replace(bY,"");return function(cE){var cD=typeof cE.getAttributeNode!==bZ&&cE.getAttributeNode("id");return cD&&cD.value===cC}},TAG:function(cC){if(cC==="*"){return function(){return true}}cC=cC.replace(bY,"").toLowerCase();return function(cD){return cD.nodeName&&cD.nodeName.toLowerCase()===cC}},CLASS:function(cC){var cD=cp[cu][cC+" "];return cD||(cD=new RegExp("(^|"+b3+")"+cC+"("+b3+"|$)"))&&cp(cC,function(cE){return cD.test(cE.className||(typeof cE.getAttribute!==bZ&&cE.getAttribute("class"))||"")})},ATTR:function(cE,cD,cC){return function(cH,cG){var cF=cl.attr(cH,cE);if(cF==null){return cD==="!="}if(!cD){return true}cF+="";return cD==="="?cF===cC:cD==="!="?cF!==cC:cD==="^="?cC&&cF.indexOf(cC)===0:cD==="*="?cC&&cF.indexOf(cC)>-1:cD==="$="?cC&&cF.substr(cF.length-cC.length)===cC:cD==="~="?(" "+cF+" ").indexOf(cC)>-1:cD==="|="?cF===cC||cF.substr(0,cC.length+1)===cC+"-":false}},CHILD:function(cC,cE,cF,cD){if(cC==="nth"){return function(cI){var cH,cJ,cG=cI.parentNode;if(cF===1&&cD===0){return true}if(cG){cJ=0;for(cH=cG.firstChild;cH;cH=cH.nextSibling){if(cH.nodeType===1){cJ++;if(cI===cH){break}}}}cJ-=cD;return cJ===cF||(cJ%cF===0&&cJ/cF>=0)}}return function(cH){var cG=cH;switch(cC){case"only":case"first":while((cG=cG.previousSibling)){if(cG.nodeType===1){return false}}if(cC==="first"){return true}cG=cH;case"last":while((cG=cG.nextSibling)){if(cG.nodeType===1){return false}}return true}}},PSEUDO:function(cF,cE){var cC,cD=cg.pseudos[cF]||cg.setFilters[cF.toLowerCase()]||cl.error("unsupported pseudo: "+cF);if(cD[cu]){return cD(cE)}if(cD.length>1){cC=[cF,cF,"",cE];return cg.setFilters.hasOwnProperty(cF.toLowerCase())?cw(function(cI,cK){var cH,cG=cD(cI,cE),cJ=cG.length;while(cJ--){cH=bT.call(cI,cG[cJ]);cI[cH]=!(cK[cH]=cG[cJ])}}):function(cG){return cD(cG,0,cC)}}return cD}},pseudos:{not:cw(function(cC){var cD=[],cE=[],cF=bI(cC.replace(co,"$1"));return cF[cu]?cw(function(cH,cM,cK,cI){var cL,cG=cF(cH,null,cI,[]),cJ=cH.length;while(cJ--){if((cL=cG[cJ])){cH[cJ]=!(cM[cJ]=cL)}}}):function(cI,cH,cG){cD[0]=cI;cF(cD,null,cG,cE);return !cE.pop()}}),has:cw(function(cC){return function(cD){return cl(cC,cD).length>0}}),contains:cw(function(cC){return function(cD){return(cD.textContent||cD.innerText||bv(cD)).indexOf(cC)>-1}}),enabled:function(cC){return cC.disabled===false},disabled:function(cC){return cC.disabled===true},checked:function(cC){var cD=cC.nodeName.toLowerCase();return(cD==="input"&&!!cC.checked)||(cD==="option"&&!!cC.selected)},selected:function(cC){if(cC.parentNode){cC.parentNode.selectedIndex}return cC.selected===true},parent:function(cC){return !cg.pseudos.empty(cC)},empty:function(cD){var cC;cD=cD.firstChild;while(cD){if(cD.nodeName>"@"||(cC=cD.nodeType)===3||cC===4){return false}cD=cD.nextSibling}return true},header:function(cC){return bX.test(cC.nodeName)},text:function(cE){var cD,cC;return cE.nodeName.toLowerCase()==="input"&&(cD=cE.type)==="text"&&((cC=cE.getAttribute("type"))==null||cC.toLowerCase()===cD)},radio:cd("radio"),checkbox:cd("checkbox"),file:cd("file"),password:cd("password"),image:cd("image"),submit:by("submit"),reset:by("reset"),button:function(cD){var cC=cD.nodeName.toLowerCase();return cC==="input"&&cD.type==="button"||cC==="button"},input:function(cC){return ci.test(cC.nodeName)},focus:function(cC){var cD=cC.ownerDocument;return cC===cD.activeElement&&(!cD.hasFocus||cD.hasFocus())&&!!(cC.type||cC.href||~cC.tabIndex)},active:function(cC){return cC===cC.ownerDocument.activeElement},first:ca(function(){return[0]}),last:ca(function(cC,cD){return[cD-1]}),eq:ca(function(cC,cE,cD){return[cD<0?cD+cE:cD]}),even:ca(function(cC,cE){for(var cD=0;cD<cE;cD+=2){cC.push(cD)}return cC}),odd:ca(function(cC,cE){for(var cD=1;cD<cE;cD+=2){cC.push(cD)}return cC}),lt:ca(function(cC,cF,cE){for(var cD=cE<0?cE+cF:cE;--cD>=0;){cC.push(cD)}return cC}),gt:ca(function(cC,cF,cE){for(var cD=cE<0?cE+cF:cE;++cD<cF;){cC.push(cD)}return cC})}};function bx(cD,cC,cE){if(cD===cC){return cE}var cF=cD.nextSibling;while(cF){if(cF===cC){return -1}cF=cF.nextSibling}return 1}bL=bG.compareDocumentPosition?function(cD,cC){if(cD===cC){bH=true;return 0}return(!cD.compareDocumentPosition||!cC.compareDocumentPosition?cD.compareDocumentPosition:cD.compareDocumentPosition(cC)&4)?-1:1}:function(cK,cJ){if(cK===cJ){bH=true;return 0}else{if(cK.sourceIndex&&cJ.sourceIndex){return cK.sourceIndex-cJ.sourceIndex}}var cH,cD,cE=[],cC=[],cG=cK.parentNode,cI=cJ.parentNode,cL=cG;if(cG===cI){return bx(cK,cJ)}else{if(!cG){return -1}else{if(!cI){return 1}}}while(cL){cE.unshift(cL);cL=cL.parentNode}cL=cI;while(cL){cC.unshift(cL);cL=cL.parentNode}cH=cE.length;cD=cC.length;for(var cF=0;cF<cH&&cF<cD;cF++){if(cE[cF]!==cC[cF]){return bx(cE[cF],cC[cF])}}return cF===cH?bx(cK,cC[cF],-1):bx(cE[cF],cJ,1)};[0,0].sort(bL);bE=!bH;cl.uniqueSort=function(cE){var cF,cG=[],cD=1,cC=0;bH=bE;cE.sort(bL);if(bH){for(;(cF=cE[cD]);cD++){if(cF===cE[cD-1]){cC=cG.push(cD)}}while(cC--){cE.splice(cG[cC],1)}}return cE};cl.error=function(cC){throw new Error("Syntax error, unrecognized expression: "+cC)};function bw(cG,cL){var cD,cH,cJ,cK,cI,cE,cC,cF=cq[cu][cG+" "];if(cF){return cL?0:cF.slice(0)}cI=cG;cE=[];cC=cg.preFilter;while(cI){if(!cD||(cH=bA.exec(cI))){if(cH){cI=cI.slice(cH[0].length)||cI}cE.push(cJ=[])}cD=false;if((cH=cc.exec(cI))){cJ.push(cD=new bz(cH.shift()));cI=cI.slice(cD.length);cD.type=cH[0].replace(co," ")}for(cK in cg.filter){if((cH=cb[cK].exec(cI))&&(!cC[cK]||(cH=cC[cK](cH)))){cJ.push(cD=new bz(cH.shift()));cI=cI.slice(cD.length);cD.type=cK;cD.matches=cH}}if(!cD){break}}return cL?cI.length:cI?cl.error(cG):cq(cG,cE).slice(0)}function b1(cG,cE,cF){var cC=cE.dir,cH=cF&&cE.dir==="parentNode",cD=bK++;return cE.first?function(cK,cJ,cI){while((cK=cK[cC])){if(cH||cK.nodeType===1){return cG(cK,cJ,cI)}}}:function(cL,cK,cJ){if(!cJ){var cI,cM=bW+" "+cD+" ",cN=cM+cs;while((cL=cL[cC])){if(cH||cL.nodeType===1){if((cI=cL[cu])===cN){return cL.sizset}else{if(typeof cI==="string"&&cI.indexOf(cM)===0){if(cL.sizset){return cL}}else{cL[cu]=cN;if(cG(cL,cK,cJ)){cL.sizset=true;return cL}cL.sizset=false}}}}}else{while((cL=cL[cC])){if(cH||cL.nodeType===1){if(cG(cL,cK,cJ)){return cL}}}}}}function bJ(cC){return cC.length>1?function(cG,cF,cD){var cE=cC.length;while(cE--){if(!cC[cE](cG,cF,cD)){return false}}return true}:cC[0]}function b0(cC,cD,cE,cF,cI){var cG,cL=[],cH=0,cJ=cC.length,cK=cD!=null;for(;cH<cJ;cH++){if((cG=cC[cH])){if(!cE||cE(cG,cF,cI)){cL.push(cG);if(cK){cD.push(cH)}}}}return cL}function cx(cE,cD,cG,cF,cH,cC){if(cF&&!cF[cu]){cF=cx(cF)}if(cH&&!cH[cu]){cH=cx(cH,cC)}return cw(function(cS,cP,cK,cR){var cU,cQ,cM,cL=[],cT=[],cJ=cP.length,cI=cS||bU(cD||"*",cK.nodeType?[cK]:cK,[]),cN=cE&&(cS||!cD)?b0(cI,cL,cE,cK,cR):cI,cO=cG?cH||(cS?cE:cJ||cF)?[]:cP:cN;if(cG){cG(cN,cO,cK,cR)}if(cF){cU=b0(cO,cT);cF(cU,[],cK,cR);cQ=cU.length;while(cQ--){if((cM=cU[cQ])){cO[cT[cQ]]=!(cN[cT[cQ]]=cM)}}}if(cS){if(cH||cE){if(cH){cU=[];cQ=cO.length;while(cQ--){if((cM=cO[cQ])){cU.push((cN[cQ]=cM))}}cH(null,(cO=[]),cU,cR)}cQ=cO.length;while(cQ--){if((cM=cO[cQ])&&(cU=cH?bT.call(cS,cM):cL[cQ])>-1){cS[cU]=!(cP[cU]=cM)}}}}else{cO=b0(cO===cP?cO.splice(cJ,cO.length):cO);if(cH){cH(null,cP,cO,cR)}else{cr.apply(cP,cO)}}})}function b2(cI){var cD,cG,cE,cH=cI.length,cL=cg.relative[cI[0].type],cM=cL||cg.relative[" "],cF=cL?1:0,cJ=b1(function(cN){return cN===cD},cM,true),cK=b1(function(cN){return bT.call(cD,cN)>-1},cM,true),cC=[function(cP,cO,cN){return(!cL&&(cN||cO!==ce))||((cD=cO).nodeType?cJ(cP,cO,cN):cK(cP,cO,cN))}];for(;cF<cH;cF++){if((cG=cg.relative[cI[cF].type])){cC=[b1(bJ(cC),cG)]}else{cG=cg.filter[cI[cF].type].apply(null,cI[cF].matches);if(cG[cu]){cE=++cF;for(;cE<cH;cE++){if(cg.relative[cI[cE].type]){break}}return cx(cF>1&&bJ(cC),cF>1&&cI.slice(0,cF-1).join("").replace(co,"$1"),cG,cF<cE&&b2(cI.slice(cF,cE)),cE<cH&&b2((cI=cI.slice(cE))),cE<cH&&cI.join(""))}cC.push(cG)}}return bJ(cC)}function bB(cF,cE){var cC=cE.length>0,cG=cF.length>0,cD=function(cQ,cK,cP,cO,cW){var cL,cM,cR,cV=[],cU=0,cN="0",cH=cQ&&[],cS=cW!=null,cT=ce,cJ=cQ||cG&&cg.find.TAG("*",cW&&cK.parentNode||cK),cI=(bW+=cT==null?1:Math.E);if(cS){ce=cK!==bD&&cK;cs=cD.el}for(;(cL=cJ[cN])!=null;cN++){if(cG&&cL){for(cM=0;(cR=cF[cM]);cM++){if(cR(cL,cK,cP)){cO.push(cL);break}}if(cS){bW=cI;cs=++cD.el}}if(cC){if((cL=!cR&&cL)){cU--}if(cQ){cH.push(cL)}}}cU+=cN;if(cC&&cN!==cU){for(cM=0;(cR=cE[cM]);cM++){cR(cH,cV,cK,cP)}if(cQ){if(cU>0){while(cN--){if(!(cH[cN]||cV[cN])){cV[cN]=b9.call(cO)}}}cV=b0(cV)}cr.apply(cO,cV);if(cS&&!cQ&&cV.length>0&&(cU+cE.length)>1){cl.uniqueSort(cO)}}if(cS){bW=cI;ce=cT}return cH};cD.el=0;return cC?cw(cD):cD}bI=cl.compile=function(cC,cH){var cE,cD=[],cG=[],cF=bS[cu][cC+" "];if(!cF){if(!cH){cH=bw(cC)}cE=cH.length;while(cE--){cF=b2(cH[cE]);if(cF[cu]){cD.push(cF)}else{cG.push(cF)}}cF=bS(cC,bB(cG,cD))}return cF};function bU(cD,cG,cF){var cE=0,cC=cG.length;for(;cE<cC;cE++){cl(cD,cG[cE],cF)}return cF}function ct(cE,cC,cG,cK,cJ){var cH,cN,cD,cM,cL,cI=bw(cE),cF=cI.length;if(!cK){if(cI.length===1){cN=cI[0]=cI[0].slice(0);if(cN.length>2&&(cD=cN[0]).type==="ID"&&cC.nodeType===9&&!cJ&&cg.relative[cN[1].type]){cC=cg.find.ID(cD.matches[0].replace(bY,""),cC,cJ)[0];if(!cC){return cG}cE=cE.slice(cN.shift().length)}for(cH=cb.POS.test(cE)?-1:cN.length-1;cH>=0;cH--){cD=cN[cH];if(cg.relative[(cM=cD.type)]){break}if((cL=cg.find[cM])){if((cK=cL(cD.matches[0].replace(bY,""),cm.test(cN[0].type)&&cC.parentNode||cC,cJ))){cN.splice(cH,1);cE=cK.length&&cN.join("");if(!cE){cr.apply(cG,bQ.call(cK,0));return cG}break}}}}}bI(cE,cI)(cK,cC,cJ,cG,cm.test(cE));return cG}if(bD.querySelectorAll){(function(){var cH,cI=ct,cG=/'|\\/g,cE=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,cD=[":focus"],cC=[":active"],cF=bG.matchesSelector||bG.mozMatchesSelector||bG.webkitMatchesSelector||bG.oMatchesSelector||bG.msMatchesSelector;cf(function(cJ){cJ.innerHTML="<select><option selected=''></option></select>";if(!cJ.querySelectorAll("[selected]").length){cD.push("\\["+b3+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)")}if(!cJ.querySelectorAll(":checked").length){cD.push(":checked")}});cf(function(cJ){cJ.innerHTML="<p test=''></p>";if(cJ.querySelectorAll("[test^='']").length){cD.push("[*^$]="+b3+"*(?:\"\"|'')")}cJ.innerHTML="<input type='hidden'/>";if(!cJ.querySelectorAll(":enabled").length){cD.push(":enabled",":disabled")}});cD=new RegExp(cD.join("|"));ct=function(cP,cK,cR,cU,cT){if(!cU&&!cT&&!cD.test(cP)){var cN,cS,cM=true,cJ=cu,cL=cK,cQ=cK.nodeType===9&&cP;if(cK.nodeType===1&&cK.nodeName.toLowerCase()!=="object"){cN=bw(cP);if((cM=cK.getAttribute("id"))){cJ=cM.replace(cG,"\\$&")}else{cK.setAttribute("id",cJ)}cJ="[id='"+cJ+"'] ";cS=cN.length;while(cS--){cN[cS]=cJ+cN[cS].join("")}cL=cm.test(cP)&&cK.parentNode||cK;cQ=cN.join(",")}if(cQ){try{cr.apply(cR,bQ.call(cL.querySelectorAll(cQ),0));return cR}catch(cO){}finally{if(!cM){cK.removeAttribute("id")}}}}return cI(cP,cK,cR,cU,cT)};if(cF){cf(function(cK){cH=cF.call(cK,"div");try{cF.call(cK,"[test!='']:sizzle");cC.push("!=",cB)}catch(cJ){}});cC=new RegExp(cC.join("|"));cl.matchesSelector=function(cK,cM){cM=cM.replace(cE,"='$1']");if(!bR(cK)&&!cC.test(cM)&&!cD.test(cM)){try{var cJ=cF.call(cK,cM);if(cJ||cH||cK.document&&cK.document.nodeType!==11){return cJ}}catch(cL){}}return cl(cM,null,null,[cK]).length>0}}})()}cg.pseudos.nth=cg.pseudos.eq;function bO(){}cg.filters=bO.prototype=cg.pseudos;cg.setFilters=new bO();cl.attr=C.attr;C.find=cl;C.expr=cl.selectors;C.expr[":"]=C.expr.pseudos;C.unique=cl.uniqueSort;C.text=cl.getText;C.isXMLDoc=cl.isXML;C.contains=cl.contains})(bd);var U=/Until$/,ag=/^(?:parents|prev(?:Until|All))/,bq=/^.[^:#\[\.,]*$/,aQ=C.expr.match.needsContext,ao={children:true,contents:true,next:true,prev:true};C.fn.extend({find:function(bu){var by,bv,bA,bB,bz,bx,bw=this;if(typeof bu!=="string"){return C(bu).filter(function(){for(by=0,bv=bw.length;by<bv;by++){if(C.contains(bw[by],this)){return true}}})}bx=this.pushStack("","find",bu);for(by=0,bv=this.length;by<bv;by++){bA=bx.length;C.find(bu,this[by],bx);if(by>0){for(bB=bA;bB<bx.length;bB++){for(bz=0;bz<bA;bz++){if(bx[bz]===bx[bB]){bx.splice(bB--,1);break}}}}}return bx},has:function(bx){var bw,bv=C(bx,this),bu=bv.length;return this.filter(function(){for(bw=0;bw<bu;bw++){if(C.contains(this,bv[bw])){return true}}})},not:function(bu){return this.pushStack(az(this,bu,false),"not",bu)},filter:function(bu){return this.pushStack(az(this,bu,true),"filter",bu)},is:function(bu){return !!bu&&(typeof bu==="string"?aQ.test(bu)?C(bu,this.context).index(this[0])>=0:C.filter(bu,this).length>0:this.filter(bu).length>0)},closest:function(by,bx){var bz,bw=0,bu=this.length,bv=[],bA=aQ.test(by)||typeof by!=="string"?C(by,bx||this.context):0;for(;bw<bu;bw++){bz=this[bw];while(bz&&bz.ownerDocument&&bz!==bx&&bz.nodeType!==11){if(bA?bA.index(bz)>-1:C.find.matchesSelector(bz,by)){bv.push(bz);break}bz=bz.parentNode}}bv=bv.length>1?C.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(bu){if(!bu){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof bu==="string"){return C.inArray(this[0],C(bu))}return C.inArray(bu.jqx?bu[0]:bu,this)},add:function(bu,bv){var bx=typeof bu==="string"?C(bu,bv):C.makeArray(bu&&bu.nodeType?[bu]:bu),bw=C.merge(this.get(),bx);return this.pushStack(x(bx[0])||x(bw[0])?bw:C.unique(bw))},addBack:function(bu){return this.add(bu==null?this.prevObject:this.prevObject.filter(bu))}});C.fn.andSelf=C.fn.addBack;function x(bu){return !bu||!bu.parentNode||bu.parentNode.nodeType===11}function aB(bv,bu){do{bv=bv[bu]}while(bv&&bv.nodeType!==1);return bv}C.each({parent:function(bv){var bu=bv.parentNode;return bu&&bu.nodeType!==11?bu:null},parents:function(bu){return C.dir(bu,"parentNode")},parentsUntil:function(bv,bu,bw){return C.dir(bv,"parentNode",bw)},next:function(bu){return aB(bu,"nextSibling")},prev:function(bu){return aB(bu,"previousSibling")},nextAll:function(bu){return C.dir(bu,"nextSibling")},prevAll:function(bu){return C.dir(bu,"previousSibling")},nextUntil:function(bv,bu,bw){return C.dir(bv,"nextSibling",bw)},prevUntil:function(bv,bu,bw){return C.dir(bv,"previousSibling",bw)},siblings:function(bu){return C.sibling((bu.parentNode||{}).firstChild,bu)},children:function(bu){return C.sibling(bu.firstChild)},contents:function(bu){return C.nodeName(bu,"iframe")?bu.contentDocument||bu.contentWindow.document:C.merge([],bu.childNodes)}},function(bu,bv){C.fn[bu]=function(by,bw){var bx=C.map(this,bv,by);if(!U.test(bu)){bw=by}if(bw&&typeof bw==="string"){bx=C.filter(bw,bx)}bx=this.length>1&&!ao[bu]?C.unique(bx):bx;if(this.length>1&&ag.test(bu)){bx=bx.reverse()}return this.pushStack(bx,bu,aD.call(arguments).join(","))}});C.extend({filter:function(bw,bu,bv){if(bv){bw=":not("+bw+")"}return bu.length===1?C.find.matchesSelector(bu[0],bw)?[bu[0]]:[]:C.find.matches(bw,bu)},dir:function(bw,bv,by){var bu=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===G||bx.nodeType!==1||!C(bx).is(by))){if(bx.nodeType===1){bu.push(bx)}bx=bx[bv]}return bu},sibling:function(bw,bv){var bu=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){bu.push(bw)}}return bu}});function az(bx,bw,bu){bw=bw||0;if(C.isFunction(bw)){return C.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===bu})}else{if(bw.nodeType){return C.grep(bx,function(bz,by){return(bz===bw)===bu})}else{if(typeof bw==="string"){var bv=C.grep(bx,function(by){return by.nodeType===1});if(bq.test(bw)){return C.filter(bw,bv,!bu)}else{bw=C.filter(bw,bv)}}}}return C.grep(bx,function(bz,by){return(C.inArray(bz,bw)>=0)===bu})}function a(bu){var bw=aJ.split("|"),bv=bu.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aJ="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",aa=/ JQXLite\d+="(?:null|\d+)"/g,ah=/^\s+/,L=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,c=/<([\w:]+)/,v=/<tbody/i,P=/<|&#?\w+;/,W=/<(?:script|style|link)/i,I=/<(?:script|object|embed|option|style)/i,ac=new RegExp("<(?:"+aJ+")[\\s/>]","i"),R=/^(?:checkbox|radio)$/,o=/checked\s*(?:[^=]|=\s*.checked.)/i,bp=/\/(java|ecma)script/i,aG=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,am={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},T=a(ak),bg=T.appendChild(ak.createElement("div"));am.optgroup=am.option;am.tbody=am.tfoot=am.colgroup=am.caption=am.thead;am.th=am.td;if(!C.support.htmlSerialize){am._default=[1,"X<div>","</div>"]}C.fn.extend({text:function(bu){return C.access(this,function(bv){return bv===G?C.text(this):this.empty().append((this[0]&&this[0].ownerDocument||ak).createTextNode(bv))},null,bu,arguments.length)},wrapAll:function(bu){if(C.isFunction(bu)){return this.each(function(bw){C(this).wrapAll(bu.call(this,bw))})}if(this[0]){var bv=C(bu,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(bu){if(C.isFunction(bu)){return this.each(function(bv){C(this).wrapInner(bu.call(this,bv))})}return this.each(function(){var bv=C(this),bw=bv.contents();if(bw.length){bw.wrapAll(bu)}else{bv.append(bu)}})},wrap:function(bu){var bv=C.isFunction(bu);return this.each(function(bw){C(this).wrapAll(bv?bu.call(this,bw):bu)})},unwrap:function(){return this.parent().each(function(){if(!C.nodeName(this,"body")){C(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(bu){if(this.nodeType===1||this.nodeType===11){this.appendChild(bu)}})},prepend:function(){return this.domManip(arguments,true,function(bu){if(this.nodeType===1||this.nodeType===11){this.insertBefore(bu,this.firstChild)}})},before:function(){if(!x(this[0])){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}if(arguments.length){var bu=C.clean(arguments);return this.pushStack(C.merge(bu,this),"before",this.selector)}},after:function(){if(!x(this[0])){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}if(arguments.length){var bu=C.clean(arguments);return this.pushStack(C.merge(this,bu),"after",this.selector)}},remove:function(bu,bx){var bw,bv=0;for(;(bw=this[bv])!=null;bv++){if(!bu||C.filter(bu,[bw]).length){if(!bx&&bw.nodeType===1){C.cleanData(bw.getElementsByTagName("*"));C.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){var bv,bu=0;for(;(bv=this[bu])!=null;bu++){if(bv.nodeType===1){C.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,bu){bv=bv==null?false:bv;bu=bu==null?bv:bu;return this.map(function(){return C.clone(this,bv,bu)})},html:function(bu){return C.access(this,function(by){var bx=this[0]||{},bw=0,bv=this.length;if(by===G){return bx.nodeType===1?bx.innerHTML.replace(aa,""):G}if(typeof by==="string"&&!W.test(by)&&(C.support.htmlSerialize||!ac.test(by))&&(C.support.leadingWhitespace||!ah.test(by))&&!am[(c.exec(by)||["",""])[1].toLowerCase()]){by=by.replace(L,"<$1></$2>");try{for(;bw<bv;bw++){bx=this[bw]||{};if(bx.nodeType===1){C.cleanData(bx.getElementsByTagName("*"));bx.innerHTML=by}}bx=0}catch(bz){}}if(bx){this.empty().append(by)}},null,bu,arguments.length)},replaceWith:function(bu){if(!x(this[0])){if(C.isFunction(bu)){return this.each(function(bx){var bw=C(this),bv=bw.html();bw.replaceWith(bu.call(this,bx,bv))})}if(typeof bu!=="string"){bu=C(bu).detach()}return this.each(function(){var bw=this.nextSibling,bv=this.parentNode;C(this).remove();if(bw){C(bw).before(bu)}else{C(bv).append(bu)}})}return this.length?this.pushStack(C(C.isFunction(bu)?bu():bu),"replaceWith",bu):this},detach:function(bu){return this.remove(bu,true)},domManip:function(bA,bE,bD){bA=[].concat.apply([],bA);var bw,by,bz,bC,bx=0,bB=bA[0],bv=[],bu=this.length;if(!C.support.checkClone&&bu>1&&typeof bB==="string"&&o.test(bB)){return this.each(function(){C(this).domManip(bA,bE,bD)})}if(C.isFunction(bB)){return this.each(function(bG){var bF=C(this);bA[0]=bB.call(this,bG,bE?bF.html():G);bF.domManip(bA,bE,bD)})}if(this[0]){bw=C.buildFragment(bA,this,bv);bz=bw.fragment;by=bz.firstChild;if(bz.childNodes.length===1){bz=by}if(by){bE=bE&&C.nodeName(by,"tr");for(bC=bw.cacheable||bu-1;bx<bu;bx++){bD.call(bE&&C.nodeName(this[bx],"table")?a3(this[bx],"tbody"):this[bx],bx===bC?bz:C.clone(bz,true,true))}}bz=by=null;if(bv.length){C.each(bv,function(bF,bG){if(bG.src){if(C.ajax){C.ajax({url:bG.src,type:"GET",dataType:"script",async:false,global:false,"throws":true})}else{C.error("no ajax")}}else{C.globalEval((bG.text||bG.textContent||bG.innerHTML||"").replace(aG,""))}if(bG.parentNode){bG.parentNode.removeChild(bG)}})}}return this}});function a3(bv,bu){return bv.getElementsByTagName(bu)[0]||bv.appendChild(bv.ownerDocument.createElement(bu))}function r(bB,bv){if(bv.nodeType!==1||!C.hasData(bB)){return}var by,bx,bu,bA=C._data(bB),bz=C._data(bv,bA),bw=bA.events;if(bw){delete bz.handle;bz.events={};for(by in bw){for(bx=0,bu=bw[by].length;bx<bu;bx++){C.event.add(bv,by,bw[by][bx])}}}if(bz.data){bz.data=C.extend({},bz.data)}}function ab(bv,bu){var bw;if(bu.nodeType!==1){return}if(bu.clearAttributes){bu.clearAttributes()}if(bu.mergeAttributes){bu.mergeAttributes(bv)}bw=bu.nodeName.toLowerCase();if(bw==="object"){if(bu.parentNode){bu.outerHTML=bv.outerHTML}if(C.support.html5Clone&&(bv.innerHTML&&!C.trim(bu.innerHTML))){bu.innerHTML=bv.innerHTML}}else{if(bw==="input"&&R.test(bv.type)){bu.defaultChecked=bu.checked=bv.checked;if(bu.value!==bv.value){bu.value=bv.value}}else{if(bw==="option"){bu.selected=bv.defaultSelected}else{if(bw==="input"||bw==="textarea"){bu.defaultValue=bv.defaultValue}else{if(bw==="script"&&bu.text!==bv.text){bu.text=bv.text}}}}}bu.removeAttribute(C.expando)}C.buildFragment=function(bx,by,bv){var bw,bu,bz,bA=bx[0];by=by||ak;by=!by.nodeType&&by[0]||by;by=by.ownerDocument||by;if(bx.length===1&&typeof bA==="string"&&bA.length<512&&by===ak&&bA.charAt(0)==="<"&&!I.test(bA)&&(C.support.checkClone||!o.test(bA))&&(C.support.html5Clone||!ac.test(bA))){bu=true;bw=C.fragments[bA];bz=bw!==G}if(!bw){bw=by.createDocumentFragment();C.clean(bx,by,bw,bv);if(bu){C.fragments[bA]=bz&&bw}}return{fragment:bw,cacheable:bu}};C.fragments={};C.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(bu,bv){C.fn[bu]=function(bw){var by,bA=0,bz=[],bC=C(bw),bx=bC.length,bB=this.length===1&&this[0].parentNode;if((bB==null||bB&&bB.nodeType===11&&bB.childNodes.length===1)&&bx===1){bC[bv](this[0]);return this}else{for(;bA<bx;bA++){by=(bA>0?this.clone(true):this).get();C(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,bu,bC.selector)}}});function bk(bu){if(typeof bu.getElementsByTagName!=="undefined"){return bu.getElementsByTagName("*")}else{if(typeof bu.querySelectorAll!=="undefined"){return bu.querySelectorAll("*")}else{return[]}}}function al(bu){if(R.test(bu.type)){bu.defaultChecked=bu.checked}}C.extend({clone:function(by,bA,bw){var bu,bv,bx,bz;if(C.support.html5Clone||C.isXMLDoc(by)||!ac.test("<"+by.nodeName+">")){bz=by.cloneNode(true)}else{bg.innerHTML=by.outerHTML;bg.removeChild(bz=bg.firstChild)}if((!C.support.noCloneEvent||!C.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!C.isXMLDoc(by)){ab(by,bz);bu=bk(by);bv=bk(bz);for(bx=0;bu[bx];++bx){if(bv[bx]){ab(bu[bx],bv[bx])}}}if(bA){r(by,bz);if(bw){bu=bk(by);bv=bk(bz);for(bx=0;bu[bx];++bx){r(bu[bx],bv[bx])}}}bu=bv=null;return bz},clean:function(bH,bw,bu,bx){var bE,bD,bG,bL,bA,bK,bB,by,bv,bF,bJ,bC,bz=bw===ak&&T,bI=[];if(!bw||typeof bw.createDocumentFragment==="undefined"){bw=ak}for(bE=0;(bG=bH[bE])!=null;bE++){if(typeof bG==="number"){bG+=""}if(!bG){continue}if(typeof bG==="string"){if(!P.test(bG)){bG=bw.createTextNode(bG)}else{bz=bz||a(bw);bB=bw.createElement("div");bz.appendChild(bB);bG=bG.replace(L,"<$1></$2>");bL=(c.exec(bG)||["",""])[1].toLowerCase();bA=am[bL]||am._default;bK=bA[0];bB.innerHTML=bA[1]+bG+bA[2];while(bK--){bB=bB.lastChild}if(!C.support.tbody){by=v.test(bG);bv=bL==="table"&&!by?bB.firstChild&&bB.firstChild.childNodes:bA[1]==="<table>"&&!by?bB.childNodes:[];for(bD=bv.length-1;bD>=0;--bD){if(C.nodeName(bv[bD],"tbody")&&!bv[bD].childNodes.length){bv[bD].parentNode.removeChild(bv[bD])}}}if(!C.support.leadingWhitespace&&ah.test(bG)){bB.insertBefore(bw.createTextNode(ah.exec(bG)[0]),bB.firstChild)}bG=bB.childNodes;bB.parentNode.removeChild(bB)}}if(bG.nodeType){bI.push(bG)}else{C.merge(bI,bG)}}if(bB){bG=bB=bz=null}if(!C.support.appendChecked){for(bE=0;(bG=bI[bE])!=null;bE++){if(C.nodeName(bG,"input")){al(bG)}else{if(typeof bG.getElementsByTagName!=="undefined"){C.grep(bG.getElementsByTagName("input"),al)}}}}if(bu){bJ=function(bM){if(!bM.type||bp.test(bM.type)){return bx?bx.push(bM.parentNode?bM.parentNode.removeChild(bM):bM):bu.appendChild(bM)}};for(bE=0;(bG=bI[bE])!=null;bE++){if(!(C.nodeName(bG,"script")&&bJ(bG))){bu.appendChild(bG);if(typeof bG.getElementsByTagName!=="undefined"){bC=C.grep(C.merge([],bG.getElementsByTagName("script")),bJ);bI.splice.apply(bI,[bE+1,0].concat(bC));bE+=bC.length}}}}return bI},cleanData:function(bv,bD){var by,bw,bx,bC,bz=0,bE=C.expando,bu=C.cache,bA=C.support.deleteExpando,bB=C.event.special;for(;(bx=bv[bz])!=null;bz++){if(bD||C.acceptData(bx)){bw=bx[bE];by=bw&&bu[bw];if(by){if(by.events){for(bC in by.events){if(bB[bC]){C.event.remove(bx,bC)}else{C.removeEvent(bx,bC,by.handle)}}}if(bu[bw]){delete bu[bw];if(bA){delete bx[bE]}else{if(bx.removeAttribute){bx.removeAttribute(bE)}else{bx[bE]=null}}C.deletedIds.push(bw)}}}}}});(function(){var bu,bv;C.uaMatch=function(bx){bx=bx.toLowerCase();var bw=/(chrome)[ \/]([\w.]+)/.exec(bx)||/(webkit)[ \/]([\w.]+)/.exec(bx)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(bx)||/(msie) ([\w.]+)/.exec(bx)||bx.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(bx)||[];return{browser:bw[1]||"",version:bw[2]||"0"}};bu=C.uaMatch(bt.userAgent);bv={};if(bu.browser){bv[bu.browser]=true;bv.version=bu.version}if(bv.chrome){bv.webkit=true}else{if(bv.webkit){bv.safari=true}}C.browser=bv;C.sub=function(){function bx(bz,bA){return new bx.fn.init(bz,bA)}C.extend(true,bx,this);bx.superclass=this;bx.fn=bx.prototype=this();bx.fn.constructor=bx;bx.sub=this.sub;bx.fn.init=function by(bz,bA){if(bA&&bA instanceof C&&!(bA instanceof bx)){bA=bx(bA)}return C.fn.init.call(this,bz,bA,bw)};bx.fn.init.prototype=bx.fn;var bw=bx(ak);return bx}})();var Q,bc,l,ad=/alpha\([^)]*\)/i,aj=/opacity=([^)]*)/,w=/^(top|right|bottom|left)$/,ai=/^(none|table(?!-c[ea]).+)/,av=/^margin/,i=new RegExp("^("+aE+")(.*)$","i"),aV=new RegExp("^("+aE+")(?!px)[a-z%]+$","i"),E=new RegExp("^([-+])=("+aE+")","i"),J={BODY:"block"},ba={position:"absolute",visibility:"hidden",display:"block"},aL={letterSpacing:0,fontWeight:400},D=["Top","Right","Bottom","Left"],O=["Webkit","O","Moz","ms"],be=C.fn.toggle;function a2(bx,bv){if(bv in bx){return bv}var by=bv.charAt(0).toUpperCase()+bv.slice(1),bu=bv,bw=O.length;while(bw--){bv=O[bw]+by;if(bv in bx){return bv}}return bu}function ap(bv,bu){bv=bu||bv;return C.css(bv,"display")==="none"||!C.contains(bv.ownerDocument,bv)}function bb(bz,bu){var by,bA,bv=[],bw=0,bx=bz.length;for(;bw<bx;bw++){by=bz[bw];if(!by.style){continue}bv[bw]=C._data(by,"olddisplay");if(bu){if(!bv[bw]&&by.style.display==="none"){by.style.display=""}if(by.style.display===""&&ap(by)){bv[bw]=C._data(by,"olddisplay",aN(by.nodeName))}}else{bA=Q(by,"display");if(!bv[bw]&&bA!=="none"){C._data(by,"olddisplay",bA)}}}for(bw=0;bw<bx;bw++){by=bz[bw];if(!by.style){continue}if(!bu||by.style.display==="none"||by.style.display===""){by.style.display=bu?bv[bw]||"":"none"}}return bz}C.fn.extend({css:function(bu,bv){return C.access(this,function(bx,bw,by){return by!==G?C.style(bx,bw,by):C.css(bx,bw)},bu,bv,arguments.length>1)},show:function(){return bb(this,true)},hide:function(){return bb(this)},toggle:function(bw,bv){var bu=typeof bw==="boolean";if(C.isFunction(bw)&&C.isFunction(bv)){return be.apply(this,arguments)}return this.each(function(){if(bu?bw:ap(this)){C(this).show()}else{C(this).hide()}})}});C.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var bu=Q(bw,"opacity");return bu===""?"1":bu}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":C.support.cssFloat?"cssFloat":"styleFloat"},style:function(bw,bv,bC,bx){if(!bw||bw.nodeType===3||bw.nodeType===8||!bw.style){return}var bA,bB,bD,by=C.camelCase(bv),bu=bw.style;bv=C.cssProps[by]||(C.cssProps[by]=a2(bu,by));bD=C.cssHooks[bv]||C.cssHooks[by];if(bC!==G){bB=typeof bC;if(bB==="string"&&(bA=E.exec(bC))){bC=(bA[1]+1)*bA[2]+parseFloat(C.css(bw,bv));bB="number"}if(bC==null||bB==="number"&&isNaN(bC)){return}if(bB==="number"&&!C.cssNumber[by]){bC+="px"}if(!bD||!("set" in bD)||(bC=bD.set(bw,bC,bx))!==G){try{bu[bv]=bC}catch(bz){}}}else{if(bD&&"get" in bD&&(bA=bD.get(bw,false,bx))!==G){return bA}return bu[bv]}},css:function(bA,by,bz,bv){var bB,bx,bu,bw=C.camelCase(by);by=C.cssProps[bw]||(C.cssProps[bw]=a2(bA.style,bw));bu=C.cssHooks[by]||C.cssHooks[bw];if(bu&&"get" in bu){bB=bu.get(bA,true,bv)}if(bB===G){bB=Q(bA,by)}if(bB==="normal"&&by in aL){bB=aL[by]}if(bz||bv!==G){bx=parseFloat(bB);return bz||C.isNumeric(bx)?bx||0:bB}return bB},swap:function(by,bx,bz){var bw,bv,bu={};for(bv in bx){bu[bv]=by.style[bv];by.style[bv]=bx[bv]}bw=bz.call(by);for(bv in bx){by.style[bv]=bu[bv]}return bw}});if(bd.getComputedStyle){Q=function(bB,bv){var bu,by,bx,bA,bz=bd.getComputedStyle(bB,null),bw=bB.style;if(bz){bu=bz.getPropertyValue(bv)||bz[bv];if(bu===""&&!C.contains(bB.ownerDocument,bB)){bu=C.style(bB,bv)}if(aV.test(bu)&&av.test(bv)){by=bw.width;bx=bw.minWidth;bA=bw.maxWidth;bw.minWidth=bw.maxWidth=bw.width=bu;bu=bz.width;bw.width=by;bw.minWidth=bx;bw.maxWidth=bA}}return bu}}else{if(ak.documentElement.currentStyle){Q=function(by,bw){var bz,bu,bv=by.currentStyle&&by.currentStyle[bw],bx=by.style;if(bv==null&&bx&&bx[bw]){bv=bx[bw]}if(aV.test(bv)&&!w.test(bw)){bz=bx.left;bu=by.runtimeStyle&&by.runtimeStyle.left;if(bu){by.runtimeStyle.left=by.currentStyle.left}bx.left=bw==="fontSize"?"1em":bv;bv=bx.pixelLeft+"px";bx.left=bz;if(bu){by.runtimeStyle.left=bu}}return bv===""?"auto":bv}}}function aO(bu,bw,bx){var bv=i.exec(bw);return bv?Math.max(0,bv[1]-(bx||0))+(bv[2]||"px"):bw}function aZ(bx,bv,bu,bz){var bw=bu===(bz?"border":"content")?4:bv==="width"?1:0,by=0;for(;bw<4;bw+=2){if(bu==="margin"){by+=C.css(bx,bu+D[bw],true)}if(bz){if(bu==="content"){by-=parseFloat(Q(bx,"padding"+D[bw]))||0}if(bu!=="margin"){by-=parseFloat(Q(bx,"border"+D[bw]+"Width"))||0}}else{by+=parseFloat(Q(bx,"padding"+D[bw]))||0;if(bu!=="padding"){by+=parseFloat(Q(bx,"border"+D[bw]+"Width"))||0}}}return by}function Y(bx,bv,bu){var by=bv==="width"?bx.offsetWidth:bx.offsetHeight,bw=true,bz=C.support.boxSizing&&C.css(bx,"boxSizing")==="border-box";if(by<=0||by==null){by=Q(bx,bv);if(by<0||by==null){by=bx.style[bv]}if(aV.test(by)){return by}bw=bz&&(C.support.boxSizingReliable||by===bx.style[bv]);by=parseFloat(by)||0}return(by+aZ(bx,bv,bu||(bz?"border":"content"),bw))+"px"}function aN(bw){if(J[bw]){return J[bw]}var bu=C("<"+bw+">").appendTo(ak.body),bv=bu.css("display");bu.remove();if(bv==="none"||bv===""){bc=ak.body.appendChild(bc||C.extend(ak.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!l||!bc.createElement){l=(bc.contentWindow||bc.contentDocument).document;l.write("<!doctype html><html><body>");l.close()}bu=l.body.appendChild(l.createElement(bw));bv=Q(bu,"display");ak.body.removeChild(bc)}J[bw]=bv;return bv}C.each(["height","width"],function(bv,bu){C.cssHooks[bu]={get:function(by,bx,bw){if(bx){if(by.offsetWidth===0&&ai.test(Q(by,"display"))){return C.swap(by,ba,function(){return Y(by,bu,bw)})}else{return Y(by,bu,bw)}}},set:function(bx,by,bw){return aO(bx,by,bw?aZ(bx,bu,bw,C.support.boxSizing&&C.css(bx,"boxSizing")==="border-box"):0)}}});if(!C.support.opacity){C.cssHooks.opacity={get:function(bv,bu){return aj.test((bu&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(0.01*parseFloat(RegExp.$1))+"":bu?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,bu=C.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&C.trim(bw.replace(ad,""))===""&&bx.removeAttribute){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ad.test(bw)?bw.replace(ad,bu):bw+" "+bu}}}C(function(){if(!C.support.reliableMarginRight){C.cssHooks.marginRight={get:function(bv,bu){return C.swap(bv,{display:"inline-block"},function(){if(bu){return Q(bv,"marginRight")}})}}}if(!C.support.pixelPosition&&C.fn.position){C.each(["top","left"],function(bu,bv){C.cssHooks[bv]={get:function(by,bx){if(bx){var bw=Q(by,bv);return aV.test(bw)?C(by).position()[bv]+"px":bw}}}})}});if(C.expr&&C.expr.filters){C.expr.filters.hidden=function(bu){return(bu.offsetWidth===0&&bu.offsetHeight===0)||(!C.support.reliableHiddenOffsets&&((bu.style&&bu.style.display)||Q(bu,"display"))==="none")};C.expr.filters.visible=function(bu){return !C.expr.filters.hidden(bu)}}C.each({margin:"",padding:"",border:"Width"},function(bu,bv){C.cssHooks[bu+bv]={expand:function(by){var bx,bz=typeof by==="string"?by.split(" "):[by],bw={};for(bx=0;bx<4;bx++){bw[bu+D[bx]+bv]=bz[bx]||bz[bx-2]||bz[0]}return bw}};if(!av.test(bu)){C.cssHooks[bu+bv].set=aO}});var g=/%20/g,af=/\[\]$/,br=/\r?\n/g,aU=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,p=/^(?:select|textarea)/i;C.fn.extend({serialize:function(){return C.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?C.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||p.test(this.nodeName)||aU.test(this.type))}).map(function(bu,bv){var bw=C(this).val();return bw==null?null:C.isArray(bw)?C.map(bw,function(by,bx){return{name:bv.name,value:by.replace(br,"\r\n")}}):{name:bv.name,value:bw.replace(br,"\r\n")}}).get()}});C.param=function(bu,bw){var bx,bv=[],by=function(bz,bA){bA=C.isFunction(bA)?bA():(bA==null?"":bA);bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===G){bw=C.ajaxSettings&&C.ajaxSettings.traditional}if(C.isArray(bu)||(bu.jqx&&!C.isPlainObject(bu))){C.each(bu,function(){by(this.name,this.value)})}else{for(bx in bu){s(bx,bu[bx],bw,by)}}return bv.join("&").replace(g,"+")};function s(bw,by,bv,bx){var bu;if(C.isArray(by)){C.each(by,function(bA,bz){if(bv||af.test(bw)){bx(bw,bz)}else{s(bw+"["+(typeof bz==="object"?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&C.type(by)==="object"){for(bu in by){s(bw+"["+bu+"]",by[bu],bv,bx)}}else{bx(bw,by)}}}if(C.support.ajax){C.ajaxTransport(function(bu){if(!bu.crossDomain||C.support.cors){var bv;return{send:function(bB,bw){var bz,by,bA=bu.xhr();if(bu.username){bA.open(bu.type,bu.url,bu.async,bu.username,bu.password)}else{bA.open(bu.type,bu.url,bu.async)}if(bu.xhrFields){for(by in bu.xhrFields){bA[by]=bu.xhrFields[by]}}if(bu.mimeType&&bA.overrideMimeType){bA.overrideMimeType(bu.mimeType)}if(!bu.crossDomain&&!bB["X-Requested-With"]){bB["X-Requested-With"]="XMLHttpRequest"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((bu.hasContent&&bu.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=G;if(bz){bA.onreadystatechange=C.noop;if(xhrOnUnloadAbort){delete xhrCallbacks[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}try{bI.text=bA.responseText}catch(bJ){}try{bD=bA.statusText}catch(bJ){bD=""}if(!bF&&bu.isLocal&&!bu.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!bu.async){bv()}else{if(bA.readyState===4){setTimeout(bv,0)}else{bz=++xhrId;if(xhrOnUnloadAbort){if(!xhrCallbacks){xhrCallbacks={};C(bd).unload(xhrOnUnloadAbort)}xhrCallbacks[bz]=bv}bA.onreadystatechange=bv}}},abort:function(){if(bv){bv(0,1)}}}}})}var a6,a1,ar=/^(?:toggle|show|hide)$/,aM=new RegExp("^(?:([-+])=|)("+aE+")([a-z%]*)$","i"),a7=/queueHooks$/,k=[bm],H={"*":[function(bu,bB){var bx,bC,bD=this.createTween(bu,bB),by=aM.exec(bB),bz=bD.cur(),bv=+bz||0,bw=1,bA=20;if(by){bx=+by[2];bC=by[3]||(C.cssNumber[bu]?"":"px");if(bC!=="px"&&bv){bv=C.css(bD.elem,bu,true)||bx||1;do{bw=bw||".5";bv=bv/bw;C.style(bD.elem,bu,bv+bC)}while(bw!==(bw=bD.cur()/bz)&&bw!==1&&--bA)}bD.unit=bC;bD.start=bv;bD.end=by[1]?bv+(by[1]+1)*bx:bx}return bD}]};function bl(){setTimeout(function(){a6=G},0);return(a6=C.now())}function Z(bv,bu){C.each(bu,function(bA,by){var bz=(H[bA]||[]).concat(H["*"]),bw=0,bx=bz.length;for(;bw<bx;bw++){if(bz[bw].call(bv,bA,by)){return}}})}function bj(bw,bA,bD){var bE,bz=0,bu=0,bv=k.length,bC=C.Deferred().always(function(){delete by.elem}),by=function(){var bK=a6||bl(),bH=Math.max(0,bx.startTime+bx.duration-bK),bF=bH/bx.duration||0,bJ=1-bF,bG=0,bI=bx.tweens.length;for(;bG<bI;bG++){bx.tweens[bG].run(bJ)}bC.notifyWith(bw,[bx,bJ,bH]);if(bJ<1&&bI){return bH}else{bC.resolveWith(bw,[bx]);return false}},bx=bC.promise({elem:bw,props:C.extend({},bA),opts:C.extend(true,{specialEasing:{}},bD),originalProperties:bA,originalOptions:bD,startTime:a6||bl(),duration:bD.duration,tweens:[],createTween:function(bI,bF,bH){var bG=C.Tween(bw,bx.opts,bI,bF,bx.opts.specialEasing[bI]||bx.opts.easing);bx.tweens.push(bG);return bG},stop:function(bG){var bF=0,bH=bG?bx.tweens.length:0;for(;bF<bH;bF++){bx.tweens[bF].run(1)}if(bG){bC.resolveWith(bw,[bx,bG])}else{bC.rejectWith(bw,[bx,bG])}return this}}),bB=bx.props;aW(bB,bx.opts.specialEasing);for(;bz<bv;bz++){bE=k[bz].call(bx,bw,bB,bx.opts);if(bE){return bE}}Z(bx,bB);if(C.isFunction(bx.opts.start)){bx.opts.start.call(bw,bx)}C.fx.timer(C.extend(by,{anim:bx,queue:bx.opts.queue,elem:bw}));return bx.progress(bx.opts.progress).done(bx.opts.done,bx.opts.complete).fail(bx.opts.fail).always(bx.opts.always)}function aW(bx,bz){var bw,bv,bA,by,bu;for(bw in bx){bv=C.camelCase(bw);bA=bz[bv];by=bx[bw];if(C.isArray(by)){bA=by[1];by=bx[bw]=by[0]}if(bw!==bv){bx[bv]=by;delete bx[bw]}bu=C.cssHooks[bv];if(bu&&"expand" in bu){by=bu.expand(by);delete bx[bv];for(bw in by){if(!(bw in bx)){bx[bw]=by[bw];bz[bw]=bA}}}else{bz[bv]=bA}}}C.Animation=C.extend(bj,{tweener:function(bv,by){if(C.isFunction(bv)){by=bv;bv=["*"]}else{bv=bv.split(" ")}var bx,bu=0,bw=bv.length;for(;bu<bw;bu++){bx=bv[bu];H[bx]=H[bx]||[];H[bx].unshift(by)}},prefilter:function(bv,bu){if(bu){k.unshift(bv)}else{k.push(bv)}}});function bm(by,bE,bu){var bD,bw,bG,bx,bK,bA,bJ,bI,bH,bz=this,bv=by.style,bF={},bC=[],bB=by.nodeType&&ap(by);if(!bu.queue){bI=C._queueHooks(by,"fx");if(bI.unqueued==null){bI.unqueued=0;bH=bI.empty.fire;bI.empty.fire=function(){if(!bI.unqueued){bH()}}}bI.unqueued++;bz.always(function(){bz.always(function(){bI.unqueued--;if(!C.queue(by,"fx").length){bI.empty.fire()}})})}if(by.nodeType===1&&("height" in bE||"width" in bE)){bu.overflow=[bv.overflow,bv.overflowX,bv.overflowY];if(C.css(by,"display")==="inline"&&C.css(by,"float")==="none"){if(!C.support.inlineBlockNeedsLayout||aN(by.nodeName)==="inline"){bv.display="inline-block"}else{bv.zoom=1}}}if(bu.overflow){bv.overflow="hidden";if(!C.support.shrinkWrapBlocks){bz.done(function(){bv.overflow=bu.overflow[0];bv.overflowX=bu.overflow[1];bv.overflowY=bu.overflow[2]})}}for(bD in bE){bG=bE[bD];if(ar.exec(bG)){delete bE[bD];bA=bA||bG==="toggle";if(bG===(bB?"hide":"show")){continue}bC.push(bD)}}bx=bC.length;if(bx){bK=C._data(by,"fxshow")||C._data(by,"fxshow",{});if("hidden" in bK){bB=bK.hidden}if(bA){bK.hidden=!bB}if(bB){C(by).show()}else{bz.done(function(){C(by).hide()})}bz.done(function(){var bL;C.removeData(by,"fxshow",true);for(bL in bF){C.style(by,bL,bF[bL])}});for(bD=0;bD<bx;bD++){bw=bC[bD];bJ=bz.createTween(bw,bB?bK[bw]:0);bF[bw]=bK[bw]||C.style(by,bw);if(!(bw in bK)){bK[bw]=bJ.start;if(bB){bJ.end=bJ.start;bJ.start=bw==="width"||bw==="height"?1:0}}}}}function u(bw,bv,by,bu,bx){return new u.prototype.init(bw,bv,by,bu,bx)}C.Tween=u;u.prototype={constructor:u,init:function(bx,bv,bz,bu,by,bw){this.elem=bx;this.prop=bz;this.easing=by||"swing";this.options=bv;this.start=this.now=this.cur();this.end=bu;this.unit=bw||(C.cssNumber[bz]?"":"px")},cur:function(){var bu=u.propHooks[this.prop];return bu&&bu.get?bu.get(this):u.propHooks._default.get(this)},run:function(bw){var bv,bu=u.propHooks[this.prop];if(this.options.duration){this.pos=bv=C.easing[this.easing](bw,this.options.duration*bw,0,1,this.options.duration)}else{this.pos=bv=bw}this.now=(this.end-this.start)*bv+this.start;if(this.options.step){this.options.step.call(this.elem,this.now,this)}if(bu&&bu.set){bu.set(this)}else{u.propHooks._default.set(this)}return this}};u.prototype.init.prototype=u.prototype;u.propHooks={_default:{get:function(bv){var bu;if(bv.elem[bv.prop]!=null&&(!bv.elem.style||bv.elem.style[bv.prop]==null)){return bv.elem[bv.prop]}bu=C.css(bv.elem,bv.prop,false,"");return !bu||bu==="auto"?0:bu},set:function(bu){if(C.fx.step[bu.prop]){C.fx.step[bu.prop](bu)}else{if(bu.elem.style&&(bu.elem.style[C.cssProps[bu.prop]]!=null||C.cssHooks[bu.prop])){C.style(bu.elem,bu.prop,bu.now+bu.unit)}else{bu.elem[bu.prop]=bu.now}}}}};u.propHooks.scrollTop=u.propHooks.scrollLeft={set:function(bu){if(bu.elem.nodeType&&bu.elem.parentNode){bu.elem[bu.prop]=bu.now}}};C.each(["toggle","show","hide"],function(bv,bu){var bw=C.fn[bu];C.fn[bu]=function(bx,bz,by){return bx==null||typeof bx==="boolean"||(!bv&&C.isFunction(bx)&&C.isFunction(bz))?bw.apply(this,arguments):this.animate(aY(bu,true),bx,bz,by)}});C.fn.extend({fadeTo:function(bu,bx,bw,bv){return this.filter(ap).css("opacity",0).show().end().animate({opacity:bx},bu,bw,bv)},animate:function(bA,bx,bz,by){var bw=C.isEmptyObject(bA),bu=C.speed(bx,bz,by),bv=function(){var bB=bj(this,C.extend({},bA),bu);if(bw){bB.stop(true)}};return bw||bu.queue===false?this.each(bv):this.queue(bu.queue,bv)},stop:function(bw,bv,bu){var bx=function(by){var bz=by.stop;delete by.stop;bz(bu)};if(typeof bw!=="string"){bu=bv;bv=bw;bw=G}if(bv&&bw!==false){this.queue(bw||"fx",[])}return this.each(function(){var bB=true,by=bw!=null&&bw+"queueHooks",bA=C.timers,bz=C._data(this);if(by){if(bz[by]&&bz[by].stop){bx(bz[by])}}else{for(by in bz){if(bz[by]&&bz[by].stop&&a7.test(by)){bx(bz[by])}}}for(by=bA.length;by--;){if(bA[by].elem===this&&(bw==null||bA[by].queue===bw)){bA[by].anim.stop(bu);bB=false;bA.splice(by,1)}}if(bB||!bu){C.dequeue(this,bw)}})}});function aY(bw,by){var bx,bu={height:bw},bv=0;by=by?1:0;for(;bv<4;bv+=2-by){bx=D[bv];bu["margin"+bx]=bu["padding"+bx]=bw}if(by){bu.opacity=bu.width=bw}return bu}C.each({slideDown:aY("show"),slideUp:aY("hide"),slideToggle:aY("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(bu,bv){C.fn[bu]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});C.speed=function(bw,bx,bv){var bu=bw&&typeof bw==="object"?C.extend({},bw):{complete:bv||!bv&&bx||C.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!C.isFunction(bx)&&bx};bu.duration=C.fx.off?0:typeof bu.duration==="number"?bu.duration:bu.duration in C.fx.speeds?C.fx.speeds[bu.duration]:C.fx.speeds._default;if(bu.queue==null||bu.queue===true){bu.queue="fx"}bu.old=bu.complete;bu.complete=function(){if(C.isFunction(bu.old)){bu.old.call(this)}if(bu.queue){C.dequeue(this,bu.queue)}};return bu};C.easing={linear:function(bu){return bu},swing:function(bu){return 0.5-Math.cos(bu*Math.PI)/2}};C.timers=[];C.fx=u.prototype.init;C.fx.tick=function(){var bw,bv=C.timers,bu=0;a6=C.now();for(;bu<bv.length;bu++){bw=bv[bu];if(!bw()&&bv[bu]===bw){bv.splice(bu--,1)}}if(!bv.length){C.fx.stop()}a6=G};C.fx.timer=function(bu){if(bu()&&C.timers.push(bu)&&!a1){a1=setInterval(C.fx.tick,C.fx.interval)}};C.fx.interval=13;C.fx.stop=function(){clearInterval(a1);a1=null};C.fx.speeds={slow:600,fast:200,_default:400};C.fx.step={};if(C.expr&&C.expr.filters){C.expr.filters.animated=function(bu){return C.grep(C.timers,function(bv){return bu===bv.elem}).length}}var V=/^(?:body|html)$/i;C.fn.offset=function(bE){if(arguments.length){return bE===G?this:this.each(function(bF){C.offset.setOffset(this,bE,bF)})}var bv,bA,bB,by,bC,bu,bx,bz={top:0,left:0},bw=this[0],bD=bw&&bw.ownerDocument;if(!bD){return}if((bA=bD.body)===bw){return C.offset.bodyOffset(bw)}bv=bD.documentElement;if(!C.contains(bv,bw)){return bz}if(typeof bw.getBoundingClientRect!=="undefined"){bz=bw.getBoundingClientRect()}bB=aC(bD);by=bv.clientTop||bA.clientTop||0;bC=bv.clientLeft||bA.clientLeft||0;bu=bB.pageYOffset||bv.scrollTop;bx=bB.pageXOffset||bv.scrollLeft;return{top:bz.top+bu-by,left:bz.left+bx-bC}};C.offset={bodyOffset:function(bu){var bw=bu.offsetTop,bv=bu.offsetLeft;if(C.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(C.css(bu,"marginTop"))||0;bv+=parseFloat(C.css(bu,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=C.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=C(bx),bv=bz.offset(),bu=C.css(bx,"top"),bE=C.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&C.inArray("auto",[bu,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(bu)||0;by=parseFloat(bE)||0}if(C.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};C.fn.extend({isRendered:function(){var bv=this;var bu=this[0];if(bu.parentNode==null||(bu.offsetWidth===0||bu.offsetHeight===0)){return false}return true},getSizeFromStyle:function(){var by=this;var bx=null;var bu=null;var bw=this[0];var bv;if(bw.style.width){bx=bw.style.width}if(bw.style.height){bu=bw.style.height}if(bd.getComputedStyle){bv=getComputedStyle(bw,null)}else{bv=bw.currentStyle}if(bv){if(bv.width){bx=bv.width}if(bv.height){bu=bv.height}}if(bx==="0px"){bx=0}if(bu==="0px"){bu=0}if(bx===null){bx=0}if(bu===null){bu=0}return{width:bx,height:bu}},initAnimate:function(){},sizeStyleChanged:function(bx){var bw=this;var by;var bu=function(bz){var bA=by;if(bz&&bz[0]&&bz[0].attributeName==="style"&&bz[0].type==="attributes"){if(bA.element.offsetWidth!==bA.offsetWidth||bA.element.offsetHeight!==bA.offsetHeight){bA.offsetWidth=bA.element.offsetWidth;bA.offsetHeight=bA.element.offsetHeight;if(bw.isRendered()){bA.callback()}}}};by={element:bw[0],offsetWidth:bw[0].offsetWidth,offsetHeight:bw[0].offsetHeight,callback:bx};try{if(!bw.elementStyleObserver){bw.elementStyleObserver=new MutationObserver(bu);bw.elementStyleObserver.observe(bw[0],{attributes:true,childList:false,characterData:false})}}catch(bv){}},position:function(){if(!this[0]){return}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),bu=V.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(C.css(bw,"marginTop"))||0;bx.left-=parseFloat(C.css(bw,"marginLeft"))||0;bu.top+=parseFloat(C.css(bv[0],"borderTopWidth"))||0;bu.left+=parseFloat(C.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-bu.top,left:bx.left-bu.left}},offsetParent:function(){return this.map(function(){var bu=this.offsetParent||ak.body;while(bu&&(!V.test(bu.nodeName)&&C.css(bu,"position")==="static")){bu=bu.offsetParent}return bu||ak.body})}});C.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(bw,bv){var bu=/Y/.test(bv);C.fn[bw]=function(bx){return C.access(this,function(by,bB,bA){var bz=aC(by);if(bA===G){return bz?(bv in bz)?bz[bv]:bz.document.documentElement[bB]:by[bB]}if(bz){bz.scrollTo(!bu?bA:C(bz).scrollLeft(),bu?bA:C(bz).scrollTop())}else{by[bB]=bA}},bw,bx,arguments.length,null)}});function aC(bu){return C.isWindow(bu)?bu:bu.nodeType===9?bu.defaultView||bu.parentWindow:false}C.each({Height:"height",Width:"width"},function(bu,bv){C.each({padding:"inner"+bu,content:bv,"":"outer"+bu},function(bw,bx){C.fn[bx]=function(bB,bA){var bz=arguments.length&&(bw||typeof bB!=="boolean"),by=bw||(bB===true||bA===true?"margin":"border");return C.access(this,function(bD,bC,bE){var bF;if(C.isWindow(bD)){return bD.document.documentElement["client"+bu]}if(bD.nodeType===9){bF=bD.documentElement;return Math.max(bD.body["scroll"+bu],bF["scroll"+bu],bD.body["offset"+bu],bF["offset"+bu],bF["client"+bu])}return bE===G?C.css(bD,bC,bE,by):C.style(bD,bC,bE,by)},bv,bz?bB:G,bz,null)}})});bd.JQXLite=bd.jqxHelper=C;if(typeof define==="function"&&define.amd&&define.amd.JQXLite){define("jqx",[],function(){return C})}})(window)}(function(a){if(a.jQuery){a.minQuery=a.JQXLite=a.jQuery;return}if(!a.$){a.$=a.minQuery=a.JQXLite}else{a.minQuery=a.JQXLite=a.$}})(window);JQXLite.generateID=function(){var a=function(){return(((1+Math.random())*65536)|0).toString(16).substring(1)};var b="";do{b="jqx"+a()+a()+a()}while($("#"+b).length>0);return b};var jqxBaseFramework=window.jqxBaseFramework=window.minQuery||window.jQuery;(function(b){b.jqx=b.jqx||{};window.jqx=b.jqx;var a={createInstance:function(c,e,g){if(e=="jqxDataAdapter"){var f=g[0];var d=g[1]||{};return new b.jqx.dataAdapter(f,d)}b(c)[e](g||{});return b(c)[e]("getInstance")}};window.jqwidgets=a;b.jqx.define=function(c,d,e){c[d]=function(){if(this.baseType){this.base=new c[this.baseType]();this.base.defineInstance()}this.defineInstance();this.metaInfo()};c[d].prototype.defineInstance=function(){};c[d].prototype.metaInfo=function(){};c[d].prototype.base=null;c[d].prototype.baseType=undefined;if(e&&c[e]){c[d].prototype.baseType=e}};b.jqx.invoke=function(f,e){if(e.length==0){return}var g=typeof(e)==Array||e.length>0?e[0]:e;var d=typeof(e)==Array||e.length>1?Array.prototype.slice.call(e,1):b({}).toArray();while(f[g]==undefined&&f.base!=null){if(f[g]!=undefined&&b.isFunction(f[g])){return f[g].apply(f,d)}if(typeof g=="string"){var c=g.toLowerCase();if(f[c]!=undefined&&b.isFunction(f[c])){return f[c].apply(f,d)}}f=f.base}if(f[g]!=undefined&&b.isFunction(f[g])){return f[g].apply(f,d)}if(typeof g=="string"){var c=g.toLowerCase();if(f[c]!=undefined&&b.isFunction(f[c])){return f[c].apply(f,d)}}return};b.jqx.getByPriority=function(c){var e=undefined;for(var d=0;d<c.length&&e==undefined;d++){if(e==undefined&&c[d]!=undefined){e=c[d]}}return e};b.jqx.hasProperty=function(d,c){if(typeof(c)=="object"){for(var f in c){var e=d;while(e){if(e.hasOwnProperty(f)){return true}if(e.hasOwnProperty(f.toLowerCase())){return true}e=e.base}return false}}else{while(d){if(d.hasOwnProperty(c)){return true}if(d.hasOwnProperty(c.toLowerCase())){return true}d=d.base}}return false};b.jqx.hasFunction=function(f,e){if(e.length==0){return false}if(f==undefined){return false}var g=typeof(e)==Array||e.length>0?e[0]:e;var d=typeof(e)==Array||e.length>1?Array.prototype.slice.call(e,1):{};while(f[g]==undefined&&f.base!=null){if(f[g]&&b.isFunction(f[g])){return true}if(typeof g=="string"){var c=g.toLowerCase();if(f[c]&&b.isFunction(f[c])){return true}}f=f.base}if(f[g]&&b.isFunction(f[g])){return true}if(typeof g=="string"){var c=g.toLowerCase();if(f[c]&&b.isFunction(f[c])){return true}}return false};b.jqx.isPropertySetter=function(d,c){if(c.length==1&&typeof(c[0])=="object"){return true}if(c.length==2&&typeof(c[0])=="string"&&!b.jqx.hasFunction(d,c)){return true}return false};b.jqx.validatePropertySetter=function(g,e,c){if(!b.jqx.propertySetterValidation){return true}if(e.length==1&&typeof(e[0])=="object"){for(var f in e[0]){var h=g;while(!h.hasOwnProperty(f)&&h.base){h=h.base}if(!h||!h.hasOwnProperty(f)){if(!c){var d=h.hasOwnProperty(f.toString().toLowerCase());if(!d){throw"Invalid property: "+f}else{return true}}return false}}return true}if(e.length!=2){if(!c){throw"Invalid property: "+e.length>=0?e[0]:""}return false}while(!g.hasOwnProperty(e[0])&&g.base){g=g.base}if(!g||!g.hasOwnProperty(e[0])){if(!c){throw"Invalid property: "+e[0]}return false}return true};if(!Object.keys){Object.keys=(function(){var e=Object.prototype.hasOwnProperty,f=!({toString:null}).propertyIsEnumerable("toString"),d=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],c=d.length;return function(j){if(typeof j!=="object"&&(typeof j!=="function"||j===null)){throw new TypeError("Object.keys called on non-object")}var g=[],k,h;for(k in j){if(e.call(j,k)){g.push(k)}}if(f){for(h=0;h<c;h++){if(e.call(j,d[h])){g.push(d[h])}}}return g}}())}b.jqx.set=function(f,i){var d=0;if(i.length==1&&typeof(i[0])=="object"){if(f.isInitialized&&Object.keys&&Object.keys(i[0]).length>1){var g=!f.base?f.element:f.base.element;var c=b.data(g,f.widgetName).initArgs;if(c&&JSON&&JSON.stringify&&i[0]&&c[0]){try{if(JSON.stringify(i[0])==JSON.stringify(c[0])){var h=true;b.each(i[0],function(l,m){if(f[l]!=m){h=false;return false}});if(h){return}}}catch(e){}}f.batchUpdate=i[0];var j={};var k={};b.each(i[0],function(l,m){var n=f;while(!n.hasOwnProperty(l)&&n.base!=null){n=n.base}if(n.hasOwnProperty(l)){if(f[l]!=m){j[l]=f[l];k[l]=m;d++}}else{if(n.hasOwnProperty(l.toLowerCase())){if(f[l.toLowerCase()]!=m){j[l.toLowerCase()]=f[l.toLowerCase()];k[l.toLowerCase()]=m;d++}}}});if(d<2){f.batchUpdate=null}}b.each(i[0],function(l,m){var n=f;while(!n.hasOwnProperty(l)&&n.base!=null){n=n.base}if(n.hasOwnProperty(l)){b.jqx.setvalueraiseevent(n,l,m)}else{if(n.hasOwnProperty(l.toLowerCase())){b.jqx.setvalueraiseevent(n,l.toLowerCase(),m)}else{if(b.jqx.propertySetterValidation){throw"jqxCore: invalid property '"+l+"'"}}}});if(f.batchUpdate!=null){f.batchUpdate=null;if(f.propertiesChangedHandler&&d>1){f.propertiesChangedHandler(f,j,k)}}}else{if(i.length==2){while(!f.hasOwnProperty(i[0])&&f.base){f=f.base}if(f.hasOwnProperty(i[0])){b.jqx.setvalueraiseevent(f,i[0],i[1])}else{if(f.hasOwnProperty(i[0].toLowerCase())){b.jqx.setvalueraiseevent(f,i[0].toLowerCase(),i[1])}else{if(b.jqx.propertySetterValidation){throw"jqxCore: invalid property '"+i[0]+"'"}}}}}};b.jqx.setvalueraiseevent=function(d,e,f){var c=d[e];d[e]=f;if(!d.isInitialized){return}if(d.propertyChangedHandler!=undefined){d.propertyChangedHandler(d,e,c,f)}if(d.propertyChangeMap!=undefined&&d.propertyChangeMap[e]!=undefined){d.propertyChangeMap[e](d,e,c,f)}};b.jqx.get=function(f,e){if(e==undefined||e==null){return undefined}if(f.propertyMap){var d=f.propertyMap(e);if(d!=null){return d}}if(f.hasOwnProperty(e)){return f[e]}if(f.hasOwnProperty(e.toLowerCase())){return f[e.toLowerCase()]}var c=undefined;if(typeof(e)==Array){if(e.length!=1){return undefined}c=e[0]}else{if(typeof(e)=="string"){c=e}}while(!f.hasOwnProperty(c)&&f.base){f=f.base}if(f){return f[c]}return undefined};b.jqx.serialize=function(f){var c="";if(b.isArray(f)){c="[";for(var e=0;e<f.length;e++){if(e>0){c+=", "}c+=b.jqx.serialize(f[e])}c+="]"}else{if(typeof(f)=="object"){c="{";var d=0;for(var e in f){if(d++>0){c+=", "}c+=e+": "+b.jqx.serialize(f[e])}c+="}"}else{c=f.toString()}}return c};b.jqx.propertySetterValidation=true;b.jqx.jqxWidgetProxy=function(h,d,c){var e=b(d);var g=b.data(d,h);if(g==undefined){return undefined}var f=g.instance;if(b.jqx.hasFunction(f,c)){return b.jqx.invoke(f,c)}if(b.jqx.isPropertySetter(f,c)){if(b.jqx.validatePropertySetter(f,c)){b.jqx.set(f,c);return undefined}}else{if(typeof(c)=="object"&&c.length==0){return}else{if(typeof(c)=="object"&&c.length==1&&b.jqx.hasProperty(f,c[0])){return b.jqx.get(f,c[0])}else{if(typeof(c)=="string"&&b.jqx.hasProperty(f,c[0])){return b.jqx.get(f,c)}}}}throw"jqxCore: Invalid parameter '"+b.jqx.serialize(c)+"' does not exist."};b.jqx.applyWidget=function(d,f,l,m){var h=false;try{h=window.MSApp!=undefined}catch(g){}var n=b(d);if(!m){m=new b.jqx["_"+f]()}else{m.host=n;m.element=d}if(d.id==""){d.id=b.jqx.utilities.createId()}var k={host:n,element:d,instance:m,initArgs:l};m.widgetName=f;b.data(d,f,k);b.data(d,"jqxWidget",k.instance);var j=new Array();var m=k.instance;while(m){m.isInitialized=false;j.push(m);m=m.base}j.reverse();j[0].theme=b.jqx.theme||"";b.jqx.jqxWidgetProxy(f,d,l);for(var c in j){m=j[c];if(c==0){m.host=n;m.element=d;m.WinJS=h}if(m!=undefined){if(m.definedInstance){m.definedInstance()}if(m.createInstance!=null){if(h){MSApp.execUnsafeLocalFunction(function(){m.createInstance(l)})}else{m.createInstance(l)}}}}for(var c in j){if(j[c]!=undefined){j[c].isInitialized=true}}if(h){MSApp.execUnsafeLocalFunction(function(){k.instance.refresh(true)})}else{k.instance.refresh(true)}};b.jqx.jqxWidget=function(c,d,g){var j=false;try{var l=Array.prototype.slice.call(g,0)}catch(i){var l=""}try{j=window.MSApp!=undefined}catch(i){}var h=c;var m="";if(d){m="_"+d}b.jqx.define(b.jqx,"_"+h,m);var k=new Array();if(!window[h]){var f=function(n){if(n==null){return""}var e=b.type(n);switch(e){case"string":case"number":case"date":case"boolean":case"bool":if(n===null){return""}return n.toString()}var o="";b.each(n,function(q,r){var t=r;if(q>0){o+=", "}o+="[";var p=0;if(b.type(t)=="object"){for(var s in t){if(p>0){o+=", "}o+="{"+s+":"+t[s]+"}";p++}}else{if(p>0){o+=", "}o+="{"+q+":"+t+"}";p++}o+="]"});return o};a[h]=window[h]=function(e,s){var n=[];if(!s){s={}}n.push(s);var o=e;if(b.type(o)==="object"&&e[0]){o=e[0].id;if(o===""){o=e[0].id=b.jqx.utilities.createId()}}else{if(b.type(e)==="object"&&e&&e.nodeName){o=e.id;if(o===""){o=e.id=b.jqx.utilities.createId()}}}if(window.jqxWidgets&&window.jqxWidgets[o]){if(s){b.each(window.jqxWidgets[o],function(t){var u=b(this.element).data();if(u&&u.jqxWidget){b(this.element)[h](s)}})}if(window.jqxWidgets[o].length==1){var q=b(window.jqxWidgets[o][0].widgetInstance.element).data();if(q&&q.jqxWidget){return window.jqxWidgets[o][0]}}var q=b(window.jqxWidgets[o][0].widgetInstance.element).data();if(q&&q.jqxWidget){return window.jqxWidgets[o]}}var p=b(e);if(p.length===0){p=b("<div></div>");if(h==="jqxInput"||h==="jqxPasswordInput"||h==="jqxMaskedInput"){p=b("<input/>")}if(h==="jqxTextArea"){p=b("<textarea></textarea>")}if(h==="jqxButton"||h==="jqxRepeatButton"||h==="jqxToggleButton"){p=b("<button/>")}if(h==="jqxSplitter"){p=b("<div><div>Panel 1</div><div>Panel 2</div></div>")}if(h==="jqxTabs"){p=b("<div><ul><li>Tab 1</li><li>Tab 2</li></ul><div>Content 1</div><div>Content 2</div></div>")}if(h==="jqxRibbon"){p=b("<div><ul><li>Tab 1</li><li>Tab 2</li></ul><div><div>Content 1</div><div>Content 2</div></div></div>")}if(h==="jqxDocking"){p=b("<div><div><div><div>Title 1</div><div>Content 1</div></div></div></div>")}if(h==="jqxWindow"){p=b("<div><div>Title 1</div><div>Content 1</div></div>")}}var r=[];b.each(p,function(w){var y=p[w];b.jqx.applyWidget(y,h,n,undefined);if(!k[h]){var u=b.data(y,"jqxWidget");var x=b.jqx["_"+h].prototype.defineInstance();var v={};if(b.jqx["_"+h].prototype.metaInfo){v=b.jqx["_"+h].prototype.metaInfo()}if(h=="jqxDockingLayout"){x=b.extend(x,b.jqx._jqxLayout.prototype.defineInstance())}if(h=="jqxToggleButton"||h=="jqxRepeatButton"){x=b.extend(x,b.jqx._jqxButton.prototype.defineInstance())}if(h=="jqxTreeGrid"){x=b.extend(x,b.jqx._jqxDataTable.prototype.defineInstance())}var t=function(A){var z=b.data(A,"jqxWidget");this.widgetInstance=z;var B=b.extend(this,z);B.on=B.addEventListener=function(D,E){B.addHandler(!B.base?B.host:B.base.host,D,E)};B.off=B.removeEventListener=function(D){B.removeHandler(!B.base?B.host:B.base.host,D)};for(var C in z){if(b.type(z[C])=="function"){B[C]=b.proxy(z[C],z)}}return B};k[h]=t;b.each(x,function(A,z){Object.defineProperty(t.prototype,A,{get:function(){if(this.widgetInstance){return this.widgetInstance[A]}return z},set:function(H){if(this.widgetInstance&&(this.widgetInstance[A]!=H||A==="width"||A==="height")){var F=this.widgetInstance[A];var E=H;var D=b.type(F);var B=b.type(E);var G=false;if(D!=B||A==="source"||A==="width"||A==="height"){G=true}if(G||(f(F)!=f(E))){var C={};C[A]=H;if(this.widgetInstance.host){this.widgetInstance.host[h](C)}else{this.widgetInstance.base.host[h](C)}this.widgetInstance[A]=H;if(this.widgetInstance.propertyUpdated){this.widgetInstance.propertyUpdated(A,F,H)}}}}})})}var u=new k[h](y);r.push(u);if(!window.jqxWidgets){window.jqxWidgets=new Array()}if(!window.jqxWidgets[o]){window.jqxWidgets[o]=new Array()}window.jqxWidgets[o].push(u)});if(r.length===1){return r[0]}return r}}b.fn[h]=function(){var e=Array.prototype.slice.call(arguments,0);if(e.length==0||(e.length==1&&typeof(e[0])=="object")){if(this.length==0){if(this.selector){throw new Error("Invalid Selector - "+this.selector+"! Please, check whether the used ID or CSS Class name is correct.")}else{throw new Error("Invalid Selector! Please, check whether the used ID or CSS Class name is correct.")}}return this.each(function(){var q=b(this);var p=this;var r=b.data(p,h);if(r==null){b.jqx.applyWidget(p,h,e,undefined)}else{b.jqx.jqxWidgetProxy(h,this,e)}})}else{if(this.length==0){if(this.selector){throw new Error("Invalid Selector - "+this.selector+"! Please, check whether the used ID or CSS Class name is correct.")}else{throw new Error("Invalid Selector! Please, check whether the used ID or CSS Class name is correct.")}}var o=null;var n=0;this.each(function(){var p=b.jqx.jqxWidgetProxy(h,this,e);if(n==0){o=p;n++}else{if(n==1){var q=[];q.push(o);o=q}o.push(p)}})}return o};try{b.extend(b.jqx["_"+h].prototype,Array.prototype.slice.call(g,0)[0])}catch(i){}b.extend(b.jqx["_"+h].prototype,{toThemeProperty:function(e,n){return b.jqx.toThemeProperty(this,e,n)},isMaterialized:function(){if(!this.theme){return false}if(this.theme.indexOf("material")>=0){return true}},isModern:function(){if(!this.theme){return false}if(this.theme.indexOf("light")>=0){return true}if(this.theme==="dark"){return true}},_addBarAndLabel:function(p){var o=this;var e=b("<label></label");e[0].innerHTML=this.placeHolder;e.addClass(o.toThemeProperty("jqx-input-label"));p.after(e);o.label=e;var n=b("<span></span>");p.after(n);n.addClass(o.toThemeProperty("jqx-input-bar"));o.bar=n;o.bar.css("top",this.host.height())}});b.jqx["_"+h].prototype.refresh=function(){if(this.base){this.base.refresh(true)}};b.jqx["_"+h].prototype.createInstance=function(){};b.jqx["_"+h].prototype.addEventHandler=function(n,e){if(this.base){this.base.host.on(n,e)}else{this.host.on(n,e)}};b.jqx["_"+h].prototype.removeEventHandler=function(n,e){if(this.base){this.base.host.off(n)}else{this.host.off(n)}};b.jqx["_"+h].prototype.applyTo=function(o,n){if(!(n instanceof Array)){var e=[];e.push(n);n=e}b.jqx.applyWidget(o,h,n,this)};b.jqx["_"+h].prototype.getInstance=function(){return this};b.jqx["_"+h].prototype.propertyChangeMap={};b.jqx["_"+h].prototype.addHandler=function(p,e,n,o){b.jqx.addHandler(b(p),e,n,o)};b.jqx["_"+h].prototype.removeHandler=function(o,e,n){b.jqx.removeHandler(b(o),e,n)};b.jqx["_"+h].prototype.setOptions=function(){if(!this.host||!this.host.length||this.host.length!=1){return}return b.jqx.jqxWidgetProxy(h,this.host[0],arguments)}};b.jqx.toThemeProperty=function(d,e,j){if(d.theme==""){return e}var h=e.split(" ");var c="";for(var g=0;g<h.length;g++){if(g>0){c+=" "}var f=h[g];if(j!=null&&j){c+=f+"-"+d.theme}else{c+=f+" "+f+"-"+d.theme}}return c};b.jqx.addHandler=function(h,j,f,g){var d=j.split(" ");for(var c=0;c<d.length;c++){var e=d[c];if(window.addEventListener){switch(e){case"mousewheel":if(b.jqx.browser.mozilla){h[0].addEventListener("DOMMouseScroll",f,false)}else{h[0].addEventListener("mousewheel",f,false)}continue;case"mousemove":if(!g){h[0].addEventListener("mousemove",f,false);continue}break;case"touchmove":if(!g){h[0].addEventListener("touchmove",f,false);continue}else{if(g&&g.passive){h[0].addEventListener("touchmove",f,g);continue}}break}}if(g==undefined||g==null){if(h.on){h.on(e,f)}else{h.bind(e,f)}}else{if(h.on){h.on(e,g,f)}else{h.bind(e,g,f)}}}};b.jqx.removeHandler=function(g,h,f){if(!h){if(g.off){g.off()}else{g.unbind()}return}var d=h.split(" ");for(var c=0;c<d.length;c++){var e=d[c];if(window.removeEventListener){switch(e){case"mousewheel":if(b.jqx.browser.mozilla){g[0].removeEventListener("DOMMouseScroll",f,false)}else{g[0].removeEventListener("mousewheel",f,false)}continue;case"mousemove":if(f){g[0].removeEventListener("mousemove",f,false);continue}break;case"touchmove":if(f){g[0].removeEventListener("touchmove",f,false);continue}break}}if(e==undefined){if(g.off){g.off()}else{g.unbind()}continue}if(f==undefined){if(g.off){g.off(e)}else{g.unbind(e)}}else{if(g.off){g.off(e,f)}else{g.unbind(e,f)}}}};b.jqx.credits=b.jqx.credits||"";b.jqx.theme=b.jqx.theme||"";b.jqx.scrollAnimation=b.jqx.scrollAnimation||false;b.jqx.resizeDelay=b.jqx.resizeDelay||10;b.jqx.ready=function(){b(window).trigger("jqxReady")};b.jqx.init=function(){b.each(arguments[0],function(c,d){if(c=="theme"){b.jqx.theme=d}if(c=="scrollBarSize"){b.jqx.utilities.scrollBarSize=d}if(c=="touchScrollBarSize"){b.jqx.utilities.touchScrollBarSize=d}if(c=="scrollBarButtonsVisibility"){b.jqx.utilities.scrollBarButtonsVisibility=d}})};b.jqx.utilities=b.jqx.utilities||{};b.extend(b.jqx.utilities,{scrollBarSize:13,touchScrollBarSize:8,scrollBarButtonsVisibility:"visible",createId:function(){var c=function(){return(((1+Math.random())*65536)|0).toString(16).substring(1)};return"jqxWidget"+c()+c()+c()},setTheme:function(g,h,f){if(typeof f==="undefined"){return}if(!f[0].className.split){return}if(g===undefined){g=""}if(h===undefined){h=""}var j=f[0].className.split(" "),c=[],k=[],e=f.children();for(var d=0;d<j.length;d+=1){if(j[d].indexOf(g)>=0){if(g.length>0){c.push(j[d]);k.push(j[d].replace(g,h))}else{k.push(j[d].replace("-"+h,"")+"-"+h)}}}this._removeOldClasses(c,f);this._addNewClasses(k,f);for(var d=0;d<e.length;d+=1){this.setTheme(g,h,b(e[d]))}},_removeOldClasses:function(e,d){for(var c=0;c<e.length;c+=1){d.removeClass(e[c])}},_addNewClasses:function(e,d){for(var c=0;c<e.length;c+=1){d.addClass(e[c])}},getOffset:function(c){var e=b.jqx.mobile.getLeftPos(c[0]);var d=b.jqx.mobile.getTopPos(c[0]);return{top:d,left:e}},resize:function(h,t,q,p){if(p===undefined){p=true}var m=-1;var l=this;var e=function(v){if(!l.hiddenWidgets){return -1}var w=-1;for(var u=0;u<l.hiddenWidgets.length;u++){if(v.id){if(l.hiddenWidgets[u].id==v.id){w=u;break}}else{if(l.hiddenWidgets[u].id==v[0].id){w=u;break}}}return w};if(this.resizeHandlers){for(var j=0;j<this.resizeHandlers.length;j++){if(h.id){if(this.resizeHandlers[j].id==h.id){m=j;break}}else{if(this.resizeHandlers[j].id==h[0].id){m=j;break}}}if(q===true){if(m!=-1){this.resizeHandlers.splice(m,1);if(this.watchedElementData&&this.watchedElementData.length>0){this.watchedElementData.splice(m,1)}}if(this.resizeHandlers.length==0){var o=b(window);if(o.off){o.off("resize.jqx");o.off("orientationchange.jqx");o.off("orientationchanged.jqx")}else{o.unbind("resize.jqx");o.unbind("orientationchange.jqx");o.unbind("orientationchanged.jqx")}this.resizeHandlers=null}var c=e(h);if(c!=-1&&this.hiddenWidgets){this.hiddenWidgets.splice(c,1)}return}}else{if(q===true){var c=e(h);if(c!=-1&&this.hiddenWidgets){this.hiddenWidgets.splice(c,1)}return}}var l=this;var n=function(w,F){if(!l.resizeHandlers){return}var G=function(J){var i=-1;var K=J.parentNode;while(K){i++;K=K.parentNode}return i};var v=function(L,J){if(!L.widget||!J.widget){return 0}var K=G(L.widget[0]);var i=G(J.widget[0]);try{if(K<i){return -1}if(K>i){return 1}}catch(M){var N=M}return 0};var x=function(J){if(l.hiddenWidgets.length>0){l.hiddenWidgets.sort(v);var i=function(){var L=false;var N=new Array();for(var M=0;M<l.hiddenWidgets.length;M++){var K=l.hiddenWidgets[M];if(b.jqx.isHidden(K.widget)){L=true;N.push(K)}else{if(K.callback){K.callback(F)}}}l.hiddenWidgets=N;if(!L){clearInterval(l.__resizeInterval)}};if(J==false){i();if(l.__resizeInterval){clearInterval(l.__resizeInterval)}return}if(l.__resizeInterval){clearInterval(l.__resizeInterval)}l.__resizeInterval=setInterval(function(){i()},100)}};if(l.hiddenWidgets&&l.hiddenWidgets.length>0){x(false)}l.hiddenWidgets=new Array();l.resizeHandlers.sort(v);for(var C=0;C<l.resizeHandlers.length;C++){var I=l.resizeHandlers[C];var E=I.widget;var B=I.data;if(!B){continue}if(!B.jqxWidget){continue}var u=B.jqxWidget.width;var H=B.jqxWidget.height;if(B.jqxWidget.base){if(u==undefined){u=B.jqxWidget.base.width}if(H==undefined){H=B.jqxWidget.base.height}}if(u===undefined&&H===undefined){u=B.jqxWidget.element.style.width;H=B.jqxWidget.element.style.height}var D=false;if(u!=null&&u.toString().indexOf("%")!=-1){D=true}if(H!=null&&H.toString().indexOf("%")!=-1){D=true}if(b.jqx.isHidden(E)){if(e(E)===-1){if(D||w===true){if(I.data.nestedWidget!==true){l.hiddenWidgets.push(I)}}}}else{if(w===undefined||w!==true){if(D){I.callback(F);if(l.watchedElementData){for(var z=0;z<l.watchedElementData.length;z++){if(l.watchedElementData[z].element==B.jqxWidget.element){l.watchedElementData[z].offsetWidth=B.jqxWidget.element.offsetWidth;l.watchedElementData[z].offsetHeight=B.jqxWidget.element.offsetHeight;break}}}if(l.hiddenWidgets.indexOf(I)>=0){l.hiddenWidgets.splice(l.hiddenWidgets.indexOf(I),1)}}if(B.jqxWidget.element){var y=B.jqxWidget.element.className;if(y.indexOf("dropdownlist")>=0||y.indexOf("datetimeinput")>=0||y.indexOf("combobox")>=0||y.indexOf("menu")>=0){if(B.jqxWidget.isOpened){var A=B.jqxWidget.isOpened();if(A){if(F&&F=="resize"&&b.jqx.mobile.isTouchDevice()){continue}B.jqxWidget.close()}}}}}}}x()};if(!this.resizeHandlers){this.resizeHandlers=new Array();var o=b(window);if(o.on){this._resizeTimer=null;this._initResize=null;o.on("resize.jqx",function(i){if(l._resizeTimer!=undefined){clearTimeout(l._resizeTimer)}if(!l._initResize){l._initResize=true;n(null,"resize")}else{l._resizeTimer=setTimeout(function(){n(null,"resize")},b.jqx.resizeDelay)}});o.on("orientationchange.jqx",function(i){n(null,"orientationchange")});o.on("orientationchanged.jqx",function(i){n(null,"orientationchange")})}else{o.bind("resize.jqx",function(i){n(null,"orientationchange")});o.bind("orientationchange.jqx",function(i){n(null,"orientationchange")});o.bind("orientationchanged.jqx",function(i){n(null,"orientationchange")})}}var f=h.data();if(p){if(m===-1){this.resizeHandlers.push({id:h[0].id,widget:h,callback:t,data:f})}}try{var d=f.jqxWidget.width;var s=f.jqxWidget.height;if(f.jqxWidget.base){if(d==undefined){d=f.jqxWidget.base.width}if(s==undefined){s=f.jqxWidget.base.height}}if(d===undefined&&s===undefined){d=f.jqxWidget.element.style.width;s=f.jqxWidget.element.style.height}var k=false;if(d!=null&&d.toString().indexOf("%")!=-1){k=true}if(s!=null&&s.toString().indexOf("%")!=-1){k=true}if(k){if(!this.watchedElementData){this.watchedElementData=[]}var l=this;var g=function(i){if(l.watchedElementData.forEach){l.watchedElementData.forEach(function(u){if(u.element.offsetWidth!==u.offsetWidth||u.element.offsetHeight!==u.offsetHeight){u.offsetWidth=u.element.offsetWidth;u.offsetHeight=u.element.offsetHeight;if(u.timer){clearTimeout(u.timer)}u.timer=setTimeout(function(){if(!b.jqx.isHidden(b(u.element))){u.callback()}else{u.timer=setInterval(function(){if(!b.jqx.isHidden(b(u.element))){clearInterval(u.timer);u.callback()}},100)}})}})}};l.watchedElementData.push({element:h[0],offsetWidth:h[0].offsetWidth,offsetHeight:h[0].offsetHeight,callback:t});if(!l.observer){l.observer=new MutationObserver(g);l.observer.observe(document.body,{attributes:true,childList:true,characterData:true})}}}catch(r){}if(b.jqx.isHidden(h)&&p===true){n(true)}b.jqx.resize=function(){n(null,"resize")}},parseJSON:function(e){if(!e||typeof e!=="string"){return null}var c=/^[\],:{}\s]*$/,g=/(?:^|:|,)(?:\s*\[)+/g,d=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,f=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g;e=b.trim(e);if(window.JSON&&window.JSON.parse){return window.JSON.parse(e)}if(c.test(e.replace(d,"@").replace(f,"]").replace(g,""))){return(new Function("return "+e))()}throw new Error("Invalid JSON: "+e)},html:function(d,e){if(!b(d).on){return b(d).html(e)}try{return b.access(d,function(s){var f=d[0]||{},m=0,j=d.length;if(s===undefined){return f.nodeType===1?f.innerHTML.replace(rinlinejQuery,""):undefined}var r=/<(?:script|style|link)/i,n="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",h=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,p=/<([\w:]+)/,g=/<(?:script|object|embed|option|style)/i,k=new RegExp("<(?:"+n+")[\\s/>]","i"),q=/^\s+/,t={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};if(typeof s==="string"&&!r.test(s)&&(b.support.htmlSerialize||!k.test(s))&&(b.support.leadingWhitespace||!q.test(s))&&!t[(p.exec(s)||["",""])[1].toLowerCase()]){s=s.replace(h,"<$1></$2>");try{for(;m<j;m++){f=this[m]||{};if(f.nodeType===1){b.cleanData(f.getElementsByTagName("*"));f.innerHTML=s}}f=0}catch(o){}}if(f){d.empty().append(s)}},null,e,arguments.length)}catch(c){return b(d).html(e)}},hasTransform:function(e){var d="";d=e.css("transform");if(d==""||d=="none"){d=e.parents().css("transform");if(d==""||d=="none"){var c=b.jqx.utilities.getBrowser();if(c.browser=="msie"){d=e.css("-ms-transform");if(d==""||d=="none"){d=e.parents().css("-ms-transform")}}else{if(c.browser=="chrome"){d=e.css("-webkit-transform");if(d==""||d=="none"){d=e.parents().css("-webkit-transform")}}else{if(c.browser=="opera"){d=e.css("-o-transform");if(d==""||d=="none"){d=e.parents().css("-o-transform")}}else{if(c.browser=="mozilla"){d=e.css("-moz-transform");if(d==""||d=="none"){d=e.parents().css("-moz-transform")}}}}}}else{return d!=""&&d!="none"}}if(d==""||d=="none"){d=b(document.body).css("transform")}return d!=""&&d!="none"&&d!=null},getBrowser:function(){var d=navigator.userAgent.toLowerCase();var c=/(chrome)[ \/]([\w.]+)/.exec(d)||/(webkit)[ \/]([\w.]+)/.exec(d)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(d)||/(msie) ([\w.]+)/.exec(d)||d.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(d)||[];var e={browser:c[1]||"",version:c[2]||"0"};if(d.indexOf("rv:11.0")>=0&&d.indexOf(".net4.0c")>=0){e.browser="msie";e.version="11";c[1]="msie"}if(d.indexOf("edge")>=0){e.browser="msie";e.version="12";c[1]="msie"}e[c[1]]=c[1];return e}});b.jqx.browser=b.jqx.utilities.getBrowser();b.jqx.isHidden=function(d){if(!d||!d[0]){return false}var c=d[0].offsetWidth,e=d[0].offsetHeight;if(c===0||e===0){return true}else{return false}};b.jqx.ariaEnabled=true;b.jqx.aria=function(d,f,e){if(!b.jqx.ariaEnabled){return}if(f==undefined){b.each(d.aria,function(h,i){var k=!d.base?d.host.attr(h):d.base.host.attr(h);if(k!=undefined&&!b.isFunction(k)){var j=k;switch(i.type){case"number":j=new Number(k);if(isNaN(j)){j=k}break;case"boolean":j=k=="true"?true:false;break;case"date":j=new Date(k);if(j=="Invalid Date"||isNaN(j)){j=k}break}d[i.name]=j}else{var k=d[i.name];if(b.isFunction(k)){k=d[i.name]()}if(k==undefined){k=""}try{!d.base?d.host.attr(h,k.toString()):d.base.host.attr(h,k.toString())}catch(g){}}})}else{try{if(d.host){if(!d.base){if(d.host){if(d.element.setAttribute){d.element.setAttribute(f,e.toString())}else{d.host.attr(f,e.toString())}}else{d.attr(f,e.toString())}}else{if(d.base.host){d.base.host.attr(f,e.toString())}else{d.attr(f,e.toString())}}}else{if(d.setAttribute){d.setAttribute(f,e.toString())}}}catch(c){}}};if(!Array.prototype.indexOf){Array.prototype.indexOf=function(d){var c=this.length;var e=Number(arguments[1])||0;e=(e<0)?Math.ceil(e):Math.floor(e);if(e<0){e+=c}for(;e<c;e++){if(e in this&&this[e]===d){return e}}return -1}}b.jqx.mobile=b.jqx.mobile||{};b.jqx.position=function(c){var f=parseInt(c.pageX);var e=parseInt(c.pageY);if(b.jqx.mobile.isTouchDevice()){var d=b.jqx.mobile.getTouches(c);var g=d[0];f=parseInt(g.pageX);e=parseInt(g.pageY)}return{left:f,top:e}};b.extend(b.jqx.mobile,{_touchListener:function(i,g){var c=function(j,l){var k=document.createEvent("MouseEvents");k.initMouseEvent(j,l.bubbles,l.cancelable,l.view,l.detail,l.screenX,l.screenY,l.clientX,l.clientY,l.ctrlKey,l.altKey,l.shiftKey,l.metaKey,l.button,l.relatedTarget);k._pageX=l.pageX;k._pageY=l.pageY;return k};var h={mousedown:"touchstart",mouseup:"touchend",mousemove:"touchmove"};var f=c(h[i.type],i);i.target.dispatchEvent(f);var d=i.target["on"+h[i.type]];if(typeof d==="function"){d(i)}},setMobileSimulator:function(d,f){if(this.isTouchDevice()){return}this.simulatetouches=true;if(f==false){this.simulatetouches=false}var e={mousedown:"touchstart",mouseup:"touchend",mousemove:"touchmove"};var c=this;if(window.addEventListener){var g=function(){for(var h in e){if(d.addEventListener){d.removeEventListener(h,c._touchListener);d.addEventListener(h,c._touchListener,false)}}};if(b.jqx.browser.msie){g()}else{g()}}},isTouchDevice:function(){if(this.touchDevice!=undefined){return this.touchDevice}var d="Browser CodeName: "+navigator.appCodeName+"";d+="Browser Name: "+navigator.appName+"";d+="Browser Version: "+navigator.appVersion+"";d+="Platform: "+navigator.platform+"";d+="User-agent header: "+navigator.userAgent+"";if(d.indexOf("Android")!=-1){return true}if(d.indexOf("IEMobile")!=-1){return true}if(d.indexOf("Windows Phone")!=-1){return true}if(d.indexOf("WPDesktop")!=-1){return true}if(d.indexOf("ZuneWP7")!=-1){return true}if(d.indexOf("BlackBerry")!=-1&&d.indexOf("Mobile Safari")!=-1){return true}if(d.indexOf("ipod")!=-1){return true}if(d.indexOf("nokia")!=-1||d.indexOf("Nokia")!=-1){return true}if(d.indexOf("Chrome/17")!=-1){return false}if(d.indexOf("CrOS")!=-1){return false}if(d.indexOf("Opera")!=-1&&d.indexOf("Mobi")==-1&&d.indexOf("Mini")==-1&&d.indexOf("Platform: Win")!=-1){return false}if(d.indexOf("HybridDeviceTouch")!=-1){return true}if(d.indexOf("HybridDeviceMouse")!=-1){return false}if(d.indexOf("Opera")!=-1&&d.indexOf("Mobi")!=-1&&d.indexOf("Opera Mobi")!=-1){return true}if(d.indexOf("Mozilla/5.0 (X11; Linux x86_64)")!=-1){return false}var f={ios:"i(?:Pad|Phone|Pod)(?:.*)CPU(?: iPhone)? OS ",android:"(Android |HTC_|Silk/)",blackberry:"BlackBerry(?:.*)Version/",rimTablet:"RIM Tablet OS ",webos:"(?:webOS|hpwOS)/",bada:"Bada/"};try{if(this.touchDevice!=undefined){return this.touchDevice}this.touchDevice=false;for(var h in f){if(f.hasOwnProperty(h)){var k=f[h];var g=d.match(new RegExp("(?:"+k+")([^\\s;]+)"));if(g){if(h.toString()=="blackberry"){this.touchDevice=false;return false}this.touchDevice=true;return true}}}var j=navigator.userAgent;if(navigator.platform.toLowerCase().indexOf("win")!=-1){if(j.indexOf("Windows Phone")>=0||j.indexOf("WPDesktop")>=0||j.indexOf("IEMobile")>=0||j.indexOf("ZuneWP7")>=0){this.touchDevice=true;return true}else{if(j.indexOf("Touch")>=0){var c=("MSPointerDown" in window)||("pointerdown" in window);if(c){this.touchDevice=true;return true}if(j.indexOf("ARM")>=0){this.touchDevice=true;return true}this.touchDevice=false;return false}}}if(navigator.platform.toLowerCase().indexOf("win")!=-1){this.touchDevice=false;return false}if(("ontouchstart" in window)||window.DocumentTouch&&document instanceof DocumentTouch){this.touchDevice=true}return this.touchDevice}catch(l){this.touchDevice=false;return false}},getLeftPos:function(c){var d=c.offsetLeft;while((c=c.offsetParent)!=null){if(c.tagName!="HTML"){d+=c.offsetLeft;if(document.all){d+=c.clientLeft}}}return d},getTopPos:function(d){var f=d.offsetTop;var c=b(d).coord();while((d=d.offsetParent)!=null){if(d.tagName!="HTML"){f+=(d.offsetTop-d.scrollTop);if(document.all){f+=d.clientTop}}}var e=navigator.userAgent.toLowerCase();var g=(e.indexOf("windows phone")!=-1||e.indexOf("WPDesktop")!=-1||e.indexOf("ZuneWP7")!=-1||e.indexOf("msie 9")!=-1||e.indexOf("msie 11")!=-1||e.indexOf("msie 10")!=-1)&&e.indexOf("touch")!=-1;if(g){return c.top}if(this.isSafariMobileBrowser()){if(this.isSafari4MobileBrowser()&&this.isIPadSafariMobileBrowser()){return f}if(e.indexOf("version/7")!=-1){return c.top}if(e.indexOf("version/6")!=-1||e.indexOf("version/5")!=-1){f=f+b(window).scrollTop()}if(/(Android.*Chrome\/[.0-9]* (!?Mobile))/.exec(navigator.userAgent)){return f+b(window).scrollTop()}if(/(Android.*Chrome\/[.0-9]* Mobile)/.exec(navigator.userAgent)){return f+b(window).scrollTop()}return c.top}return f},isChromeMobileBrowser:function(){var d=navigator.userAgent.toLowerCase();var c=d.indexOf("android")!=-1;return c},isOperaMiniMobileBrowser:function(){var d=navigator.userAgent.toLowerCase();var c=d.indexOf("opera mini")!=-1||d.indexOf("opera mobi")!=-1;return c},isOperaMiniBrowser:function(){var d=navigator.userAgent.toLowerCase();var c=d.indexOf("opera mini")!=-1;return c},isNewSafariMobileBrowser:function(){var d=navigator.userAgent.toLowerCase();var c=d.indexOf("ipad")!=-1||d.indexOf("iphone")!=-1||d.indexOf("ipod")!=-1;c=c&&(d.indexOf("version/5")!=-1);return c},isSafari4MobileBrowser:function(){var d=navigator.userAgent.toLowerCase();var c=d.indexOf("ipad")!=-1||d.indexOf("iphone")!=-1||d.indexOf("ipod")!=-1;c=c&&(d.indexOf("version/4")!=-1);return c},isWindowsPhone:function(){var d=navigator.userAgent.toLowerCase();var c=(d.indexOf("windows phone")!=-1||d.indexOf("WPDesktop")!=-1||d.indexOf("ZuneWP7")!=-1||d.indexOf("msie 9")!=-1||d.indexOf("msie 11")!=-1||d.indexOf("msie 10")!=-1&&d.indexOf("touch")!=-1);return c},isSafariMobileBrowser:function(){var d=navigator.userAgent.toLowerCase();if(/(Android.*Chrome\/[.0-9]* (!?Mobile))/.exec(navigator.userAgent)){return true}if(/(Android.*Chrome\/[.0-9]* Mobile)/.exec(navigator.userAgent)){return true}var c=d.indexOf("ipad")!=-1||d.indexOf("iphone")!=-1||d.indexOf("ipod")!=-1||d.indexOf("mobile safari")!=-1;return c},isIPadSafariMobileBrowser:function(){var d=navigator.userAgent.toLowerCase();var c=d.indexOf("ipad")!=-1;return c},isMobileBrowser:function(){var d=navigator.userAgent.toLowerCase();var c=d.indexOf("ipad")!=-1||d.indexOf("iphone")!=-1||d.indexOf("android")!=-1;return c},getTouches:function(c){if(c.originalEvent){if(c.originalEvent.touches&&c.originalEvent.touches.length){return c.originalEvent.touches}else{if(c.originalEvent.changedTouches&&c.originalEvent.changedTouches.length){return c.originalEvent.changedTouches}}}if(!c.touches){c.touches=new Array();c.touches[0]=c.originalEvent!=undefined?c.originalEvent:c;if(c.originalEvent!=undefined&&c.pageX){c.touches[0]=c}if(c.type=="mousemove"){c.touches[0]=c}}return c.touches},getTouchEventName:function(c){if(this.isWindowsPhone()){var d=navigator.userAgent.toLowerCase();if(d.indexOf("windows phone 7")!=-1){if(c.toLowerCase().indexOf("start")!=-1){return"MSPointerDown"}if(c.toLowerCase().indexOf("move")!=-1){return"MSPointerMove"}if(c.toLowerCase().indexOf("end")!=-1){return"MSPointerUp"}}if(c.toLowerCase().indexOf("start")!=-1){return"pointerdown"}if(c.toLowerCase().indexOf("move")!=-1){return"pointermove"}if(c.toLowerCase().indexOf("end")!=-1){return"pointerup"}}else{return c}},dispatchMouseEvent:function(c,g,f){if(this.simulatetouches){return}var d=document.createEvent("MouseEvent");d.initMouseEvent(c,true,true,g.view,1,g.screenX,g.screenY,g.clientX,g.clientY,false,false,false,false,0,null);if(f!=null){f.dispatchEvent(d)}},getRootNode:function(c){while(c.nodeType!==1){c=c.parentNode}return c},setTouchScroll:function(c,d){if(!this.enableScrolling){this.enableScrolling=[]}this.enableScrolling[d]=c},touchScroll:function(B,M,Z,H,x,n){if(B==null){return}var G=this;var f=0;var r=0;var g=0;var i=0;var t=0;var j=0;if(!this.scrolling){this.scrolling=[]}this.scrolling[H]=false;var k=false;var p=b(B);var R=["select","input","textarea"];var X=0;var J=0;if(!this.enableScrolling){this.enableScrolling=[]}this.enableScrolling[H]=true;var H=H;var w=this.getTouchEventName("touchstart")+".touchScroll";var D=this.getTouchEventName("touchend")+".touchScroll";var ab=this.getTouchEventName("touchmove")+".touchScroll";var l,W,z,ah,V,Y,aj,Q,aa,d,F,ad,af,O,e,v,u,S,c,E,ag,o;Q=M;var aj=0;var aa=0;var h=0;var T=0;var ai=0;var Y=x.jqxScrollBar("max");var o=325;function A(am){if(am.targetTouches&&(am.targetTouches.length>=1)){return am.targetTouches[0].clientY}else{if(am.originalEvent&&am.originalEvent.clientY!==undefined){return am.originalEvent.clientY}else{var al=G.getTouches(am);return al[0].clientY}}}function ae(am){if(am.targetTouches&&(am.targetTouches.length>=1)){return am.targetTouches[0].clientX}else{if(am.originalEvent&&am.originalEvent.clientX!==undefined){return am.originalEvent.clientX}else{var al=G.getTouches(am);return al[0].clientX}}}var I=function(){var ap,am,aq,ao;ap=Date.now();am=ap-v;v=ap;aq=aa-e;var an=h-ah;e=aa;ah=h;F=true;ao=1000*aq/(1+am);var al=1000*an/(1+am);af=0.8*ao+0.2*af;O=0.8*al+0.2*O};var C=false;var X=function(am){if(!G.enableScrolling[H]){return true}if(b.inArray(am.target.tagName.toLowerCase(),R)!==-1){return}aa=n.jqxScrollBar("value");h=x.jqxScrollBar("value");var an=G.getTouches(am);var ao=an[0];if(an.length==1){G.dispatchMouseEvent("mousedown",ao,G.getRootNode(ao.target))}Y=x.jqxScrollBar("max");Q=n.jqxScrollBar("max");function al(ap){C=false;F=true;d=A(ap);ag=ae(ap);af=S=O=0;e=aa;ah=h;v=Date.now();clearInterval(u);u=setInterval(I,100);T=aa;ai=h;if(aa>0&&aa<Q&&n[0].style.visibility!="hidden"){}}al(am);k=false;r=ao.pageY;t=ao.pageX;if(G.simulatetouches){if(ao._pageY!=undefined){r=ao._pageY;t=ao._pageX}}G.scrolling[H]=true;f=0;i=0;return true};if(p.on){p.on(w,X)}else{p.bind(w,X)}var ac=function(am,al){aa=(am>Q)?Q:(am<aj)?aj:am;Z(null,am,0,0,al);return(am>Q)?"max":(am<aj)?"min":"value"};var m=function(am,al){h=(am>Y)?Y:(am<aj)?aj:am;Z(am,null,0,0,al);return(am>Y)?"max":(am<aj)?"min":"value"};function U(){var al,am;if(S){al=Date.now()-v;am=-S*Math.exp(-al/o);if(am>0.5||am<-0.5){ac(c+am);requestAnimationFrame(U)}else{ac(c)}}}function N(){var al,am;if(S){al=Date.now()-v;am=-S*Math.exp(-al/o);if(am>0.5||am<-0.5){m(E+am);requestAnimationFrame(N)}else{m(E)}}}var y=function(al){if(!G.enableScrolling[H]){return true}if(!G.scrolling[H]){return true}if(C){al.preventDefault();al.stopPropagation()}var aq=G.getTouches(al);if(aq.length>1){return true}var am=aq[0].pageY;var ao=aq[0].pageX;if(G.simulatetouches){if(aq[0]._pageY!=undefined){am=aq[0]._pageY;ao=aq[0]._pageX}}var au=am-r;var av=ao-t;J=am;var at=ao;g=au-f;j=av-i;k=true;f=au;i=av;var an=x!=null?x[0].style.visibility!="hidden":true;var ar=n!=null?n[0].style.visibility!="hidden":true;function ap(ay){var aA,az,ax;if(F){aA=A(ay);ax=ae(ay);az=d-aA;V=ag-ax;var aw="value";if(az>2||az<-2){d=aA;aw=ac(aa+az,ay);I();if(aw=="min"&&T===0){return true}if(aw=="max"&&T===Q){return true}if(!ar){return true}ay.preventDefault();ay.stopPropagation();C=true;return false}else{if(V>2||V<-2){ag=ax;aw=m(h+V,ay);I();if(aw=="min"&&ai===0){return true}if(aw=="max"&&ai===Y){return true}if(!an){return true}C=true;ay.preventDefault();ay.stopPropagation();return false}}ay.preventDefault()}}if(an||ar){if((an)||(ar)){ap(al)}}};if(p.on){p.on(ab,y)}else{p.bind(ab,y)}var s=function(am){if(!G.enableScrolling[H]){return true}var an=G.getTouches(am)[0];if(!G.scrolling[H]){return true}F=false;clearInterval(u);if(af>10||af<-10){S=0.8*af;c=Math.round(aa+S);v=Date.now();requestAnimationFrame(U)}else{if(O>10||O<-10){S=0.8*O;E=Math.round(h+S);v=Date.now();requestAnimationFrame(N)}else{}}G.scrolling[H]=false;if(k){G.dispatchMouseEvent("mouseup",an,am.target)}else{var an=G.getTouches(am)[0],al=G.getRootNode(an.target);G.dispatchMouseEvent("mouseup",an,al);G.dispatchMouseEvent("click",an,al);return true}};if(this.simulatetouches){var q=b(window).on!=undefined||b(window).bind;var P=function(al){try{s(al)}catch(am){}G.scrolling[H]=false};b(window).on!=undefined?b(document).on("mouseup.touchScroll",P):b(document).bind("mouseup.touchScroll",P);if(window.frameElement){if(window.top!=null){var L=function(al){try{s(al)}catch(am){}G.scrolling[H]=false};if(window.top.document){b(window.top.document).on?b(window.top.document).on("mouseup",L):b(window.top.document).bind("mouseup",L)}}}var ak=b(document).on!=undefined||b(document).bind;var K=function(al){if(!G.scrolling[H]){return true}G.scrolling[H]=false;var an=G.getTouches(al)[0],am=G.getRootNode(an.target);G.dispatchMouseEvent("mouseup",an,am);G.dispatchMouseEvent("click",an,am)};b(document).on!=undefined?b(document).on("touchend",K):b(document).bind("touchend",K)}if(p.on){p.on("dragstart",function(al){al.preventDefault()});p.on("selectstart",function(al){al.preventDefault()})}p.on?p.on(D+" touchcancel.touchScroll",s):p.bind(D+" touchcancel.touchScroll",s)}});b.jqx.cookie=b.jqx.cookie||{};b.extend(b.jqx.cookie,{cookie:function(f,g,d){if(arguments.length>1&&String(g)!=="[object Object]"){d=b.extend({},d);if(g===null||g===undefined){d.expires=-1}if(typeof d.expires==="number"){var i=d.expires,e=d.expires=new Date();e.setDate(e.getDate()+i)}g=String(g);return(document.cookie=[encodeURIComponent(f),"=",d.raw?g:encodeURIComponent(g),d.expires?"; expires="+d.expires.toUTCString():"",d.path?"; path="+d.path:"",d.domain?"; domain="+d.domain:"",d.secure?"; secure":""].join(""))}d=g||{};var c,h=d.raw?function(j){return j}:decodeURIComponent;return(c=new RegExp("(?:^|; )"+encodeURIComponent(f)+"=([^;]*)").exec(document.cookie))?h(c[1]):null}});b.jqx.string=b.jqx.string||{};b.extend(b.jqx.string,{replace:function(g,e,f){if(e===f){return this}var c=g;var d=c.indexOf(e);while(d!=-1){c=c.replace(e,f);d=c.indexOf(e)}return c},contains:function(c,d){if(c==null||d==null){return false}return c.indexOf(d)!=-1},containsIgnoreCase:function(c,d){if(c==null||d==null){return false}return c.toString().toUpperCase().indexOf(d.toString().toUpperCase())!=-1},equals:function(c,d){if(c==null||d==null){return false}c=this.normalize(c);if(d.length==c.length){return c.slice(0,d.length)==d}return false},equalsIgnoreCase:function(c,d){if(c==null||d==null){return false}c=this.normalize(c);if(d.length==c.length){return c.toUpperCase().slice(0,d.length)==d.toUpperCase()}return false},startsWith:function(c,d){if(c==null||d==null){return false}return c.slice(0,d.length)==d},startsWithIgnoreCase:function(c,d){if(c==null||d==null){return false}return c.toUpperCase().slice(0,d.length)==d.toUpperCase()},normalize:function(c){if(c.charCodeAt(c.length-1)==65279){c=c.substring(0,c.length-1)}return c},endsWith:function(c,d){if(c==null||d==null){return false}c=this.normalize(c);return c.slice(-d.length)==d},endsWithIgnoreCase:function(c,d){if(c==null||d==null){return false}c=this.normalize(c);return c.toUpperCase().slice(-d.length)==d.toUpperCase()}});b.extend(b.easing,{easeOutBack:function(f,g,e,j,i,h){if(h==undefined){h=1.70158}return j*((g=g/i-1)*g*((h+1)*g+h)+1)+e},easeInQuad:function(f,g,e,i,h){return i*(g/=h)*g+e},easeInOutCirc:function(f,g,e,i,h){if((g/=h/2)<1){return -i/2*(Math.sqrt(1-g*g)-1)+e}return i/2*(Math.sqrt(1-(g-=2)*g)+1)+e},easeInOutSine:function(f,g,e,i,h){return -i/2*(Math.cos(Math.PI*g/h)-1)+e},easeInCubic:function(f,g,e,i,h){return i*(g/=h)*g*g+e},easeOutCubic:function(f,g,e,i,h){return i*((g=g/h-1)*g*g+1)+e},easeInOutCubic:function(f,g,e,i,h){if((g/=h/2)<1){return i/2*g*g*g+e}return i/2*((g-=2)*g*g+2)+e},easeInSine:function(f,g,e,i,h){return -i*Math.cos(g/h*(Math.PI/2))+i+e},easeOutSine:function(f,g,e,i,h){return i*Math.sin(g/h*(Math.PI/2))+e},easeInOutSine:function(f,g,e,i,h){return -i/2*(Math.cos(Math.PI*g/h)-1)+e}})})(jqxBaseFramework);(function(b){if(b.event&&b.event.special){b.extend(b.event.special,{close:{noBubble:true},open:{noBubble:true},cellclick:{noBubble:true},rowclick:{noBubble:true},tabclick:{noBubble:true},selected:{noBubble:true},expanded:{noBubble:true},collapsed:{noBubble:true},valuechanged:{noBubble:true},expandedItem:{noBubble:true},collapsedItem:{noBubble:true},expandingItem:{noBubble:true},collapsingItem:{noBubble:true}})}if(b.fn.extend){b.fn.extend({ischildof:function(g){if(!b(this).parents){var c=g.element.contains(this.element);return c}var e=b(this).parents().get();for(var d=0;d<e.length;d++){if(typeof g!="string"){var f=e[d];if(g!==undefined){if(f==g[0]){return true}}}else{if(g!==undefined){if(b(e[d]).is(g)){return true}}}}return false}})}b.fn.jqxProxy=function(){var e=b(this).data().jqxWidget;var c=Array.prototype.slice.call(arguments,0);var d=e.element;if(!d){d=e.base.element}return b.jqx.jqxWidgetProxy(e.widgetName,d,c)};var a=b.originalVal=b.fn.val;b.fn.val=function(d){if(typeof d=="undefined"){if(b(this).hasClass("jqx-widget")){var c=b(this).data().jqxWidget;if(c&&c.val){return c.val()}}if(this[0]&&this[0].tagName.toLowerCase().indexOf("angular")>=0){var c=b(this).find(".jqx-widget").data().jqxWidget;if(c&&c.val){return c.val()}}return a.call(this)}else{if(b(this).hasClass("jqx-widget")){var c=b(this).data().jqxWidget;if(c&&c.val){if(arguments.length!=2){return c.val(d)}else{return c.val(d,arguments[1])}}}if(this[0]&&this[0].tagName.toLowerCase().indexOf("angular")>=0){var c=b(this).find(".jqx-widget").data().jqxWidget;if(c&&c.val){if(arguments.length!=2){return c.val(d)}else{return c.val(d,arguments[1])}}}return a.call(this,d)}};if(b.fn.modal&&b.fn.modal.Constructor){b.fn.modal.Constructor.prototype.enforceFocus=function(){b(document).off("focusin.bs.modal").on("focusin.bs.modal",b.proxy(function(c){if(this.$element[0]!==c.target&&!this.$element.has(c.target).length){if(b(c.target).parents().hasClass("jqx-popup")){return true}this.$element.trigger("focus")}},this))}}b.fn.coord=function(n){var e,j,i={top:0,left:0},f=this[0],l=f&&f.ownerDocument;if(!l){return}e=l.documentElement;if(!b.contains(e,f)){return i}if(typeof f.getBoundingClientRect!==undefined){i=f.getBoundingClientRect()}var d=function(o){return b.isWindow(o)?o:o.nodeType===9?o.defaultView||o.parentWindow:false};j=d(l);var h=0;var c=0;var g=navigator.userAgent.toLowerCase();var m=g.indexOf("ipad")!=-1||g.indexOf("iphone")!=-1;if(m){h=2}if(true==n){if(document.body.style.position!="static"&&document.body.style.position!=""){var k=b(document.body).coord();h=-k.left;c=-k.top}}return{top:c+i.top+(j.pageYOffset||e.scrollTop)-(e.clientTop||0),left:h+i.left+(j.pageXOffset||e.scrollLeft)-(e.clientLeft||0)}};b.jqx.ripplers=[];b.jqx.ripple=function(f,e,o){if(!e){e=f}var h=b(f);var j=false;h.append("<span class='ink'></span>");var p=h.find(".ink");var c=false;for(var g=0;g<b.jqx.ripplers.length;g++){var k=b.jqx.ripplers[g];if(k.element[0]===f[0]){c=true;break}}if(!c){b.jqx.ripplers.push({ink:p,element:f,hostElement:e,hostElementType:o})}if(o==="checkbox"||o==="radiobutton"){var l=Math.max(h.outerWidth(),h.outerHeight());p.css({height:l,width:l});var n=h.width()/2-p.width()/2;var m=h.height()/2-p.height()/2;p.css({top:m+"px",left:n+"px"})}if(b.jqx.ripplers.length===1){b(document).on("mouseup",function(r){b.jqx.ripple.mouseCaptured=false;for(var q=0;q<b.jqx.ripplers.length;q++){var d=b.jqx.ripplers[q];d.ink.removeClass("active");d.element.removeClass("active");if(o!=="checkbox"&&o!=="radiobutton"){if(d.ink.hasClass("animate")){d.ink.removeClass("animate")}}}})}e.off("mousedown.ripple");e.on("mousedown.ripple",function(i){var d=b(f);b.jqx.ripple.mouseCaptured=true;setTimeout(function(){if(d.find(".ink").length==0){d.append("<span class='ink'></span>")}var r=d.find(".ink");r.removeClass("animate");if(!r.height()&&!r.width()){var s=Math.max(d.outerWidth(),d.outerHeight());r.css({height:s,width:s})}if(o==="checkbox"||o==="radiobutton"){if(o==="checkbox"){if(e.jqxCheckBox("disabled")){return}}if(o==="radiobutton"){if(e.jqxRadioButton("disabled")){return}}var q=d.width()/2-r.width()/2;var t=d.height()/2-r.height()/2;r.css({top:t+"px",left:q+"px"}).addClass("animate");r.on("animationend",function(){if(b.jqx.ripple.mouseCaptured){r.removeClass("animate");r.addClass("active");f.addClass("active")}});return}var q=i.pageX-d.offset().left-r.width()/2;var t=i.pageY-d.offset().top-r.height()/2;r.css({top:t+"px",left:q+"px"}).addClass("animate")})})}})(jqxBaseFramework); (function(i){i.jqx.observableArray=function(e,J){if(typeof(e)=="string"){e=i.parseJSON(e)}if(!Object.defineProperty||!(function(){try{Object.defineProperty({},"x",{});return true}catch(M){return false}}())){var L=Object.defineProperty;Object.defineProperty=function(O,P,N){if(L){try{return L(O,P,N)}catch(M){}}if(O!==Object(O)){throw TypeError("Object.defineProperty called on non-object")}if(Object.prototype.__defineGetter__&&("get" in N)){Object.prototype.__defineGetter__.call(O,P,N.get)}if(Object.prototype.__defineSetter__&&("set" in N)){Object.prototype.__defineSetter__.call(O,P,N.set)}if("value" in N){O[P]=N.value}else{if(!O[P]){O[P]=N}}return O}}if(!Array.prototype.forEach){Array.prototype.forEach=function(N){if(this===void 0||this===null){throw TypeError()}var Q=Object(this);var M=Q.length>>>0;if(typeof N!=="function"){throw TypeError()}var P=arguments[1],O;for(O=0;O<M;O++){if(O in Q){N.call(P,Q[O],O,Q)}}}}if(typeof Object.getOwnPropertyNames!=="function"){Object.getOwnPropertyNames=function(O){if(O!==Object(O)){throw TypeError("Object.getOwnPropertyNames called on non-object")}var M=[],N;for(N in O){if(Object.prototype.hasOwnProperty.call(O,N)){M.push(N)}}return M}}var I=this,H,K=[];I.notifier=null;I.name="observableArray";I.observing=true;I.changes=new Array();var J=J;I.observe=function(){I.observing=true;if(arguments.length==1){J=arguments[0]}};I.unobserve=function(){I.observing=false};I.toArray=function(){return K.slice(0)};I.toJSON=function(X,O){var U=K;if(O){U=O}var T=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,W={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function M(Z){return'"'+Z.replace(T,function(aa){var ab=W[aa];return typeof ab==="string"?ab:"\\u"+("0000"+aa.charCodeAt(0).toString(16)).slice(-4)})+'"'}function N(Z){return Z<10?"0"+Z:Z}function P(aa){var Z;if(isFinite(aa.valueOf())){Z=aa.getUTCFullYear()+"-"+N(aa.getUTCMonth()+1)+"-"+N(aa.getUTCDate())+"T"+N(aa.getUTCHours())+":"+N(aa.getUTCMinutes())+":"+N(aa.getUTCSeconds())+'Z"'}else{Z="null"}return Z}function Q(ac){var Z=ac.length,aa=[],ab;for(ab=0;ab<Z;ab++){aa.push(R(ab,ac)||"null")}return"["+aa.join(",")+"]"}function Y(ac){var aa=[],ab,Z;for(ab in ac){if(Object.prototype.hasOwnProperty.call(ac,ab)){if(ab!=""&&X&&X.indexOf(ab)===-1){continue}Z=R(ab,ac);if(Z){aa.push(M(ab)+":"+Z)}}}return"{"+aa.join(",")+"}"}function S(Z){switch(Object.prototype.toString.call(Z)){case"[object Date]":return P(Z);case"[object Array]":return Q(Z)}return Y(Z)}function V(aa,Z){switch(Z){case"string":return M(aa);case"number":case"float":case"integer":case"int":return isFinite(aa)?aa:"null";case"boolean":return aa}return"null"}function R(aa,Z){var ac=Z[aa],ab=typeof ac;if(ac&&typeof ac==="object"&&typeof ac.toJSON==="function"){ac=ac.toJSON(aa);ab=typeof ac}if(/(number|float|int|integer|string|boolean)/.test(ab)||(!ac&&ab==="object")){return V(ac,ab)}else{return S(ac)}}if(!X&&window.JSON&&typeof window.JSON.stringify==="function"){return window.JSON.stringify(U)}return R("",{"":U})};I.defineIndexProperty=function(O){if(!(O in I)){var M=function(V,S,U,R){var T=V[S];var Q=T;var P=function(){return Q};var W=function(ab){T=ab;if(Q!==T){var aa=Q;Q=T;if(typeof H==="function"){var Y=K.indexOf(R);var Z="";var X=function(ad,ac){Object.getOwnPropertyNames(ad).forEach(function(ae){var af=i.type(ad[ae]);if(af=="array"||af=="object"){X(ad[ae],ac+"."+ae)}else{if(S===ae){Z=ac+"."+ae}}})};X(R,Y);H({object:I,type:"update",path:Z,index:Y,name:S,newValue:T,oldValue:aa})}}Q=T;return T};if(V[S]!=undefined&&S!="length"){if(Object.defineProperty){Object.defineProperty(V,S,{get:P,set:W})}else{if(Object.prototype.__defineGetter__&&Object.prototype.__defineSetter__){Object.prototype.__defineGetter__.call(V,S,P);Object.prototype.__defineSetter__.call(V,S,W)}}}};var N=function(S,R,P){var Q=i.type(S);if(/(number|float|int|integer|string|boolean)/.test(Q)){return}if(S===undefined){return}Object.getOwnPropertyNames(S).forEach(function(T){var U=i.type(S[T]);if(U=="array"||U=="object"){M(S,T,R+"."+T,P);N(S[T],R+"."+T,P)}else{M(S,T,R+"."+T,P)}})};Object.defineProperty(I,O,{configurable:true,enumerable:true,get:function(){return K[O]},set:function(Q){var P=K[O];if(I.toJSON(null,P)!=I.toJSON(null,Q)){K[O]=Q;if(typeof H==="function"){H({object:I,type:"update",path:O.toString(),index:O,name:"index",newValue:Q,oldValue:P})}N(Q,O,Q)}}});N(I[O],O,I[O])}};I.push=function(){var M;for(var N=0,O=arguments.length;N<O;N++){M=K.length;K.push(arguments[N]);I.defineIndexProperty(M);if(typeof H==="function"){H({object:I,type:"add",name:"length",index:M,newValue:K.length,oldValue:M})}}return K.length};I.pop=function(){if(~K.length){var M=K.length-1,N=K.pop();delete I[M];if(typeof H==="function"){H({object:I,type:"delete",name:"length",index:M,newValue:K.length,oldValue:M})}return N}};I.unshift=function(){var M=K.length;for(var N=0,O=arguments.length;N<O;N++){K.splice(N,0,arguments[N]);I.defineIndexProperty(K.length-1)}if(typeof H==="function"){H({object:I,type:"add",index:0,name:"length",newValue:K.length,oldValue:M})}return K.length};I.shift=function(){var M=K.length;if(~K.length){var N=K.shift();K.length===0&&delete I[M];if(typeof H==="function"){H({object:I,type:"delete",index:M,name:"length",newValue:K.length,oldValue:M})}return N}};I.slice=function(Q,N,P){var M=K.slice(Q,N);var O=new i.jqx.observableArray(M,P);return O};I.splice=function(Q,R,M){var P=[],U,T;Q=!~Q?K.length-Q:Q;R=(R==null?K.length-Q:R)||0;while(R--){U=K.splice(Q,1)[0];P.push(U);delete I[K.length];if(typeof H==="function"){H({object:I,type:"delete",index:Q,name:"length",newValue:-1,oldValue:Q})}}for(var N=2,S=arguments.length;N<S;N++){K.splice(Q,0,arguments[N]);this.defineIndexProperty(K.length-1);if(typeof H==="function"){H({object:I,type:"add",index:Q,name:"length",newValue:K.length-1,oldValue:Q})}Q++}var O=new i.jqx.observableArray(P,M);return O};Object.defineProperty(I,"length",{configurable:false,enumerable:true,get:function(){return K.length},set:function(M){var N=Number(M);if(N%1===0&&N>=0){if(N<K.length){I.splice(N)}else{if(N>K.length){I.push.apply(I,new Array(N-K.length))}}}else{throw new RangeError("Invalid array length")}return M}});i.jqx.observableArray.prototype.fromArray=function(O,N){var M=new i.jqx.observableArray(O,N);return M};i.jqx.observableArray.prototype.clone=function(){var M=new i.jqx.observableArray(K,J);M.observing=I.observing;M.changes=I.changes;M.notifier=I.notifier;return M};I.remove=function(N){if(N<0||N>=I.length){throw new Error("Invalid index : "+N)}if(I.hasOwnProperty(N)){var M=I[N];I[N]=undefined;K[N]=undefined;if(typeof H==="function"){H({object:I,type:"delete",index:N,name:"index",newValue:undefined,oldValue:M})}return true}return false};I.concat=function(N,P){var M=K.concat(N);var O=new i.jqx.observableArray(M,P);return O};Object.getOwnPropertyNames(Array.prototype).forEach(function(M){if(!(M in I)){var N=function(){var Q=I.observing;I.observing=false;var P=K[M];var O=P.apply(K,arguments);I.observing=Q;return O};Object.defineProperty(I,M,{configurable:false,enumerable:true,writeable:false,value:N})}});I.set=function(N,P){if(i.type(N)=="string"&&N.split(".").length>1){var M=N.split(".");var Q=I;for(var O=0;O<M.length;O++){if(O===0){if(M[O]>=I.length){throw new Error("Invalid Index: "+N)}}if(O<M.length-1){Q=Q[M[O]]}else{Q[M[O]]=P}}return true}if(N>=I.length){I.push(P)}else{I[N]=P}return true};I.get=function(M){return I[M]};if(e instanceof Array){I.push.apply(I,e)}H=function(){if(!I.observing){return}if(arguments&&arguments[0]){I.changes.push(arguments[0])}if(J){J.apply(I,arguments)}if(I.notifier){I.notifier.apply(I,arguments)}};return I};i.jqx.formatDate=function(H,J,I){var e=i.jqx.dataFormat.formatdate(H,J,I);return e};i.jqx.formatNumber=function(H,J,I){var e=i.jqx.dataFormat.formatnumber(H,J,I);return e};i.jqx.dataAdapter=function(J,e){if(J!=undefined){if(J.dataFields!==undefined){J.datafields=J.dataFields}if(J.dataType!==undefined){J.datatype=J.dataType}if(J.localData!==undefined){J.localdata=J.localData}if(J.sortColumn!==undefined){J.sortcolumn=J.sortColumn}if(J.sortDirection!==undefined){J.sortdirection=J.sortDirection}if(J.sortColumns!==undefined){J.sortcolumns=J.sortColumns}if(J.sortDirections!==undefined){J.sortdirections=J.sortDirections}if(J.sortOrder!==undefined){J.sortdirection=J.sortOrder}if(J.formatData!==undefined){J.formatdata=J.formatData}if(J.processData!==undefined){J.processdata=J.processData}if(J.pageSize!==undefined){J.pagesize=J.pageSize}if(J.pageNum!==undefined){J.pagenum=J.pageNum}if(J.updateRow!==undefined){J.updaterow=J.updateRow}if(J.addRow!==undefined){J.addrow=J.addRow}if(J.deleteRow!==undefined){J.deleterow=J.deleteRow}if(J.contentType!==undefined){J.contenttype=J.contentType}if(J.totalRecords!=undefined){J.totalrecords=J.totalRecords}if(J.loadError!=undefined){J.loadError=J.loadError}if(J.sortComparer!=undefined){J.sortcomparer=J.sortComparer}}this._source=J;this._options=e||{};if(J.beforeLoadComplete!=undefined){this._options.beforeLoadComplete=this._source.beforeLoadComplete}if(J.downloadComplete!=undefined){this._options.downloadComplete=this._source.downloadComplete}if(J.loadComplete!=undefined){this._options.loadComplete=this._source.loadComplete}if(J.autoBind!=undefined){this._options.downloadComplete=this._source.autoBind}if(J.formatData!=undefined){this._options.formatData=this._source.formatData}if(J.loadError!=undefined){this._options.loadError=this._source.loadError}if(J.beforeSend!=undefined){this._options.beforeSend=this._source.beforeSend}if(J.contentType!=undefined){this._options.contentType=this._source.contentType}if(J.async!=undefined){this._options.async=this._source.async}if(J.loadServerData!=undefined){this._options.loadServerData=this._source.loadServerData}if(J.uniqueDataFields!=undefined){this._options.uniqueDataFields=this._source.uniqueDataFields}this.records=new Array();this._downloadComplete=new Array();this._bindingUpdate=new Array();if(J!=undefined&&J.localdata!=null&&typeof J.localdata=="function"){var I=J.localdata();if(I!=null){J._localdata=J.localdata;var H=this;if(J._localdata.subscribe){H._oldlocaldata=[];J._localdata.subscribe(function(K){var L=function(M){if(i.isArray(M)){return i.makeArray(L(i(M)))}return i.extend(true,{},M)};if(H.suspendKO==false||H.suspendKO==undefined||H._oldlocaldata.length==0){H._oldlocaldata=L(K)}},J._localdata,"beforeChange");J._localdata.subscribe(function(L){if(H.suspendKO==false||H.suspendKO==undefined){var K="";H._oldrecords=H.records;if(H._oldlocaldata.length==0){J.localdata=J._localdata()}if(H._oldlocaldata.length==0){K="change"}else{if(L){if(H._oldlocaldata.length==L.length){K="update"}if(H._oldlocaldata.length>L.length){K="remove"}if(H._oldlocaldata.length<L.length){K="add"}}}H.dataBind(null,K)}},J._localdata,"change");H._knockoutdatasource=true}J.localdata=I}}if(this._options.autoBind==true){this.dataBind()}};i.jqx.dataAdapter.prototype={getrecords:function(){return this.records},beginUpdate:function(){this.isUpdating=true},endUpdate:function(e){this.isUpdating=false;if(e!=false){if(this._changedrecords&&this._changedrecords.length>0){this.callBindingUpdate("update");this._changedrecords=[]}else{this.dataBind(null,"")}}},formatDate:function(H,J,I){var e=i.jqx.dataFormat.formatdate(H,J,I);return e},formatNumber:function(H,J,I){var e=i.jqx.dataFormat.formatnumber(H,J,I);return e},dataBind:function(R,aa){if(this.isUpdating==true){return}var W=this._source;if(!W){return}if(W.generatedfields){W.datafields=null;W.generatedfields=null}i.jqx.dataFormat.datescache=new Array();if(W.dataFields!=null){W.datafields=W.dataFields}if(W.recordstartindex==undefined){W.recordstartindex=0}if(W.recordendindex==undefined){W.recordendindex=0}if(W.loadallrecords==undefined){W.loadallrecords=true}if(W.root==undefined){W.root=""}if(W.record==undefined){W.record=""}if(W.sort!=undefined){this.sort=W.sort}if(W.filter!=undefined){this.filter=W.filter}else{this.filter=null}if(W.sortcolumn!=undefined){this.sortcolumn=W.sortcolumn}if(W.sortdirection!=undefined){this.sortdirection=W.sortdirection}if(W.sortcolumns!=undefined){this.sortcolumns=W.sortcolumns}if(W.sortdirections!=undefined){this.sortdirections=W.sortdirections}if(W.sortcomparer!=undefined){this.sortcomparer=W.sortcomparer}this.records=new Array();var K=this._options||{};this.virtualmode=K.virtualmode!=undefined?K.virtualmode:false;this.totalrecords=K.totalrecords!=undefined?K.totalrecords:0;this.pageable=K.pageable!=undefined?K.pageable:false;this.pagesize=K.pagesize!=undefined?K.pagesize:0;this.pagenum=K.pagenum!=undefined?K.pagenum:0;this.cachedrecords=K.cachedrecords!=undefined?K.cachedrecords:new Array();this.originaldata=new Array();this.recordids=new Array();this.updaterow=K.updaterow!=undefined?K.updaterow:null;this.addrow=K.addrow!=undefined?K.addrow:null;this.deleterow=K.deleterow!=undefined?K.deleterow:null;this.cache=K.cache!=undefined?K.cache:false;this.unboundmode=false;if(W.formatdata!=undefined){K.formatData=W.formatdata}if(W.data!=undefined){if(K.data==undefined){K.data={}}i.extend(K.data,W.data)}if(W.mapChar!=undefined){W.mapchar=W.mapChar}if(W.mapchar!=undefined){this.mapChar=W.mapchar?W.mapchar:">"}else{this.mapChar=K.mapChar?K.mapChar:">"}if(K.unboundmode||W.unboundmode){this.unboundmode=K.unboundmode||W.unboundmode}if(W.cache!=undefined){this.cache=W.cache}if(this.koSubscriptions){for(var ac=0;ac<this.koSubscriptions.length;ac++){this.koSubscriptions[ac].dispose()}}this.koSubscriptions=new Array();if(this.pagenum<0){this.pagenum=0}var ah=this;var Q=W.datatype;if(W.datatype==="csv"||W.datatype==="tab"||W.datatype==="tsv"||W.datatype=="text"){Q="text"}var N=K.async!=undefined?K.async:true;if(W.async!=undefined){N=W.async}switch(Q){case"local":case"array":case"observablearray":case"observableArray":default:if(W.localdata==undefined&&W.length){W.localdata=new Array();for(var Z=0;Z<W.length;Z++){W.localdata[W.localdata.length]=W[Z];W[Z].uid=Z}}if(W.beforeprocessing&&i.isFunction(W.beforeprocessing)){W.beforeprocessing(W.localdata)}var M=W.localdata.length;this.totalrecords=this.virtualmode?(W.totalrecords||M):M;if(this.unboundmode){this.totalrecords=this.unboundmode?(W.totalrecords||M):M;var ad=W.datafields?W.datafields.length:0;if(ad>0){for(var Z=0;Z<this.totalrecords;Z++){var I={};for(var Y=0;Y<ad;Y++){I[W.datafields[Y].name]=""}I.uid=Z;W.localdata[W.localdata.length]=I}}}if(this.totalrecords==undefined){this.totalrecords=0}var ad=W.datafields?W.datafields.length:0;var H=function(ao,aq){var ap={};for(var am=0;am<aq;am++){var al=W.datafields?W.datafields[am]:{};var ar="";if(undefined==al||al==null){continue}if(al.map){if(i.isFunction(al.map)){ar=al.map(ao)}else{var aj=al.map.split(ah.mapChar);if(aj.length>0){var an=ao;for(var ak=0;ak<aj.length;ak++){if(!an){continue}an=an[aj[ak]]}ar=an}else{ar=ao[al.map]}}if(ar!=undefined&&ar!=null){ar=ar.toString()}else{if(ar==undefined&&ar!=null){ar=""}}}var at=false;if(ar==""){at=true;ar=ao[al.name];if(ar!=undefined&&ar!=null){if(W._localdata&&ar.subscribe){ar=ar()}else{if(al.type!="array"){if(al.type==="date"){if(ar&&ar instanceof Date){ar=ar}}else{ar=ar.toString()}}}}}if(ar=="[object Object]"&&al.map&&at){ar=""}ar=ah.getvaluebytype(ar,al);if(al.displayname!=undefined){ap[al.displayname]=ar}else{ap[al.name]=ar}}return ap};if(W._localdata){this._changedrecords=[];this.records=new Array();var ag=W._localdata();i.each(ag,function(am,ap){if(typeof ap==="string"){ah.records.push(ap)}else{var ak={};var ao=0;var an=this;i.each(this,function(ay,aD){var at=null;var aE="string";var aC=ay;if(ad>0){var aG=false;var aB=false;for(var ax=0;ax<ad;ax++){var aw=W.datafields[ax];if(aw!=undefined&&(aw.name==ay)){aG=true;at=aw.map;aE=aw.type;aC=aw.name;break}else{if(aw!=undefined&&aw.map&&(aw.map.indexOf(ay)>=0)){aG=true;at=aw.map;aE=aw.type;aC=aw.name;aB=true;var aF=an[ay];if(at!=null){var ar=at.split(ah.mapChar);if(ar.length>0){var az=an;for(var au=0;au<ar.length;au++){az=az[ar[au]]}aF=az}else{aF=an[at]}}if(aE!="string"){aF=ah.getvaluebytype(aF,{type:aE})}ak[aC]=aF;if(ak[aC]!=undefined){ao+=ak[aC].toString().length+ak[aC].toString().substr(0,1)}}}}if(!aG){return true}if(aB){return true}}var av=i.isFunction(an[ay]);if(av){var aF=an[ay]();if(aE!="string"){aF=ah.getvaluebytype(aF,{type:aE})}ak[ay]=aF;if(an[ay].subscribe){var aA=am;ah.koSubscriptions[ah.koSubscriptions.length]=an[ay].subscribe(function(aI){var aH=aA;ak[ay]=aI;var aJ={index:aH,oldrecord:ak,record:ak};ah._changedrecords.push(aJ);if(ah.isUpdating){return}ah.callBindingUpdate("update");ah._changedrecords=[];return false})}}else{var aF=an[ay];if(at!=null){var ar=at.split(ah.mapChar);if(ar.length>0){var az=an;for(var au=0;au<ar.length;au++){az=az[ar[au]]}aF=az}else{aF=an[at]}}if(aE!="string"){aF=ah.getvaluebytype(aF,{type:aE})}ak[aC]=aF;if(ak[aC]!=undefined){ao+=ak[aC].toString().length+ak[aC].toString().substr(0,1)}}});var al=ah.getid(W.id,an,am);ak.uid=al;ah.records.push(ak);ak._koindex=ao;if(ah._oldrecords){var aj=ah.records.length-1;if(aa=="update"){if(ah._oldrecords[aj]._koindex!=ao){var aq={index:aj,oldrecord:ah._oldrecords[aj],record:ak};ah._changedrecords.push(aq)}}}}});if(aa=="add"){var M=ah.records.length;for(var Z=0;Z<M;Z++){var I=ah.records[Z];var L=false;for(var U=0;U<ah._oldrecords.length;U++){if(ah._oldrecords[U]._koindex===I._koindex){L=true;break}}if(!L){ah._changedrecords.push({index:Z,oldrecord:null,record:I,position:(Z!=0?"last":"first")})}}}else{if(aa=="remove"){var M=ah._oldrecords.length;for(var Z=0;Z<M;Z++){var P=ah._oldrecords[Z];if(!ah.records[Z]){ah._changedrecords.push({index:Z,oldrecord:P,record:null})}else{if(ah.records[Z]._koindex!=P._koindex){ah._changedrecords.push({index:Z,oldrecord:P,record:null})}}}}}}else{if(!i.isArray(W.localdata)){this.records=new Array();var V=0;var T=new Array();i.each(W.localdata,function(al){var ak=ah.getid(W.id,this,al);if(ad==0){if(!(typeof this==="string"||this instanceof String)){for(var an in this){V++;var ao=i.type(this[an]);T.push({name:an,type:ao})}ad=V;W.datafields=T;W.generatedfields=T}}if(ad>0){var aj=this;var am=H(aj,ad);am.uid=ak;ah.records[ah.records.length]=am}else{this.uid=ak;ah.records[ah.records.length]=this}})}else{if(ad==0){var V=0;var T=new Array();i.each(W.localdata,function(al,an){var aj=new Object(this);if(typeof an==="string"){ah.records=W.localdata;return false}else{var ak=ah.getid(W.id,aj,al);if(typeof(ak)==="object"){ak=al}aj.uid=ak;if(al==0){for(var ao in this){V++;var ap=i.type(this[ao]);T.push({name:ao,type:ap})}ad=V;W.datafields=T;W.generatedfields=T}if(ad>0){var am=H(aj,ad);am.uid=ak;ah.records[ah.records.length]=am}else{ah.records[ah.records.length]=aj}}})}else{i.each(W.localdata,function(al){var aj=this;var am=H(aj,ad);var ak=ah.getid(W.id,am,al);if(typeof(ak)==="object"){ak=al}var aj=new Object(am);aj.uid=ak;ah.records[ah.records.length]=aj})}}}this.originaldata=W.localdata;this.cachedrecords=this.records;this.addForeignValues(W);if(K.uniqueDataFields){var S=this.getUniqueRecords(this.records,K.uniqueDataFields);this.records=S;this.cachedrecords=S}if(K.beforeLoadComplete){var ae=K.beforeLoadComplete(ah.records,this.originaldata);if(ae!=undefined){ah.records=ae;ah.cachedrecords=ae}}if(K.autoSort&&K.autoSortField){var O=Object.prototype.toString;Object.prototype.toString=(typeof field=="function")?field:function(){return this[K.autoSortField]};ah.records.sort(function(ak,aj){if(ak===undefined){ak=null}if(aj===undefined){aj=null}if(ak===null&&aj===null){return 0}if(ak===null&&aj!==null){return 1}if(ak!==null&&aj===null){return -1}ak=ak.toString();aj=aj.toString();if(ak===null&&aj===null){return 0}if(ak===null&&aj!==null){return 1}if(ak!==null&&aj===null){return -1}if(i.jqx.dataFormat.isNumber(ak)&&i.jqx.dataFormat.isNumber(aj)){if(ak<aj){return -1}if(ak>aj){return 1}return 0}else{if(i.jqx.dataFormat.isDate(ak)&&i.jqx.dataFormat.isDate(aj)){if(ak<aj){return -1}if(ak>aj){return 1}return 0}else{if(!i.jqx.dataFormat.isNumber(ak)&&!i.jqx.dataFormat.isNumber(aj)){ak=String(ak).toLowerCase();aj=String(aj).toLowerCase()}}}try{if(ak<aj){return -1}if(ak>aj){return 1}}catch(al){var am=al}return 0});Object.prototype.toString=O}ah.loadedData=W.localdata;ah.buildHierarchy();if(i.isFunction(K.loadComplete)){K.loadComplete(W.localdata,ah.records)}break;case"json":case"jsonp":case"xml":case"xhtml":case"script":case"text":case"ics":if(W.localdata!=null&&!W.url){if(i.isFunction(W.beforeprocessing)){W.beforeprocessing(W.localdata)}if(W.datatype==="xml"){ah.loadxml(W.localdata,W.localdata,W)}else{if(Q==="text"){ah.loadtext(W.localdata,W)}else{if(Q==="ics"){ah.loadics(W.localdata,W)}else{ah.loadjson(W.localdata,W.localdata,W)}}}ah.addForeignValues(W);if(K.uniqueDataFields){var S=ah.getUniqueRecords(ah.records,K.uniqueDataFields);ah.records=S;ah.cachedrecords=S}if(K.beforeLoadComplete){var ae=K.beforeLoadComplete(ah.records,this.originaldata);if(ae!=undefined){ah.records=ae;ah.cachedrecords=ae}}ah.loadedData=W.localdata;ah.buildHierarchy.call(ah);if(i.isFunction(K.loadComplete)){K.loadComplete(W.localdata,ah.records)}ah.callBindingUpdate(aa);return}var af=K.data!=undefined?K.data:{};if(W.processdata){W.processdata(af)}if(i.isFunction(K.processData)){K.processData(af)}if(i.isFunction(K.formatData)){var e=K.formatData(af);if(e!=undefined){af=e}}var ab="application/x-www-form-urlencoded";if(K.contentType){ab=K.contentType}var J="GET";if(W.type){J=W.type}if(K.type){J=K.type}var X=Q;if(Q=="ics"){X="text"}if(W.url&&W.url.length>0){if(i.isFunction(K.loadServerData)){ah._requestData(af,W,K)}else{this.xhr=i.jqx.data.ajax({dataType:X,cache:this.cache,type:J,url:W.url,async:N,timeout:W.timeout,contentType:ab,data:af,success:function(am,aj,ap){if(i.isFunction(W.beforeprocessing)){var ao=W.beforeprocessing(am,aj,ap);if(ao!=undefined){am=ao}}if(i.isFunction(K.downloadComplete)){var ao=K.downloadComplete(am,aj,ap);if(ao!=undefined){am=ao}}if(am==null){ah.records=new Array();ah.cachedrecords=new Array();ah.originaldata=new Array();ah.callDownloadComplete();if(i.isFunction(K.loadComplete)){K.loadComplete(new Array())}return}var ak=am;if(am.records){ak=am.records}if(am.totalrecords!=undefined){W.totalrecords=am.totalrecords}else{if(am.totalRecords!=undefined){W.totalrecords=am.totalRecords}}if(W.datatype==="xml"){ah.loadxml(null,ak,W)}else{if(Q==="text"){ah.loadtext(ak,W)}else{if(Q==="ics"){ah.loadics(ak,W)}else{ah.loadjson(null,ak,W)}}}ah.addForeignValues(W);if(K.uniqueDataFields){var al=ah.getUniqueRecords(ah.records,K.uniqueDataFields);ah.records=al;ah.cachedrecords=al}if(K.beforeLoadComplete){var an=K.beforeLoadComplete(ah.records,am);if(an!=undefined){ah.records=an;ah.cachedrecords=an}}ah.loadedData=am;ah.buildHierarchy.call(ah);ah.callDownloadComplete();if(i.isFunction(K.loadComplete)){K.loadComplete(am,aj,ap,ah.records)}},error:function(al,aj,ak){if(i.isFunction(W.loaderror)){W.loaderror(al,aj,ak)}if(i.isFunction(K.loadError)){K.loadError(al,aj,ak)}al=null;ah.callDownloadComplete()},beforeSend:function(ak,aj){if(i.isFunction(K.beforeSend)){K.beforeSend(ak,aj)}if(i.isFunction(W.beforesend)){W.beforesend(ak,aj)}}})}}else{ah.buildHierarchy(new Array());ah.callDownloadComplete();if(i.isFunction(K.loadComplete)){if(!ai){var ai={}}K.loadComplete(ai)}}break}this.callBindingUpdate(aa)},buildHierarchy:function(K){var e=this._source;var P=new Array();if(!e.datafields){return}if(e.hierarchy&&!e.hierarchy.reservedNames){e.hierarchy.reservedNames={leaf:"leaf",parent:"parent",expanded:"expanded",checked:"checked",selected:"selected",level:"level",icon:"icon",data:"data"}}else{if(e.hierarchy){var O=e.hierarchy.reservedNames;if(!O.leaf){O.leaf="leaf"}if(!O.parent){O.parent="parent"}if(!O.expanded){O.expanded="expanded"}if(!O.checked){O.checked="checked"}if(!O.selected){O.selected="selected"}if(!O.level){O.level="level"}if(!O.data){O.data="data"}}}if(!e.hierarchy){return}var N=this;var O=e.hierarchy.reservedNames;if(e.hierarchy.root){if(e.dataType=="xml"){var P=this.getRecordsHierarchy("uid","parentuid","records",null,K);this.hierarchy=P;return P}else{this.hierarchy=this.records;var R=e.hierarchy.root;for(var L=0;L<this.records.length;L++){var M=this.records[L];if(!M){continue}var H=function(S){if(e.hierarchy.record){S.records=S[R][e.hierarchy.record]}else{var U=R.split(N.mapChar);var T=null;if(U.length>1){var W=S;for(var V=0;V<U.length;V++){if(W!=undefined){W=W[U[V]]}}T=W}else{T=S[R]}S.records=T}if(S.records==null||(S.records&&S.records.length==0)){S[O.leaf]=true}};H(M);M[O.level]=0;var I=this.getid(e.id,M,L);M.uid=I;M[O.parent]=null;M[O.data]=M;if(M[O.expanded]===undefined){M[O.expanded]=false}var Q=function(W,U){if(!U){W.records=new Array();return}for(var V=0;V<U.length;V++){var S=U[V];if(!S){continue}H(S);S[O.level]=W[O.level]+1;S[O.parent]=W;S[O.data]=S;var T=N.getid(e.id,S,V);if(T==V&&e.id==null){S.uid=W.uid+"_"+T}else{S.uid=T}if(S[O.expanded]===undefined){S[O.expanded]=false}Q(S,S.records)}};Q(M,M.records)}}return this.hierarchy}if(e.hierarchy.keyDataField&&e.hierarchy.parentDataField){var P=this.getRecordsHierarchy(e.hierarchy.keyDataField.name,e.hierarchy.parentDataField.name,"records",null,K);this.hierarchy=P;return P}if(e.hierarchy.groupingDataFields){var J=new Array();for(var L=0;L<e.hierarchy.groupingDataFields.length;L++){J.push(e.hierarchy.groupingDataFields[L].name)}var P=this.getGroupedRecords(J,"records","label",null,"data",null,"parent",K);this.hierarchy=P;return P}},addRecord:function(H,e,M,I){var J=this;var N=function(){return{leaf:"leaf",parent:"parent",expanded:"expanded",checked:"checked",selected:"selected",level:"level",icon:"icon",data:"data"}};if(H!=undefined){if(M!=undefined){if(this.hierarchy.length>0){var K=function(O){if(O){for(var P=0;P<O.length;P++){var Q=O[P];if(Q.uid==M){var R=(J._source&&J._source.hierarchy)?J._source.hierarchy.reservedNames:null;if(R==null){R=N()}H[R.parent]=Q;H[R.level]=Q[R.level]+1;if(!Q.records){Q.records=new Array();Q[R.leaf]=false}else{Q[R.leaf]=false}if(e=="last"){Q.records.push(H)}else{if(typeof e==="number"&&isFinite(e)){Q.records.splice(e,0,H)}else{Q.records.splice(0,0,H)}}return true}if(Q.records){K(Q.records)}}}};K(this.hierarchy)}}else{if(this.hierarchy&&this.hierarchy.length>=0&&(this._source.hierarchy||I)){var L=(J._source&&J._source.hierarchy)?J._source.hierarchy.reservedNames:null;if(L==null){L=N()}H[L.level]=0;if(e=="last"){this.hierarchy.push(H)}else{if(typeof e==="number"&&isFinite(e)){this.hierarchy.splice(e,0,H)}else{this.hierarchy.splice(0,0,H)}}}else{if(e=="last"){this.records.push(H)}else{if(typeof e==="number"&&isFinite(e)){this.records.splice(e,0,H)}else{this.records.splice(0,0,H)}}}return true}}return false},deleteRecord:function(H){var J=this;if(this.hierarchy.length>0){var K=function(L){if(L){for(var O=0;O<L.length;O++){var P=L[O];if(P.uid==H){L.splice(O,1);if(J.recordids[H]){delete J.recordids[H]}var N=function(T){for(var Q=0;Q<T.length;Q++){var S=T[Q].uid;for(var R=0;R<J.records.length;R++){var U=J.records[R];if(U.uid==S){J.records.splice(R,1);break}}if(T[Q].records){N(T[Q].records)}}};if(P.records){N(P.records)}for(var M=0;M<J.records.length;M++){var P=J.records[M];if(P.uid==H){J.records.splice(M,1);break}}return true}if(P.records){K(P.records)}}}};K(this.hierarchy)}else{for(var e=0;e<this.records.length;e++){var I=this.records[e];if(I.uid==H){this.records.splice(e,1);return true}}}return false},addForeignValues:function(H){var Q=this;var V=H.datafields?H.datafields.length:0;for(var N=0;N<V;N++){var L=H.datafields[N];if(L!=undefined){if(L.values!=undefined){if(L.value==undefined){L.value=L.name}if(L.values.value==undefined){L.values.value=L.value}var T=new Array();var K,M;if(Q.pageable&&Q.virtualmode){K=Q.pagenum*Q.pagesize;M=K+Q.pagesize;if(M>Q.totalrecords){M=Q.totalrecords}}else{if(Q.virtualmode){K=H.recordstartindex;M=H.recordendindex;if(M>Q.totalrecords){M=Q.totalrecords}}else{K=0;M=Q.records.length}}for(var O=K;O<M;O++){var P=Q.records[O];var I=L.name;var U=P[L.value];if(T[U]!=undefined){P[I]=T[U]}else{for(var J=0;J<L.values.source.length;J++){var S=L.values.source[J];var e=S[L.values.value];if(e==undefined){e=S.uid}if(e==U){var R=S[L.values.name];P[I]=R;T[U]=R;break}}}}}else{if(L.value!=undefined){for(var O=0;O<Q.records.length;O++){var P=Q.records[O];P[L.name]=P[L.value]}}}}}},abort:function(){if(this.xhr&&this.xhr.readyState!=4){this.xhr.abort();this.callDownloadComplete()}},_requestData:function(H,J,e){var I=this;var K=function(P){if(P.totalrecords){J.totalrecords=P.totalrecords;I.totalrecords=P.totalrecords}if(P.records){I.records=P.records;I.cachedrecords=P.records}I.addForeignValues(J);if(e.uniqueDataFields){var N=I.getUniqueRecords(I.records,e.uniqueDataFields);I.records=N;I.cachedrecords=N}if(e.beforeLoadComplete){var O=e.beforeLoadComplete(I.records,P);if(O!=undefined){I.records=O;I.cachedrecords=O}}for(var M=0;M<I.records.length;M++){var L=I.records[M];if(undefined==L){continue}if(undefined==L.uid){L.uid=I.getid(J.id,L,M)}}I.buildHierarchy.call(I);if(i.isFunction(e.loadComplete)){e.loadComplete(P)}I.callDownloadComplete()};e.loadServerData(H,J,K)},getUniqueRecords:function(I,L){if(I&&L){var e=I.length;var Q=L.length;var N=new Array();var O=new Array();for(var P=0;P<e;P++){var M=I[P];var J="";if(M==undefined){continue}for(var K=0;K<Q;K++){var H=L[K];J+=M[H]+"_"}if(!O[J]){N[N.length]=M}O[J]=true}}return N},getAggregatedData:function(S,P,M,H){var L=M;if(!L){L=this.records}var Q={};var K=new Array();var J=L.length;if(J==0){return}if(J==undefined){return}for(var O=0;O<J;O++){var R=L[O];for(var N=0;N<S.length;N++){var I=S[N];var U=R[I.name];if(I.aggregates){Q[I.name]=Q[I.name]||{};K[I.name]=K[I.name]||0;K[I.name]++;var e=function(W){for(var Y in W){var X=Q[I.name][Y];if(X==null){Q[I.name][Y]=0;X=0}if(i.isFunction(W[Y])){X=W[Y](X,U,I.name,R,H)}Q[I.name][Y]=X}};var T=parseFloat(U);if(isNaN(T)){T=false}else{T=true}if(T){U=parseFloat(U)}if(typeof U==="number"&&isFinite(U)){i.each(I.aggregates,function(){var W=Q[I.name][this];if(W==null){W=0;if(this=="min"){W=9999999999999}if(this=="max"){W=-9999999999999}}if(this=="sum"||this=="avg"||this=="stdev"||this=="stdevp"||this=="var"||this=="varp"){W+=parseFloat(U)}else{if(this=="product"){if(O==0){W=parseFloat(U)}else{W*=parseFloat(U)}}else{if(this=="min"){W=Math.min(W,parseFloat(U))}else{if(this=="max"){W=Math.max(W,parseFloat(U))}else{if(this=="count"){W++}else{if(typeof(this)=="object"){e(this);return}}}}}}Q[I.name][this]=W})}else{i.each(I.aggregates,function(){if(this=="min"||this=="max"||this=="count"||this=="product"||this=="sum"||this=="avg"||this=="stdev"||this=="stdevp"||this=="var"||this=="varp"){if(U===null){return true}var W=Q[I.name][this];if(W==null){W=0}Q[I.name][this]=W;return true}if(typeof(this)=="object"){e(this)}})}}}}for(var N=0;N<S.length;N++){var I=S[N];if(!Q[I.name]){Q[I.name]={};i.each(I.aggregates,function(W){Q[I.name][this]=0})}if(Q[I.name]["avg"]!=undefined){var U=Q[I.name]["avg"];var V=K[I.name];if(V===0||V==undefined){Q[I.name]["avg"]=0}else{Q[I.name]["avg"]=U/V}}else{if(Q[I.name]["count"]!=undefined){Q[I.name]["count"]=J}}if(Q[I.name]["stdev"]||Q[I.name]["stdevp"]||Q[I.name]["var"]||Q[I.name]["varp"]){i.each(I.aggregates,function(ac){if(this=="stdev"||this=="var"||this=="varp"||this=="stdevp"){var ad=Q[I.name][this];var ab=J;var W=(ad/J);var Y=0;for(var Z=0;Z<J;Z++){var aa=L[Z];var ae=aa[I.name];Y+=(ae-W)*(ae-W)}var X=(this=="stdevp"||this=="varp")?ab:ab-1;if(X==0){X=1}if(this=="var"||this=="varp"){Q[I.name][this]=Y/X}else{if(this=="stdevp"||this=="stdev"){Q[I.name][this]=Math.sqrt(Y/X)}}}})}if(I.formatStrings){i.each(I.aggregates,function(X){var W=I.formatStrings[X];if(W){if(this=="min"||this=="max"||this=="count"||this=="product"||this=="sum"||this=="avg"||this=="stdev"||this=="stdevp"||this=="var"||this=="varp"){var Y=Q[I.name][this];Q[I.name][this]=i.jqx.dataFormat.formatnumber(Y,W,P)}else{if(typeof this=="object"){for(var Z in this){var Y=Q[I.name][Z];Q[I.name][Z]=i.jqx.dataFormat.formatnumber(Y,W,P)}}}}})}}return Q},bindDownloadComplete:function(H,e){this._downloadComplete[this._downloadComplete.length]={id:H,func:e}},unbindDownloadComplete:function(H){for(var e=0;e<this._downloadComplete.length;e++){if(this._downloadComplete[e].id==H){this._downloadComplete[e].func=null;this._downloadComplete.splice(e,1);break}}},callDownloadComplete:function(){for(var e=0;e<this._downloadComplete.length;e++){var H=this._downloadComplete[e];if(H.func!=null){H.func()}}},setSource:function(e){this._source=e},generatekey:function(){var e=function(){return(((1+Math.random())*65536)|0).toString(16).substring(1)};return(e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e())},getGroupedRecords:function(ak,an,W,af,al,ac,ae,ao,K){var ah=0;var aa=this;if(!K){K=0}var I=new Array();for(var N=0;N<ak.length;N++){I[N]=aa.generatekey()}if(!an){an="items"}if(!W){W="group"}if(!al){al="record"}if(!ae){ae="parentItem"}if(undefined===ac){ac="value"}var S=new Array();var L=0;var J=new Array();var R=ak.length;var am=new Array();if(!ao){var ao=this.records}var P=ao.length;var ag=function(ap){var aq=ap;if(af){i.each(af,function(){if(this.name&&this.map){aq[this.map]=aq[this.name]}})}return aq};for(var V=0;V<P;V++){var aj=ag(ao[V]);var ab=aj[aa.uniqueId];var H=new Array();var X=0;for(N=0;N<R;N++){var Q=ak[N];var ad=aj[Q];if(null==ad){continue}H[X++]={value:ad,hash:I[N]}}if(H.length!=R){break}var Y=null;var T="";var e=-1;for(var Z=0;Z<H.length;Z++){e++;var ai=H[Z].value;var M=H[Z].hash;T=T+"_"+M+"_"+ai;if(J[T]!=undefined&&J[T]!=null){Y=J[T];continue}if(Y==null){Y={level:0};Y[ae]=null;Y[W]=ai;Y[al]=aj;if(aj.expanded!==undefined){Y.expanded=aj.expanded}else{Y.expanded=false}if(ac){Y[ac]=aj[ac]}Y[an]=new Array();var O=S.length+K;if(!this._source.id||typeof aj.uid==="number"||isFinite(aj.uid)){O="Row"+O}Y.uid=O;S[L++]=Y}else{var U={level:Y.level+1};U[ae]=Y;U[W]=ai;U[an]=new Array();U[al]=aj;if(aj.expanded!==undefined){U.expanded=aj.expanded}else{U.expanded=false}if(ac){U[ac]=aj[ac]}U.uid=Y.uid+"_"+Y[an].length;Y[an][Y[an].length]=U;Y=U}J[T]=Y}if(aj){aj.leaf=true}if(Y!=null){if(this._source.id==null){if(undefined==aj.uid){aj.uid=Y.uid+"_"+Y[an].length}else{if(aj.uid.toString().indexOf(Y.uid)==-1){aj.uid=Y.uid+"_"+aj.uid}}}aj[ae]=Y;aj.level=Y.level+1;Y[an][Y[an].length]=aj}else{if(undefined==aj.uid){aj.uid=this.generatekey()}}}return S},getRecordsHierarchy:function(L,J,aa,U,H){var e=new Array();var I=this.records;if(H){I=H}if(this.records.length==0){return null}var Y=aa!=null?aa:"items";var R=[];var ab=I;var O=ab.length;var P=(this._source&&this._source.hierarchy)?this._source.hierarchy.reservedNames:null;var W=function(ac){var ad=ac;if(U){i.each(U,function(){if(this.name&&this.map){ad[this.map]=ad[this.name]}})}return ad};for(var X=0;X<O;X++){var Z=i.extend({},ab[X]);var T=Z[J];var S=Z[L];R[S]={parentid:T,item:Z}}for(var X=0;X<O;X++){var Z=i.extend({},ab[X]);var T=Z[J];var S=Z[L];if(R[T]!=undefined){var Z={parentid:T,item:R[S].item};var Q=R[T].item;if(!Q[Y]){Q[Y]=[]}var M=Q[Y].length;var K=Z.item;if(!P){if(K.parent==undefined){K.parent=Q}}else{if(K[P.parent]==undefined){K[P.parent]=Q}}var N=W(K);Q[Y][M]=N;R[T].item=Q;R[S]=Z}else{var K=R[S].item;if(!P){if(K.parent==undefined){K.parent=null}}else{if(K[P.parent]==undefined){K[P.parent]=null}}var N=W(K);if(!P){N.level=0}else{N[P.level]=0}e[e.length]=N}}if(e.length!=0){var V=function(af,ac){for(var ad=0;ad<ac.length;ad++){if(!P){ac[ad].level=af}else{ac[ad][P.level]=af}var ae=ac[ad][Y];if(ae){if(ae.length>0){V(af+1,ae)}else{if(!P){ac[ad].leaf=true}else{ac[ad][P.leaf]=true}}}else{if(!P){ac[ad].leaf=true}else{ac[ad][P.leaf]=true}}}};V(0,e)}return e},bindBindingUpdate:function(H,e){this._bindingUpdate[this._bindingUpdate.length]={id:H,func:e}},unbindBindingUpdate:function(H){for(var e=0;e<this._bindingUpdate.length;e++){if(this._bindingUpdate[e].id==H){this._bindingUpdate[e].func=null;this._bindingUpdate.splice(e,1);break}}},callBindingUpdate:function(e){for(var I=0;I<this._bindingUpdate.length;I++){var H=this._bindingUpdate[I];if(H.func!=null){H.func(e)}}},getid:function(N,H,K){if(N!=null&&N.name!=undefined){if(N.name){var e=i(H).attr(N.name);if(e!=null&&e.toString().length>0){return e}else{if(N.map){try{var e=i(H).attr(N.map);if(e!=null&&e.toString().length>0){return e}else{if(i(N.map,H).length>0){return i(N.map,H).text()}else{if(i(N.name,H).length>0){return i(N.name,H).text()}}}}catch(J){return K}}}return}}if(i(N,H).length>0){return i(N,H).text()}if(N){if(N.toString().length>0){var e=i(H).attr(N);if(e!=null&&e.toString().length>0){return i.trim(e).split(" ").join("").replace(/([ #;?%&,.+*~\':"!^$[\]()=>|\/\\@])/g,"")}else{var I=N.split(this.mapChar);if(I.length>1){var M=H;for(var L=0;L<I.length;L++){if(M!=undefined){M=M[I[L]]}}if(M!=undefined){return M}}else{if(H[N]!=undefined){return H[N]}}}}}return K},loadjson:function(af,ag,S){if(typeof(af)=="string"){af=i.parseJSON(af)}if(S.root==undefined){S.root=""}if(S.record==undefined){S.record=""}var af=af||ag;if(!af){af=[]}var ae=this;if(S.root!=""){var K=S.root.split(ae.mapChar);if(K.length>1){var ab=af;for(var R=0;R<K.length;R++){if(ab!=undefined){ab=ab[K[R]]}}af=ab}else{if(af[S.root]!==undefined){af=af[S.root]}else{if(af[0]&&af[0][S.root]!==undefined){af=af[0][S.root]}else{i.each(af,function(ai){var ah=this;if(this==S.root){af=this;return false}else{if(this[S.root]!=undefined){af=this[S.root]}}})}}if(!af){var K=S.root.split(ae.mapChar);if(K.length>0){var ab=af;for(var R=0;R<K.length;R++){if(ab!=undefined){ab=ab[K[R]]}}af=ab}}}}else{if(!af.length){for(var O in af){if(i.isArray(af[O])){af=af[O];break}}}}if(af!=null&&af.length==undefined){af=i.makeArray(af)}if(af==null||af==undefined||af=="undefined"||af.length==undefined){throw new Error("jqxDataAdapter: JSON Parse error! Invalid JSON. Please, check your JSON or your jqxDataAdapter initialization!");return}if(af.length==0){this.totalrecords=0;return}var J=af.length;this.totalrecords=this.virtualmode?(S.totalrecords||J):J;this.records=new Array();this.originaldata=new Array();var X=this.records;var U=!this.pageable?S.recordstartindex:this.pagesize*this.pagenum;this.recordids=new Array();if(S.loadallrecords){U=0;J=this.totalrecords}var Q=0;if(this.virtualmode){U=!this.pageable?S.recordstartindex:this.pagesize*this.pagenum;Q=U;U=0;J=this.totalrecords}var Z=S.datafields?S.datafields.length:0;if(Z==0){var e=af[0];var ac=new Array();for(var O in e){var H=O;ac[ac.length]={name:H}}S.datafields=ac;S.generatedfields=S.datafields;Z=ac.length}var M=U;for(var W=U;W<J;W++){var I=af[W];if(I==undefined){break}if(S.record&&S.record!=""){I=I[S.record];if(I==undefined){continue}}var ad=this.getid(S.id,I,W);if(typeof(ad)==="object"){ad=W}if(!this.recordids[ad]){this.recordids[ad]=I;var L={};for(var V=0;V<Z;V++){var N=S.datafields[V];var T="";if(undefined==N||N==null){continue}if(N.map){if(i.isFunction(N.map)){T=N.map(I)}else{var K=N.map.split(ae.mapChar);if(K.length>0){var aa=I;for(var R=0;R<K.length;R++){if(aa!=undefined){aa=aa[K[R]]}}T=aa}else{T=I[N.map]}}if(T!=undefined&&T!=null){T=this.getvaluebytype(T,N)}else{if(T==undefined&&T!=null){T=""}}}if(T==""&&!N.map){T=I[N.name];if(T==undefined&&T!=null){T=""}if(N.value!=undefined){if(T!=undefined){var Y=T[N.value];if(Y!=undefined){T=Y}}}}T=this.getvaluebytype(T,N);if(N.displayname!=undefined){L[N.displayname]=T}else{L[N.name]=T}if(N.type==="array"){var P=function(ak){if(!ak){return}for(var aq=0;aq<ak.length;aq++){var an=ak[aq];if(!an){continue}for(var ao=0;ao<Z;ao++){var aj=S.datafields[ao];var ap="";if(undefined==aj||aj==null){continue}if(aj.map){if(i.isFunction(aj.map)){ap=aj.map(an)}else{var ah=aj.map.split(ae.mapChar);if(ah.length>0){var am=an;for(var ai=0;ai<ah.length;ai++){if(am!=undefined){am=am[ah[ai]]}}ap=am}else{ap=an[aj.map]}}if(ap!=undefined&&ap!=null){ap=this.getvaluebytype(ap,aj)}else{if(ap==undefined&&ap!=null){ap=""}}}if(ap==""&&!aj.map){ap=an[aj.name];if(ap==undefined&&ap!=null){ap=""}if(aj.value!=undefined){if(ap!=undefined){var al=ap[aj.value];if(al!=undefined){ap=al}}}}ap=this.getvaluebytype(ap,aj);if(aj.displayname!=undefined){an[aj.displayname]=ap}else{an[aj.name]=ap}if(aj.type==="array"){P.call(this,ap)}}}};P.call(this,T)}}if(S.recordendindex<=0||U<S.recordendindex){X[Q+M]=new Object(L);X[Q+M].uid=ad;this.originaldata[Q+M]=new Object(X[W]);M++}}}this.records=X;this.cachedrecords=this.records},loadxml:function(K,aj,V){if(typeof(K)=="string"){K=aj=i(i.parseXML(K));K=null}if(V.root==undefined){V.root=""}if(V.record==undefined){V.record=""}var K;if(i.jqx.browser.msie&&aj){if(aj.xml!=undefined){K=i(V.root+" "+V.record,i.parseXML(aj.xml))}else{K=K||i(V.root+" "+V.record,aj)}}else{K=K||i(V.root+" "+V.record,aj)}if(!K){K=[]}var J=K.length;if(K.length==0){return}this.totalrecords=this.virtualmode?(V.totalrecords||J):J;this.records=new Array();this.originaldata=new Array();var ab=this.records;var Y=!this.pageable?V.recordstartindex:this.pagesize*this.pagenum;this.recordids=new Array();if(V.loadallrecords){Y=0;J=this.totalrecords}var T=0;if(this.virtualmode){Y=!this.pageable?V.recordstartindex:this.pagesize*this.pagenum;T=Y;Y=0;J=this.totalrecords}var ad=V.datafields?V.datafields.length:0;if(ad==0){var e=K[0];var ag=new Array();for(var S in e){var H=S;ag[ag.length]={name:H}}V.datafields=ag;V.generatedfields=V.datafields;ad=ag.length}var U=Y;var af=false;for(var aa=Y;aa<J;aa++){var I=K[aa];if(I==undefined){break}var ai=this.getid(V.id,I,aa);if(!this.recordids[ai]){this.recordids[ai]=I;var L={};var P=false;if(V.hierarchy&&V.hierarchy.root){P=true}for(var Z=0;Z<ad;Z++){var Q=V.datafields[Z];var X="";if(undefined==Q||Q==null){continue}if(Q.map){if(i.isFunction(Q.map)){X=Q.map(I)}else{var M=Q.map.indexOf("[");if(M<0){X=i(Q.map,I);if(X.length==1){X=X.text()}else{af=true;var ah=new Array();for(var ac=0;ac<X.length;ac++){ah.push(i(X[ac]).text())}X=ah;if(P&&ah.length>0){X=ah[0]}}}else{var ae=Q.map.substring(0,M-1);var O=Q.map.indexOf("]");var R=Q.map.substring(M+1,O);X=i(ae,I).attr(R);if(X==undefined){X=i(I).attr(R)}if(X==undefined){X=""}}if(X==""){X=i(I).attr(Q.map);if(X==undefined){X=""}}}}if(X==""){X=i(Q.name,I);if(X.length==1){X=X.text()}else{var ah=new Array();for(var ac=0;ac<X.length;ac++){ah.push(i(X[ac]).text())}X=ah;if(P&&ah.length>0){X=ah[0]}}if(X==""){X=i(I).attr(Q.name);if(X==undefined){X=""}}if(X==""){if(I.nodeName&&I.nodeName==Q.name&&I.firstChild){X=i(I.firstChild).text()}}}var W=X;X=this.getvaluebytype(X,Q);if(Q.displayname!=undefined){L[Q.displayname]=X}else{L[Q.name]=X}}if(V.recordendindex<=0||Y<V.recordendindex){ab[T+U]=i.extend({},L);ab[T+U].uid=ai;this.originaldata[T+U]=i.extend({},ab[aa]);U++}}}if(V.hierarchy&&V.hierarchy.root){for(var aa=Y;aa<J;aa++){var I=K[aa];var N=ab[aa];if(i(I).parent().length>0){var ai=this.getid(V.id,i(I).parents(V.hierarchy.record+":first"));N.parentuid=ai}else{N.parentuid=null}}}this.records=ab;this.cachedrecords=this.records},loadics:function(N,H){if(N==null){return}var S=H.rowDelimiter||this.rowDelimiter||"\n";var R=N.split(S);var K=R.length;var Q=N.split("\r");if(K==1&&Q.length>1){R=Q;K=R.length}this.records=new Array();this.originaldata=new Array();var L=this.records;this.recordids=new Array();var I=0;var P=function(V){var T=/^(\d{4})(\d{2})(\d{2})(T(\d{2})(\d{2})(\d{2})Z)?$/;var U=T.exec(V);if(!U){throw new Error("Invalid UNTIL value: "+V)}return new Date(Date.UTC(U[1],U[2]-1,U[3],U[5]||0,U[6]||0,U[7]||0))};for(var M=0;M<K;M++){var O=R[M];if(O=="BEGIN:VEVENT"){var e={};continue}if(O.indexOf("SUMMARY")>=0){e.SUMMARY=O.substring(O.indexOf("SUMMARY")+8);continue}if(O.indexOf("LOCATION")>=0){e.LOCATION=O.substring(O.indexOf("LOCATION")+9);continue}if(O.indexOf("DESCRIPTION")>=0){e.DESCRIPTION=O.substring(O.indexOf("DESCRIPTION")+12);continue}if(O.indexOf("RRULE")>=0){e.RRULE=O.substring(O.indexOf("RRULE")+6);continue}if(O.indexOf("EXDATE")>=0){var J=O.substring(O.indexOf("EXDATE")+7);e.EXDATE=J;continue}if(O.indexOf("DTEND")>=0){e.DTEND=P(O.substring(O.indexOf("DTEND")+6));continue}if(O.indexOf("DTSTART")>=0){e.DTSTART=P(O.substring(O.indexOf("DTSTART")+8));continue}if(O.indexOf("UID")>=0){e.uid=e.UID=O.substring(O.indexOf("UID")+4);continue}if(O.indexOf("STATUS")>=0){e.STATUS=O.substring(O.indexOf("STATUS")+7);continue}if(O=="END:VEVENT"){L.push(e);continue}}this.records=L;this.cachedrecords=this.records},loadtext:function(Y,P){if(Y==null){return}var e=P.rowDelimiter||this.rowDelimiter||"\n";var L=Y.split(e);var J=L.length;var X=Y.split("\r");if(J==1&&X.length>1){L=X;J=L.length}this.totalrecords=this.virtualmode?(P.totalrecords||J):J;this.records=new Array();this.originaldata=new Array();var U=this.records;var R=!this.pageable?P.recordstartindex:this.pagesize*this.pagenum;this.recordids=new Array();if(P.loadallrecords){R=0;J=this.totalrecords}var N=0;if(this.virtualmode){R=!this.pageable?P.recordstartindex:this.pagesize*this.pagenum;N=R;R=0;J=this.totalrecords}var V=P.datafields.length;var O=P.columnDelimiter||this.columnDelimiter;if(!O){O=(P.datatype==="tab"||P.datatype==="tsv")?"\t":","}for(var T=R;T<J;T++){var I=L[T];var W=null;if(!this.recordids[W]){if(P.id==null){W=T;this.recordids[W]=I}var K={};var H=L[T].split(O);for(var S=0;S<V;S++){if(S>=H.length){continue}var M=P.datafields[S];var Q=H[S];if(M.map&&i.isFunction(M.map)){Q=M.map(I)}if(M.type){Q=this.getvaluebytype(Q,M)}var Z=M.map||M.name||S.toString();K[Z]=Q;if(P.id!=null){if(P.id===M.name){W=Q;this.recordids[W]=I}}}if(W==null){W=T}U[N+T]=i.extend({},K);U[N+T].uid=W;this.originaldata[N+T]=i.extend({},U[T])}}this.records=U;this.cachedrecords=this.records},getvaluebytype:function(L,H){var J=L;if(L==null){return L}if(i.isArray(L)&&H.type!="array"){for(var I=0;I<L.length;I++){L[I]=this.getvaluebytype(L[I],H)}return L}if(H.type=="date"){if(L=="NaN"){L=""}else{if(L&&L instanceof Date){return L}var K=new Date(L);if(typeof L=="string"){if(H.format){var e=i.jqx.dataFormat.parsedate(L,H.format);if(e!=null){K=e}}}if(K.toString()=="NaN"||K.toString()=="Invalid Date"){if(i.jqx.dataFormat){L=i.jqx.dataFormat.tryparsedate(L)}else{L=K}}else{L=K}if(L==null){L=J}}}else{if(H.type=="float"||H.type=="number"||H.type=="decimal"){if(L=="NaN"){L=""}else{var L=parseFloat(L);if(isNaN(L)){L=J}}}else{if(H.type=="int"||H.type=="integer"){var L=parseInt(L);if(isNaN(L)){L=J}}else{if(H.type=="bool"||H.type=="boolean"){if(L!=null){if(L.toLowerCase!=undefined){if(L.toLowerCase()=="false"){L=false}else{if(L.toLowerCase()=="true"){L=true}}}}if(L==1){L=true}else{if(L==0&&L!==""){L=false}else{L=""}}}}}}return L}};i.jqx.dataFormat={};i.extend(i.jqx.dataFormat,{regexTrim:/^\s+|\s+$/g,regexInfinity:/^[+-]?infinity$/i,regexHex:/^0x[a-f0-9]+$/i,regexParseFloat:/^[+-]?\d*\.?\d*(e[+-]?\d+)?$/,toString:Object.prototype.toString,isBoolean:function(e){return typeof e==="boolean"},isObject:function(e){return(e&&(typeof e==="object"||i.isFunction(e)))||false},isDate:function(e){return e instanceof Date},arrayIndexOf:function(J,I){if(J.indexOf){return J.indexOf(I)}for(var e=0,H=J.length;e<H;e++){if(J[e]===I){return e}}return -1},isString:function(e){return typeof e==="string"},isNumber:function(e){return typeof e==="number"&&isFinite(e)},isNull:function(e){return e===null},isUndefined:function(e){return typeof e==="undefined"},isValue:function(e){return(this.isObject(e)||this.isString(e)||this.isNumber(e)||this.isBoolean(e))},isEmpty:function(e){if(!this.isString(e)&&this.isValue(e)){return false}else{if(!this.isValue(e)){return true}}e=i.trim(e).replace(/\ \;/ig,"").replace(/\ \;/ig,"");return e===""},startsWith:function(H,e){return H.indexOf(e)===0},endsWith:function(H,e){return H.substr(H.length-e.length)===e},trim:function(e){return(e+"").replace(this.regexTrim,"")},isArray:function(e){return this.toString.call(e)==="[object Array]"},defaultcalendar:function(){var e={"/":"/",":":":",firstDay:0,days:{names:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],namesAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],namesShort:["Su","Mo","Tu","We","Th","Fr","Sa"]},months:{names:["January","February","March","April","May","June","July","August","September","October","November","December",""],namesAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""]},AM:["AM","am","AM"],PM:["PM","pm","PM"],eras:[{name:"A.D.",start:null,offset:0}],twoDigitYearMax:2029,patterns:{d:"M/d/yyyy",D:"dddd, MMMM dd, yyyy",t:"h:mm tt",T:"h:mm:ss tt",f:"dddd, MMMM dd, yyyy h:mm tt",F:"dddd, MMMM dd, yyyy h:mm:ss tt",M:"MMMM dd",Y:"yyyy MMMM",S:"yyyy\u0027-\u0027MM\u0027-\u0027dd\u0027T\u0027HH\u0027:\u0027mm\u0027:\u0027ss",ISO:"yyyy-MM-dd hh:mm:ss",ISO2:"yyyy-MM-dd HH:mm:ss",d1:"dd.MM.yyyy",d2:"dd-MM-yyyy",d3:"MM-dd-yyyy",zone1:"yyyy-MM-ddTHH:mm:ss-HH:mm",zone2:"yyyy-MM-ddTHH:mm:ss+HH:mm",custom:"yyyy-MM-ddTHH:mm:ss.fff",custom2:"yyyy-MM-dd HH:mm:ss.fff"},percentsymbol:"%",currencysymbol:"$",currencysymbolposition:"before",decimalseparator:".",thousandsseparator:","};return e},expandFormat:function(K,J){J=J||"F";var I,H=K.patterns,e=J.length;if(e===1){I=H[J];if(!I){throw"Invalid date format string '"+J+"'."}J=I}else{if(e===2&&J.charAt(0)==="%"){J=J.charAt(1)}}return J},getEra:function(I,H){if(!H){return 0}if(typeof I==="string"){return 0}var L,K=I.getTime();for(var J=0,e=H.length;J<e;J++){L=H[J].start;if(L===null||K>=L){return J}}return 0},toUpper:function(e){return e.split("\u00A0").join(" ").toUpperCase()},toUpperArray:function(e){var J=[];for(var I=0,H=e.length;I<H;I++){J[I]=this.toUpper(e[I])}return J},getEraYear:function(H,J,e,K){var I=H.getFullYear();if(!K&&J.eras){I-=J.eras[e].offset}return I},toUpper:function(e){if(e){return e.toUpperCase()}return""},getDayIndex:function(K,J,H){var e,L=K.days,I=K._upperDays;if(!I){K._upperDays=I=[this.toUpperArray(L.names),this.toUpperArray(L.namesAbbr),this.toUpperArray(L.namesShort)]}J=J.toUpperCase();if(H){e=this.arrayIndexOf(I[1],J);if(e===-1){e=this.arrayIndexOf(I[2],J)}}else{e=this.arrayIndexOf(I[0],J)}return e},getMonthIndex:function(N,M,I){var e=N.months,H=N.monthsGenitive||N.months,K=N._upperMonths,L=N._upperMonthsGen;if(!K){N._upperMonths=K=[this.toUpperArray(e.names),this.toUpperArray(e.namesAbbr)];N._upperMonthsGen=L=[this.toUpperArray(H.names),this.toUpperArray(H.namesAbbr)]}M=this.toUpper(M);var J=this.arrayIndexOf(I?K[1]:K[0],M);if(J<0){J=this.arrayIndexOf(I?L[1]:L[0],M)}return J},appendPreOrPostMatch:function(J,e){var I=0,L=false;for(var K=0,H=J.length;K<H;K++){var M=J.charAt(K);switch(M){case"'":if(L){e.push("'")}else{I++}L=false;break;case"\\":if(L){e.push("\\")}L=!L;break;default:e.push(M);L=false;break}}return I},getTokenRegExp:function(){return/\/|dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z|gg|g/g},formatlink:function(e,I){var H="";if(I&&I.target){H="target="+I.target}if(H!=""){return"<a "+H+' href="'+e+'">'+e+"</a>"}return'<a href="'+e+'">'+e+"</a>"},formatemail:function(e){return'<a href="mailto:'+e+'">'+e+"</a>"},formatNumber:function(e,I,H){return this.formatnumber(e,I,H)},formatnumber:function(T,S,O){if(O==undefined||O==null||O==""){O=this.defaultcalendar()}if(S===""||S===null){return T}if(!this.isNumber(T)){T*=1}var P;if(S.length>1){P=parseInt(S.slice(1),10)}var V={};var Q=S.charAt(0).toUpperCase();V.thousandsSeparator=O.thousandsseparator;V.decimalSeparator=O.decimalseparator;switch(Q){case"D":case"d":case"F":case"f":V.decimalPlaces=P;break;case"N":case"n":V.decimalPlaces=0;break;case"C":case"c":V.decimalPlaces=P;if(O.currencysymbolposition=="before"){V.prefix=O.currencysymbol}else{V.suffix=O.currencysymbol}break;case"P":case"p":V.suffix=O.percentsymbol;V.decimalPlaces=P;break;default:throw"Bad number format specifier: "+Q}if(this.isNumber(T)){var K=(T<0);var I=T+"";var R=(V.decimalSeparator)?V.decimalSeparator:".";var e;if(this.isNumber(V.decimalPlaces)){var L=V.decimalPlaces;var N=Math.pow(10,L);I=(T*N).toFixed(0)/N+"";e=I.lastIndexOf(".");if(L>0){if(e<0){I+=R;e=I.length-1}else{if(R!=="."){I=I.replace(".",R)}}while((I.length-1-e)<L){I+="0"}}}else{var I=T+"";e=I.lastIndexOf(".");if(e>0&&L==undefined){if(R!=="."){I=I.replace(".",R)}}}if(V.thousandsSeparator){var U=V.thousandsSeparator;e=I.lastIndexOf(R);e=(e>-1)?e:I.length;var J=I.substring(e);var H=-1;for(var M=e;M>0;M--){H++;if((H%3===0)&&(M!==e)&&(!K||(M>1))){J=U+J}J=I.charAt(M-1)+J}I=J}I=(V.prefix)?V.prefix+I:I;I=(V.suffix)?I+V.suffix:I;return I}else{return T}},tryparsedate:function(ak,al){if(al==undefined||al==null){al=this.defaultcalendar()}var P=this;if(ak==""){return null}if(ak!=null&&!ak.substring){ak=ak.toString()}if(ak!=null&&ak.substring(0,6)=="/Date("){var au=/^\/Date\((-?\d+)(\+|-)?(\d+)?\)\/$/;var ar=new Date(+ak.replace(/\/Date\((\d+)\)\//,"$1"));if(ar=="Invalid Date"){var an=ak.match(/^\/Date\((\d+)([-+]\d\d)(\d\d)\)\/$/);var ar=null;if(an){ar=new Date(1*an[1]+3600000*an[2]+60000*an[3])}}if(ar==null||ar=="Invalid Date"||isNaN(ar)){var Q=au.exec(ak);if(Q){var T=new Date(parseInt(Q[1]));if(Q[2]){var Z=parseInt(Q[3]);if(Q[2]==="-"){Z=-Z}var V=T.getUTCMinutes();T.setUTCMinutes(V-Z)}if(!isNaN(T.valueOf())){return T}}}return ar}var N=al.patterns;for(var S in N){ar=P.parsedate(ak,N[S],al);if(ar){if(S=="ISO"){var ac=P.parsedate(ak,N.ISO2,al);if(ac){return ac}}return ar}}if(ak!=null){var ac=null;var L=[":","/","-"];var ap=true;for(var O=0;O<L.length;O++){if(ak.indexOf(L[O])!=-1){ap=false}}if(ap){var av=new Number(ak);if(!isNaN(av)){return new Date(av)}}}if(i.type(ak)==="string"){var ag=P;ak=ag.trim(ak);var am=[":","/","-"," ",","];var M=function(az,ax,ay){return ay.replace(new RegExp(az,"g"),ax)};ak=M(", ",",",ak);var I="";var Y=ak;if(ak.indexOf(":")>=0){I=ak.substring(ak.indexOf(":")-2);I=ag.trim(I);Y=ak.substring(0,ak.indexOf(":")-2)}else{if(ak.toUpperCase().indexOf("AM")>=0){I=ak.substring(ak.toUpperCase().indexOf("AM")-2);I=ag.trim(I);Y=ak.substring(0,ak.toUpperCase().indexOf("AM")-2)}else{if(ak.toUpperCase().indexOf("PM")>=0){I=ak.substring(ak.toUpperCase().indexOf("PM")-2);I=ag.trim(I);Y=ak.substring(0,ak.toUpperCase().indexOf("PM")-2)}}}var e=new Date();var aj=false;if(Y){for(var aq=0;aq<am.length;aq++){if(Y.indexOf(am[aq])>=0){L=Y.split(am[aq]);break}}var H=new Array();var W=new Array();var ae=new Array();var R=null;var aw=null;for(var aq=0;aq<L.length;aq++){var O=L[aq];var ad=ag.parsedate(O,"d",al)||ag.parsedate(O,"dd",al)||ag.parsedate(O,"ddd",al)||ag.parsedate(O,"dddd",al);if(ad){if(O.length<=2){R=aq;H.push(ad.getDate());break}}}for(var aq=0;aq<L.length;aq++){var O=L[aq];var U=ag.parsedate(O,"M",al)||ag.parsedate(O,"MM",al)||ag.parsedate(O,"MMM",al)||ag.parsedate(O,"MMMM",al);if(U){if(R!=undefined&&R==aq){continue}W.push(U.getMonth());if(O.length>2){aw=aq;break}}}for(var aq=0;aq<L.length;aq++){var O=L[aq];var af=ag.parsedate(O,"yyyy",al);if(af){if(R!=undefined&&R==aq){continue}if(aw!=undefined&&aw==aq){continue}ae.push(af.getFullYear())}}var ao=new Array();for(var at=0;at<H.length;at++){for(var an=0;an<W.length;an++){for(var ai=0;ai<ae.length;ai++){var T=new Date(ae[ai],W[an],H[at]);if(ae[ai]<1970){T.setFullYear(ae[ai])}if(T.getTime()!=NaN){ao.push(T)}}}}if(ao.length>0){e=ao[0];aj=true}}if(I){var ah=I.indexOf(":")>=0?I.split(":"):I;var K=ag.parsedate(I,"h:mm tt",al)||ag.parsedate(I,"h:mm:ss tt",al)||ag.parsedate(I,"HH:mm:ss.fff",al)||ag.parsedate(I,"HH:mm:ss.ff",al)||ag.parsedate(I,"HH:mm:ss.tttt",al)||ag.parsedate(I,"HH:mm:ss",al)||ag.parsedate(I,"HH:mm",al)||ag.parsedate(I,"HH",al);var X=0,J=0,aa=0,ab=0;if(K&&K.getTime()!=NaN){X=K.getHours();J=K.getMinutes();aa=K.getSeconds();ab=K.getMilliseconds()}else{if(ah.length==1){X=parseInt(ah[0])}if(ah.length==2){X=parseInt(ah[0]);J=parseInt(ah[1])}if(ah.length==3){X=parseInt(ah[0]);J=parseInt(ah[1]);if(ah[2].indexOf(".")>=0){aa=parseInt(ah[2].toString().split(".")[0]);ab=parseInt(ah[2].toString().split(".")[1])}else{aa=parseInt(ah[2])}}if(ah.length==4){X=parseInt(ah[0]);J=parseInt(ah[1]);aa=parseInt(ah[2]);ab=parseInt(ah[3])}}if(e&&!isNaN(X)&&!isNaN(J)&&!isNaN(aa)&&!isNaN(ab)){e.setHours(X,J,aa,ab);aj=true}}if(aj){return e}}return null},getparseregexp:function(e,R){var T=e._parseRegExp;if(!T){e._parseRegExp=T={}}else{var K=T[R];if(K){return K}}var Q=this.expandFormat(e,R).replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g,"\\\\$1"),O=["^"],H=[],N=0,J=0,W=this.getTokenRegExp(),L;while((L=W.exec(Q))!==null){var V=Q.slice(N,L.index);N=W.lastIndex;J+=this.appendPreOrPostMatch(V,O);if(J%2){O.push(L[0]);continue}var I=L[0],M=I.length,S;switch(I){case"dddd":case"ddd":case"MMMM":case"MMM":case"gg":case"g":S="(\\D+)";break;case"tt":case"t":S="(\\D*)";break;case"yyyy":case"fff":case"ff":case"f":S="(\\d{"+M+"})";break;case"dd":case"d":case"MM":case"M":case"yy":case"y":case"HH":case"H":case"hh":case"h":case"mm":case"m":case"ss":case"s":S="(\\d\\d?)";break;case"zzz":S="([+-]?\\d\\d?:\\d{2})";break;case"zz":case"z":S="([+-]?\\d\\d?)";break;case"/":S="(\\"+e["/"]+")";break;default:throw"Invalid date format pattern '"+I+"'.";break}if(S){O.push(S)}H.push(L[0])}this.appendPreOrPostMatch(Q.slice(N),O);O.push("$");var U=O.join("").replace(/\s+/g,"\\s+"),P={regExp:U,groups:H};return T[R]=P},outOfRange:function(I,e,H){return I<e||I>H},expandYear:function(L,J){var H=new Date(),e=this.getEra(H);if(J<100){var I=L.twoDigitYearMax;I=typeof I==="string"?new Date().getFullYear()%100+parseInt(I,10):I;var K=this.getEraYear(H,L,e);J+=K-(K%100);if(J>I){J-=100}}return J},parsedate:function(ab,ai,W){if(W==undefined||W==null){W=this.defaultcalendar()}ab=this.trim(ab);var T=W,an=this.getparseregexp(T,ai),N=new RegExp(an.regExp).exec(ab);if(N===null){return null}var aj=an.groups,Z=null,R=null,am=null,al=null,S=null,L=0,ae,ad=0,ak=0,e=0,I=null,U=false;for(var af=0,ah=aj.length;af<ah;af++){var H=N[af+1];if(H){var aa=aj[af],K=aa.length,M=parseInt(H,10);switch(aa){case"dd":case"d":al=M;if(this.outOfRange(al,1,31)){return null}break;case"MMM":case"MMMM":am=this.getMonthIndex(T,H,K===3);if(this.outOfRange(am,0,11)){return null}break;case"M":case"MM":am=M-1;if(this.outOfRange(am,0,11)){return null}break;case"y":case"yy":case"yyyy":R=K<4?this.expandYear(T,M):M;if(this.outOfRange(R,0,9999)){return null}break;case"h":case"hh":L=M;if(L===12){L=0}if(this.outOfRange(L,0,11)){return null}break;case"H":case"HH":L=M;if(this.outOfRange(L,0,23)){return null}break;case"m":case"mm":ad=M;if(this.outOfRange(ad,0,59)){return null}break;case"s":case"ss":ak=M;if(this.outOfRange(ak,0,59)){return null}break;case"tt":case"t":U=T.PM&&(H===T.PM[0]||H===T.PM[1]||H===T.PM[2]);if(!U&&(!T.AM||(H!==T.AM[0]&&H!==T.AM[1]&&H!==T.AM[2]))){return null}break;case"f":case"ff":case"fff":e=M*Math.pow(10,3-K);if(this.outOfRange(e,0,999)){return null}break;case"ddd":case"dddd":S=this.getDayIndex(T,H,K===3);if(this.outOfRange(S,0,6)){return null}break;case"zzz":var J=H.split(/:/);if(J.length!==2){return null}ae=parseInt(J[0],10);if(this.outOfRange(ae,-12,13)){return null}var P=parseInt(J[1],10);if(this.outOfRange(P,0,59)){return null}I=(ae*60)+(this.startsWith(H,"-")?-P:P);break;case"z":case"zz":ae=M;if(this.outOfRange(ae,-12,13)){return null}I=ae*60;break;case"g":case"gg":var V=H;if(!V||!T.eras){return null}V=this.trim(V.toLowerCase());for(var ag=0,ac=T.eras.length;ag<ac;ag++){if(V===T.eras[ag].name.toLowerCase()){Z=ag;break}}if(Z===null){return null}break}}}var Q=new Date(),Y,O=T.convert;Y=Q.getFullYear();if(R===null){R=Y}else{if(T.eras){R+=T.eras[(Z||0)].offset}}if(am===null){am=0}if(al===null){al=1}if(O){Q=O.toGregorian(R,am,al);if(Q===null){return null}}else{Q.setFullYear(R,am,al);if(Q.getDate()!==al){return null}if(S!==null&&Q.getDay()!==S){return null}}if(U&&L<12){L+=12}Q.setHours(L,ad,ak,e);if(I!==null){var X=Q.getMinutes()-(I+Q.getTimezoneOffset());Q.setHours(Q.getHours()+parseInt(X/60,10),X%60)}return Q},cleardatescache:function(){this.datescache=new Array()},formatDate:function(e,I,H){return this.formatdate(e,I,H)},formatdate:function(Z,ad,U){if(U==undefined||U==null){U=this.defaultcalendar()}if(typeof Z==="string"){return Z}var J=Z.toString()+"_"+ad;if(this.datescache&&this.datescache[J]){if(ad.indexOf("f")==-1){return this.datescache[J]}}if(!ad||!ad.length||ad==="i"){var af;af=this.formatDate(Z,U.patterns.F,U);return af}var aa=U.eras,H=ad==="s";ad=this.expandFormat(U,ad);af=[];var M,ab=["0","00","000"],Q,R,e=/([^d]|^)(d|dd)([^d]|$)/g,ae=0,W=this.getTokenRegExp(),I;function O(ag,aj){var ai,ah=ag+"";if(aj>1&&ah.length<aj){ai=(ab[aj-2]+ah);return ai.substr(ai.length-aj,aj)}else{ai=ah}return ai}function ac(){if(Q||R){return Q}Q=e.test(ad);R=true;return Q}function K(ah,ag){if(I){return I[ag]}if(ah.getMonth!=undefined){switch(ag){case 0:return ah.getFullYear();case 1:return ah.getMonth();case 2:return ah.getDate()}}}for(;;){var N=W.lastIndex,V=W.exec(ad);var S=ad.slice(N,V?V.index:ad.length);ae+=this.appendPreOrPostMatch(S,af);if(!V){break}if(ae%2){af.push(V[0]);continue}var X=V[0],L=X.length;switch(X){case"ddd":case"dddd":var T=(L===3)?U.days.namesAbbr:U.days.names;af.push(T[Z.getDay()]);break;case"d":case"dd":Q=true;af.push(O(K(Z,2),L));break;case"MMM":case"MMMM":var Y=K(Z,1);af.push(U.months[L===3?"namesAbbr":"names"][Y]);break;case"M":case"MM":af.push(O(K(Z,1)+1,L));break;case"y":case"yy":case"yyyy":Y=this.getEraYear(Z,U,this.getEra(Z,aa),H);if(L<4){Y=Y%100}af.push(O(Y,L));break;case"h":case"hh":M=Z.getHours()%12;if(M===0){M=12}af.push(O(M,L));break;case"H":case"HH":af.push(O(Z.getHours(),L));break;case"m":case"mm":af.push(O(Z.getMinutes(),L));break;case"s":case"ss":af.push(O(Z.getSeconds(),L));break;case"t":case"tt":Y=Z.getHours()<12?(U.AM?U.AM[0]:" "):(U.PM?U.PM[0]:" ");af.push(L===1?Y.charAt(0):Y);break;case"f":case"ff":case"fff":af.push(O(Z.getMilliseconds(),3).substr(0,L));break;case"z":case"zz":M=Z.getTimezoneOffset()/60;af.push((M<=0?"+":"-")+O(Math.floor(Math.abs(M)),L));break;case"zzz":M=Z.getTimezoneOffset()/60;af.push((M<=0?"+":"-")+O(Math.floor(Math.abs(M)),2)+":"+O(Math.abs(Z.getTimezoneOffset()%60),2));break;case"g":case"gg":if(U.eras){af.push(U.eras[this.getEra(Z,aa)].name)}break;case"/":af.push(U["/"]);break;default:throw"Invalid date format pattern '"+X+"'.";break}}var P=af.join("");if(!this.datescache){this.datescache=new Array()}this.datescache[J]=P;return P}});i.jqx.data={};var l,E,p=/#.*$/,a=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,f=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,j=/^(?:GET|HEAD)$/,o=/^\/\//,k=/\?/,b=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,d=/([?&])_=[^&]*/,h=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,t=/\s+/,F=i.fn.load,G={},C={},q=["*/"]+["*"];try{E=location.href}catch(A){E=document.createElement("a");E.href="";E=E.href}l=h.exec(E.toLowerCase())||[];function r(e){return function(K,M){if(typeof K!=="string"){M=K;K="*"}var H,N,O,J=K.toLowerCase().split(t),I=0,L=J.length;if(i.isFunction(M)){for(;I<L;I++){H=J[I];O=/^\+/.test(H);if(O){H=H.substr(1)||"*"}N=e[H]=e[H]||[];N[O?"unshift":"push"](M)}}}}function v(H,Q,L,O,N,J){N=N||Q.dataTypes[0];J=J||{};J[N]=true;var P,M=H[N],I=0,e=M?M.length:0,K=(H===G);for(;I<e&&(K||!P);I++){P=M[I](Q,L,O);if(typeof P==="string"){if(!K||J[P]){P=undefined}else{Q.dataTypes.unshift(P);P=v(H,Q,L,O,P,J)}}}if((K||!P)&&!J["*"]){P=v(H,Q,L,O,"*",J)}return P}function u(I,J){var H,e,K=i.jqx.data.ajaxSettings.flatOptions||{};for(H in J){if(J[H]!==undefined){(K[H]?I:(e||(e={})))[H]=J[H]}}if(e){i.extend(true,I,e)}}i.extend(i.jqx.data,{ajaxSetup:function(H,e){if(e){u(H,i.jqx.data.ajaxSettings)}else{e=H;H=i.jqx.data.ajaxSettings}u(H,e);return H},ajaxSettings:{url:E,isLocal:f.test(l[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":q},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":window.String,"text html":true,"text json":i.parseJSON,"text xml":i.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:r(G),ajaxTransport:r(C),ajax:function(M,J){if(typeof M==="object"){J=M;M=undefined}J=J||{};var P,ad,K,Y,R,V,I,X,Q=i.jqx.data.ajaxSetup({},J),af=Q.context||Q,T=af!==Q&&(af.nodeType||af instanceof i)?i(af):i.event,ae=i.Deferred(),aa=i.Callbacks("once memory"),N=Q.statusCode||{},U={},ab={},L=0,O="canceled",W={readyState:0,setRequestHeader:function(ag,ah){if(!L){var e=ag.toLowerCase();ag=ab[e]=ab[e]||ag;U[ag]=ah}return this},getAllResponseHeaders:function(){return L===2?ad:null},getResponseHeader:function(ag){var e;if(L===2){if(!K){K={};while((e=a.exec(ad))){K[e[1].toLowerCase()]=e[2]}}e=K[ag.toLowerCase()]}return e===undefined?null:e},overrideMimeType:function(e){if(!L){Q.mimeType=e}return this},abort:function(e){e=e||O;if(Y){Y.abort(e)}S(0,e);return this}};function S(ak,ag,al,ai){var e,ao,am,aj,an,ah=ag;if(L===2){return}L=2;if(R){clearTimeout(R)}Y=undefined;ad=ai||"";W.readyState=ak>0?4:0;if(al){aj=B(Q,W,al)}if(ak>=200&&ak<300||ak===304){if(Q.ifModified){an=W.getResponseHeader("Last-Modified");if(an){i.lastModified[P]=an}an=W.getResponseHeader("Etag");if(an){i.etag[P]=an}}if(ak===304){ah="notmodified";e=true}else{e=c(Q,aj);ah=e.state;ao=e.data;am=e.error;e=!am}}else{am=ah;if(!ah||ak){ah="error";if(ak<0){ak=0}}}W.status=ak;W.statusText=(ag||ah)+"";if(e){ae.resolveWith(af,[ao,ah,W])}else{ae.rejectWith(af,[W,ah,am])}W.statusCode(N);N=undefined;if(I){T.trigger("ajax"+(e?"Success":"Error"),[W,Q,e?ao:am])}aa.fireWith(af,[W,ah]);if(I){T.trigger("ajaxComplete",[W,Q]);if(!(--i.active)){i.event.trigger("ajaxStop")}}}ae.promise(W);W.success=W.done;W.error=W.fail;W.complete=aa.add;W.statusCode=function(ag){if(ag){var e;if(L<2){for(e in ag){N[e]=[N[e],ag[e]]}}else{e=ag[W.status];W.always(e)}}return this};Q.url=((M||Q.url)+"").replace(p,"").replace(o,l[1]+"//");Q.dataTypes=i.trim(Q.dataType||"*").toLowerCase().split(t);if(Q.crossDomain==null){V=h.exec(Q.url.toLowerCase());Q.crossDomain=!!(V&&(V[1]!==l[1]||V[2]!==l[2]||(V[3]||(V[1]==="http:"?80:443))!=(l[3]||(l[1]==="http:"?80:443))))}if(Q.data&&Q.processData&&typeof Q.data!=="string"){Q.data=i.param(Q.data,Q.traditional)}v(G,Q,J,W);if(L===2){return W}I=Q.global;Q.type=Q.type.toUpperCase();Q.hasContent=!j.test(Q.type);if(I&&i.active++===0){i.event.trigger("ajaxStart")}if(!Q.hasContent){if(Q.data){Q.url+=(k.test(Q.url)?"&":"?")+Q.data;delete Q.data}P=Q.url;if(Q.cache===false){var H=(new Date()).getTime(),ac=Q.url.replace(d,"$1_="+H);Q.url=ac+((ac===Q.url)?(k.test(Q.url)?"&":"?")+"_="+H:"")}}if(Q.data&&Q.hasContent&&Q.contentType!==false||J.contentType){W.setRequestHeader("Content-Type",Q.contentType)}if(Q.ifModified){P=P||Q.url;if(i.lastModified[P]){W.setRequestHeader("If-Modified-Since",i.lastModified[P])}if(i.etag[P]){W.setRequestHeader("If-None-Match",i.etag[P])}}W.setRequestHeader("Accept",Q.dataTypes[0]&&Q.accepts[Q.dataTypes[0]]?Q.accepts[Q.dataTypes[0]]+(Q.dataTypes[0]!=="*"?", "+q+"; q=0.01":""):Q.accepts["*"]);for(X in Q.headers){W.setRequestHeader(X,Q.headers[X])}if(Q.beforeSend&&(Q.beforeSend.call(af,W,Q)===false||L===2)){return W.abort()}O="abort";for(X in {success:1,error:1,complete:1}){W[X](Q[X])}Y=v(C,Q,J,W);if(!Y){S(-1,"No Transport")}else{W.readyState=1;if(I){T.trigger("ajaxSend",[W,Q])}if(Q.async&&Q.timeout>0){R=setTimeout(function(){W.abort("timeout")},Q.timeout)}try{L=1;Y.send(U,S)}catch(Z){if(L<2){S(-1,Z)}else{throw Z}}}return W},active:0,lastModified:{},etag:{}});function B(P,O,L){var K,M,J,e,H=P.contents,N=P.dataTypes,I=P.responseFields;for(M in I){if(M in L){O[I[M]]=L[M]}}while(N[0]==="*"){N.shift();if(K===undefined){K=P.mimeType||O.getResponseHeader("content-type")}}if(K){for(M in H){if(H[M]&&H[M].test(K)){N.unshift(M);break}}}if(N[0] in L){J=N[0]}else{for(M in L){if(!N[0]||P.converters[M+" "+N[0]]){J=M;break}if(!e){e=M}}J=J||e}if(J){if(J!==N[0]){N.unshift(J)}return L[J]}}function c(R,J){var P,H,N,L,O=R.dataTypes.slice(),I=O[0],Q={},K=0;if(R.dataFilter){J=R.dataFilter(J,R.dataType)}if(O[1]){for(P in R.converters){Q[P.toLowerCase()]=R.converters[P]}}for(;(N=O[++K]);){if(N!=="*"){if(I!=="*"&&I!==N){P=Q[I+" "+N]||Q["* "+N];if(!P){for(H in Q){L=H.split(" ");if(L[1]===N){P=Q[I+" "+L[0]]||Q["* "+L[0]];if(P){if(P===true){P=Q[H]}else{if(Q[H]!==true){N=L[0];O.splice(K--,0,N)}}break}}}}if(P!==true){if(P&&R["throws"]){J=P(J)}else{try{J=P(J)}catch(M){return{state:"parsererror",error:P?M:"No conversion from "+I+" to "+N}}}}}I=N}}return{state:"success",data:J}}var y=[],n=/\?/,D=/(=)\?(?=&|$)|\?\?/,z=(new Date()).getTime();i.jqx.data.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=y.pop()||(i.expando+"_"+(z++));this[e]=true;return e}});i.jqx.data.ajaxPrefilter("json jsonp",function(Q,L,P){var O,e,N,J=Q.data,H=Q.url,I=Q.jsonp!==false,M=I&&D.test(H),K=I&&!M&&typeof J==="string"&&!(Q.contentType||"").indexOf("application/x-www-form-urlencoded")&&D.test(J);if(Q.dataTypes[0]==="jsonp"||M||K){O=Q.jsonpCallback=i.isFunction(Q.jsonpCallback)?Q.jsonpCallback():Q.jsonpCallback;e=window[O];if(M){Q.url=H.replace(D,"$1"+O)}else{if(K){Q.data=J.replace(D,"$1"+O)}else{if(I){Q.url+=(n.test(H)?"&":"?")+Q.jsonp+"="+O}}}Q.converters["script json"]=function(){if(!N){i.error(O+" was not called")}return N[0]};Q.dataTypes[0]="json";window[O]=function(){N=arguments};P.always(function(){window[O]=e;if(Q[O]){Q.jsonpCallback=L.jsonpCallback;y.push(O)}if(N&&i.isFunction(e)){e(N[0])}N=e=undefined});return"script"}});i.jqx.data.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){i.globalEval(e);return e}}});i.jqx.data.ajaxPrefilter("script",function(e){if(e.cache===undefined){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});i.jqx.data.ajaxTransport("script",function(I){if(I.crossDomain){var e,H=document.head||document.getElementsByTagName("head")[0]||document.documentElement;return{send:function(J,K){e=document.createElement("script");e.async="async";if(I.scriptCharset){e.charset=I.scriptCharset}e.src=I.url;e.onload=e.onreadystatechange=function(M,L){if(L||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(H&&e.parentNode){H.removeChild(e)}e=undefined;if(!L){K(200,"success")}}};H.insertBefore(e,H.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var w,x=window.ActiveXObject?function(){for(var e in w){w[e](0,1)}}:false,m=0;function g(){try{return new window.XMLHttpRequest()}catch(H){}}function s(){try{return new window.ActiveXObject("Microsoft.XMLHTTP")}catch(H){}}i.jqx.data.ajaxSettings.xhr=window.ActiveXObject?function(){return !this.isLocal&&g()||s()}:g;(function(e){i.extend(i.support,{ajax:!!e,cors:!!e&&("withCredentials" in e)})})(i.jqx.data.ajaxSettings.xhr());if(!i.support){i.support={ajax:true}}if(i.support.ajax){i.jqx.data.ajaxTransport(function(e){if(!e.crossDomain||i.support.cors){var H;return{send:function(N,I){var L,K,M=e.xhr();if(e.username){M.open(e.type,e.url,e.async,e.username,e.password)}else{M.open(e.type,e.url,e.async)}if(e.xhrFields){for(K in e.xhrFields){M[K]=e.xhrFields[K]}}if(e.mimeType&&M.overrideMimeType){M.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!N["X-Requested-With"]){N["X-Requested-With"]="XMLHttpRequest"}try{for(K in N){M.setRequestHeader(K,N[K])}}catch(J){}M.send((e.hasContent&&e.data)||null);H=function(W,Q){var R,P,O,U,T;try{if(H&&(Q||M.readyState===4)){H=undefined;if(L){M.onreadystatechange=function(){};if(x){delete w[L]}}if(Q){if(M.readyState!==4){M.abort()}}else{R=M.status;O=M.getAllResponseHeaders();U={};T=M.responseXML;if(T&&T.documentElement){U.xml=T}try{U.text=M.responseText}catch(V){}try{P=M.statusText}catch(V){P=""}if(!R&&e.isLocal&&!e.crossDomain){R=U.text?200:404}else{if(R===1223){R=204}}}}}catch(S){if(!Q){I(-1,S)}}if(U){I(R,P,U,O)}};if(!e.async){H()}else{if(M.readyState===4){setTimeout(H,0)}else{L=++m;if(x){if(!w){w={};i(window).unload(x)}w[L]=H}M.onreadystatechange=H}}},abort:function(){if(H){H(0,1)}}}}})}i.jqx.filter=function(){this.operator="and";var M=0;var J=1;var P=["EMPTY","NOT_EMPTY","CONTAINS","CONTAINS_CASE_SENSITIVE","DOES_NOT_CONTAIN","DOES_NOT_CONTAIN_CASE_SENSITIVE","STARTS_WITH","STARTS_WITH_CASE_SENSITIVE","ENDS_WITH","ENDS_WITH_CASE_SENSITIVE","EQUAL","EQUAL_CASE_SENSITIVE","NULL","NOT_NULL"];var R=["EQUAL","NOT_EQUAL","LESS_THAN","LESS_THAN_OR_EQUAL","GREATER_THAN","GREATER_THAN_OR_EQUAL","NULL","NOT_NULL"];var S=["EQUAL","NOT_EQUAL","LESS_THAN","LESS_THAN_OR_EQUAL","GREATER_THAN","GREATER_THAN_OR_EQUAL","NULL","NOT_NULL"];var L=["EQUAL","NOT_EQUAL"];var K=new Array();var Q=new Array();this.evaluate=function(X){var V=true;for(var W=0;W<K.length;W++){var U=K[W].evaluate(X);if(W==0){V=U}else{if(Q[W]==J||Q[W]=="or"){V=V||U}else{V=V&&U}}}return V};this.getfilterscount=function(){return K.length};this.setoperatorsbyfiltertype=function(U,V){switch(U){case"numericfilter":R=V;break;case"stringfilter":P=V;break;case"datefilter":S=V;break;case"booleanfilter":L=V;break}};this.getoperatorsbyfiltertype=function(U){var V=new Array();switch(U){case"numericfilter":V=R.slice(0);break;case"stringfilter":V=P.slice(0);break;case"datefilter":V=S.slice(0);break;case"booleanfilter":V=L.slice(0);break}return V};var O=function(){var U=function(){return(((1+Math.random())*65536)|0).toString(16).substring(1)};return(U()+"-"+U()+"-"+U())};this.createfilter=function(Y,V,X,W,U,Z){if(Y==null||Y==undefined){return null}switch(Y){case"numericfilter":return new N(V,X.toUpperCase());case"stringfilter":return new T(V,X.toUpperCase());case"datefilter":return new H(V,X.toUpperCase(),U,Z);case"booleanfilter":return new I(V,X.toUpperCase());case"custom":return new e(V,X.toUpperCase(),W)}throw new Error("jqxGrid: There is no such filter type. The available filter types are: 'numericfilter', 'stringfilter', 'datefilter' and 'booleanfilter'");return null};this.getfilters=function(){var U=new Array();for(var V=0;V<K.length;V++){var W={value:K[V].filtervalue,condition:K[V].comparisonoperator,operator:Q[V],type:K[V].type};if(K[V].data){W.id=K[V].data}U[V]=W}return U};this.addfilter=function(U,V){K[K.length]=V;V.key=O();Q[Q.length]=U};this.removefilter=function(V){for(var U=0;U<K.length;U++){if(K[U].key==V.key){K.splice(U,1);Q.splice(U,1);break}}};this.getoperatorat=function(U){if(U==undefined||U==null){return null}if(U<0||U>K.length){return null}return Q[U]};this.setoperatorat=function(V,U){if(V==undefined||V==null){return null}if(V<0||V>K.length){return null}Q[U]=U};this.getfilterat=function(U){if(U==undefined||U==null){return null}if(U<0||U>K.length){return null}return K[U]};this.setfilterat=function(U,V){if(U==undefined||U==null){return null}if(U<0||U>K.length){return null}V.key=O();K[U]=V};this.clear=function(){K=new Array();Q=new Array()};var T=function(V,U){this.filtervalue=V;this.comparisonoperator=U;this.type="stringfilter";this.evaluate=function(af){var ae=this.filtervalue;var al=this.comparisonoperator;if(af==null||af==undefined||af==""){if(al=="NULL"){return true}if(al=="NOT_NULL"){return false}if(al=="EQUAL"&&af==ae){return true}if(al=="NOT_EQUAL"&&af!=ae){return true}if(al!="EMPTY"){return false}else{if(af==""){return true}}}var an="";try{an=af.toString()}catch(ag){return true}var am=function(ap,ao){switch(al){case"EQUAL":return i.jqx.string.equalsIgnoreCase(ap,ao);case"EQUAL_CASE_SENSITIVE":return i.jqx.string.equals(ap,ao);case"NOT_EQUAL":return !i.jqx.string.equalsIgnoreCase(ap,ao);case"NOT_EQUAL_CASE_SENSITIVE":return !i.jqx.string.equals(ap,ao);case"CONTAINS":return i.jqx.string.containsIgnoreCase(ap,ao);case"CONTAINS_CASE_SENSITIVE":return i.jqx.string.contains(ap,ao);case"DOES_NOT_CONTAIN":return !i.jqx.string.containsIgnoreCase(ap,ao);case"DOES_NOT_CONTAIN_CASE_SENSITIVE":return !i.jqx.string.contains(ap,ao);case"EMPTY":return ap=="";case"NOT_EMPTY":return ap!="";case"NOT_NULL":return ap!=null;case"STARTS_WITH":return i.jqx.string.startsWithIgnoreCase(ap,ao);case"ENDS_WITH":return i.jqx.string.endsWithIgnoreCase(ap,ao);case"ENDS_WITH_CASE_SENSITIVE":return i.jqx.string.endsWith(ap,ao);case"STARTS_WITH_CASE_SENSITIVE":return i.jqx.string.startsWith(ap,ao);default:return false}};var Z=new Array();if(ae&&ae.indexO&&al!=="NOT_EQUAL"){if(ae.indexOf("|")>=0||ae.indexOf(" AND ")>=0||ae.indexOf(" OR ")>=0||ae.indexOf(" and ")>=0||ae.indexOf(" or ")>=0){var aa=am(an,ae);if(aa){return aa}var ab=ae.indexOf(" AND ")>=0?ae.split(" AND "):new Array();var Y=ae.indexOf(" OR ")>=0?ae.split(" OR "):new Array();var X=ae.indexOf(" and ")>=0?ae.split(" and "):new Array();var ac=ae.indexOf(" or ")>=0?ae.split(" or "):new Array();var W=ae.indexOf("|")>=0?ae.split("|"):new Array();if(W.length>0){for(var ak=0;ak<W.length;ak++){W[ak]=i.trim(W[ak])}}var aj=ae.indexOf(" ")>=0?ae.split(" "):new Array();if(aj.length>0){for(var ak=0;ak<aj.length;ak++){aj[ak]=i.trim(aj[ak])}}ab=ab.concat(aj);ab=ab.concat(X);Y=Y.concat(W);Y=Y.concat(ac);if(ab.length>0){for(var ak=0;ak<ab.length;ak++){if(!ab[ak].indexOf(" OR ")>=0){Z.push(ab[ak])}}}if(Y.length>0){for(var ak=0;ak<Y.length;ak++){if(!Y[ak].indexOf(" AND ")>=0){Z.push(Y[ak])}}}var ai=undefined;for(var ah=0;ah<Z.length;ah++){var af=Z[ah];var aa=am(an,af);var ad=ah<ab.length?"and":"or";if(ai==undefined){ai=aa}else{if(ad=="or"){ai=ai||aa}else{ai=ai&&aa}}}return ai}}return am(an,ae)}};var I=function(V,U){this.filtervalue=V;this.comparisonoperator=U;this.type="booleanfilter";this.evaluate=function(Y){var X=this.filtervalue;var W=this.comparisonoperator;if(Y==null||Y==undefined){if(W=="NULL"){return true}return false}var Z=Y;switch(W){case"EQUAL":return Z==X||Z.toString()==X.toString();case"NOT_EQUAL":return Z!=X&&Z.toString()!=X.toString();default:return false}}};var N=function(V,U){this.filtervalue=V;this.comparisonoperator=U;this.type="numericfilter";this.evaluate=function(ag){var af=this.filtervalue;var al=this.comparisonoperator;if(ag===null||ag===undefined||ag===""){if(al=="NOT_NULL"){return false}if(al=="NULL"){return true}else{switch(al){case"EQUAL":return ag==af;case"NOT_EQUAL":return ag!=af}return false}}else{if(al=="NULL"){return false}if(al=="NOT_NULL"){return true}}var an=ag;try{an=parseFloat(an)}catch(ah){if(ag.toString()!=""){return false}}var am=function(ap,ao){switch(al){case"EQUAL":return ap==ao;case"NOT_EQUAL":return ap!=ao;case"GREATER_THAN":return ap>ao;case"GREATER_THAN_OR_EQUAL":return ap>=ao;case"LESS_THAN":return ap<ao;case"LESS_THAN_OR_EQUAL":return ap<=ao;case"STARTS_WITH":return i.jqx.string.startsWithIgnoreCase(ap.toString(),ao.toString());case"ENDS_WITH":return i.jqx.string.endsWithIgnoreCase(ap.toString(),ao.toString());case"ENDS_WITH_CASE_SENSITIVE":return i.jqx.string.endsWith(ap.toString(),ao.toString());case"STARTS_WITH_CASE_SENSITIVE":return i.jqx.string.startsWith(ap.toString(),ao.toString());case"CONTAINS":return i.jqx.string.containsIgnoreCase(ap.toString(),ao.toString());case"CONTAINS_CASE_SENSITIVE":return i.jqx.string.contains(ap.toString(),ao.toString());case"DOES_NOT_CONTAIN":return !i.jqx.string.containsIgnoreCase(ap.toString(),ao.toString());case"DOES_NOT_CONTAIN_CASE_SENSITIVE":return !i.jqx.string.contains(ap.toString(),ao.toString());default:return true}};var aa=new Array();if(af&&af.indexOf){af=af.replace("$","")}if(af.indexOf&&(af.indexOf("|")>=0||af.indexOf(" AND ")>=0||af.indexOf(" OR ")>=0||af.indexOf(" and ")>=0||af.indexOf(" or ")>=0)){var ab=am(an,af);if(ab){return ab}af=af.toString();var ac=af.indexOf(" AND ")>=0?af.split(" AND "):new Array();var Z=af.indexOf(" OR ")>=0?af.split(" OR "):new Array();var Y=af.indexOf(" and ")>=0?af.split(" and "):new Array();var ad=af.indexOf(" or ")>=0?af.split(" or "):new Array();ac=ac.concat(Y);Z=Z.concat(ad);var X=af.indexOf("|")>=0?af.split("|"):new Array();if(X.length>0){for(var ak=0;ak<X.length;ak++){X[ak]=i.trim(X[ak])}}Z=Z.concat(X);if(ac.length>0){for(var ak=0;ak<ac.length;ak++){if(!ac[ak].indexOf(" OR ")>=0){aa.push(ac[ak])}}}if(Z.length>0){for(var ak=0;ak<Z.length;ak++){if(!Z[ak].indexOf(" AND ")>=0){aa.push(Z[ak])}}}var aj=undefined;for(var ai=0;ai<aa.length;ai++){var ag=aa[ai];if(ag&&ag.indexOf&&ag.indexOf("..")>=0){var W=ag.toString().split("..");if(W.length==2){ab=an>=W[0]&&an<=W[1]}}else{var ab=am(an,ag)}var ae=ai<ac.length?"and":"or";if(aj==undefined){aj=ab}else{if(ae=="or"){aj=aj||ab}else{aj=aj&&ab}}}return aj}if(af&&af.indexOf&&af.indexOf("..")>=0){aa=af.toString().split("..");if(aa.length==2){return an>=aa[0]&&an<=aa[1]}}return am(an,af)}};var H=function(X,V,W,ab){this.filtervalue=X;this.type="datefilter";var Z=this;if(W!=undefined&&ab!=undefined){var Y=i.jqx.dataFormat.parsedate(X,W,ab);if(Y!=null){this.filterdate=Y}else{var U=i.jqx.dataFormat.tryparsedate(X,ab);if(U!=null){this.filterdate=U}}}else{var aa=new Date(X);if(aa.toString()=="NaN"||aa.toString()=="Invalid Date"){this.filterdate=i.jqx.dataFormat.tryparsedate(X)}else{this.filterdate=aa}}if(!this.filterdate){var aa=new Date(X);if(aa.toString()=="NaN"||aa.toString()=="Invalid Date"){this.filterdate=i.jqx.dataFormat.tryparsedate(X)}else{this.filterdate=aa}}this.comparisonoperator=V;this.evaluate=function(ao){var an=this.filtervalue;var aw=this.comparisonoperator;if(ao==null||ao==undefined||ao==""){if(aw=="NOT_NULL"){return false}if(aw=="NULL"){return true}else{switch(aw){case"EQUAL":return ao==an;case"NOT_EQUAL":return ao!=an}return false}}else{if(aw=="NULL"){return false}if(aw=="NOT_NULL"){return true}}var ay=new Date();ay.setFullYear(1900,0,1);ay.setHours(12,0,0,0);try{var av=new Date(ao);if(av.toString()=="NaN"||av.toString()=="Invalid Date"){ao=i.jqx.dataFormat.tryparsedate(ao)}else{ao=av}ay=ao;var at=false;if(W!=undefined&&ab!=undefined){if(W.indexOf("t")>=0||W.indexOf("T")>=0||W.indexOf(":")>=0||W.indexOf("f")>=0){at=true;if(an&&an.toString().indexOf(":")==-1){var aj=i.jqx.dataFormat.tryparsedate(an.toString()+":00",ab);if(aj!=null){Z.filterdate=aj}}}}if(W!=undefined){if(W.indexOf("hh")>=0||W.indexOf("t")>=0){at=true}}if(!at){ay.setHours(0);ay.setMinutes(0);ay.setSeconds(0)}}catch(ap){if(ao.toString()!=""){return false}}if(Z.filterdate!=null){an=Z.filterdate}else{if(an&&an.indexOf){if(an.indexOf(":")!=-1||!isNaN(parseInt(an))){var ai=new Date(ay);ai.setHours(12,0,0,0);var ah=an.split(":");for(var au=0;au<ah.length;au++){if(au==0){ai.setHours(ah[au])}if(au==1){ai.setMinutes(ah[au])}if(au==2){ai.setSeconds(ah[au])}}an=ai}}}if(at){if(an&&an.setFullYear){if(ay&&ay.getFullYear){if(W.indexOf("d")==-1&&W.indexOf("M")==-1&&W.indexOf("y")==-1){an.setFullYear(ay.getFullYear(),ay.getMonth(),ay.getDate())}}}}var ax=function(aA,az){if(aA==null){aA=""}switch(aw){case"EQUAL":return aA.toString()==az.toString();case"NOT_EQUAL":return aA.toString()!=az.toString();case"GREATER_THAN":return aA>az;case"GREATER_THAN_OR_EQUAL":return aA>=az;case"LESS_THAN":return aA<az;case"LESS_THAN_OR_EQUAL":return aA<=az;case"STARTS_WITH":return i.jqx.string.startsWithIgnoreCase(aA.toString(),az.toString());case"ENDS_WITH":return i.jqx.string.endsWithIgnoreCase(aA.toString(),az.toString());case"ENDS_WITH_CASE_SENSITIVE":return i.jqx.string.endsWith(aA.toString(),az.toString());case"STARTS_WITH_CASE_SENSITIVE":return i.jqx.string.startsWith(aA.toString(),az.toString());case"CONTAINS":return i.jqx.string.containsIgnoreCase(aA.toString(),az.toString());case"CONTAINS_CASE_SENSITIVE":return i.jqx.string.contains(aA.toString(),az.toString());case"DOES_NOT_CONTAIN":return !i.jqx.string.containsIgnoreCase(aA.toString(),az.toString());case"DOES_NOT_CONTAIN_CASE_SENSITIVE":return !i.jqx.string.contains(aA.toString(),az.toString());default:return true}};var ag=new Array();if(an&&an.indexOf){if(an.indexOf("|")>=0||an.indexOf(" AND ")>=0||an.indexOf(" OR ")>=0||an.indexOf(" and ")>=0||an.indexOf(" or ")>=0){var aj=ax(ay,an);if(aj){return aj}var ak=an.indexOf(" AND ")>=0?an.split(" AND "):new Array();var af=an.indexOf(" OR ")>=0?an.split(" OR "):new Array();var ae=an.indexOf(" and ")>=0?an.split(" and "):new Array();var al=an.indexOf(" or ")>=0?an.split(" or "):new Array();ak=ak.concat(ae);af=af.concat(al);var ad=an.indexOf("|")>=0?an.split("|"):new Array();if(ad.length>0){for(var au=0;au<ad.length;au++){ad[au]=i.trim(ad[au])}}af=af.concat(ad);if(ak.length>0){for(var au=0;au<ak.length;au++){if(!ak[au].indexOf(" OR ")>=0){ag.push(ak[au])}}}if(af.length>0){for(var au=0;au<af.length;au++){if(!af[au].indexOf(" AND ")>=0){ag.push(af[au])}}}var ar=undefined;for(var aq=0;aq<ag.length;aq++){var ao=ag[aq];if(ao&&ao.indexOf&&ao.indexOf("..")>=0){var ac=ao.toString().split("..");if(ac.length==2){aj=ay>=ac[0]&&ay<=ac[1]}}else{var aj=ax(ay,ao)}var am=aq<ak.length?"and":"or";if(ar==undefined){ar=aj}else{if(am=="or"){ar=ar||aj}else{ar=ar&&aj}}}return ar}}if(an&&an.indexOf&&an.indexOf("..")>=0){ag=an.toString().split("..");if(ag.length==2){return ay>=ag[0]&&ay<=ag[1]}}return ax(ay,an)}};var e=function(V,U,W){this.filtervalue=V;this.comparisonoperator=U;this.evaluate=function(Y,X){return W(this.filtervalue,Y,this.comparisonoperator)}}}})(jqxBaseFramework); @@ -20,15 +20,15 @@ (function(b){var a=0;b.jqx.jqxWidget("jqxTouch","",{});b.extend(b.jqx._jqxTouch.prototype,{defineInstance:function(){this.swipeMin=50;this.swipeMax=500;this.swipeDelay=1000;this.tapHoldDelay=750;this.swipeMaxVerticalDisance=100;this.swipeMaxHorizontalDisance=100;this.orientationChangeEnabled=true;this._eventsMap={mousedown:b.jqx.mobile.getTouchEventName("touchstart"),mouseup:b.jqx.mobile.getTouchEventName("touchend"),mousemove:b.jqx.mobile.getTouchEventName("touchmove")};this._swipeLocked=false;this._rotationInterval=200;this._events=["tap","taphold","swipe","swipeleft","swiperight","swipetop","swipebottom","orientationchange"];this._instanceId=-1},createInstance:function(){a+=1;this._instanceId=a;this._isTouchDevice=b.jqx.mobile.isTouchDevice();this._defineRotateHandler()},refresh:function(){this._removeEventListeners();this._addEventListeners()},_defineRotateHandler:function(){var c=this;if(!this._rotateHandler){this._rotateHandler=function(){c._checkOrientation()}}},_getEvent:function(c){if(this._isTouchDevice){c=this._eventsMap[c]}return c+this._getEventNamespace()},_getEventNamespace:function(){return".swipe"+this._instanceId},_removeEventListeners:function(){clearInterval(this._rotateInterval);this.removeHandler(b(document),this._getEvent("mouseup"));this.removeHandler(this.host,this._getEvent("mousedown"));this.removeHandler(this.host,this._getEvent("mousemove"));if(window.removeEventListener){window.removeEventListener("resize",this._rotateHandler);window.removeEventListener("orientationchange",this._rotateHandler)}},_addEventListeners:function(){var c=this;this.addHandler(this.host,this._getEvent("mouseup"),function(d){c._resetSwipe();c._resetTap()});this.addHandler(this.host,this._getEvent("mousedown"),function(d){c._initSwipe(d);c._initTap(d)});this.addHandler(this.host,this._getEvent("mousemove"),function(d){c._maxSwipeVerticalDistance=Math.max(c._maxSwipeVerticalDistance,Math.abs(c._startY-c._getCoordinates(d).y));c._maxSwipeHorizontalDistance=Math.max(c._maxSwipeHorizontalDistance,Math.abs(c._startX-c._getCoordinates(d).x));c._mouseMoved=true;return c._handleSwipeEvents(d)});this._rotationListeners()},_handleSwipeEvents:function(d){var c=true;if(this._mouseDown&&!this._tapHoldFired){c=this._handleVerticalSwipeEvents(d);c=this._handleHorizontalSwipeEvents(d)}this._lastPosition=this._getCoordinates(d);return c},_handleVerticalSwipeEvents:function(f){var d,c;d=this._getCoordinates(f).y;c=d-this._startY;if(this._maxSwipeHorizontalDistance<this.swipeMaxHorizontalDisance){return this._swiped(f,c,2)}return true},_handleHorizontalSwipeEvents:function(f){var d,c;d=this._getCoordinates(f).x;c=d-this._startX;if(this._maxSwipeVerticalDistance<this.swipeMaxVerticalDisance){return this._swiped(f,c)}return true},_swiped:function(f,d,c){c=c||0;if(Math.abs(d)>=this.swipeMin&&!this._swipeEvent&&!this._swipeLocked){this._swipeEvent=this._getSwipeEvent(d,c)}if(Math.abs(d)<=this.swipeMax){f.stopImmediatePropagation();return false}return true},_getSwipeEvent:function(e,d){var c;if(e<0){c={eventId:3+d,data:{target:this.host}}}else{c={eventId:4+d,data:{target:this.host}}}return c},_resetSwipe:function(){if(this._swipeEvent&&!this._swipeLocked){this._raiseEvent(2,this._swipeEvent.data);this._raiseEvent(this._swipeEvent.eventId,this._swipeEvent.data)}clearTimeout(this._swipeTimeout);this._mouseDown=false},_resetTap:function(){clearTimeout(this._tapHoldTimeout);if(!this._tapHoldFired&&!this._mouseMoved){this._raiseEvent(0,{target:this.host})}},_initTap:function(d){var c=this;this._mouseMoved=false;this._tapHoldFired=false;this._tapHoldTimeout=setTimeout(function(){if(!c._mouseMoved){c._raiseEvent(1,{target:this.host});c._tapHoldFired=true}},this.tapHoldDelay)},_initSwipe:function(d){var c=this;this._mouseDown=true;this._maxSwipeVerticalDistance=0;this._maxSwipeHorizontalDistance=0;this._startX=this._getCoordinates(d).x;this._startY=this._getCoordinates(d).y;this._swipeLocked=false;this._swipeEvent=null;this._swipeTimeout=setTimeout(function(){c._swipeLocked=true},this.swipeDelay)},_rotationListeners:function(){var c=this;this._previousOrientation=window.orientation;this._previousWidth=screen.width;if(this.orientationChangeEnabled){if(window.addEventListener){window.addEventListener("resize",this._rotateHandler,false);window.addEventListener("orientationchange",this._rotateHandler,false)}this._rotateInterval=setInterval(function(){c._checkOrientation()},this._rotationInterval)}},_checkOrientation:function(){var c="vertical";if(window.orientation!==this._previousOrientation||this._previousWidth!==screen.width){if(window.orientation===90||screen.width>screen.height){c="horizontal"}this._raiseEvent(7,{orientation:c})}this._previousOrientation=window.orientation;this._previousWidth=screen.width},_raiseEvent:function(d,c){var e=b.Event(this._events[d]);e.args=c;return this.host.trigger(e)},_getCoordinates:function(d){var f=b.jqx.position(d);f.x=f.left;f.y=f.top;return f},propertyChangedHandler:function(c,d,f,e){if(d==="orientationChangeEnabled"){this.refresh()}else{return}},isTouchDevice:function(){return this._isTouchDevice}})}(jqxBaseFramework)); -(function(b){var a=(function(){var c={},u,q,j,l,g,h,o,p;function d(B,A,x,z,y,v,w){this.hierarchy=y;this.exportFormat=v;this.filename=w;B.beginFile(w);n(B);k(B);B.endFile(w);return B.getFile()}function n(z){var x=true;b.each(q,function(){if(this.hidden){x=false;return false}});z.beginHeader(x);var w=0;for(var v in q){if(q[v].columnsDataFields){v=q[v].columnsDataFields[w].displayfield}var y=m(v,q[v]);z.appendHeaderCell(q[v],v,y,x,w);w++}z.endHeader(x)}function k(x){x.beginBody();if(this.hierarchy){var w=function(z){for(var y=0;y<z.length;y+=1){if(z[y]!==undefined){x.beginRow(z[y].level);e(x,z[y],y,true);if(z[y].records){x.beginRows(z[y].level);w(z[y].records);x.endRows(z[y].level)}x.endRow(z[y].level)}}};w(u);x.endBody();return}for(var v=0;v<u.length;v+=1){if(u[v]!==undefined){e(x,u[v],v)}}x.endBody()}function e(A,z,B,v){var x;if(v!=true){A.beginRow()}var y=0;for(var w in q){if(q[w].columnsDataFields){w=q[w].columnsDataFields[y].displayfield}x=s(B,w);if(x){if(x.level!=undefined){if(x.index-1>z.level&&x.index-1<x.maxLevel){y++;continue}}if(x.maxLevel!=undefined){if(x.index-1==x.maxLevel){x=b.extend({},x);x.merge=x.maxLevel-z.level-1}}}if(z.level!=undefined&&z.label!=undefined){if(this.exportFormat==="xml"||this.exportFormat==="json"){var C={};C.text="group";A.appendBodyCell(z.label,C,x,z,y,"group");break}}if(z.hasOwnProperty(w)){A.appendBodyCell(z[w],q[w],x,z,y)}else{A.appendBodyCell("",q[w],x,z,y)}y++}if(v!=true){A.endRow()}}function m(w,x){if(x.style){return j[x.style]}var v=t();if(v.length>0){return v[0].style}return null}function t(){if(!g){g=new Array();b.each(j,function(v,w){g[g.length]={name:v,style:w}})}return g}function s(A,z){var B=q[z];if(B){if(B.customCellStyles){var x=B.customCellStyles[A];if(x){return j[x]}}if(B.cellStyle){if(B.cellAltStyle){var w=A%2;if(w==0){return j[B.cellStyle]}return j[B.cellAltStyle]}return j[B.cellStyle]}else{var v=t();if(v.length>0){var w=A%(v.length-1);var y=v[w+1].style;return y}}}return null}function r(y,w,x){var v=document.createElement("input");v.name=w;v.value=y;v.type="hidden";x.appendChild(v);return v}function f(x,v,w){var y=document.createElement("textarea");y.name=v;y.value=x;w.appendChild(y);return y}function i(w,z,y,v,A){var x=document.createElement("form");r(w,"filename",x);r(z,"format",x);f(y,"content",x);if(v==undefined||v==""){if(window&&window.location.toString().indexOf("jqwidgets.com")>=0){v="https://jqwidgets.com/export_server/dataexport.php"}else{v="http://jquerygrid.net/export_server/dataexport.php"}}x.action=v;x.method="post";if(A){x.acceptCharset=A}document.body.appendChild(x);return x}l=function(A,y,x,w,z,v){if(!(this instanceof a)){return new a(A,y,x,z,v)}u=A;q=y;j=x;this.exportTo=function(K,H,G,B){K=K.toString().toLowerCase();var D=c[K];if(typeof D==="undefined"){throw"You can't export to "+K+" format."}if(K==="pdf"&&B==undefined){var M=this.exportTo(K,H,K,"pdf");if(!b.jqx.pdfExport){b.jqx.pdfExport={orientation:"portrait",paperSize:"a4"}}var L=new pdfDataExport(b.jqx.pdfExport.orientation,"pt",b.jqx.pdfExport.paperSize);L.cellInitialize();var J=b(M).find("th");var I=b(M).find("tr");var N=0;L.setFontSize(13*72/96);var F=595;switch(b.jqx.pdfExport.paperSize){case"legal":var F=612;if(b.jqx.pdfExport.orientation!=="portrait"){F=1008}break;case"letter":var F=612;if(b.jqx.pdfExport.orientation!=="portrait"){F=792}break;case"a3":var F=841;if(b.jqx.pdfExport.orientation!=="portrait"){F=1190}break;case"a4":var F=595;if(b.jqx.pdfExport.orientation!=="portrait"){F=842}break;case"a5":var F=420;if(b.jqx.pdfExport.orientation!=="portrait"){F=595}break}F-=20;var E=0;var C=[];b.each(J,function(O){var P=parseInt(this.style.width);if(isNaN(P)){P=25}var Q=P*72/96;C[O]=Q;E+=Q});if(E>F){b.each(C,function(O){C[O]=(C[O]/E)*100;C[O]=C[O]*F/100})}b.each(J,function(P){var T=C[P];var S=25*72/96;var R=L.getTextDimensions(b(this).html());var Q=b(this).html();if(R.w+3>T){var O=L.splitTextToSize(Q,T-3);var U=O[0];if(U.length>3){Q=U.substring(0,U.length-3)+"..."}else{Q=U.substring(0,1)+"..."}var O=L.splitTextToSize(Q,T-3);var U=O[0];if(U!=Q){Q=U}}L.cell(10,10,T,S,Q,N)});N++;b.each(I,function(V){if(V===0){return true}var P=b(this).children();var Q=P.length>J.length;if(Q){var Y=P.length-J.length;var Z="";var X=C[0];var U=25*72/96;for(var R=0;R<=Y;R++){var O=P[R].innerHTML;if(O==="+"||O==="-"){O=O+" "}if(O===" "){O=" "}Z+=O}var T=L.getTextDimensions(Z);if(T.w+3>X){var W=L.splitTextToSize(Z,X-3);var S=W[0];if(S.length>3){Z=S.substring(0,S.length-3)+"..."}else{Z=S.substring(0,1)+"..."}var W=L.splitTextToSize(Z,X-3);var S=W[0];if(S!=Z){Z=S}}L.cell(10,10,X,U,Z,N);for(var R=Y+1;R<P.length;R++){var V=R-Y;var X=C[V];var U=25*72/96;var Z=b(P[R]).html();var T=L.getTextDimensions(b(P[R]).html());if(T.w+3>X){var W=L.splitTextToSize(Z,X-3);var S=W[0];if(S.length>3){Z=S.substring(0,S.length-3)+"..."}else{Z=S.substring(0,1)+"..."}var W=L.splitTextToSize(Z,X-3);var S=W[0];if(S!=Z){Z=S}}L.cell(10,10,X,U,Z,N)}N++;return true}b.each(P,function(ab){var af=C[ab];var ae=25*72/96;var ad=b(this).html();var ac=L.getTextDimensions(b(this).html());if(ac.w+3>af){var aa=L.splitTextToSize(ad,af-3);var ag=aa[0];if(ag.length>3){ad=ag.substring(0,ag.length-3)+"..."}else{ad=ag.substring(0,1)+"..."}var aa=L.splitTextToSize(ad,af-3);var ag=aa[0];if(ag!=ad){ad=ag}}L.cell(10,10,af,ae,ad,N)});N++});if(b.jqx.browser.msie&&b.jqx.browser.version<10){throw new Error("PDF export requires a browser with HTML5 support");return}return L}return d(D,u,q,j,H,G,B)};this.exportToFile=function(L,B,O,F,I){if(L==="pdf"){var N=this.exportTo(L,I,L,B);if(!b.jqx.pdfExport){b.jqx.pdfExport={orientation:"portrait",paperSize:"a4"}}var M=new pdfDataExport(b.jqx.pdfExport.orientation,"pt",b.jqx.pdfExport.paperSize);if(F=="utf-8"||F=="UTF-8"){M.setFont("courier","normal")}M.cellInitialize();var K=b(N).find("th");var J=b(N).find("tr");var P=0;M.setFontSize(13*72/96);var G=595;switch(b.jqx.pdfExport.paperSize){case"legal":var G=612;if(b.jqx.pdfExport.orientation!=="portrait"){G=1008}break;case"letter":var G=612;if(b.jqx.pdfExport.orientation!=="portrait"){G=792}break;case"a3":var G=841;if(b.jqx.pdfExport.orientation!=="portrait"){G=1190}break;case"a4":var G=595;if(b.jqx.pdfExport.orientation!=="portrait"){G=842}break;case"a5":var G=420;if(b.jqx.pdfExport.orientation!=="portrait"){G=595}break}G-=20;var E=0;var C=[];b.each(K,function(Q){var R=parseInt(this.style.width);if(isNaN(R)){R=25}var S=R*72/96;C[Q]=S;E+=S});if(E>G){b.each(C,function(Q){C[Q]=(C[Q]/E)*100;C[Q]=C[Q]*G/100})}b.each(K,function(R){var V=C[R];var U=25*72/96;var T=M.getTextDimensions(b(this).html());var S=b(this).html();if(T.w+3>V){var Q=M.splitTextToSize(S,V-3);var W=Q[0];if(W.length>3){S=W.substring(0,W.length-3)+"..."}else{S=W.substring(0,1)+"..."}var Q=M.splitTextToSize(S,V-3);var W=Q[0];if(W!=S){S=W}}M.cell(10,10,V,U,S,P)});P++;b.each(J,function(X){if(X===0){return true}var R=b(this).children();var S=R.length>K.length;if(S){var aa=R.length-K.length;var ab="";var Z=C[0];var W=25*72/96;for(var T=0;T<=aa;T++){var Q=R[T].innerHTML;if(Q==="+"||Q==="-"){Q=Q+" "}if(Q===" "){Q=" "}ab+=Q}var V=M.getTextDimensions(ab);if(V.w+3>Z){var Y=M.splitTextToSize(ab,Z-3);var U=Y[0];if(U.length>3){ab=U.substring(0,U.length-3)+"..."}else{ab=U.substring(0,1)+"..."}var Y=M.splitTextToSize(ab,Z-3);var U=Y[0];if(U!=ab){ab=U}}M.cell(10,10,Z,W,ab,P);for(var T=aa+1;T<R.length;T++){var X=T-aa;var Z=C[X];var W=25*72/96;var ab=b(R[T]).html();if(ab===" "){ab=" "}var V=M.getTextDimensions(b(R[T]).html());if(V.w+3>Z){var Y=M.splitTextToSize(ab,Z-3);var U=Y[0];if(U.length>3){ab=U.substring(0,U.length-3)+"..."}else{ab=U.substring(0,1)+"..."}var Y=M.splitTextToSize(ab,Z-3);var U=Y[0];if(U!=ab){ab=U}}M.cell(10,10,Z,W,ab,P)}P++;return true}b.each(R,function(ad){var ah=C[ad];var ag=25*72/96;var af=b(this).html();if(af===" "){af=" "}var ae=M.getTextDimensions(b(this).html());if(ae.w+3>ah){var ac=M.splitTextToSize(af,ah-3);var ai=ac[0];if(ai.length>3){af=ai.substring(0,ai.length-3)+"..."}else{af=ai.substring(0,1)+"..."}var ac=M.splitTextToSize(af,ah-3);var ai=ac[0];if(ai!=af){af=ai}}M.cell(10,10,ah,ag,af,P)});P++});if(b.jqx.browser.msie&&b.jqx.browser.version<10){throw new Error("PDF export requires a browser with HTML5 support");return}M.save(B+".pdf");return}var H=this.exportTo(L,I,L,B),D=i(B,L,H,O,F);D.submit();document.body.removeChild(D)};this.exportToLocalFile=function(F,C,D,B){var E=this.exportTo(F,D,B);document.location.href="data:application/octet-stream;filename="+C+","+encodeURIComponent(E)}};l.extend=function(v,w){if(w instanceof b.jqx.dataAdapter.DataExportModuleBase){c[v]=w}else{throw"The module "+v+" is not instance of DataExportModuleBase."}};return l}());b.jqx.dataAdapter.ArrayExporter=a})(jqxBaseFramework);(function(b){var a=function(){this.formatData=function(f,e,c,h){if(e==="date"){var d="";if(typeof f==="string"){d=b.jqx.dataFormat.tryparsedate(f);f=d}if(f===""||f===null){return""}d=b.jqx.dataFormat.formatdate(f,c,h);if((d&&d.toString()=="NaN")||d==null){return""}f=d}else{if(e==="number"||e==="float"||e==="int"||e=="integer"){if(f===""||f===null){return""}if(!isNaN(new Number(f))){var g=b.jqx.dataFormat.formatnumber(f,c,h);if(g.toString()=="NaN"){return""}else{f=g}}}else{f=f}}if(f===null){return""}return f};this.getFormat=function(f){var c=f?f.formatString:"";var e=f?f.localization:"";var d="string";d=f?f.type:"string";if(d=="number"||d=="float"){if(!c){c="f2"}}if(d=="int"||d=="integer"){if(!c){c="n0"}}if(d=="date"){if(!c){c="d"}}return{type:d,formatString:c,localization:e}};this.beginFile=function(){throw"Not implemented!"};this.beginHeader=function(){throw"Not implemented!"};this.appendHeaderCell=function(){throw"Not implemented!"};this.endHeader=function(){throw"Not implemented!"};this.beginBody=function(){throw"Not implemented!"};this.beginRow=function(){throw"Not implemented!"};this.beginRows=function(){throw"Not implemented!"};this.endRows=function(){throw"Not implemented!"};this.appendBodyCell=function(){throw"Not implemented!"};this.endRow=function(){throw"Not implemented!"};this.endBody=function(){throw"Not implemented!"};this.endFile=function(){throw"Not implemented!"};this.getFile=function(){throw"Not implemented!"}};b.jqx.dataAdapter.DataExportModuleBase=a})(jqxBaseFramework);(function(d){var c=function(j){var e,h,g;var l=0;var i=this;this.beginFile=function(){e=""};this.beginHeader=function(){};this.appendHeaderCell=function(q,r,p,m,n){if(p){if(p.level!=undefined){if(n<p.maxLevel){return}else{if(n===p.maxLevel){if(m){k(q.text)}for(var o=0;o<p.maxLevel;o++){k("")}return}}}}g=m;if(m){k(q.text)}};this.endHeader=function(){this.endRow()};this.beginBody=function(){l=0};this.beginRow=function(){if((l>0)||(l==0&&g)){e+="\n"}l++};this.appendBodyCell=function(q,m,p,r,n){if(p){if(p.maxLevel!=undefined){if(n===p.maxLevel){k(q,m);for(var o=0;o<p.maxLevel-r.level-1;o++){k("",m)}return}}}k(q,m)};this.endRow=function(){e=e.substring(0,e.length-1)};this.endBody=function(){};this.endFile=function(){};this.getFile=function(){return e};function f(m,o){if(o){var n=i.getFormat(o);m=i.formatData(m,n.type,n.formatString,n.localization)}m='"'+m+'"';return m}function k(m,n){m=f(m,n);e+=m+j}};c.prototype=new d.jqx.dataAdapter.DataExportModuleBase();var a=function(){};a.prototype=new c(",");var b=function(){};b.prototype=new c("\t");d.jqx.dataAdapter.ArrayExporter.extend("csv",new a());d.jqx.dataAdapter.ArrayExporter.extend("tsv",new b())})(jqxBaseFramework);(function(d){var a=function(){var i=false;var g;var h;var j=0;this.setPDF=function(){i=true};this.beginFile=function(k){if(i||k==undefined){g='<table style="empty-cells: show;" cellspacing="0" cellpadding="2">'}else{g='<html>\n\t<head>\n\t\t<title></title>\n\t\t<meta http-equiv=Content-type content="text/html; charset=UTF-8">\n\t</head>\n\t<body>\n\t\t<table style="empty-cells: show;" cellspacing="0" cellpadding="2">'}};this.beginHeader=function(){if(i){g+="\n\t<thead><tr>"}else{g+="\n\t\t\t<thead>"}};this.appendHeaderCell=function(m,n,l,k){h=k;if(!k){return}if(i){g+='\n\t\t\t\t<th style="'+f(l)+'">'+m.text+"</th>"}else{if(l.disabled){return}if(l.merge){if(m.width){g+="\n\t\t\t\t<th colspan="+(1+l.merge)+' style="width: '+m.width+"px; "+f(l)+'">'+m.text+"</th>"}else{g+="\n\t\t\t\t<th colspan="+(1+l.merge)+' style="'+f(l)+'">'+m.text+"</th>"}}else{if(m.width){g+='\n\t\t\t\t<th style="width: '+m.width+"px; "+f(l)+'">'+m.text+"</th>"}else{g+='\n\t\t\t\t<th style="'+f(l)+'">'+m.text+"</th>"}}}};this.endHeader=function(){if(i){g+="\n\t</tr></thead>"}else{g+="\n\t\t\t</thead>"}};this.beginBody=function(){if(i){g+="\n\t<tbody>"}else{g+="\n\t\t\t<tbody>"}j=0};this.beginRow=function(){if(i){g+="\n\t<tr>"}else{g+="\n\t\t\t\t<tr>"}j++};this.appendBodyCell=function(l,n,k){var m=this.getFormat(n);if(l===""){l=" "}if(i){if(j==1&&!h){g+='\n\t\t\t\t\t<td style="'+f(k)+' border-top-width: 1px;">'+this.formatData(l,m.type,m.formatString,m.localization)+"</td>"}else{g+='\n\t\t\t\t\t<td style="'+f(k)+'">'+this.formatData(l,m.type,m.formatString,m.localization)+"</td>"}}else{if(k.merge){if(j==1&&!h){g+="\n\t\t\t\t\t<td colspan="+(1+k.merge)+' style="'+f(k)+' border-top-width: 1px;">'+this.formatData(l,m.type,m.formatString,m.localization)+"</td>"}else{g+="\n\t\t\t\t\t<td colspan="+(1+k.merge)+' style="'+f(k)+'">'+this.formatData(l,m.type,m.formatString,m.localization)+"</td>"}}else{if(j==1&&!h){g+='\n\t\t\t\t\t<td style="'+f(k)+' border-top-width: 1px;">'+this.formatData(l,m.type,m.formatString,m.localization)+"</td>"}else{g+='\n\t\t\t\t\t<td style="'+f(k)+'">'+this.formatData(l,m.type,m.formatString,m.localization)+"</td>"}}}};this.endRow=function(){if(i){g+="\n\t</tr>"}else{g+="\n\t\t\t\t</tr>"}};this.endBody=function(){if(i){g+="\n\t</tbody>"}else{g+="\n\t\t\t</tbody>"}};this.endFile=function(k){if(i||k==undefined){g+="\n</table>"}else{g+="\n\t\t</table>\n\t</body>\n</html>\n"}};this.getFile=function(){return g};function f(m){var k="";for(var l in m){if(m.hasOwnProperty(l)){if(i&&l=="font-size"){m[l]="100%"}k+=l+":"+m[l]+";"}}return k}};a.prototype=new d.jqx.dataAdapter.DataExportModuleBase();var e=function(){};e.prototype=new a();var c=function(){};c.prototype=new a();var b=new c();d.jqx.dataAdapter.ArrayExporter.extend("html",new e());d.jqx.dataAdapter.ArrayExporter.extend("pdf",b)})(jqxBaseFramework);(function(b){var a=function(){var h,l,d,i,c,j,m={style:"",stylesMap:{font:{color:"Color","font-family":"FontName","font-style":"Italic","font-weight":"Bold"},interior:{"background-color":"Color",background:"Color"},alignment:{left:"Left",center:"Center",right:"Right"}},startStyle:function(p){this.style+='\n\t\t<Style ss:ID="'+p+'" ss:Name="'+p+'">'},buildAlignment:function(q){if(q["text-align"]){var r=this.stylesMap.alignment[q["text-align"]];if(!r){r="Left"}var p='\n\t\t\t<Alignment ss:Vertical="Bottom" ss:Horizontal="'+r+'"/>';this.style+=p}},buildBorder:function(s){if(s["border-color"]){var r="\n\t\t\t<Borders>";var u='\n\t\t\t\t<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="'+s["border-color"]+'"/>';var p='\n\t\t\t\t<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="'+s["border-color"]+'"/>';var q='\n\t\t\t\t<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="'+s["border-color"]+'"/>';var t='\n\t\t\t\t<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="'+s["border-color"]+'"/>';r+=u;r+=p;r+=q;r+=t;r+="\n\t\t\t</Borders>";this.style+=r}},buildFont:function(q){var r=this.stylesMap.font,p="\n\t\t\t<Font ";for(var s in r){if(typeof q[s]!=="undefined"){if(s==="font-style"&&q[s].toString().toLowerCase()==="italic"){p+='ss:Italic="1" '}else{if(s==="font-weight"&&q[s].toString().toLowerCase()==="bold"){p+='ss:Bold="1" '}else{if(s==="color"){p+="ss:"+r[s]+'="'+q[s]+'" '}}}}}p+="/>";this.style+=p},buildInterior:function(q){var r=this.stylesMap.interior,t="\n\t\t\t<Interior ";var p=false;for(var s in r){if(typeof q[s]!=="undefined"){t+="ss:"+r[s]+'="'+q[s]+'" ';p=true}}if(p){t+='ss:Pattern="Solid"'}t+="/>";this.style+=t},buildFormat:function(q){if(q.dataType=="number"||q.dataType=="float"||q.dataType=="int"||q.dataType=="integer"){var p=q.formatString;if(p==""||p.indexOf("n")!=-1||p.indexOf("N")!=-1){this.style+='\n\t\t\t<NumberFormat ss:Format="0"/>'}else{if(p=="f"||p=="F"||p=="D"||p.indexOf("d")!=-1){this.style+='\n\t\t\t<NumberFormat ss:Format="#,##0.00_);[Red](#,##0.00)"/>'}else{if(p.indexOf("p")!=-1||p.indexOf("P")!=-1){this.style+='\n\t\t\t<NumberFormat ss:Format="Percent"/>'}else{if(p.indexOf("c")!=-1||p.indexOf("C")!=-1){if(q.currencysymbol&&parseInt(q.currencysymbol.charCodeAt(0))==8364){this.style+='\n\t\t\t<NumberFormat ss:Format="Euro Currency"/>'}else{this.style+='\n\t\t\t<NumberFormat ss:Format="Currency"/>'}}}}}}else{if(q.dataType=="date"){this.style+='\n\t\t\t<NumberFormat ss:Format="Short Date"/>'}}},closeStyle:function(){this.style+="\n\t\t</Style>"},toString:function(){var p=this.style;this.style="";return p}};this.beginFile=function(){c={};j=0;h='<?xml version="1.0"?>\n\t<?mso-application progid="Excel.Sheet"?> \n\t<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" \n\txmlns:o="urn:schemas-microsoft-com:office:office" \n\txmlns:x="urn:schemas-microsoft-com:office:excel" \n\txmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" \n\txmlns:html="http://www.w3.org/TR/REC-html40"> \n\t<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> \n\t<Version>12.00</Version> \n\t</DocumentProperties> \n\t<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> \n\t<WindowHeight>8130</WindowHeight> \n\t<WindowWidth>15135</WindowWidth> \n\t<WindowTopX>120</WindowTopX> \n\t<WindowTopY>45</WindowTopY> \n\t<ProtectStructure>False</ProtectStructure> \n\t<ProtectWindows>False</ProtectWindows> \n\t</ExcelWorkbook> \n\t<Styles>'};this.beginHeader=function(){l='\n\t<Worksheet ss:Name="Sheet1">\n\t\t<Table>';d=[];i=[]};this.appendHeaderCell=function(r,s,q){var p=r.width!=undefined?r.width:r.text.length*10;l+='\n\t\t\t<Column ss:Width="'+p+'"/>';d.push(r);i.push(q)};this.endHeader=function(p){if(p){this.beginRow();for(var q=0;q<d.length;q+=1){if(i[q].disabled){continue}g.call(this,d[q]["text"],null,i[q])}this.endRow()}};this.beginBody=function(){};this.beginRow=function(q){if(q!=undefined){l+="\n\t\t\t";for(var p=0;p<q;p++){l+="\t"}l+="<Row>";return}l+="\n\t\t\t<Row>"};this.beginRows=function(p){l+="\n\t\t\t\t<Rows>"};this.appendBodyCell=function(r,p,q,s){g.call(this,r,p,q,s)};this.endRow=function(q){if(q!=undefined){l+="\n\t\t\t";for(var p=0;p<q;p++){l+="\t"}l+="</Row>";return}l+="\n\t\t\t</Row>"};this.endRows=function(q){if(q!=undefined){l+="\n\t\t\t";for(var p=0;p<q;p++){l+="\t"}l+="</Rows>";return}};this.endBody=function(){l+="\n\t\t</Table>"};this.endFile=function(){l+="\n\t</Worksheet>\n</Workbook>";h+="\n\t</Styles>"};this.getFile=function(){return h+l};function g(t,w,s,v){var r="String";var u=this.getFormat(w);if(t!=null&&t.toString().substring(0,3)=="_AG"){t=t.toString().substring(3);r="String"}else{if(u.type=="date"){var q=t;t=this.formatData(t,u.type,u.formatString,u.localization);if(t===null||t===""){t="";r="String"}else{t=q.toISOString();r="DateTime"}}if(u.type=="string"){if(t===null||t===undefined){t=""}else{if(t.toString().indexOf("&")>=0){t=t.toString().replace(/&/g,"&")}if(t.toString().indexOf(">")>=0){t=t.toString().replace(/>/g,">")}if(t.toString().indexOf("<")>=0){t=t.toString().replace(/</g,"<")}if(t.toString().indexOf('"')>=0){t=t.toString().replace(/"/g,""")}if(t.toString().indexOf("'")>=0){t=t.toString().replace(/'/g,"'")}}}if(s.dataType=="number"||s.dataType=="float"||s.dataType=="int"||s.dataType=="integer"){r="Number";t=parseFloat(t);if(t===null||isNaN(t)||t===""){t="";r="String"}if(t&&r!="String"&&t!=""){if(w&&w.formatString&&w.formatString.indexOf("p")>=0){t=t/100}}s.currencysymbol=w.localization.currencysymbol}}var p=f(s);if(s.merge){l+='\n\t\t\t\t<Cell ss:MergeAcross="'+s.merge+'" ss:StyleID="'+p+'"><Data ss:Type="'+r+'">'+t+"</Data></Cell>"}else{l+='\n\t\t\t\t<Cell ss:StyleID="'+p+'"><Data ss:Type="'+r+'">'+t+"</Data></Cell>"}}function n(){j+=1;return"xls-style-"+j}function k(q){for(var p in c){if(o(q,c[p])&&o(c[p],q)){return p}}return undefined}function o(t,q){var s=true;for(var r in t){if(t[r]!==q[r]){s=false}}return s}function e(q,p){m.startStyle(q);m.buildAlignment(p);m.buildBorder(p);m.buildFont(p);m.buildInterior(p);m.buildFormat(p);m.closeStyle();h+=m.toString()}function f(p){if(!p){return""}var q=k(p);if(typeof q==="undefined"){q=n();c[q]=p;e(q,p)}return q}};a.prototype=new b.jqx.dataAdapter.DataExportModuleBase();b.jqx.dataAdapter.ArrayExporter.extend("xls",new a())})(jqxBaseFramework);(function(b){var a=function(){var e,c,d;this.beginFile=function(){e='<?xml version="1.0" encoding="UTF-8" ?>';e+="\n<table>"};this.beginHeader=function(){c=[]};this.appendHeaderCell=function(f,g){c.push(g)};this.endHeader=function(){};this.beginBody=function(g,f){};this.beginRow=function(g){if(g!=undefined){if(this.hierarchy){e+="\n\t";for(var f=0;f<g;f++){e+="\t\t"}e+="<row>";d=0;return}}e+="\n\t<row>";d=0};this.beginRows=function(g){if(g!=undefined){e+="\n\t\t";for(var f=0;f<g;f++){e+="\t\t"}e+="<rows>";d=0;return}e+="\n\t\t<rows>"};this.appendBodyCell=function(j,n,g,m,h,l){var k=this.getFormat(n);j=this.formatData(j,k.type,k.formatString,k.localization);if(k.type=="string"){if(j.toString().indexOf("&")>=0){j=j.toString().replace(/&/g,"&")}if(j.toString().indexOf(">")>=0){j=j.toString().replace(/>/g,">")}if(j.toString().indexOf("<")>=0){j=j.toString().replace(/</g,"<")}if(j.toString().indexOf('"')>=0){j=j.toString().replace(/"/g,""")}if(j.toString().indexOf("'")>=0){j=j.toString().replace(/'/g,"'")}}if(m.level!=undefined){if(this.hierarchy){e+="\n\t\t";for(var f=0;f<m.level;f++){e+="\t\t"}if(l===undefined){e+="<"+c[d]+">"+j+"</"+c[d]+">"}else{e+="<"+l+">"+j+"</"+l+">"}}else{if(l!=undefined){e+="\n\t\t<"+l+">"+j+"</"+l+">"}else{e+="\n\t\t<"+c[d]+">"+j+"</"+c[d]+">"}}}else{e+="\n\t\t<"+c[d]+">"+j+"</"+c[d]+">"}d++};this.endRow=function(g){if(g!=undefined){if(this.hierarchy){e+="\n\t";for(var f=0;f<g;f++){e+="\t\t"}e+="</row>";d=0;return}}e+="\n\t</row>";d=0};this.endRows=function(g){if(g!=undefined){e+="\n\t\t";for(var f=0;f<g;f++){e+="\t\t"}e+="</rows>";d=0;return}e+="\n\t\t</rows>"};this.endBody=function(){};this.endFile=function(){e+="\n</table>"};this.getFile=function(){return e}};a.prototype=new b.jqx.dataAdapter.DataExportModuleBase();b.jqx.dataAdapter.ArrayExporter.extend("xml",new a())})(jqxBaseFramework);(function(d){var j=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,l={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function a(n){return'"'+n.replace(j,function(o){var p=l[o];return typeof p==="string"?p:"\\u"+("0000"+o.charCodeAt(0).toString(16)).slice(-4)})+'"'}function b(o){return o<10?"0"+o:o}function e(o){var n;if(isFinite(o.valueOf())){n=o.getUTCFullYear()+"-"+b(o.getUTCMonth()+1)+"-"+b(o.getUTCDate())+"T"+b(o.getUTCHours())+":"+b(o.getUTCMinutes())+":"+b(o.getUTCSeconds())+'Z"'}else{n="null"}return n}function g(q){var n=q.length,o=[],p;for(p=0;p<n;p++){o.push(h(p,q)||"null")}return"["+o.join(",")+"]"}function m(q){var o=[],p,n;for(p in q){if(Object.prototype.hasOwnProperty.call(q,p)){n=h(p,q);if(n){o.push(a(p)+":"+n)}}}return"{"+o.join(",")+"}"}function i(n){switch(Object.prototype.toString.call(n)){case"[object Date]":return e(n);case"[object Array]":return g(n)}return m(n)}function k(o,n){switch(n){case"string":return a(o);case"number":case"float":case"integer":case"int":return isFinite(o)?o:"null";case"boolean":return o}return"null"}function h(o,n){var q=n[o],p=typeof q;if(q&&typeof q==="object"&&typeof q.toJSON==="function"){q=q.toJSON(o);p=typeof q}if(/(number|float|int|integer|string|boolean)/.test(p)||(!q&&p==="object")){return k(q,p)}else{return i(q)}}function f(n){if(window.JSON&&typeof window.JSON.stringify==="function"){return window.JSON.stringify(n)}return h("",{"":n})}var c=function(){var q=this;this.prepareData=function(t,v){if(v){var u=q.getFormat(v);t=q.formatData(t,u.type,u.formatString,u.localization)}return t};var n,p,r,o=[],s=0;this.beginFile=function(){p=[]};this.beginHeader=function(){};this.appendHeaderCell=function(t){};this.endHeader=function(){};this.beginBody=function(u,t){};this.beginRow=function(){if(hierarchy){o[s]={}}else{r={}}};this.beginRows=function(){o[s].rows=[];s++;o[s]={}};this.endRows=function(){s--};this.appendBodyCell=function(u,t){var v=this.prepareData(u,t);if(hierarchy){o[s][t.text]=v}else{r[t.text]=v}};this.endRow=function(){if(hierarchy){if(s==0){p.push(o[s])}else{o[s-1].rows.push(o[s])}}else{p.push(r)}};this.endBody=function(){};this.endFile=function(){n=f(p)};this.getFile=function(){return n}};c.prototype=new d.jqx.dataAdapter.DataExportModuleBase();d.jqx.dataAdapter.ArrayExporter.extend("json",new c())})(jqxBaseFramework);var pdfDataExport=window.jqxPdfDataExport=(function(){if(typeof btoa==="undefined"){window.btoa=function(m){var h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s=h.split(""),g,f,e,q,p,o,n,t,l=0,u=0,k="",j=[],d;do{g=m.charCodeAt(l++);f=m.charCodeAt(l++);e=m.charCodeAt(l++);t=g<<16|f<<8|e;q=t>>18&63;p=t>>12&63;o=t>>6&63;n=t&63;j[u++]=s[q]+s[p]+s[o]+s[n]}while(l<m.length);k=j.join("");d=m.length%3;return(d?k.slice(0,d-3):k)+"===".slice(d||3)}}if(typeof atob==="undefined"){window.atob=function(l){var g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",f,e,d,p,o,n,m,q,k=0,r=0,h="",j=[];if(!l){return l}l+="";do{p=g.indexOf(l.charAt(k++));o=g.indexOf(l.charAt(k++));n=g.indexOf(l.charAt(k++));m=g.indexOf(l.charAt(k++));q=p<<18|o<<12|n<<6|m;f=q>>16&255;e=q>>8&255;d=q&255;if(n===64){j[r++]=String.fromCharCode(f)}else{if(m===64){j[r++]=String.fromCharCode(f,e)}else{j[r++]=String.fromCharCode(f,e,d)}}}while(k<l.length);h=j.join("");return h}}var c=typeof Object.keys==="function"?function(d){return Object.keys(d).length}:function(d){var f=0,g;for(g in d){if(d.hasOwnProperty(g)){f++}}return f},a=function(d){this.topics={};this.context=d;this.publish=function(h,m){if(this.topics[h]){var j=this.topics[h],o=[],n,g,e,f,k=function(){};m=Array.prototype.slice.call(arguments,1);for(g=0,e=j.length;g<e;g++){f=j[g];n=f[0];if(f[1]){f[0]=k;o.push(g)}n.apply(this.context,m)}for(g=0,e=o.length;g<e;g++){j.splice(o[g],1)}}};this.subscribe=function(e,g,f){if(!this.topics[e]){this.topics[e]=[[g,f]]}else{this.topics[e].push([g,f])}return{topic:e,callback:g}};this.unsubscribe=function(h){if(this.topics[h.topic]){var f=this.topics[h.topic],g,e;for(g=0,e=f.length;g<e;g++){if(f[g][0]===h.callback){f.splice(g,1)}}}}};function b(E,ae,M,V){if(typeof E==="undefined"){E="p"}else{E=E.toString().toLowerCase()}if(typeof ae==="undefined"){ae="mm"}if(typeof M==="undefined"){M="a4"}if(typeof V==="undefined"&&typeof zpipe==="undefined"){V=false}var at=M.toString().toLowerCase(),ao="0.9.0rc2",t=[],F=0,av=V,U="1.3",N={a3:[841.89,1190.55],a4:[595.28,841.89],a5:[420.94,595.28],letter:[612,792],legal:[612,1008]},ad="0 g",H="0 G",g=0,f=[],n=2,v=false,D=[],ai={},Q={},aj=16,d,z=0.200025,B,C,ak,O={title:"",subject:"",author:"",keywords:"",creator:""},R=0,T=0,P={},G=new a(P),af,aq,p=function(i){return i.toFixed(2)},o=function(i){return i.toFixed(3)},A=function(i){var k=(i).toFixed(0);if(i<10){return"0"+k}else{return k}},r=function(i){var k=(i).toFixed(0);if(k.length<10){return new Array(11-k.length).join("0")+k}else{return k}},ab=function(i){if(v){f[g].push(i)}else{t.push(i);F+=i.length+1}},w=function(){n++;D[n]=F;ab(n+" 0 obj");return n},K=function(i){ab("stream");ab(i);ab("endstream")},am,S,ap,al,aa=function(){am=C*ak;S=B*ak;var aB,aA,k,aw,ax,az,ay;for(aB=1;aB<=g;aB++){w();ab("<</Type /Page");ab("/Parent 1 0 R");ab("/Resources 2 0 R");ab("/Contents "+(n+1)+" 0 R>>");ab("endobj");aA=f[aB].join("\n");w();if(av){k=[];for(ax=0;ax<aA.length;++ax){k[ax]=aA.charCodeAt(ax)}ay=adler32cs.from(aA);az=new Deflater(6);az.append(new Uint8Array(k));aA=az.flush();k=[new Uint8Array([120,156]),new Uint8Array(aA),new Uint8Array([ay&255,(ay>>8)&255,(ay>>16)&255,(ay>>24)&255])];aA="";for(ax in k){if(k.hasOwnProperty(ax)){aA+=String.fromCharCode.apply(null,k[ax])}}ab("<</Length "+aA.length+" /Filter [/FlateDecode]>>")}else{ab("<</Length "+aA.length+">>")}K(aA);ab("endobj")}D[1]=F;ab("1 0 obj");ab("<</Type /Pages");ap="/Kids [";for(ax=0;ax<g;ax++){ap+=(3+2*ax)+" 0 R "}ab(ap+"]");ab("/Count "+g);ab("/MediaBox [0 0 "+p(am)+" "+p(S)+"]");ab(">>");ab("endobj")},X=function(i){i.objectNumber=w();ab("<</BaseFont/"+i.PostScriptName+"/Type/Font");if(typeof i.encoding==="string"){ab("/Encoding/"+i.encoding)}ab("/Subtype/Type1>>");ab("endobj")},J=function(){var i;for(i in ai){if(ai.hasOwnProperty(i)){X(ai[i])}}},L=function(){G.publish("putXobjectDict")},x=function(){ab("/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]");ab("/Font <<");var i;for(i in ai){if(ai.hasOwnProperty(i)){ab("/"+i+" "+ai[i].objectNumber+" 0 R")}}ab(">>");ab("/XObject <<");L();ab(">>")},h=function(){J();G.publish("putResources");D[2]=F;ab("2 0 obj");ab("<<");x();ab(">>");ab("endobj");G.publish("postPutResources")},m=function(aw,k,ax){var i;if(Q[k]===i){Q[k]={}}Q[k][ax]=aw},au={},u=function(i,ax,az,aw){var ay="F"+(c(ai)+1).toString(10),k=ai[ay]={id:ay,PostScriptName:i,fontName:ax,fontStyle:az,encoding:aw,metadata:{}};m(ay,ax,az);G.publish("addFont",k);return ay},e=function(){var k="helvetica",aG="times",aI="courier",aF="normal",aE="bold",aD="italic",aH="bolditalic",ax="StandardEncoding",aA=[["Helvetica",k,aF],["Helvetica-Bold",k,aE],["Helvetica-Oblique",k,aD],["Helvetica-BoldOblique",k,aH],["Courier",aI,aF],["Courier-Bold",aI,aE],["Courier-Oblique",aI,aD],["Courier-BoldOblique",aI,aH],["Times-Roman",aG,aF],["Times-Bold",aG,aE],["Times-Italic",aG,aD],["Times-BoldItalic",aG,aH]],aC,ay,aB,az;for(aC=0,ay=aA.length;aC<ay;aC++){var aw=ax;aB=u(aA[aC][0],aA[aC][1],aA[aC][2],aw);az=aA[aC][0].split("-");m(aB,az[0],az[1]||"")}G.publish("addFonts",{fonts:ai,dictionary:Q})},s=function(aG,ax){var aC,aA,az,ay,aE,aD,aw,aF,k,aB;if(ax===az){ax={}}ay=ax.sourceEncoding?ay:"Unicode";aD=ax.outputEncoding;if((ax.autoencode||aD)&&ai[d].metadata&&ai[d].metadata[ay]&&ai[d].metadata[ay].encoding){aE=ai[d].metadata[ay].encoding;if(!aD&&ai[d].encoding){aD=ai[d].encoding}if(!aD&&aE.codePages){aD=aE.codePages[0]}if(typeof aD==="string"){aD=aE[aD]}if(aD){aF=false;aw=[];for(aC=0,aA=aG.length;aC<aA;aC++){k=aD[aG.charCodeAt(aC)];if(k){aw.push(String.fromCharCode(k))}else{aw.push(aG[aC])}if(aw[aC].charCodeAt(0)>>8){aF=true}}aG=aw.join("")}}aC=aG.length;while(aF===az&&aC!==0){if(aG.charCodeAt(aC-1)>>8){aF=true}aC--}if(!aF){return aG}else{aw=ax.noBOM?[]:[254,255];for(aC=0,aA=aG.length;aC<aA;aC++){k=aG.charCodeAt(aC);aB=k>>8;if(aB>>8){throw new Error("Character at position "+aC.toString(10)+" of string '"+aG+"' exceeds 16bits. Cannot be encoded into UCS-2 BE")}aw.push(aB);aw.push(k-(aB<<8))}return String.fromCharCode.apply(az,aw)}},Z=function(k,i){return s(k,i).replace(/\\/g,"\\\\").replace(/\(/g,"\\(").replace(/\)/g,"\\)")},Y=function(){ab("/Producer (pdfDataExport "+ao+")");if(O.title){ab("/Title ("+Z(O.title)+")")}if(O.subject){ab("/Subject ("+Z(O.subject)+")")}if(O.author){ab("/Author ("+Z(O.author)+")")}if(O.keywords){ab("/Keywords ("+Z(O.keywords)+")")}if(O.creator){ab("/Creator ("+Z(O.creator)+")")}var i=new Date();ab("/CreationDate (D:"+[i.getFullYear(),A(i.getMonth()+1),A(i.getDate()),A(i.getHours()),A(i.getMinutes()),A(i.getSeconds())].join("")+")")},W=function(){ab("/Type /Catalog");ab("/Pages 1 0 R");ab("/OpenAction [3 0 R /FitH null]");ab("/PageLayout /OneColumn");G.publish("putCatalog")},l=function(){ab("/Size "+(n+1));ab("/Root "+n+" 0 R");ab("/Info "+(n-1)+" 0 R")},ar=function(){g++;v=true;f[g]=[]},ah=function(){ar();ab(p(z*ak)+" w");ab(H);if(R!==0){ab(R.toString(10)+" J")}if(T!==0){ab(T.toString(10)+" j")}G.publish("addPage",{pageNumber:g})},y=function(aw,ay){var i,k;if(aw===k){aw=ai[d].fontName}if(ay===k){ay=ai[d].fontStyle}try{i=Q[aw][ay]}catch(ax){i=k}if(!i){throw new Error("Unable to look up font label for font '"+aw+"', '"+ay+"'. Refer to getFontList() for available fonts.")}return i},q=function(){v=false;t=[];D=[];ab("%PDF-"+U);aa();h();w();ab("<<");Y();ab(">>");ab("endobj");w();ab("<<");W();ab(">>");ab("endobj");var aw=F,k;ab("xref");ab("0 "+(n+1));ab("0000000000 65535 f ");for(k=1;k<=n;k++){ab(r(D[k])+" 00000 n ")}ab("trailer");ab("<<");l();ab(">>");ab("startxref");ab(aw);ab("%%EOF");v=true;return t.join("\n")},ac=function(i){var k="S";if(i==="F"){k="f"}else{if(i==="FD"||i==="DF"){k="B"}}return k},I=function(az,aw){var ay,aB,aA,aC,ax,k;switch(az){case ay:return q();case"save":if(navigator.getUserMedia){if(window.URL===undefined){return P.output("dataurlnewwindow")}else{if(window.URL.createObjectURL===undefined){return P.output("dataurlnewwindow")}}}aB=q();aA=aB.length;aC=new Uint8Array(new ArrayBuffer(aA));for(ax=0;ax<aA;ax++){aC[ax]=aB.charCodeAt(ax)}k=new Blob([aC],{type:"application/pdf"});saveAs(k,aw);break;case"datauristring":case"dataurlstring":return"data:application/pdf;base64,"+btoa(q());case"datauri":case"dataurl":document.location.href="data:application/pdf;base64,"+btoa(q());break;case"dataurlnewwindow":window.open("data:application/pdf;base64,"+btoa(q()));break;default:throw new Error('Output type "'+az+'" is not supported.')}};if(ae==="pt"){ak=1}else{if(ae==="mm"){ak=72/25.4}else{if(ae==="cm"){ak=72/2.54}else{if(ae==="in"){ak=72}else{throw ("Invalid unit: "+ae)}}}}if(N.hasOwnProperty(at)){B=N[at][1]/ak;C=N[at][0]/ak}else{try{B=M[1];C=M[0]}catch(an){throw ("Invalid format: "+M)}}if(E==="p"||E==="portrait"){E="p";if(C>B){af=C;C=B;B=af}}else{if(E==="l"||E==="landscape"){E="l";if(B>C){af=C;C=B;B=af}}else{throw ("Invalid orientation: "+E)}}P.internal={pdfEscape:Z,getStyle:ac,getFont:function(){return ai[y.apply(P,arguments)]},getFontSize:function(){return aj},btoa:btoa,write:function(i,ax,aw,k){ab(arguments.length===1?i:Array.prototype.join.call(arguments," "))},getCoordinateString:function(i){return p(i*ak)},getVerticalCoordinateString:function(i){return p((B-i)*ak)},collections:{},newObject:w,putStream:K,events:G,scaleFactor:ak,pageSize:{width:C,height:B},output:function(k,i){return I(k,i)}};P.addPage=function(){ah();return this};var ag=["","0","00","000","0000"];var j=function(aA,aw){var ax=["FEFF"];for(var az=0,k=aA.length,ay;az<k;++az){ay=aA.charCodeAt(az).toString(16).toUpperCase();ax.push(ag[4-ay.length],ay)}return ax.join("")};P.text16=function(aF,aE,aC,aw){var ax,aA,az,aD,k,aB,ay;if(typeof aF==="number"){aA=aC;az=aF;aD=aE;aF=aA;aE=az;aC=aD}if(typeof aF==="string"&&aF.match(/[\n\r]/)){aF=aF.split(/\r\n|\r|\n/g)}if(typeof aw==="undefined"){aw={noBOM:true,autoencode:true}}else{if(aw.noBOM===ax){aw.noBOM=true}if(aw.autoencode===ax){aw.autoencode=true}}aw.autoencode=false;if(typeof aF==="string"){aB=j(aF,aw)}else{if(aF instanceof Array){k=aF.concat();for(ay=k.length-1;ay!==-1;ay--){k[ay]=j(k[ay],aw)}aB=k.join("> Tj\nT* <")}else{throw new Error('Type of text must be string or Array. "'+aF+'" is not recognized.')}}ab("BT\n/"+d+" "+aj+" Tf\n"+aj+" TL\n"+ad+"\n"+p(aE*ak)+" "+p((B-aC)*ak)+" Td\n<"+aB+"> Tj\nET");return this};P.text=function(aF,aE,aC,aw){var ax,aA,az,aD,k,aB,ay;if(typeof aF==="number"){aA=aC;az=aF;aD=aE;aF=aA;aE=az;aC=aD}if(typeof aF==="string"&&aF.match(/[\n\r]/)){aF=aF.split(/\r\n|\r|\n/g)}if(typeof aw==="undefined"){aw={noBOM:true,autoencode:true}}else{if(aw.noBOM===ax){aw.noBOM=true}if(aw.autoencode===ax){aw.autoencode=true}}if(typeof aF==="string"){aB=Z(aF,aw)}else{if(aF instanceof Array){k=aF.concat();for(ay=k.length-1;ay!==-1;ay--){k[ay]=Z(k[ay],aw)}aB=k.join(") Tj\nT* (")}else{throw new Error('Type of text must be string or Array. "'+aF+'" is not recognized.')}}ab("BT\n/"+d+" "+aj+" Tf\n"+aj+" TL\n"+ad+"\n"+p(aE*ak)+" "+p((B-aC)*ak)+" Td\n("+aB+") Tj\nET");return this};P.line=function(k,ax,i,aw){ab(p(k*ak)+" "+p((B-ax)*ak)+" m "+p(i*ak)+" "+p((B-aw)*ak)+" l S");return this};P.lines=function(k,aF,aE,aO,aK){var ay,aM,aC,aD,aB,aA,aI,aG,aN,aL,az,aJ,ax,aH,aw;if(typeof k==="number"){aM=aE;aC=k;aD=aF;k=aM;aF=aC;aE=aD}aK=ac(aK);aO=aO===ay?[1,1]:aO;ab(o(aF*ak)+" "+o((B-aE)*ak)+" m ");aB=aO[0];aA=aO[1];aG=k.length;aH=aF;aw=aE;for(aI=0;aI<aG;aI++){aN=k[aI];if(aN.length===2){aH=aN[0]*aB+aH;aw=aN[1]*aA+aw;ab(o(aH*ak)+" "+o((B-aw)*ak)+" l")}else{aL=aN[0]*aB+aH;az=aN[1]*aA+aw;aJ=aN[2]*aB+aH;ax=aN[3]*aA+aw;aH=aN[4]*aB+aH;aw=aN[5]*aA+aw;ab(o(aL*ak)+" "+o((B-az)*ak)+" "+o(aJ*ak)+" "+o((B-ax)*ak)+" "+o(aH*ak)+" "+o((B-aw)*ak)+" c")}}ab(aK);return this};P.rect=function(i,az,k,ax,aw){var ay=ac(aw);ab([p(i*ak),p((B-az)*ak),p(k*ak),p(-ax*ak),"re",ay].join(" "));return this};P.triangle=function(ax,aA,k,ay,i,aw,az){this.lines([[k-ax,ay-aA],[i-k,aw-ay],[ax-i,aA-aw]],ax,aA,[1,1],az);return this};P.roundedRect=function(k,aB,aw,ay,aA,az,ax){var i=4/3*(Math.SQRT2-1);this.lines([[(aw-2*aA),0],[(aA*i),0,aA,az-(az*i),aA,az],[0,(ay-2*az)],[0,(az*i),-(aA*i),az,-aA,az],[(-aw+2*aA),0],[-(aA*i),0,-aA,-(az*i),-aA,-az],[0,(-ay+2*az)],[0,-(az*i),(aA*i),-az,aA,-az]],k+aA,aB,[1,1],ax);return this};P.ellipse=function(i,aB,az,ay,k){var aA=ac(k),ax=4/3*(Math.SQRT2-1)*az,aw=4/3*(Math.SQRT2-1)*ay;ab([p((i+az)*ak),p((B-aB)*ak),"m",p((i+az)*ak),p((B-(aB-aw))*ak),p((i+ax)*ak),p((B-(aB-ay))*ak),p(i*ak),p((B-(aB-ay))*ak),"c"].join(" "));ab([p((i-ax)*ak),p((B-(aB-ay))*ak),p((i-az)*ak),p((B-(aB-aw))*ak),p((i-az)*ak),p((B-aB)*ak),"c"].join(" "));ab([p((i-az)*ak),p((B-(aB+aw))*ak),p((i-ax)*ak),p((B-(aB+ay))*ak),p(i*ak),p((B-(aB+ay))*ak),"c"].join(" "));ab([p((i+ax)*ak),p((B-(aB+ay))*ak),p((i+az)*ak),p((B-(aB+aw))*ak),p((i+az)*ak),p((B-aB)*ak),"c",aA].join(" "));return this};P.circle=function(i,ax,aw,k){return this.ellipse(i,ax,aw,aw,k)};P.setProperties=function(i){var k;for(k in O){if(O.hasOwnProperty(k)&&i[k]){O[k]=i[k]}}return this};P.setFontSize=function(i){aj=i;return this};P.setFont=function(i,k){d=y(i,k);return this};P.setFontStyle=P.setFontType=function(k){var i;d=y(i,k);return this};P.getFontList=function(){var aw={},k,ax,i;for(k in Q){if(Q.hasOwnProperty(k)){aw[k]=i=[];for(ax in Q[k]){if(Q[k].hasOwnProperty(ax)){i.push(ax)}}}}return aw};P.setLineWidth=function(i){ab((i*ak).toFixed(2)+" w");return this};P.setDrawColor=function(ay,ax,aw,i){var k;if(ax===undefined||(i===undefined&&ay===ax===aw)){if(typeof ay==="string"){k=ay+" G"}else{k=p(ay/255)+" G"}}else{if(i===undefined){if(typeof ay==="string"){k=[ay,ax,aw,"RG"].join(" ")}else{k=[p(ay/255),p(ax/255),p(aw/255),"RG"].join(" ")}}else{if(typeof ay==="string"){k=[ay,ax,aw,i,"K"].join(" ")}else{k=[p(ay),p(ax),p(aw),p(i),"K"].join(" ")}}}ab(k);return this};P.setFillColor=function(ay,ax,aw,i){var k;if(ax===undefined||(i===undefined&&ay===ax===aw)){if(typeof ay==="string"){k=ay+" g"}else{k=p(ay/255)+" g"}}else{if(i===undefined){if(typeof ay==="string"){k=[ay,ax,aw,"rg"].join(" ")}else{k=[p(ay/255),p(ax/255),p(aw/255),"rg"].join(" ")}}else{if(typeof ay==="string"){k=[ay,ax,aw,i,"k"].join(" ")}else{k=[p(ay),p(ax),p(aw),p(i),"k"].join(" ")}}}ab(k);return this};P.setTextColor=function(aw,k,i){if((aw===0&&k===0&&i===0)||(typeof k==="undefined")){ad=o(aw/255)+" g"}else{ad=[o(aw/255),o(k/255),o(i/255),"rg"].join(" ")}return this};P.CapJoinStyles={0:0,butt:0,but:0,bevel:0,1:1,round:1,rounded:1,circle:1,2:2,projecting:2,project:2,square:2,milter:2};P.setLineCap=function(i){var k=this.CapJoinStyles[i];if(k===undefined){throw new Error("Line cap style of '"+i+"' is not recognized. See or extend .CapJoinStyles property for valid styles")}R=k;ab(k.toString(10)+" J");return this};P.setLineJoin=function(i){var k=this.CapJoinStyles[i];if(k===undefined){throw new Error("Line join style of '"+i+"' is not recognized. See or extend .CapJoinStyles property for valid styles")}T=k;ab(k.toString(10)+" j");return this};P.output=I;P.save=function(i){P.output("save",i)};for(aq in b.API){if(b.API.hasOwnProperty(aq)){if(aq==="events"&&b.API.events.length){(function(ax,az){var ay,aw,k;for(k=az.length-1;k!==-1;k--){ay=az[k][0];aw=az[k][1];ax.subscribe.apply(ax,[ay].concat(typeof aw==="function"?[aw]:aw))}}(G,b.API.events))}else{P[aq]=b.API[aq]}}}e();d="F1";ah();G.publish("initialized");return P}b.API={events:[]};return b}());(function(i){var b=0,m=0,a,o,h,c={x:undefined,y:undefined,w:undefined,h:undefined,ln:undefined},f=1,e=false,d=function(p,t,q,r,s){c={x:p,y:t,w:q,h:r,ln:s}},k=function(){return c},j=function(p){b=p},l=function(){return b},n=function(p){m=p},g=function(p){return m};i.getTextDimensions=function(p){a=this.internal.getFont().fontName;o=this.internal.getFontSize();h=this.internal.getFont().fontStyle;var s=0.264583*72/25.4,q,r;r=document.createElement("font");r.id="pdfDataExportCell";r.style.fontStyle=h;r.style.fontName=a;r.style.fontSize=o+"pt";r.innerHTML=p;document.body.appendChild(r);q={w:(r.offsetWidth+1)*s,h:(r.offsetHeight+1)*s};document.body.removeChild(r);return q};i.cellAddPage=function(){this.addPage();d(undefined,undefined,undefined,undefined,undefined);e=true;f+=1;n(1)};i.cellInitialize=function(){b=0;c={x:undefined,y:undefined,w:undefined,h:undefined,ln:undefined};f=1;e=false;n(0)};i.cell=function(z,v,A,s,p,u){this.lnMod=this.lnMod===undefined?0:this.lnMod;if(this.printingHeaderRow!==true&&this.lnMod!==0){u=u+this.lnMod}if((((u*s)+v+(s*2))/f)>=this.internal.pageSize.height&&f===1&&!e){this.cellAddPage();if(this.printHeaders&&this.tableHeaderRow){this.printHeaderRow(u);this.lnMod+=1;u+=1}if(l()===0){j(Math.round((this.internal.pageSize.height-(s*2))/s))}}else{if(e&&k().ln!==u&&g()===l()){this.cellAddPage();if(this.printHeaders&&this.tableHeaderRow){this.printHeaderRow(u);this.lnMod+=1;u+=1}}}var B=k(),r=this.getTextDimensions(p),t=1;if(B.x!==undefined&&B.ln===u){z=B.x+B.w}if(B.y!==undefined&&B.y===v){v=B.y}if(B.h!==undefined&&B.h===s){s=B.h}if(B.ln!==undefined&&B.ln===u){u=B.ln;t=0}if(e){v=s*(g()+t)}else{v=(v+(s*Math.abs(l()*f-u-l())))}this.rect(z,v,A,s);var q=/[а-яА-ЯЁё]/.test(p);if(q){this.text16(p,z+3,v+s-3)}else{this.text(p,z+3,v+s-3)}n(g()+t);d(z,v,A,s,u);return this};i.getKeys=(typeof Object.keys==="function")?function(p){if(!p){return[]}return Object.keys(p)}:function(p){var q=[],r;for(r in p){if(p.hasOwnProperty(r)){q.push(r)}}return q};i.arrayMax=function(u,t){var p=u[0],q,s,r;for(q=0,s=u.length;q<s;q+=1){r=u[q];if(t){if(t(p,r)===-1){p=r}}else{if(r>p){p=r}}}return p};i.table=function(J,r,I){var v=[],p=[],D,z,B,x,E,y,G={},A={},u,s,H=[],C,F=[],t,q,w;this.lnMod=0;if(I){z=I.autoSize||false;B=this.printHeaders=I.printHeaders||true;x=I.autoStretch||true}if(!J){throw"No data for PDF table"}if(r===undefined||(r===null)){v=this.getKeys(J[0])}else{if(r[0]&&(typeof r[0]!=="string")){for(E=0,y=r.length;E<y;E+=1){D=r[E];v.push(D.name);p.push(D.prompt)}}else{v=r}}if(I.autoSize){w=function(K){return K[D]};for(E=0,y=v.length;E<y;E+=1){D=v[E];G[D]=J.map(w);H.push(this.getTextDimensions(p[E]||D).w);s=G[D];for(C=0,y=s.length;C<y;C+=1){u=s[C];H.push(this.getTextDimensions(u).w)}A[D]=i.arrayMax(H)}}if(I.printHeaders){for(E=0,y=v.length;E<y;E+=1){D=v[E];F.push([10,10,A[D],25,String(p.length?p[E]:D)])}this.setTableHeaderRow(F);this.printHeaderRow(1)}for(E=0,y=J.length;E<y;E+=1){t=J[E];for(C=0,q=v.length;C<q;C+=1){D=v[C];this.cell(10,10,A[D],25,String(t[D]),E+2)}}return this};i.setTableHeaderRow=function(p){this.tableHeaderRow=p};i.printHeaderRow=function(p){if(!this.tableHeaderRow){throw"Property tableHeaderRow does not exist."}var q,s,r,t;this.printingHeaderRow=true;for(r=0,t=this.tableHeaderRow.length;r<t;r+=1){q=this.tableHeaderRow[r];s=[].concat(q);this.cell.apply(this,s.concat(p))}this.printingHeaderRow=false}}(pdfDataExport.API));(function(c){var b=c.getCharWidthsArray=function(s,u){if(!u){u={}}var h=u.widths?u.widths:this.internal.getFont().metadata.Unicode.widths,r=h.fof?h.fof:1,n=u.kerning?u.kerning:this.internal.getFont().metadata.Unicode.kerning,p=n.fof?n.fof:1;var m,j,o,k,q=0,t=h[0]||r,g=[];for(m=0,j=s.length;m<j;m++){o=s.charCodeAt(m);g.push((h[o]||t)/r+(n[o]&&n[o][q]||0)/p);q=o}return g};var e=function(j){var h=j.length,g=0;while(h){h--;g+=j[h]}return g};var a=c.getStringUnitWidth=function(h,g){return e(b.call(this,h,g))};var d=function(g,n,h,j){var q=[];var m=0,k=g.length,p=0;while(m!==k&&p+n[m]<h){p+=n[m];m++}q.push(g.slice(0,m));var o=m;p=0;while(m!==k){if(p+n[m]>j){q.push(g.slice(o,m));p=0;o=m}p+=n[m];m++}if(o!==m){q.push(g.slice(o,m))}return q};var f=function(s,k,v){if(!v){v={}}var t=b(" ",v)[0];var r=s.split(" ");var w=[],x=[w],h=v.textIndent||0,u=0,p=0,g,q;var o,m,n;for(o=0,m=r.length;o<m;o++){g=r[o];q=b(g,v);p=e(q);if(h+u+p>k){if(p>k){n=d(g,q,k-(h+u),k);w.push(n.shift());w=[n.pop()];while(n.length){x.push([n.shift()])}p=e(q.slice(g.length-w[0].length))}else{w=[g]}x.push(w);h=p;u=t}else{w.push(g);h+=u+p;u=t}}var j=[];for(o=0,m=x.length;o<m;o++){j.push(x[o].join(" "))}return j};c.splitTextToSize=function(q,m,r){if(!r){r={}}var h=r.fontSize||this.internal.getFontSize(),g=(function(l){var t={0:1},i={};if(!l.widths||!l.kerning){var u=this.internal.getFont(l.fontName,l.fontStyle),s="Unicode";if(u.metadata[s]){return{widths:u.metadata[s].widths||t,kerning:u.metadata[s].kerning||i}}}else{return{widths:l.widths,kerning:l.kerning}}return{widths:t,kerning:i}}).call(this,r);var p;if(q.match(/[\n\r]/)){p=q.split(/\r\n|\r|\n/g)}else{p=[q]}var j=1*this.internal.scaleFactor*m/h;g.textIndent=r.textIndent?r.textIndent*1*this.internal.scaleFactor/h:0;var o,n,k=[];for(o=0,n=p.length;o<n;o++){k=k.concat(f(p[o],j,g))}return k}})(pdfDataExport.API);(function(c){var d="addImage_";var f=function(m){var l,h;if(!m.charCodeAt(0)===255||!m.charCodeAt(1)===216||!m.charCodeAt(2)===255||!m.charCodeAt(3)===224||!m.charCodeAt(6)==="J".charCodeAt(0)||!m.charCodeAt(7)==="F".charCodeAt(0)||!m.charCodeAt(8)==="I".charCodeAt(0)||!m.charCodeAt(9)==="F".charCodeAt(0)||!m.charCodeAt(10)===0){throw new Error("getJpegSize requires a binary jpeg file")}var j=m.charCodeAt(4)*256+m.charCodeAt(5);var k=4,g=m.length;while(k<g){k+=j;if(m.charCodeAt(k)!==255){throw new Error("getJpegSize could not find the size of the image")}if(m.charCodeAt(k+1)===192){h=m.charCodeAt(k+5)*256+m.charCodeAt(k+6);l=m.charCodeAt(k+7)*256+m.charCodeAt(k+8);return[l,h]}else{k+=2;j=m.charCodeAt(k)*256+m.charCodeAt(k+1)}}},b=function(g){var m=this.internal.newObject(),h=this.internal.write,l=this.internal.putStream;g.n=m;h("<</Type /XObject");h("/Subtype /Image");h("/Width "+g.w);h("/Height "+g.h);if(g.cs==="Indexed"){h("/ColorSpace [/Indexed /DeviceRGB "+(g.pal.length/3-1)+" "+(m+1)+" 0 R]")}else{h("/ColorSpace /"+g.cs);if(g.cs==="DeviceCMYK"){h("/Decode [1 0 1 0 1 0 1 0]")}}h("/BitsPerComponent "+g.bpc);if("f" in g){h("/Filter /"+g.f)}if("dp" in g){h("/DecodeParms <<"+g.dp+">>")}if("trns" in g&&g.trns.constructor==Array){var k="";for(var j=0;j<g.trns.length;j++){k+=(g[k][j]+" "+g.trns[j]+" ");h("/Mask ["+k+"]")}}if("smask" in g){h("/SMask "+(m+1)+" 0 R")}h("/Length "+g.data.length+">>");l(g.data);h("endobj")},e=function(){var g=this.internal.collections[d+"images"];for(var h in g){b.call(this,g[h])}},a=function(){var g=this.internal.collections[d+"images"],h=this.internal.write,k;for(var j in g){k=g[j];h("/I"+k.i,k.n,"0","R")}};c.addImage=function(g,s,q,p,t,l){if(typeof g==="object"&&g.nodeType===1){var j=document.createElement("canvas");j.width=g.clientWidth;j.height=g.clientHeight;var u=j.getContext("2d");if(!u){throw ("addImage requires canvas to be supported by browser.")}u.drawImage(g,0,0,j.width,j.height);g=j.toDataURL("image/jpeg");s="JPEG"}if(s.toUpperCase()!=="JPEG"){throw new Error("addImage currently only supports format 'JPEG', not '"+s+"'")}var i,n=this.internal.collections[d+"images"],m=this.internal.getCoordinateString,o=this.internal.getVerticalCoordinateString;if(g.substring(0,23)==="data:image/jpeg;base64,"){g=atob(g.replace("data:image/jpeg;base64,",""))}if(n){i=Object.keys?Object.keys(n).length:(function(w){var h=0;for(var v in w){if(w.hasOwnProperty(v)){h++}}return h})(n)}else{i=0;this.internal.collections[d+"images"]=n={};this.internal.events.subscribe("putResources",e);this.internal.events.subscribe("putXobjectDict",a)}var r=f(g);var k={w:r[0],h:r[1],cs:"DeviceRGB",bpc:8,f:"DCTDecode",i:i,data:g};n[i]=k;if(!t&&!l){t=-96;l=-96}if(t<0){t=(-1)*k.w*72/t/this.internal.scaleFactor}if(l<0){l=(-1)*k.h*72/l/this.internal.scaleFactor}if(t===0){t=l*k.w/k.h}if(l===0){l=t*k.h/k.w}this.internal.write("q",m(t),"0 0",m(l),m(q),o(p+l),"cm /I"+k.i,"Do Q");return this}})(pdfDataExport.API);(function(a){var e=function(q){var w="0123456789abcdef",o="klmnopqrstuvwxyz",h={};for(var r=0;r<o.length;r++){h[o[r]]=w[r]}var p,m={},n=1,t,k=m,g=[],s,l="",u="",v,j=q.length-1,f;r=1;while(r!=j){f=q[r];r+=1;if(f=="'"){if(t){v=t.join("");t=p}else{t=[]}}else{if(t){t.push(f)}else{if(f=="{"){g.push([k,v]);k={};v=p}else{if(f=="}"){s=g.pop();s[0][s[1]]=k;v=p;k=s[0]}else{if(f=="-"){n=-1}else{if(v===p){if(h.hasOwnProperty(f)){l+=h[f];v=parseInt(l,16)*n;n=+1;l=""}else{l+=f}}else{if(h.hasOwnProperty(f)){u+=h[f];k[v]=parseInt(u,16)*n;n=+1;v=p;u=""}else{u+=f}}}}}}}}return m};var d={codePages:["WinAnsiEncoding"],WinAnsiEncoding:e("{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}")},c={Unicode:{Courier:d,"Courier-Bold":d,"Courier-BoldOblique":d,"Courier-Oblique":d,Helvetica:d,"Helvetica-Bold":d,"Helvetica-BoldOblique":d,"Helvetica-Oblique":d,"Times-Roman":d,"Times-Bold":d,"Times-BoldItalic":d,"Times-Italic":d}},b={Unicode:{"Courier-Oblique":e("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"),"Times-BoldItalic":e("{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}"),"Helvetica-Bold":e("{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}"),Courier:e("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"),"Courier-BoldOblique":e("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"),"Times-Bold":e("{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}"),Helvetica:e("{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}"),"Helvetica-BoldOblique":e("{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}"),"Courier-Bold":e("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"),"Times-Italic":e("{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}"),"Times-Roman":e("{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}"),"Helvetica-Oblique":e("{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}")}};a.events.push(["addFonts",function(i){var f,g,h,k,j="Unicode",l;for(g in i.fonts){if(i.fonts.hasOwnProperty(g)){f=i.fonts[g];h=b[j][f.PostScriptName];if(h){if(f.metadata[j]){k=f.metadata[j]}else{k=f.metadata[j]={}}k.widths=h.widths;k.kerning=h.kerning}l=c[j][f.PostScriptName];if(l){if(f.metadata[j]){k=f.metadata[j]}else{k=f.metadata[j]={}}k.encoding=l;if(l.codePages&&l.codePages.length){f.encoding=l.codePages[0]}}}}}])})(pdfDataExport.API);var saveAs=window.jqxSaveAs=saveAs||(navigator.msSaveBlob&&navigator.msSaveBlob.bind(navigator))||(function(h){var r=h.document,l=function(){return h.URL||h.webkitURL||h},e=h.URL||h.webkitURL||h,n=$("<a></a>")[0],g="download" in n,j=function(t){var s=r.createEvent("MouseEvents");s.initMouseEvent("click",true,false,h,0,0,0,0,0,false,false,false,false,0,null);return t.dispatchEvent(s)},o=h.webkitRequestFileSystem,p=h.requestFileSystem||o||h.mozRequestFileSystem,m=function(s){(h.setImmediate||h.setTimeout)(function(){throw s},0)},c="application/octet-stream",k=0,b=[],i=function(){var t=b.length;while(t--){var s=b[t];if(typeof s==="string"){e.revokeObjectURL(s)}else{s.remove()}}b.length=0},q=function(t,s,w){s=[].concat(s);var v=s.length;while(v--){var x=t["on"+s[v]];if(typeof x==="function"){try{x.call(t,w||t)}catch(u){m(u)}}}},f=function(t,u){var v=this,B=t.type,E=false,x,w,s=function(){var F=l().createObjectURL(t);b.push(F);return F},A=function(){q(v,"writestart progress write writeend".split(" "))},D=function(){if(E||!x){x=s(t)}if(w){w.location.href=x}v.readyState=v.DONE;A()},z=function(F){return function(){if(v.readyState!==v.DONE){return F.apply(this,arguments)}}},y={create:true,exclusive:false},C;v.readyState=v.INIT;if(!u){u="download"}if(g){x=s(t);n.href=x;n.download=u;if(j(n)){v.readyState=v.DONE;A();return}}if(h.chrome&&B&&B!==c){C=t.slice||t.webkitSlice;t=C.call(t,0,t.size,c);E=true}if(o&&u!=="download"){u+=".download"}if(B===c||o){w=h}else{w=h.open()}if(!p){D();return}k+=t.size;p(h.TEMPORARY,k,z(function(F){F.root.getDirectory("saved",y,z(function(G){var H=function(){G.getFile(u,y,z(function(I){I.createWriter(z(function(J){J.onwriteend=function(K){w.location.href=I.toURL();b.push(I);v.readyState=v.DONE;q(v,"writeend",K)};J.onerror=function(){var K=J.error;if(K.code!==K.ABORT_ERR){D()}};"writestart progress write abort".split(" ").forEach(function(K){J["on"+K]=v["on"+K]});J.write(t);v.abort=function(){J.abort();v.readyState=v.DONE};v.readyState=v.WRITING}),D)}),D)};G.getFile(u,{create:false},z(function(I){I.remove();H()}),z(function(I){if(I.code===I.NOT_FOUND_ERR){H()}else{D()}}))}),D)}),D)},d=f.prototype,a=function(s,t){return new f(s,t)};d.abort=function(){var s=this;s.readyState=s.DONE;q(s,"abort")};d.readyState=d.INIT=0;d.WRITING=1;d.DONE=2;d.error=d.onwritestart=d.onprogress=d.onwrite=d.onabort=d.onerror=d.onwriteend=null;if(h.addEventListener){h.addEventListener("unload",i,false)}return a}(self));(function(a){var b="pdfDataExport IE Below 9 Shim plugin";a.output=function(e,d){return this.internal.output(e,d);var c="Output.pdf";switch(e){case"datauristring":case"dataurlstring":case"datauri":case"dataurl":case"dataurlnewwindow":if(console){console.log(b+": Data URIs are not supported on IE6-9.")}break;case"save":c=d;break}}})(pdfDataExport.API); +(function(b){var a=(function(){var c={},u,q,j,l,g,h,o,p;function d(C,B,x,A,y,v,w){var z=this;if(!z){z=window.jqx}z.hierarchy=y;z.exportFormat=v;z.filename=w;C.beginFile(w);n(C);k(C);C.endFile(w);return C.getFile()}function n(z){var x=true;b.each(q,function(){if(this.hidden){x=false;return false}});z.beginHeader(x);var w=0;for(var v in q){if(q[v].columnsDataFields){v=q[v].columnsDataFields[w].displayfield}var y=m(v,q[v]);z.appendHeaderCell(q[v],v,y,x,w);w++}z.endHeader(x)}function k(y){var x=this;if(!x){x=window.jqx}y.beginBody();if(x.hierarchy){var w=function(A){for(var z=0;z<A.length;z+=1){if(A[z]!==undefined){y.hierarchy=true;y.beginRow(A[z].level);e(y,A[z],z,true);if(A[z].records){y.beginRows(A[z].level);w(A[z].records);y.endRows(A[z].level)}y.endRow(A[z].level)}}};w(u);y.endBody();return}for(var v=0;v<u.length;v+=1){if(u[v]!==undefined){e(y,u[v],v)}}y.endBody()}function e(x,A,y,D){var C=this;if(!C){C=window.jqx}var w;if(D!=true){x.beginRow()}var B=0;for(var z in q){if(q[z].columnsDataFields){z=q[z].columnsDataFields[B].displayfield}w=s(y,z);if(w){if(w.level!=undefined){if(w.index-1>A.level&&w.index-1<w.maxLevel){B++;continue}}if(w.maxLevel!=undefined){if(w.index-1==w.maxLevel){w=b.extend({},w);w.merge=w.maxLevel-A.level-1}}}if(A.level!=undefined&&A.label!=undefined){if(C.exportFormat==="xml"||C.exportFormat==="json"){var v={};v.text="group";x.appendBodyCell(A.label,v,w,A,B,"group");break}}if(A.hasOwnProperty(z)){x.appendBodyCell(A[z],q[z],w,A,B)}else{x.appendBodyCell("",q[z],w,A,B)}B++}if(D!=true){x.endRow()}}function m(w,x){if(x.style){return j[x.style]}var v=t();if(v.length>0){return v[0].style}return null}function t(){if(!g){g=new Array();b.each(j,function(v,w){g[g.length]={name:v,style:w}})}return g}function s(A,z){var B=q[z];if(B){if(B.customCellStyles){var x=B.customCellStyles[A];if(x){return j[x]}}if(B.cellStyle){if(B.cellAltStyle){var w=A%2;if(w==0){return j[B.cellStyle]}return j[B.cellAltStyle]}return j[B.cellStyle]}else{var v=t();if(v.length>0){var w=A%(v.length-1);var y=v[w+1].style;return y}}}return null}function r(y,w,x){var v=document.createElement("input");v.name=w;v.value=y;v.type="hidden";x.appendChild(v);return v}function f(x,v,w){var y=document.createElement("textarea");y.name=v;y.value=x;w.appendChild(y);return y}function i(w,z,y,v,A){var x=document.createElement("form");r(w,"filename",x);r(z,"format",x);f(y,"content",x);if(v==undefined||v==""){if(window&&window.location.toString().indexOf("jqwidgets.com")>=0){v="https://jqwidgets.com/export_server/dataexport.php"}else{v="http://jquerygrid.net/export_server/dataexport.php"}}x.action=v;x.method="post";if(A){x.acceptCharset=A}document.body.appendChild(x);return x}l=function(A,y,x,w,z,v){if(!(this instanceof a)){return new a(A,y,x,z,v)}u=A;q=y;j=x;this.exportTo=function(K,H,G,B){K=K.toString().toLowerCase();var D=c[K];if(typeof D==="undefined"){throw"You can't export to "+K+" format."}if(K==="pdf"&&B==undefined){var M=this.exportTo(K,H,K,"pdf");if(!b.jqx.pdfExport){b.jqx.pdfExport={orientation:"portrait",paperSize:"a4"}}var L=new pdfDataExport(b.jqx.pdfExport.orientation,"pt",b.jqx.pdfExport.paperSize);L.cellInitialize();var J=b(M).find("th");var I=b(M).find("tr");var N=0;L.setFontSize(13*72/96);var F=595;switch(b.jqx.pdfExport.paperSize){case"legal":var F=612;if(b.jqx.pdfExport.orientation!=="portrait"){F=1008}break;case"letter":var F=612;if(b.jqx.pdfExport.orientation!=="portrait"){F=792}break;case"a3":var F=841;if(b.jqx.pdfExport.orientation!=="portrait"){F=1190}break;case"a4":var F=595;if(b.jqx.pdfExport.orientation!=="portrait"){F=842}break;case"a5":var F=420;if(b.jqx.pdfExport.orientation!=="portrait"){F=595}break}F-=20;var E=0;var C=[];b.each(J,function(O){var P=parseInt(this.style.width);if(isNaN(P)){P=25}var Q=P*72/96;C[O]=Q;E+=Q});if(J.length===0){b.each(I[0].cells,function(O){var P=parseInt(this.style.width);if(isNaN(P)){P=F/I[0].cells.length}var Q=P*72/96;C[O]=Q;E+=Q})}if(E>F){b.each(C,function(O){C[O]=(C[O]/E)*100;C[O]=C[O]*F/100})}b.each(J,function(P){var T=C[P];var S=25*72/96;var R=L.getTextDimensions(b(this).html());var Q=b(this).html();if(R.w+3>T){var O=L.splitTextToSize(Q,T-3);var U=O[0];if(U.length>3){Q=U.substring(0,U.length-3)+"..."}else{Q=U.substring(0,1)+"..."}var O=L.splitTextToSize(Q,T-3);var U=O[0];if(U!=Q){Q=U}}L.cell(10,10,T,S,Q,N)});N++;b.each(I,function(V){if(V===0){return true}var P=b(this).children();var Q=P.length>J.length&&J.length>0;if(Q){var Y=P.length-J.length;var Z="";var X=C[0];var U=25*72/96;for(var R=0;R<=Y;R++){var O=P[R].innerHTML;if(O==="+"||O==="-"){O=O+" "}if(O===" "){O=" "}Z+=O}var T=L.getTextDimensions(Z);if(T.w+3>X){var W=L.splitTextToSize(Z,X-3);var S=W[0];if(S.length>3){Z=S.substring(0,S.length-3)+"..."}else{Z=S.substring(0,1)+"..."}var W=L.splitTextToSize(Z,X-3);var S=W[0];if(S!=Z){Z=S}}L.cell(10,10,X,U,Z,N);for(var R=Y+1;R<P.length;R++){var V=R-Y;var X=C[V];var U=25*72/96;var Z=b(P[R]).html();var T=L.getTextDimensions(b(P[R]).html());if(T.w+3>X){var W=L.splitTextToSize(Z,X-3);var S=W[0];if(S.length>3){Z=S.substring(0,S.length-3)+"..."}else{Z=S.substring(0,1)+"..."}var W=L.splitTextToSize(Z,X-3);var S=W[0];if(S!=Z){Z=S}}L.cell(10,10,X,U,Z,N)}N++;return true}b.each(P,function(ab){var af=C[ab];var ae=25*72/96;var ad=b(this).html();var ac=L.getTextDimensions(b(this).html());if(ac.w+3>af){var aa=L.splitTextToSize(ad,af-3);var ag=aa[0];if(ag.length>3){ad=ag.substring(0,ag.length-3)+"..."}else{ad=ag.substring(0,1)+"..."}var aa=L.splitTextToSize(ad,af-3);var ag=aa[0];if(ag!=ad){ad=ag}}L.cell(10,10,af,ae,ad,N)});N++});if(b.jqx.browser.msie&&b.jqx.browser.version<10){throw new Error("PDF export requires a browser with HTML5 support");return}return L}return d(D,u,q,j,H,G,B)};this.exportToFile=function(L,B,O,F,I){if(L==="pdf"){var N=this.exportTo(L,I,L,B);if(!b.jqx.pdfExport){b.jqx.pdfExport={orientation:"portrait",paperSize:"a4"}}var M=new pdfDataExport(b.jqx.pdfExport.orientation,"pt",b.jqx.pdfExport.paperSize);if(F=="utf-8"||F=="UTF-8"){M.setFont("courier","normal")}M.cellInitialize();var K=b(N).find("th");var J=b(N).find("tr");var P=0;M.setFontSize(13*72/96);var G=595;switch(b.jqx.pdfExport.paperSize){case"legal":var G=612;if(b.jqx.pdfExport.orientation!=="portrait"){G=1008}break;case"letter":var G=612;if(b.jqx.pdfExport.orientation!=="portrait"){G=792}break;case"a3":var G=841;if(b.jqx.pdfExport.orientation!=="portrait"){G=1190}break;case"a4":var G=595;if(b.jqx.pdfExport.orientation!=="portrait"){G=842}break;case"a5":var G=420;if(b.jqx.pdfExport.orientation!=="portrait"){G=595}break}G-=20;var E=0;var C=[];b.each(K,function(Q){var R=parseInt(this.style.width);if(isNaN(R)){R=25}var S=R*72/96;C[Q]=S;E+=S});if(K.length===0){b.each(J[0].cells,function(Q){var R=parseInt(this.style.width);if(isNaN(R)){R=G/J[0].cells.length}var S=R*72/96;C[Q]=S;E+=S})}if(E>G){b.each(C,function(Q){C[Q]=(C[Q]/E)*100;C[Q]=C[Q]*G/100})}b.each(K,function(R){var V=C[R];var U=25*72/96;var T=M.getTextDimensions(b(this).html());var S=b(this).html();if(T.w+3>V){var Q=M.splitTextToSize(S,V-3);var W=Q[0];if(W.length>3){S=W.substring(0,W.length-3)+"..."}else{S=W.substring(0,1)+"..."}var Q=M.splitTextToSize(S,V-3);var W=Q[0];if(W!=S){S=W}}M.cell(10,10,V,U,S,P)});P++;b.each(J,function(X){if(X===0){return true}var R=b(this).children();var S=R.length>K.length&&K.length>0;if(S){var aa=R.length-K.length;var ab="";var Z=C[0];var W=25*72/96;for(var T=0;T<=aa;T++){var Q=R[T].innerHTML;if(Q==="+"||Q==="-"){Q=Q+" "}if(Q===" "){Q=" "}ab+=Q}var V=M.getTextDimensions(ab);if(V.w+3>Z){var Y=M.splitTextToSize(ab,Z-3);var U=Y[0];if(U.length>3){ab=U.substring(0,U.length-3)+"..."}else{ab=U.substring(0,1)+"..."}var Y=M.splitTextToSize(ab,Z-3);var U=Y[0];if(U!=ab){ab=U}}M.cell(10,10,Z,W,ab,P);for(var T=aa+1;T<R.length;T++){var X=T-aa;var Z=C[X];var W=25*72/96;var ab=b(R[T]).html();if(ab===" "){ab=" "}var V=M.getTextDimensions(b(R[T]).html());if(V.w+3>Z){var Y=M.splitTextToSize(ab,Z-3);var U=Y[0];if(U.length>3){ab=U.substring(0,U.length-3)+"..."}else{ab=U.substring(0,1)+"..."}var Y=M.splitTextToSize(ab,Z-3);var U=Y[0];if(U!=ab){ab=U}}M.cell(10,10,Z,W,ab,P)}P++;return true}b.each(R,function(ad){var ah=C[ad];var ag=25*72/96;var af=b(this).html();if(af===" "){af=" "}var ae=M.getTextDimensions(b(this).html());if(ae.w+3>ah){var ac=M.splitTextToSize(af,ah-3);var ai=ac[0];if(ai.length>3){af=ai.substring(0,ai.length-3)+"..."}else{af=ai.substring(0,1)+"..."}var ac=M.splitTextToSize(af,ah-3);var ai=ac[0];if(ai!=af){af=ai}}M.cell(10,10,ah,ag,af,P)});P++});if(b.jqx.browser.msie&&b.jqx.browser.version<10){throw new Error("PDF export requires a browser with HTML5 support");return}M.save(B+".pdf");return}var H=this.exportTo(L,I,L,B),D=i(B,L,H,O,F);D.submit();document.body.removeChild(D)};this.exportToLocalFile=function(F,C,D,B){var E=this.exportTo(F,D,B);document.location.href="data:application/octet-stream;filename="+C+","+encodeURIComponent(E)}};l.extend=function(v,w){if(w instanceof b.jqx.dataAdapter.DataExportModuleBase){c[v]=w}else{throw"The module "+v+" is not instance of DataExportModuleBase."}};return l}());b.jqx.dataAdapter.ArrayExporter=a})(jqxBaseFramework);(function(b){var a=function(){this.formatData=function(f,e,c,h){if(e==="date"){var d="";if(typeof f==="string"){d=b.jqx.dataFormat.tryparsedate(f);f=d}if(f===""||f===null){return""}d=b.jqx.dataFormat.formatdate(f,c,h);if((d&&d.toString()=="NaN")||d==null){return""}f=d}else{if(e==="number"||e==="float"||e==="int"||e=="integer"){if(f===""||f===null){return""}if(!isNaN(new Number(f))){var g=b.jqx.dataFormat.formatnumber(f,c,h);if(g.toString()=="NaN"){return""}else{f=g}}}else{f=f}}if(f===null){return""}return f};this.getFormat=function(f){var c=f?f.formatString:"";var e=f?f.localization:"";var d="string";d=f?f.type:"string";if(d=="number"||d=="float"){if(!c){c="f2"}}if(d=="int"||d=="integer"){if(!c){c="n0"}}if(d=="date"){if(!c){c="d"}}return{type:d,formatString:c,localization:e}};this.beginFile=function(){throw"Not implemented!"};this.beginHeader=function(){throw"Not implemented!"};this.appendHeaderCell=function(){throw"Not implemented!"};this.endHeader=function(){throw"Not implemented!"};this.beginBody=function(){throw"Not implemented!"};this.beginRow=function(){throw"Not implemented!"};this.beginRows=function(){throw"Not implemented!"};this.endRows=function(){throw"Not implemented!"};this.appendBodyCell=function(){throw"Not implemented!"};this.endRow=function(){throw"Not implemented!"};this.endBody=function(){throw"Not implemented!"};this.endFile=function(){throw"Not implemented!"};this.getFile=function(){throw"Not implemented!"}};b.jqx.dataAdapter.DataExportModuleBase=a})(jqxBaseFramework);(function(d){var c=function(j){var e,h,g;var l=0;var i=this;this.beginFile=function(){e=""};this.beginHeader=function(){};this.appendHeaderCell=function(q,r,p,m,n){if(p){if(p.level!=undefined){if(n<p.maxLevel){return}else{if(n===p.maxLevel){if(m){k(q.text)}for(var o=0;o<p.maxLevel;o++){k("")}return}}}}g=m;if(m){k(q.text)}};this.endHeader=function(){this.endRow()};this.beginBody=function(){l=0};this.beginRow=function(){if((l>0)||(l==0&&g)){e+="\n"}l++};this.appendBodyCell=function(q,m,p,r,n){if(p){if(p.maxLevel!=undefined){if(n===p.maxLevel){k(q,m);for(var o=0;o<p.maxLevel-r.level-1;o++){k("",m)}return}}}k(q,m)};this.endRow=function(){e=e.substring(0,e.length-1)};this.endBody=function(){};this.endFile=function(){};this.getFile=function(){return e};function f(m,o){if(o){var n=i.getFormat(o);m=i.formatData(m,n.type,n.formatString,n.localization)}m='"'+m+'"';return m}function k(m,n){m=f(m,n);e+=m+j}};c.prototype=new d.jqx.dataAdapter.DataExportModuleBase();var a=function(){};a.prototype=new c(",");var b=function(){};b.prototype=new c("\t");d.jqx.dataAdapter.ArrayExporter.extend("csv",new a());d.jqx.dataAdapter.ArrayExporter.extend("tsv",new b())})(jqxBaseFramework);(function(d){var a=function(){var i=false;var g;var h;var j=0;this.setPDF=function(){i=true};this.beginFile=function(k){if(i||k==undefined){g='<table style="empty-cells: show;" cellspacing="0" cellpadding="2">'}else{g='<html>\n\t<head>\n\t\t<title></title>\n\t\t<meta http-equiv=Content-type content="text/html; charset=UTF-8">\n\t</head>\n\t<body>\n\t\t<table style="empty-cells: show;" cellspacing="0" cellpadding="2">'}};this.beginHeader=function(){if(i){g+="\n\t<thead><tr>"}else{g+="\n\t\t\t<thead>"}};this.appendHeaderCell=function(m,n,l,k){h=k;if(!k){return}if(i){g+='\n\t\t\t\t<th style="'+f(l)+'">'+m.text+"</th>"}else{if(l.disabled){return}if(l.merge){if(m.width){g+="\n\t\t\t\t<th colspan="+(1+l.merge)+' style="width: '+m.width+"px; "+f(l)+'">'+m.text+"</th>"}else{g+="\n\t\t\t\t<th colspan="+(1+l.merge)+' style="'+f(l)+'">'+m.text+"</th>"}}else{if(m.width){g+='\n\t\t\t\t<th style="width: '+m.width+"px; "+f(l)+'">'+m.text+"</th>"}else{g+='\n\t\t\t\t<th style="'+f(l)+'">'+m.text+"</th>"}}}};this.endHeader=function(){if(i){g+="\n\t</tr></thead>"}else{g+="\n\t\t\t</thead>"}};this.beginBody=function(){if(i){g+="\n\t<tbody>"}else{g+="\n\t\t\t<tbody>"}j=0};this.beginRow=function(){if(i){g+="\n\t<tr>"}else{g+="\n\t\t\t\t<tr>"}j++};this.appendBodyCell=function(l,n,k){var m=this.getFormat(n);if(l===""){l=" "}if(i){if(j==1&&!h){g+='\n\t\t\t\t\t<td style="'+f(k)+' border-top-width: 1px;">'+this.formatData(l,m.type,m.formatString,m.localization)+"</td>"}else{g+='\n\t\t\t\t\t<td style="'+f(k)+'">'+this.formatData(l,m.type,m.formatString,m.localization)+"</td>"}}else{if(k.merge){if(j==1&&!h){g+="\n\t\t\t\t\t<td colspan="+(1+k.merge)+' style="'+f(k)+' border-top-width: 1px;">'+this.formatData(l,m.type,m.formatString,m.localization)+"</td>"}else{g+="\n\t\t\t\t\t<td colspan="+(1+k.merge)+' style="'+f(k)+'">'+this.formatData(l,m.type,m.formatString,m.localization)+"</td>"}}else{if(j==1&&!h){g+='\n\t\t\t\t\t<td style="'+f(k)+' border-top-width: 1px;">'+this.formatData(l,m.type,m.formatString,m.localization)+"</td>"}else{g+='\n\t\t\t\t\t<td style="'+f(k)+'">'+this.formatData(l,m.type,m.formatString,m.localization)+"</td>"}}}};this.endRow=function(){if(i){g+="\n\t</tr>"}else{g+="\n\t\t\t\t</tr>"}};this.endBody=function(){if(i){g+="\n\t</tbody>"}else{g+="\n\t\t\t</tbody>"}};this.endFile=function(k){if(i||k==undefined){g+="\n</table>"}else{g+="\n\t\t</table>\n\t</body>\n</html>\n"}};this.getFile=function(){return g};function f(m){var k="";for(var l in m){if(m.hasOwnProperty(l)){if(i&&l=="font-size"){m[l]="100%"}k+=l+":"+m[l]+";"}}return k}};a.prototype=new d.jqx.dataAdapter.DataExportModuleBase();var e=function(){};e.prototype=new a();var c=function(){};c.prototype=new a();var b=new c();d.jqx.dataAdapter.ArrayExporter.extend("html",new e());d.jqx.dataAdapter.ArrayExporter.extend("pdf",b)})(jqxBaseFramework);(function(b){var a=function(){var h,l,d,i,c,j,m={style:"",stylesMap:{font:{color:"Color","font-family":"FontName","font-style":"Italic","font-weight":"Bold"},interior:{"background-color":"Color",background:"Color"},alignment:{left:"Left",center:"Center",right:"Right"}},startStyle:function(p){this.style+='\n\t\t<Style ss:ID="'+p+'" ss:Name="'+p+'">'},buildAlignment:function(q){if(q["text-align"]){var r=this.stylesMap.alignment[q["text-align"]];if(!r){r="Left"}var p='\n\t\t\t<Alignment ss:Vertical="Bottom" ss:Horizontal="'+r+'"/>';this.style+=p}},buildBorder:function(s){if(s["border-color"]){var r="\n\t\t\t<Borders>";var u='\n\t\t\t\t<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="'+s["border-color"]+'"/>';var p='\n\t\t\t\t<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="'+s["border-color"]+'"/>';var q='\n\t\t\t\t<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="'+s["border-color"]+'"/>';var t='\n\t\t\t\t<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="'+s["border-color"]+'"/>';r+=u;r+=p;r+=q;r+=t;r+="\n\t\t\t</Borders>";this.style+=r}},buildFont:function(q){var r=this.stylesMap.font,p="\n\t\t\t<Font ";for(var s in r){if(typeof q[s]!=="undefined"){if(s==="font-style"&&q[s].toString().toLowerCase()==="italic"){p+='ss:Italic="1" '}else{if(s==="font-weight"&&q[s].toString().toLowerCase()==="bold"){p+='ss:Bold="1" '}else{if(s==="color"){p+="ss:"+r[s]+'="'+q[s]+'" '}}}}}p+="/>";this.style+=p},buildInterior:function(q){var r=this.stylesMap.interior,t="\n\t\t\t<Interior ";var p=false;for(var s in r){if(typeof q[s]!=="undefined"){t+="ss:"+r[s]+'="'+q[s]+'" ';p=true}}if(p){t+='ss:Pattern="Solid"'}t+="/>";this.style+=t},buildFormat:function(q){if(q.dataType=="number"||q.dataType=="float"||q.dataType=="int"||q.dataType=="integer"){var p=q.formatString;if(p==""||p.indexOf("n")!=-1||p.indexOf("N")!=-1){this.style+='\n\t\t\t<NumberFormat ss:Format="0"/>'}else{if(p=="f"||p=="F"||p=="D"||p.indexOf("d")!=-1){this.style+='\n\t\t\t<NumberFormat ss:Format="#,##0.00_);[Red](#,##0.00)"/>'}else{if(p.indexOf("p")!=-1||p.indexOf("P")!=-1){this.style+='\n\t\t\t<NumberFormat ss:Format="Percent"/>'}else{if(p.indexOf("c")!=-1||p.indexOf("C")!=-1){if(q.currencysymbol&&parseInt(q.currencysymbol.charCodeAt(0))==8364){this.style+='\n\t\t\t<NumberFormat ss:Format="Euro Currency"/>'}else{this.style+='\n\t\t\t<NumberFormat ss:Format="Currency"/>'}}}}}}else{if(q.dataType=="date"){this.style+='\n\t\t\t<NumberFormat ss:Format="Short Date"/>'}}},closeStyle:function(){this.style+="\n\t\t</Style>"},toString:function(){var p=this.style;this.style="";return p}};this.beginFile=function(){c={};j=0;h='<?xml version="1.0"?>\n\t<?mso-application progid="Excel.Sheet"?> \n\t<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" \n\txmlns:o="urn:schemas-microsoft-com:office:office" \n\txmlns:x="urn:schemas-microsoft-com:office:excel" \n\txmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" \n\txmlns:html="http://www.w3.org/TR/REC-html40"> \n\t<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> \n\t<Version>12.00</Version> \n\t</DocumentProperties> \n\t<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> \n\t<WindowHeight>8130</WindowHeight> \n\t<WindowWidth>15135</WindowWidth> \n\t<WindowTopX>120</WindowTopX> \n\t<WindowTopY>45</WindowTopY> \n\t<ProtectStructure>False</ProtectStructure> \n\t<ProtectWindows>False</ProtectWindows> \n\t</ExcelWorkbook> \n\t<Styles>'};this.beginHeader=function(){l='\n\t<Worksheet ss:Name="Sheet1">\n\t\t<Table>';d=[];i=[]};this.appendHeaderCell=function(r,s,q){var p=r.width!=undefined?r.width:r.text.length*10;l+='\n\t\t\t<Column ss:Width="'+p+'"/>';d.push(r);i.push(q)};this.endHeader=function(p){if(p){this.beginRow();for(var q=0;q<d.length;q+=1){if(i[q].disabled){continue}g.call(this,d[q]["text"],null,i[q])}this.endRow()}};this.beginBody=function(){};this.beginRow=function(q){if(q!=undefined){l+="\n\t\t\t";for(var p=0;p<q;p++){l+="\t"}l+="<Row>";return}l+="\n\t\t\t<Row>"};this.beginRows=function(p){l+="\n\t\t\t\t<Rows>"};this.appendBodyCell=function(r,p,q,s){g.call(this,r,p,q,s)};this.endRow=function(q){if(q!=undefined){l+="\n\t\t\t";for(var p=0;p<q;p++){l+="\t"}l+="</Row>";return}l+="\n\t\t\t</Row>"};this.endRows=function(q){if(q!=undefined){l+="\n\t\t\t";for(var p=0;p<q;p++){l+="\t"}l+="</Rows>";return}};this.endBody=function(){l+="\n\t\t</Table>"};this.endFile=function(){l+="\n\t</Worksheet>\n</Workbook>";h+="\n\t</Styles>"};this.getFile=function(){return h+l};function g(t,w,s,v){var r="String";var u=this.getFormat(w);if(t!=null&&t.toString().substring(0,3)=="_AG"){t=t.toString().substring(3);r="String"}else{if(u.type=="date"){var q=t;t=this.formatData(t,u.type,u.formatString,u.localization);if(t===null||t===""){t="";r="String"}else{t=q.toISOString();r="DateTime"}}if(u.type=="string"){if(t===null||t===undefined){t=""}else{if(t.toString().indexOf("&")>=0){t=t.toString().replace(/&/g,"&")}if(t.toString().indexOf(">")>=0){t=t.toString().replace(/>/g,">")}if(t.toString().indexOf("<")>=0){t=t.toString().replace(/</g,"<")}if(t.toString().indexOf('"')>=0){t=t.toString().replace(/"/g,""")}if(t.toString().indexOf("'")>=0){t=t.toString().replace(/'/g,"'")}}}if(s.dataType=="number"||s.dataType=="float"||s.dataType=="int"||s.dataType=="integer"){r="Number";t=parseFloat(t);if(t===null||isNaN(t)||t===""){t="";r="String"}if(t&&r!="String"&&t!=""){if(w&&w.formatString&&w.formatString.indexOf("p")>=0){t=t/100}}s.currencysymbol=w.localization.currencysymbol}}var p=f(s);if(s.merge){l+='\n\t\t\t\t<Cell ss:MergeAcross="'+s.merge+'" ss:StyleID="'+p+'"><Data ss:Type="'+r+'">'+t+"</Data></Cell>"}else{l+='\n\t\t\t\t<Cell ss:StyleID="'+p+'"><Data ss:Type="'+r+'">'+t+"</Data></Cell>"}}function n(){j+=1;return"xls-style-"+j}function k(q){for(var p in c){if(o(q,c[p])&&o(c[p],q)){return p}}return undefined}function o(t,q){var s=true;for(var r in t){if(t[r]!==q[r]){s=false}}return s}function e(q,p){m.startStyle(q);m.buildAlignment(p);m.buildBorder(p);m.buildFont(p);m.buildInterior(p);m.buildFormat(p);m.closeStyle();h+=m.toString()}function f(p){if(!p){return""}var q=k(p);if(typeof q==="undefined"){q=n();c[q]=p;e(q,p)}return q}};a.prototype=new b.jqx.dataAdapter.DataExportModuleBase();b.jqx.dataAdapter.ArrayExporter.extend("xls",new a())})(jqxBaseFramework);(function(b){var a=function(){var e,c,d;this.beginFile=function(){e='<?xml version="1.0" encoding="UTF-8" ?>';e+="\n<table>"};this.beginHeader=function(){c=[]};this.appendHeaderCell=function(f,g){c.push(g)};this.endHeader=function(){};this.beginBody=function(g,f){};this.beginRow=function(h){var g=this;if(!g){g=window.jqx}if(h!=undefined){if(g.hierarchy){e+="\n\t";for(var f=0;f<h;f++){e+="\t\t"}e+="<row>";d=0;return}}e+="\n\t<row>";d=0};this.beginRows=function(g){if(g!=undefined){e+="\n\t\t";for(var f=0;f<g;f++){e+="\t\t"}e+="<rows>";d=0;return}e+="\n\t\t<rows>"};this.appendBodyCell=function(h,n,f,o,j,m){var k=this;if(!k){k=window.jqx}var l=this.getFormat(n);h=this.formatData(h,l.type,l.formatString,l.localization);if(l.type=="string"){if(h.toString().indexOf("&")>=0){h=h.toString().replace(/&/g,"&")}if(h.toString().indexOf(">")>=0){h=h.toString().replace(/>/g,">")}if(h.toString().indexOf("<")>=0){h=h.toString().replace(/</g,"<")}if(h.toString().indexOf('"')>=0){h=h.toString().replace(/"/g,""")}if(h.toString().indexOf("'")>=0){h=h.toString().replace(/'/g,"'")}}if(o.level!=undefined){if(k.hierarchy){e+="\n\t\t";for(var g=0;g<o.level;g++){e+="\t\t"}if(m===undefined){e+="<"+c[d]+">"+h+"</"+c[d]+">"}else{e+="<"+m+">"+h+"</"+m+">"}}else{if(m!=undefined){e+="\n\t\t<"+m+">"+h+"</"+m+">"}else{e+="\n\t\t<"+c[d]+">"+h+"</"+c[d]+">"}}}else{e+="\n\t\t<"+c[d]+">"+h+"</"+c[d]+">"}d++};this.endRow=function(h){var g=this;if(!g){g=window.jqx}if(h!=undefined){if(g.hierarchy){e+="\n\t";for(var f=0;f<h;f++){e+="\t\t"}e+="</row>";d=0;return}}e+="\n\t</row>";d=0};this.endRows=function(g){if(g!=undefined){e+="\n\t\t";for(var f=0;f<g;f++){e+="\t\t"}e+="</rows>";d=0;return}e+="\n\t\t</rows>"};this.endBody=function(){};this.endFile=function(){e+="\n</table>"};this.getFile=function(){return e}};a.prototype=new b.jqx.dataAdapter.DataExportModuleBase();b.jqx.dataAdapter.ArrayExporter.extend("xml",new a())})(jqxBaseFramework);(function(d){var j=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,l={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function a(n){return'"'+n.replace(j,function(o){var p=l[o];return typeof p==="string"?p:"\\u"+("0000"+o.charCodeAt(0).toString(16)).slice(-4)})+'"'}function b(o){return o<10?"0"+o:o}function e(o){var n;if(isFinite(o.valueOf())){n=o.getUTCFullYear()+"-"+b(o.getUTCMonth()+1)+"-"+b(o.getUTCDate())+"T"+b(o.getUTCHours())+":"+b(o.getUTCMinutes())+":"+b(o.getUTCSeconds())+