Merge lp:~hrvojem/percona-xtradb-cluster/bug1018089 into lp:~percona-core/percona-xtradb-cluster/5.5.24

Proposed by Hrvoje Matijakovic
Status: Merged
Approved by: Hrvoje Matijakovic
Approved revision: no longer in the source branch.
Merged at revision: 344
Proposed branch: lp:~hrvojem/percona-xtradb-cluster/bug1018089
Merge into: lp:~percona-core/percona-xtradb-cluster/5.5.24
Diff against target: 4006 lines (+329/-3425)
17 files modified
.bzrignore (+1/-0)
doc-pxc/Makefile (+8/-0)
doc-pxc/source/conf.py (+8/-0)
doc-pxc/source/features/highavailability.rst (+2/-2)
doc-pxc/source/glossary.rst (+8/-2)
doc-pxc/source/howtos/haproxy.rst (+5/-5)
doc-pxc/source/howtos/virt_sandbox.rst (+285/-0)
doc-pxc/source/index.rst (+6/-5)
doc-pxc/source/percona-theme/layout.html (+0/-496)
doc-pxc/source/percona-theme/searchbox.html (+0/-22)
doc-pxc/source/percona-theme/static/default.css_t (+0/-433)
doc-pxc/source/percona-theme/static/jquery.min.js (+0/-154)
doc-pxc/source/percona-theme/static/percona.com.css (+0/-1849)
doc-pxc/source/percona-theme/static/percona.com.js (+0/-269)
doc-pxc/source/percona-theme/static/sidebar.js (+0/-151)
doc-pxc/source/percona-theme/theme.conf (+0/-32)
doc-pxc/source/resources.rst (+6/-5)
To merge this branch: bzr merge lp:~hrvojem/percona-xtradb-cluster/bug1018089
Reviewer Review Type Date Requested Status
Percona core Pending
Review via email: mp+112309@code.launchpad.net
To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file '.bzrignore'
--- .bzrignore 2012-06-04 14:01:13 +0000
+++ .bzrignore 2012-06-27 10:50:28 +0000
@@ -3087,3 +3087,4 @@
3087percona-xtradb-cluster-galera3087percona-xtradb-cluster-galera
3088client/mysql_plugin3088client/mysql_plugin
3089scripts/mysqlchk3089scripts/mysqlchk
3090percona-theme
30903091
=== modified file 'doc-pxc/Makefile'
--- doc-pxc/Makefile 2012-06-04 14:01:13 +0000
+++ doc-pxc/Makefile 2012-06-27 10:50:28 +0000
@@ -37,6 +37,14 @@
37 -rm -rf $(BUILDDIR)/*37 -rm -rf $(BUILDDIR)/*
3838
39html:39html:
40 @echo "Downloading percona-theme ..."
41 @wget -O percona-theme.tar.gz http://percona.com/docs/theme/percona-xtradb-cluster
42 @echo "Extracting theme."
43 @tar -zxf percona-theme.tar.gz
44 @rm -rf source/percona-theme
45 @mv percona-theme source/percona-theme
46 @rm percona-theme.tar.gz
47 @echo "Building html doc"
40 $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html48 $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
41 @echo49 @echo
42 @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."50 @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
4351
=== added file 'doc-pxc/source/_static/pxc_haproxy_lb_active_backup.png'
44Binary files doc-pxc/source/_static/pxc_haproxy_lb_active_backup.png 1970-01-01 00:00:00 +0000 and doc-pxc/source/_static/pxc_haproxy_lb_active_backup.png 2012-06-27 10:50:28 +0000 differ52Binary files doc-pxc/source/_static/pxc_haproxy_lb_active_backup.png 1970-01-01 00:00:00 +0000 and doc-pxc/source/_static/pxc_haproxy_lb_active_backup.png 2012-06-27 10:50:28 +0000 differ
=== added file 'doc-pxc/source/_static/pxc_haproxy_lb_leastconn.png'
45Binary files doc-pxc/source/_static/pxc_haproxy_lb_leastconn.png 1970-01-01 00:00:00 +0000 and doc-pxc/source/_static/pxc_haproxy_lb_leastconn.png 2012-06-27 10:50:28 +0000 differ53Binary files doc-pxc/source/_static/pxc_haproxy_lb_leastconn.png 1970-01-01 00:00:00 +0000 and doc-pxc/source/_static/pxc_haproxy_lb_leastconn.png 2012-06-27 10:50:28 +0000 differ
=== added file 'doc-pxc/source/_static/pxc_haproxy_status_example.png'
46Binary files doc-pxc/source/_static/pxc_haproxy_status_example.png 1970-01-01 00:00:00 +0000 and doc-pxc/source/_static/pxc_haproxy_status_example.png 2012-06-27 10:50:28 +0000 differ54Binary files doc-pxc/source/_static/pxc_haproxy_status_example.png 1970-01-01 00:00:00 +0000 and doc-pxc/source/_static/pxc_haproxy_status_example.png 2012-06-27 10:50:28 +0000 differ
=== modified file 'doc-pxc/source/conf.py'
--- doc-pxc/source/conf.py 2012-06-12 08:47:38 +0000
+++ doc-pxc/source/conf.py 2012-06-27 10:50:28 +0000
@@ -102,12 +102,16 @@
102102
103.. |IST| replace:: :term:`IST`103.. |IST| replace:: :term:`IST`
104104
105.. |SST| replace:: :term:`SST`
106
105.. |XtraDB Cluster| replace:: :term:`XtraDB Cluster`107.. |XtraDB Cluster| replace:: :term:`XtraDB Cluster`
106108
107.. |Percona XtraDB Cluster| replace:: :term:`Percona XtraDB Cluster`109.. |Percona XtraDB Cluster| replace:: :term:`Percona XtraDB Cluster`
108110
109.. |InnoDB| replace:: :term:`InnoDB`111.. |InnoDB| replace:: :term:`InnoDB`
110112
113.. |HAProxy| replace:: :term:`HAProxy`
114
111.. |MyISAM| replace:: :term:`MyISAM`115.. |MyISAM| replace:: :term:`MyISAM`
112116
113.. |split brain| replace:: :term:`split brain`117.. |split brain| replace:: :term:`split brain`
@@ -124,6 +128,10 @@
124128
125.. |MySQL| replace:: *MySQL*129.. |MySQL| replace:: *MySQL*
126130
131.. |sysbench| replace:: *sysbench*
132
133.. |PXC| replace:: *Percona XtraDB Cluster*
134
127.. |Drizzle| replace:: *Drizzle*135.. |Drizzle| replace:: *Drizzle*
128136
129.. |MariaDB| replace:: *MariaDB*137.. |MariaDB| replace:: *MariaDB*
130138
=== modified file 'doc-pxc/source/features/highavailability.rst'
--- doc-pxc/source/features/highavailability.rst 2012-06-01 04:28:35 +0000
+++ doc-pxc/source/features/highavailability.rst 2012-06-27 10:50:28 +0000
@@ -11,7 +11,7 @@
1111
12* SST is the full copy of data from one node to another. It's used when a new node joins the cluster, it has to transfer data from existing node. There are three methods of SST available in Percona XtraDB Cluster: :program:`mysqldump`, :program:`rsync` and :program:`xtrabackup` (Percona |XtraBackup| with support of XtraDB Cluster will be released soon, currently you need to use our `source code repository <http://www.percona.com/doc/percona-xtrabackup/installation/compiling_xtrabackup.html>`_). The downside of `mysqldump` and `rsync` is that your cluster becomes *READ-ONLY* while data is being copied from one node to another (SST applies :command:`FLUSH TABLES WITH READ LOCK` command). Xtrabackup SST does not require :command:`READ LOCK` for the entire syncing process, only for syncing |.FRM| files (the same as with regular backup).12* SST is the full copy of data from one node to another. It's used when a new node joins the cluster, it has to transfer data from existing node. There are three methods of SST available in Percona XtraDB Cluster: :program:`mysqldump`, :program:`rsync` and :program:`xtrabackup` (Percona |XtraBackup| with support of XtraDB Cluster will be released soon, currently you need to use our `source code repository <http://www.percona.com/doc/percona-xtrabackup/installation/compiling_xtrabackup.html>`_). The downside of `mysqldump` and `rsync` is that your cluster becomes *READ-ONLY* while data is being copied from one node to another (SST applies :command:`FLUSH TABLES WITH READ LOCK` command). Xtrabackup SST does not require :command:`READ LOCK` for the entire syncing process, only for syncing |.FRM| files (the same as with regular backup).
1313
14* Even with that, SST may be intrusive, that’s why there is IST mechanism. If you put your node down for a short period of time and then start it, the node is able to fetch only those changes made during the period it was down. This is done using caching mechanism on nodes. Each node contains a cache, ring-buffer, (the size is configurable) of last N changes, and the node is able to transfer part of this cache. Obviously, IST can be done only if the amount of changes needed to transfer is less than N. If it exceeds N, then the joining node has to perform SST.14* Even with that, SST may be intrusive, that`s why there is IST mechanism. If you put your node down for a short period of time and then start it, the node is able to fetch only those changes made during the period it was down. This is done using caching mechanism on nodes. Each node contains a cache, ring-buffer, (the size is configurable) of last N changes, and the node is able to transfer part of this cache. Obviously, IST can be done only if the amount of changes needed to transfer is less than N. If it exceeds N, then the joining node has to perform SST.
1515
16You can monitor current state of Node by using16You can monitor current state of Node by using
1717
@@ -19,4 +19,4 @@
1919
20 SHOW STATUS LIKE 'wsrep_local_state_comment';20 SHOW STATUS LIKE 'wsrep_local_state_comment';
2121
22When it is ‘Synced (6)’, the node is ready to handle traffic.22When it is `Synced (6)`, the node is ready to handle traffic.
2323
=== modified file 'doc-pxc/source/glossary.rst'
--- doc-pxc/source/glossary.rst 2012-06-01 04:28:35 +0000
+++ doc-pxc/source/glossary.rst 2012-06-27 10:50:28 +0000
@@ -12,9 +12,15 @@
1212
13 MyISAM13 MyISAM
14 Previous default storage engine for |MySQL| for versions prior to 5.5. It doesn't fully support transactions but in some scenarios may be faster than :term:`InnoDB`. Each table is stored on disk in 3 files: :term:`.frm`, :term:`.MYD`, :term:`.MYI`.14 Previous default storage engine for |MySQL| for versions prior to 5.5. It doesn't fully support transactions but in some scenarios may be faster than :term:`InnoDB`. Each table is stored on disk in 3 files: :term:`.frm`, :term:`.MYD`, :term:`.MYI`.
15
16 HAProxy
17 `HAProxy <http://haproxy.1wt.eu/>`_ is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications. It is particularly suited for web sites crawling under very high loads while needing persistence or Layer7 processing. Supporting tens of thousands of connections is clearly realistic with todays hardware. Its mode of operation makes its integration into existing architectures very easy and riskless, while still offering the possibility not to expose fragile web servers to the net.
15 18
16 IST19 IST
17 Incremental State Transfer. Functionallity which instead of whole state snapshot can catch up with te group by receiving the missing writesets, but only if the writeset is still in the donor's writeset cache.20 Incremental State Transfer. Functionality which instead of whole state snapshot can catch up with te group by receiving the missing writesets, but only if the writeset is still in the donor's writeset cache.
21
22 SST
23 State Snapshot Transfer is the full copy of data from one node to another. It's used when a new node joins the cluster, it has to transfer data from existing node. There are three methods of SST available in Percona XtraDB Cluster: :program:`mysqldump`, :program:`rsync` and :program:`xtrabackup` (Percona |XtraBackup| with support of XtraDB Cluster will be released soon, currently you need to use our `source code repository <http://www.percona.com/doc/percona-xtrabackup/installation/compiling_xtrabackup.html>`_). The downside of `mysqldump` and `rsync` is that your cluster becomes *READ-ONLY* while data is being copied from one node to another (SST applies :command:`FLUSH TABLES WITH READ LOCK` command). Xtrabackup SST does not require :command:`READ LOCK` for the entire syncing process, only for syncing |.FRM| files (the same as with regular backup).
1824
19 XtraBackup25 XtraBackup
20 *Percona XtraBackup* is an open-source hot backup utility for |MySQL| - based servers that doesn’t lock your database during the backup.26 *Percona XtraBackup* is an open-source hot backup utility for |MySQL| - based servers that doesn’t lock your database during the backup.
@@ -26,7 +32,7 @@
26 *Percona XtraDB Cluster* is a high availability solution for MySQL.32 *Percona XtraDB Cluster* is a high availability solution for MySQL.
2733
28 Percona XtraDB Cluster34 Percona XtraDB Cluster
29 *Percona XtraDB Cluster* is a high availability solution for MySQL.35 *Percona XtraDB Cluster* (PXC) is a high availability solution for MySQL.
3036
31 my.cnf37 my.cnf
32 This file refers to the database server's main configuration file. Most Linux distributions place it as :file:`/etc/mysql/my.cnf`, but the location and name depends on the particular installation. Note that this is not the only way of configuring the server, some systems does not have one even and rely on the command options to start the server and its defaults values.38 This file refers to the database server's main configuration file. Most Linux distributions place it as :file:`/etc/mysql/my.cnf`, but the location and name depends on the particular installation. Note that this is not the only way of configuring the server, some systems does not have one even and rely on the command options to start the server and its defaults values.
3339
=== added directory 'doc-pxc/source/howtos'
=== renamed file 'doc-pxc/source/3nodesec2.rst' => 'doc-pxc/source/howtos/3nodesec2.rst'
=== renamed file 'doc-pxc/source/haproxy.rst' => 'doc-pxc/source/howtos/haproxy.rst'
--- doc-pxc/source/haproxy.rst 2012-06-01 04:28:35 +0000
+++ doc-pxc/source/howtos/haproxy.rst 2012-06-27 10:50:28 +0000
@@ -2,9 +2,9 @@
2 Load balancing with HAProxy2 Load balancing with HAProxy
3=============================3=============================
44
5This section describes how to configure `HAProxy <http://haproxy.1wt.eu/>`_ to work in front of the cluster.5This section describes how to configure |HAProxy| to work in front of the cluster.
66
7Here is the simple configuration file example for *HAProxy* ::7Here is the simple configuration file example for |HAProxy| ::
88
9 # this config needs haproxy-1.4.209 # this config needs haproxy-1.4.20
1010
@@ -39,7 +39,7 @@
39 server db02 10.4.29.99:3306 check39 server db02 10.4.29.99:3306 check
40 server db03 10.4.29.98:3306 check40 server db03 10.4.29.98:3306 check
4141
42With this configuration *HAProxy* will load balance between three nodes. In this case it only checks if mysqld listens on port 3306, but it doesn't take into an account state of the node. So it could be sending queries to the node that has mysqld running even if it's in "JOINING" or "DISCONNECTED" state. 42With this configuration |HAProxy| will load balance between three nodes. In this case it only checks if mysqld listens on port 3306, but it doesn't take into an account state of the node. So it could be sending queries to the node that has mysqld running even if it's in "JOINING" or "DISCONNECTED" state.
4343
44To check the current status of a node we need a more complex checks. This idea was taken from `codership-team google groups <https://groups.google.com/group/codership-team/browse_thread/thread/44ee59c8b9c458aa/98b47d41125cfae6>`_.44To check the current status of a node we need a more complex checks. This idea was taken from `codership-team google groups <https://groups.google.com/group/codership-team/browse_thread/thread/44ee59c8b9c458aa/98b47d41125cfae6>`_.
4545
@@ -48,13 +48,13 @@
48 * **clustercheck** (place to /usr/local/bin) and a config for xined and 48 * **clustercheck** (place to /usr/local/bin) and a config for xined and
49 * **mysqlchk** (place to /etc/xined.d) on each node. 49 * **mysqlchk** (place to /etc/xined.d) on each node.
5050
51Both scripts are available in binaries and source distributions of *Percona XtraDB Cluster*.51Both scripts are available in binaries and source distributions of |Percona XtraDB Cluster|.
5252
53You'll need to change /etc/services file by adding the following line on each node: :: 53You'll need to change /etc/services file by adding the following line on each node: ::
5454
55 mysqlchk 9200/tcp # mysqlchk55 mysqlchk 9200/tcp # mysqlchk
5656
57The configuration file for *HAProxy* in this case may look like this: ::57The configuration file for |HAProxy| in this case may look like this: ::
5858
59 # this config needs haproxy-1.4.2059 # this config needs haproxy-1.4.20
6060
6161
=== renamed file 'doc-pxc/source/kewpietests.rst' => 'doc-pxc/source/howtos/kewpietests.rst'
=== renamed file 'doc-pxc/source/singlebox.rst' => 'doc-pxc/source/howtos/singlebox.rst'
=== added file 'doc-pxc/source/howtos/virt_sandbox.rst'
--- doc-pxc/source/howtos/virt_sandbox.rst 1970-01-01 00:00:00 +0000
+++ doc-pxc/source/howtos/virt_sandbox.rst 2012-06-27 10:50:28 +0000
@@ -0,0 +1,285 @@
1=====================================================
2 Setting up PXC reference architecture with HAProxy
3=====================================================
4
5This tutorial is a step-by-step guide to set up *Percona XtraDB Cluster*, in a virtualized test sandbox. This example uses Amazon EC2 micro instances, but the content here is applicable for any kind of virtualization technology (for example VirtualBox).
6You will need 4 virtual machines. 3 for |PXC| and 1 for the client, which will have |HAProxy|. In this how-to CentOS 6 is used as the operating system, the instructions are similar for any Linux distribution.
7
8The client node will have HAProxy installed and it will redirect requests to |PXC| nodes. This approach works well in real-world scenarios too. Running HAProxy on the application servers instead of having them as dedicated entities gives you benefits like no need for an extra network roundtrip, because loadbalancer and scalability of |PXC|'s load balancing layer scales simply with application servers.
9
10We'll use `Percona <http://www.percona.com/docs/wiki/repositories:yum>`_ and `EPEL <http://fedoraproject.org/wiki/EPEL>`_ repositories for software installation.
11
12After configuring the repositories you'll be able to install software that will be used. First, install |PXC| on the database nodes. ::
13
14 # yum -y install Percona-XtraDB-Cluster-server Percona-XtraDB-Cluster-client percona-xtrabackup
15
16Install |HAProxy| and |sysbench| on the client node. ::
17
18 # yum -y install haproxy sysbench
19
20After installing everything, we'll configure |PXC| first. On the first node, :file:`my.cnf` should look something like this on a relatively weak machine. ::
21
22 [mysqld]
23 server_id=1
24 binlog_format=ROW
25 log_bin=mysql-bin
26 wsrep_cluster_address=gcomm://
27 wsrep_provider=/usr/lib/libgalera_smm.so
28 datadir=/var/lib/mysql
29
30 wsrep_slave_threads=2
31 wsrep_cluster_name=pxctest
32 wsrep_sst_method=xtrabackup
33 wsrep_node_name=ip-10-112-39-98
34
35 log_slave_updates
36
37 innodb_locks_unsafe_for_binlog=1
38 innodb_autoinc_lock_mode=2
39 innodb_buffer_pool_size=400M
40 innodb_log_file_size=64M
41
42You can start your first node now. Make sure that you only start second and third nodes when the first node is up and running (it will serve as a donor for |SST|).
43
44This configuration is for the first node. For the second and third node, you need to change :option:`wsrep_cluster_address` (alternatively, you can use :option:`wsrep_urls` in [mysqld_safe] section), which should point to a node in the cluster which is already up, so it will join the cluster. The :option:`server_id` and :option:`wsrep_node_name` variables have to be different on each host, for :option:`wsrep_node_name`, you can use the output of `hostname` command.
45
46Based on that, for the second node, the differences in the configuration should be the following. ::
47
48 server_id=2
49 wsrep_cluster_address=gcomm://10.116.39.76 # replace this with the IP of your first node
50 wsrep_node_name=ip-10-244-33-92
51
52For the third node, the differences look like this. ::
53
54 server_id=3
55 wsrep_cluster_address=gcomm://10.116.39.76 # replace this with the IP of your first node
56 wsrep_node_name=ip-10-194-10-179
57
58For |SST| we use |xtrabackup|. This means at startup time, the new node will connect to an existing node in the cluster and it takes a backup of that node with xtrabackup and copies it to the new node with `netcat`. After a successful |SST|, you should see this in the error log. ::
59
60 120619 13:20:17 [Note] WSREP: State transfer required:
61 Group state: 77c9da88-b965-11e1-0800-ea53b7b12451:97
62 Local state: 00000000-0000-0000-0000-000000000000:-1
63 120619 13:20:17 [Note] WSREP: New cluster view: global state: 77c9da88-b965-11e1-0800-ea53b7b12451:97, view# 18: Primary, number of nodes: 3, my index: 0, protocol version 2
64 120619 13:20:17 [Warning] WSREP: Gap in state sequence. Need state transfer.
65 120619 13:20:19 [Note] WSREP: Running: 'wsrep_sst_xtrabackup 'joiner' '10.195.206.117' '' '/var/lib/mysql/' '/etc/my.cnf' '20758' 2>sst.err'
66 120619 13:20:19 [Note] WSREP: Prepared |SST| request: xtrabackup|10.195.206.117:4444/xtrabackup_sst
67 120619 13:20:19 [Note] WSREP: wsrep_notify_cmd is not defined, skipping notification.
68 120619 13:20:19 [Note] WSREP: Assign initial position for certification: 97, protocol version: 2
69 120619 13:20:19 [Warning] WSREP: Failed to prepare for incremental state transfer: Local state UUID (00000000-0000-0000-0000-000000000000) does not match group state UUID (77c9da88-b965-11e1-0800-ea53b7b12451): 1 (Operation not permitted)
70 at galera/src/replicator_str.cpp:prepare_for_IST():439. IST will be unavailable.
71 120619 13:20:19 [Note] WSREP: Node 0 (ip-10-244-33-92) requested state transfer from '*any*'. Selected 1 (ip-10-112-39-98)(SYNCED) as donor.
72 120619 13:20:19 [Note] WSREP: Shifting PRIMARY -> JOINER (TO: 102)
73 120619 13:20:19 [Note] WSREP: Requesting state transfer: success, donor: 1
74 120619 13:20:59 [Note] WSREP: 1 (ip-10-112-39-98): State transfer to 0 (ip-10-244-33-92) complete.
75 120619 13:20:59 [Note] WSREP: Member 1 (ip-10-112-39-98) synced with group.
76 120619 13:21:17 [Note] WSREP: |SST| complete, seqno: 105
77 120619 13:21:17 [Note] Plugin 'FEDERATED' is disabled.
78 120619 13:21:17 InnoDB: The InnoDB memory heap is disabled
79 120619 13:21:17 InnoDB: Mutexes and rw_locks use GCC atomic builtins
80 120619 13:21:17 InnoDB: Compressed tables use zlib 1.2.3
81 120619 13:21:17 InnoDB: Using Linux native AIO
82 120619 13:21:17 InnoDB: Initializing buffer pool, size = 400.0M
83 120619 13:21:17 InnoDB: Completed initialization of buffer pool
84 120619 13:21:18 InnoDB: highest supported file format is Barracuda.
85 120619 13:21:18 InnoDB: Waiting for the background threads to start
86 120619 13:21:19 Percona XtraDB (http://www.percona.com) 1.1.8-rel25.3 started; log sequence number 246661644
87 120619 13:21:19 [Note] Recovering after a crash using mysql-bin
88 120619 13:21:19 [Note] Starting crash recovery...
89 120619 13:21:19 [Note] Crash recovery finished.
90 120619 13:21:19 [Note] Server hostname (bind-address): '(null)'; port: 3306
91 120619 13:21:19 [Note] - '(null)' resolves to '0.0.0.0';
92 120619 13:21:19 [Note] - '(null)' resolves to '::';
93 120619 13:21:19 [Note] Server socket created on IP: '0.0.0.0'.
94 120619 13:21:19 [Note] Event Scheduler: Loaded 0 events
95 120619 13:21:19 [Note] WSREP: Signalling provider to continue.
96 120619 13:21:19 [Note] WSREP: Received |SST|: 77c9da88-b965-11e1-0800-ea53b7b12451:105
97 120619 13:21:19 [Note] WSREP: |SST| received: 77c9da88-b965-11e1-0800-ea53b7b12451:105
98 120619 13:21:19 [Note] WSREP: 0 (ip-10-244-33-92): State transfer from 1 (ip-10-112-39-98) complete.
99 120619 13:21:19 [Note] WSREP: Shifting JOINER -> JOINED (TO: 105)
100 120619 13:21:19 [Note] /usr/sbin/mysqld: ready for connections.
101 Version: '5.5.24-log' socket: '/var/lib/mysql/mysql.sock' port: 3306 Percona XtraDB Cluster (GPL), wsrep_23.6.r340
102 120619 13:21:19 [Note] WSREP: Member 0 (ip-10-244-33-92) synced with group.
103 120619 13:21:19 [Note] WSREP: Shifting JOINED -> SYNCED (TO: 105)
104 120619 13:21:20 [Note] WSREP: Synchronized with group, ready for connections
105
106For debugging information about the |SST|, you can check the sst.err file and the error log too.
107
108After the SST's is done, you should check if you have a 3 node cluster.
109
110.. code-block:: mysql
111
112 mysql> show global status like 'wsrep_cluster_size';
113 +--------------------+-------+
114 | Variable_name | Value |
115 +--------------------+-------+
116 | wsrep_cluster_size | 3 |
117 +--------------------+-------+
118 1 row in set (0.00 sec)
119
120When all nodes are started, you can set up HAProxy on the client. The point of this is that the application will be able to connect to localhost as |MySQL| server, so although we are using |PXC|, the application will see this as a single MySQL server running on localhost.
121
122In order to achieve this, you'll need to configure HAProxy on the client node. There are 2 possible configurations here.
123First is configuring round robin, which means you will connect and write to all cluster nodes. This can be done, but because of optimistic locking at commit time, rollbacks can happen if you have conflicting writes. In the second configuration, you will configure HAProxy in a way that it writes only to one node, so the application doesn't have to be prepared about unexpected rollbacks. The first configuration is a good choice in most cases, not handling rollbacks is not healthy in a well behaving application anyway.
124
125HAProxy can be configured in the /etc/haproxy/haproxy.cfg and it should look like this. ::
126
127 global
128 log 127.0.0.1 local0
129 log 127.0.0.1 local1 notice
130 maxconn 4096
131 chroot /usr/share/haproxy
132 user haproxy
133 group haproxy
134 daemon
135
136 defaults
137 log global
138 mode http
139 option tcplog
140 option dontlognull
141 retries 3
142 option redispatch
143 maxconn 2000
144 contimeout 5000
145 clitimeout 50000
146 srvtimeout 50000
147
148 frontend pxc-front
149 bind *:3307
150 mode tcp
151 default_backend pxc-back
152
153 frontend stats-front
154 bind *:80
155 mode http
156 default_backend stats-back
157
158 frontend pxc-onenode-front
159 bind *:3306
160 mode tcp
161 default_backend pxc-onenode-back
162
163 backend pxc-back
164 mode tcp
165 balance leastconn
166 option httpchk
167 server c1 10.116.39.76:3306 check port 9200 inter 12000 rise 3 fall 3
168 server c2 10.195.206.117:3306 check port 9200 inter 12000 rise 3 fall 3
169 server c3 10.202.23.92:3306 check port 9200 inter 12000 rise 3 fall 3
170
171 backend stats-back
172 mode http
173 balance roundrobin
174 stats uri /haproxy/stats
175 stats auth pxcstats:secret
176
177 backend pxc-onenode-back
178 mode tcp
179 balance leastconn
180 option httpchk
181 server c1 10.116.39.76:3306 check port 9200 inter 12000 rise 3 fall 3
182 server c2 10.195.206.117:3306 check port 9200 inter 12000 rise 3 fall 3 backup
183 server c3 10.202.23.92:3306 check port 9200 inter 12000 rise 3 fall 3 backup
184
185In this configuration, three frontend-backend pairs are defined. The stats pair is for |HAProxy| statistics page, and the others are for |PXC|. |MySQL| will be listening on ports 3306 and 3307. If you connect to port 3306, you'll connect to `pxc-onenode`, and you'll be only using one node at a time (to avoid rollbacks because of optimistic locking). If that node goes off-line, you'll start using an other one.
186However if you connect to port 3307, you'll be using all three nodes for reads and writes too. In this case the `leastconn` load balancing method is used instead of round robin, which means you always connect to the backend with the least connections established.
187The statistics page is accessible on the client node with a browser pointed to `/haproxy/stats`, the stats auth parameter in the configuration has the credentials for that in plain text. You can also use this for monitoring purposes (the CSV version is good for trending and alerting).
188
189Here |MySQL| is checked via HTTP checks. |MySQL| won't serve these requests. As part of |PXC| packages, we distribute the clustercheck utility which has to be set up. After that, HAProxy will be able to use check |MySQL| via HTTP. The clustercheck script is a simple shell script, which accepts HTTP requests, and checks MySQL on incoming request. If the |PXC| node is ok, it will emit a response with HTTP code 200 OK, otherwise, it emits 503. The script examines :option:`wsrep_local_state` variable.
190
191To set it up, create the clustercheck user.
192
193.. code-block:: mysql
194
195 mysql> grant process on *.* to 'clustercheckuser'@'localhost' identified by 'clustercheckpassword!';
196 Query OK, 0 rows affected (0.00 sec)
197
198 mysql> flush privileges;
199 Query OK, 0 rows affected (0.00 sec)
200
201If you want to use a different username or password, you have to modify them in the script too.
202Let's test. ::
203
204 # clustercheck
205 HTTP/1.1 200 OK
206
207 Content-Type: Content-Type: text/plain
208
209Node is running.
210
211You can use `xinetd` to daemonize the script. If `xinetd` is not installed yet, you can install it with yum. ::
212
213 # yum -y install xinetd
214
215The service itself should be configured in :file:`/etc/xinetd.d/mysqlchk`. ::
216
217 # default: on
218 # description: mysqlchk
219 service mysqlchk
220 {
221 # this is a config for xinetd, place it in /etc/xinetd.d/
222 disable = no
223 flags = REUSE
224 socket_type = stream
225 port = 9200
226 wait = no
227 user = nobody
228 server = /usr/bin/clustercheck
229 log_on_failure += USERID
230 only_from = 0.0.0.0/0
231 # recommended to put the IPs that need
232 # to connect exclusively (security purposes)
233 per_source = UNLIMITED
234 }
235
236Also, you should add the new service to :file:`/etc/services`. ::
237
238 mysqlchk 9200/tcp # mysqlchk
239
240Clustercheck will now listen on port 9200 after xinetd restart, and |HAProxy| is ready to check |MySQL| via HTTP. ::
241
242 # service xinetd restart
243
244If you did everything right so far, the statistics page of |HAProxy| should look like this.
245
246.. image:: ../_static/pxc_haproxy_status_example.png
247
248
249Testing the cluster with sysbench
250=================================
251
252You can test the cluster using the `sysbench <https://launchpad.net/sysbench/>`_ (this example uses one from the EPEL repository). First, you need to create a database and a user for it.
253
254.. code-block:: mysql
255
256 mysql> create database sbtest;
257 Query OK, 1 row affected (0.01 sec)
258
259 mysql> grant all on sbtest.* to 'sbtest'@'%' identified by 'sbpass';
260 Query OK, 0 rows affected (0.00 sec)
261
262 mysql> flush privileges;
263 Query OK, 0 rows affected (0.00 sec)
264
265Populate the table with data for the benchmark. ::
266
267 # sysbench --test=oltp --db-driver=mysql --mysql-engine-trx=yes --mysql-table-engine=innodb --mysql-host=127.0.0.1 --mysql-port=3307 --mysql-user=sbtest --mysql-password=sbpass --oltp-table-size=10000 prepare
268
269You can now run the benchmark against the 3307 port. ::
270
271 # sysbench --test=oltp --db-driver=mysql --mysql-engine-trx=yes --mysql-table-engine=innodb --mysql-host=127.0.0.1 --mysql-port=3307 --mysql-user=sbtest --mysql-password=sbpass --oltp-table-size=10000 --num-threads=8 run
272
273.. image:: ../_static/pxc_haproxy_lb_leastconn.png
274
275This is the status of `pxc-back backend` while the |sysbench| above is running. If you look at Cur column under Session, you can see, that c1 has 2 threads connected, c2 and c3 has 3.
276
277If you run the same benchmark, but against the 3306 backend, |HAProxy| stats will show us that the all the threads are going to hit the c1 server. ::
278
279 # sysbench --test=oltp --db-driver=mysql --mysql-engine-trx=yes --mysql-table-engine=innodb --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=sbtest --mysql-password=sbpass --oltp-table-size=10000 --num-threads=8 run
280
281.. image:: ../_static/pxc_haproxy_lb_active_backup.png
282
283This is the status of `pxc-onenode-back` while |sysbench| above is running. Here only c1 has 8 connected threads, c2 and c3 are acting as backup nodes.
284
285If you are using |HAProxy| for |MySQL| you can break the privilege system’s host part, because |MySQL| will think that the connections are always coming from the load balancer. You can work this around using T-Proxy patches and some `iptables` magic for the backwards connections. However in the setup described in this how-to this is not an issue, since each application server has it's own |HAProxy| instance, each application server connects to 127.0.0.1, so MySQL will see that connections are coming from the application servers. Just like in the normal case.
0286
=== modified file 'doc-pxc/source/index.rst'
--- doc-pxc/source/index.rst 2012-06-01 04:28:35 +0000
+++ doc-pxc/source/index.rst 2012-06-27 10:50:28 +0000
@@ -75,11 +75,11 @@
75 :maxdepth: 175 :maxdepth: 1
76 :glob:76 :glob:
77 77
78 singlebox78 howtos/singlebox
79 3nodesec279 howtos/3nodesec2
80 haproxy80 howtos/haproxy
81 kewpietests81 howtos/virt_sandbox
82 bugreport82 howtos/kewpietests
8383
84Percona XtraDB Cluster limitations84Percona XtraDB Cluster limitations
85==================================85==================================
@@ -106,6 +106,7 @@
106 :glob:106 :glob:
107107
108 release-notes/release-notes_index108 release-notes/release-notes_index
109 bugreport
109 glossary110 glossary
110111
111Indices and tables112Indices and tables
112113
=== removed directory 'doc-pxc/source/percona-theme'
=== removed file 'doc-pxc/source/percona-theme/layout.html'
--- doc-pxc/source/percona-theme/layout.html 2012-06-01 04:28:35 +0000
+++ doc-pxc/source/percona-theme/layout.html 1970-01-01 00:00:00 +0000
@@ -1,496 +0,0 @@
1{#
2 basic/layout.html
3 ~~~~~~~~~~~~~~~~~
4
5 Master layout template for Sphinx themes.
6
7 :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
8 :license: BSD, see LICENSE for details.
9#}
10{%- block doctype -%}
11<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
12 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
13{%- endblock %}
14{%- set reldelim1 = reldelim1 is not defined and ' &raquo;' or reldelim1 %}
15{%- set reldelim2 = reldelim2 is not defined and ' |' or reldelim2 %}
16{%- set render_sidebar = (not embedded) and (not theme_nosidebar|tobool) and
17 (sidebars != []) %}
18{%- set url_root = pathto('', 1) %}
19{# XXX necessary? #}
20{%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
21{%- if not embedded and docstitle %}
22 {%- set titlesuffix = " &mdash; "|safe + docstitle|e %}
23{%- else %}
24 {%- set titlesuffix = "" %}
25{%- endif %}
26
27{%- macro relbar() %}
28 <div class="related">
29 <h3>{{ _('Navigation') }}</h3>
30 <ul>
31 {%- for rellink in rellinks %}
32 <li class="right" {% if loop.first %}style="margin-right: 10px"{% endif %}>
33 <a href="{{ pathto(rellink[0]) }}" title="{{ rellink[1]|striptags|e }}"
34 {{ accesskey(rellink[2]) }}>{{ rellink[3] }}</a>
35 {%- if not loop.first %}{{ reldelim2 }}{% endif %}</li>
36 {%- endfor %}
37 {%- block rootrellink %}
38 <li><a href="{{ pathto(master_doc) }}">{{ shorttitle|e }}</a>{{ reldelim1 }}</li>
39 {%- endblock %}
40 {%- for parent in parents %}
41 <li><a href="{{ parent.link|e }}" {% if loop.last %}{{ accesskey("U") }}{% endif %}>{{ parent.title }}</a>{{ reldelim1 }}</li>
42 {%- endfor %}
43 {%- block relbaritems %} {% endblock %}
44 </ul>
45 </div>
46{%- endmacro %}
47
48{%- macro sidebar() %}
49 {%- if render_sidebar %}
50 <div class="sphinxsidebar">
51 <div class="sphinxsidebarwrapper">
52
53 <div class="side-column-block"><a href="http://www.percona.com/software/percona-xtradb-cluster/"><img alt="Percona XtraDB Cluster" src="http://s2.percona.com/logo_percona_xtradbcluster_new.png" /></a></div>
54
55 <div class="side-column-block">
56 <div class="header">Call Us</div>
57 <div class="content">
58 <div class="numbers">
59 <div style="padding-bottom: 4px">
60 +1-888-316-9775 (USA - Sales)<br>
61 +1-208-473-2904 (USA - Sales)
62 </div>
63 <div style="padding-bottom: 4px;">
64 +44-208-133-0309 (UK - Sales)
65 </div>
66 <div style="padding-bottom: 4px;">
67 +1-877-862-4316 (Emergency)
68 </div>
69 <div>
70 +1-855-55TRAIN (Training)<br>
71 +1-925-271-5054 (Training)
72 </div>
73 </div>
74 </div>
75 </div>
76
77 <div class="side-column-block">
78
79 <div class="a-btn-container"><a title="Download PDF Manual for Percona XtraDB Cluster" href="http://form.percona.com/Percona_XtraDB_Cluster_1_0_Operation_Manual.html" class="a-btn-new"><span class="a-btn-text">Download Manual</span><span class="a-btn-fixed-slide-text">PDF for 5.5.20-23.4</span><span class="a-btn-icon-right"><span></span></span></a>
80 </div>
81 </div>
82 {%- if sidebars != None %}
83 {#- new style sidebar: explicitly include/exclude templates #}
84 {%- for sidebartemplate in sidebars %}
85 {%- include sidebartemplate %}
86 {%- endfor %}
87 {%- else %}
88 {#- old style sidebars: using blocks -- should be deprecated #}
89 {%- block serverseries %}
90 {%- endblock %}
91 {%- block sidebartoc %}
92 {%- include "localtoc.html" %}
93 {%- endblock %}
94 {%- block sidebarrel %}
95 {%- include "relations.html" %}
96 {%- endblock %}
97 {%- block sidebarsourcelink %}
98 {%- include "sourcelink.html" %}
99 {%- endblock %}
100 {%- if customsidebar %}
101 {%- include customsidebar %}
102 {%- endif %}
103 {%- block sidebarsearch %}
104 {%- include "searchbox.html" %}
105 {%- endblock %}
106 {%- endif %}
107<br /><br />
108 <div class="side-column-block">
109 <ul class="side-contact-buttons">
110 <li><a href="http://form.percona.com/ContactMe.html" title="Contact Me" class="contact-me"><span>Contact Me</span></a></li>
111 <li><a href="http://www.percona.com/webinars/" title="Attend a Webinar" class="webinar"><span>Attend a Webinar</span></a></li>
112 <li><a href="http://www.percona.com/downloads/" title="Download Software" class="download-software"><span>Download Software</span></a></li>
113 <li><a href="http://www.percona.com/subscribe/" title="Register For Newsletters" class="newsletters"><span>Register For Newsletters</span></a></li>
114 </ul>
115 </div>
116
117 </div>
118 </div>
119 {%- endif %}
120{%- endmacro %}
121
122{%- macro script() %}
123 <script type="text/javascript">
124 var DOCUMENTATION_OPTIONS = {
125 URL_ROOT: '{{ url_root }}',
126 VERSION: '{{ release|e }}',
127 COLLAPSE_INDEX: false,
128 FILE_SUFFIX: '{{ '' if no_search_suffix else file_suffix }}',
129 HAS_SOURCE: {{ has_source|lower }}
130 };
131 </script>
132 {%- for scriptfile in script_files %}
133 <script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
134 {%- endfor %}
135{%- endmacro %}
136
137{%- macro css() %}
138 <link rel="stylesheet" href="{{ pathto('_static/percona.com.css', 1) }}" type="text/css" />
139 <link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
140 <link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" />
141 {%- for cssfile in css_files %}
142 <link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
143 {%- endfor %}
144{%- endmacro %}
145
146<html xmlns="http://www.w3.org/1999/xhtml">
147 <head>
148 <meta http-equiv="Content-Type" content="text/html; charset={{ encoding }}" />
149 {{ metatags }}
150 {%- block htmltitle %}
151 <title>{{ title|striptags|e }}{{ titlesuffix }}</title>
152 {%- endblock %}
153
154 {{ css() }}
155 {%- if not embedded %}
156 {{ script() }}
157 {%- if use_opensearch %}
158 <link rel="search" type="application/opensearchdescription+xml"
159 title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}"
160 href="{{ pathto('_static/opensearch.xml', 1) }}"/>
161 {%- endif %}
162
163<script src="{{ pathto('_static/percona.com.js', 1)}}" type="text/javascript"></script>
164
165 {%- if favicon %}
166 <link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
167 {%- endif %}
168 {%- endif %}
169{%- block linktags %}
170 {%- if hasdoc('about') %}
171 <link rel="author" title="{{ _('About these documents') }}" href="{{ pathto('about') }}" />
172 {%- endif %}
173 {%- if hasdoc('genindex') %}
174 <link rel="index" title="{{ _('Index') }}" href="{{ pathto('genindex') }}" />
175 {%- endif %}
176 {%- if hasdoc('search') %}
177 <link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}" />
178 {%- endif %}
179 {%- if hasdoc('copyright') %}
180 <link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}" />
181 {%- endif %}
182 <link rel="top" title="{{ docstitle|e }}" href="{{ pathto('index') }}" />
183 {%- if parents %}
184 <link rel="up" title="{{ parents[-1].title|striptags|e }}" href="{{ parents[-1].link|e }}" />
185 {%- endif %}
186 {%- if next %}
187 <link rel="next" title="{{ next.title|striptags|e }}" href="{{ next.link|e }}" />
188 {%- endif %}
189 {%- if prev %}
190 <link rel="prev" title="{{ prev.title|striptags|e }}" href="{{ prev.link|e }}" />
191 {%- endif %}
192{%- endblock %}
193{%- block extrahead %} {% endblock %}
194 </head>
195 <body>
196
197{%- block header %}
198
199 <!-- <div id="stickywrapper"> -->
200 <!-- <div id="stickycontent"> -->
201 <div id="header"><div class="header">
202 <div class="logo"><a href="http://www.percona.com/" onfocus="this.blur()"><img src="http://s3.percona.com/ui-logo.png" alt="Percona Performance Consulting Experts" width="240" height="55" /></a></div>
203 <div class="right">
204 <div class="searchlink"><a onmouseover="SEARCH.Open()"><img id="searchlink-anchor" src="http://s2.percona.com/ui-search.png" alt="" /></a></div>
205 <span class="inv"><![CDATA[<noindex>]]></span>
206 <div class="navicontainer"><div class="navi">
207 <span id="navilink-span-about-us" ><a id="navilink-a-about-us" href="http://www.percona.com/about-us/">About Us</a></span><span id="navilink-span-mysql-consulting" ><a id="navilink-a-mysql-consulting" href="http://www.percona.com/mysql-consulting/">Consulting</a></span><span id="navilink-span-support" ><a id="navilink-a-support" href="http://www.percona.com/mysql-support/">Support</a></span><span id="navilink-span-training" ><a id="navilink-a-training" href="http://www.percona.com/training/">Training</a></span><span id="navilink-span-development" ><a id="navilink-a-development" href="http://www.percona.com/development/">Development</a></span><span id="navilink-span-software" class="selected"><a class="selected" id="navilink-a-software" href="http://www.percona.com/software/">Software</a></span><span id="navilink-span-events" ><a id="navilink-a-events" href="http://www.percona.com/live/">Events</a></span><span id="navilink-span-contact" ><a id="navilink-a-contact" href="http://www.percona.com/contact/">Contact Us</a></span> </div></div>
208
209 <span class="inv"><![CDATA[</noindex>]]></span>
210 <span class="inv"><![CDATA[</noindex>]]></span>
211 </div>
212 </div></div>
213 <div id="stripe"></div>
214
215{% endblock %}
216
217 <!-- <div id="stripe"></div> -->
218
219{%- block content %}
220
221
222
223 {%- block sidebar1 %} {# possible location for sidebar #} {% endblock %}
224
225 <div class="document">
226
227
228
229 {%- block document %}
230 <div class="documentwrapper">
231 {%- if render_sidebar %}
232 <div class="bodywrapper">
233 {%- endif %}
234
235 {%- block relbar1 %}{{ relbar() }}{% endblock %}
236
237 <div class="body">
238 {% block body %} {% endblock %}
239 </div>
240
241 {%- block relbar2 %}{{ relbar() }}
242
243 {%- if render_sidebar %}
244 </div>
245 {%- endif %}
246
247
248
249 </div>
250
251 {%- endblock %}
252
253 {%- block sidebar2 %}{{ sidebar() }}{% endblock %}
254
255 <div class="clearer"></div>
256
257 {%- if last_updated %}
258 {% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
259 {%- endif %}
260
261 <div class="license">
262
263 {%- if show_copyright %}
264 {%- if hasdoc('copyright') %}
265 {% trans path=pathto('copyright'), copyright=copyright|e %}&copy; <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %}
266 {%- else %}
267 {% trans copyright=copyright|e %}&copy; Copyright {{ copyright }}.{% endtrans %}
268 {%- endif %}
269 {%- endif %}
270
271 <br />
272 Except where otherwise noted, this documentation is licensed under the following license:
273 <br />
274 <a class="urlextern" rel="license" href="http://creativecommons.org/licenses/by-sa/2.0/">
275 CC Attribution-ShareAlike 2.0 Generic</a><br />
276
277 {%- if show_sphinx %}
278 {% trans sphinx_version=sphinx_version|e %}Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> {{ sphinx_version }}.{% endtrans %}
279 {%- endif %}
280
281 </div>
282
283 </div>
284 {%- endblock %}
285
286 {% endblock %}
287
288{%- block footer %}
289
290 <div class="file-bugs">
291 This documentation is developed in Launchpad as part of the <a href="https://code.launchpad.net/percona-xtradb-cluster">Percona XtraDB Cluster source code</a>.<br/>
292 If you spotted innacuracies, errors, don't understood it or you think something is missing or should be improved, please <a href="https://bugs.launchpad.net/percona-xtradb-cluster/+filebug?field.tags=doc&amp;field.comment=[In:Percona XtraDB Cluster Documentation]&amp;?field.tags=doc&amp;field.title=[DOC] ">file a bug</a>.
293
294 </div>
295
296 <div id="footer">
297
298 <div class="footer">
299 <div class="logo"><img width="110" height="25" alt="" src="{{ pathto('_static/ui-footer-logo.png', 1) }}">
300 </div>
301
302 <div class="text">
303 <span class="inv"><!--[CDATA[<noindex-->]]&gt;</span>
304 Call us: 1-888-316-9775 • <a href="/contact">Contact Us</a><br>
305 MySQL and InnoDB are trademarks of Oracle Corp.<br>
306 Proudly running <a href="/software/percona-server/">Percona Server<span id="recentServerVersion"></span></a><br>
307 Copyright &copy; 2006-2011 Percona Inc.<br>
308 <a href="/about-us/policies/">Copyright, Trademark, and Privacy Policy</a> • <a href="/sitemap/">Sitemap</a>
309 <span class="inv"><!--[CDATA[</noindex-->]]&gt;</span>
310 </div>
311 </div>
312
313 </div>
314{%- endblock %}
315<span class="inv"><!--[CDATA[<noindex-->]]&gt;</span>
316<div id="submenus">
317 <div class="navi-dropdown" id="navi-dropdown-about-us">
318 <div class="navi-dropdown-header-l"><!-- //--></div>
319 <div class="navi-dropdown-content">
320 <div class="item"><a href="http://www.percona.com/about-us/our-mission/">Our Mission</a></div>
321 <div class="item"><a href="http://www.percona.com/about-us/why-percona/">Why Percona?</a></div>
322 <div class="item"><a href="http://www.percona.com/about-us/procedures/">Coordinating with Percona</a></div>
323 <div class="item"><a href="http://www.percona.com/about-us/customers/">Customers</a></div>
324 <div class="item"><a href="http://www.percona.com/webinars/">Webinars</a></div>
325 <div class="item"><a href="http://www.percona.com/about-us/mysql-case-studies/">MySQL Case Studies</a></div>
326 <div class="item"><a href="http://www.percona.com/about-us/our-team/">Our Team</a></div>
327
328 <div class="item"><a href="http://www.percona.com/about-us/books/">Our Books</a></div>
329 <div class="item"><a href="http://www.percona.com/about-us/blogs/">Our Blogs</a></div>
330 <div class="item"><a href="http://www.percona.com/about-us/mysql-white-papers/">MySQL White Papers</a></div>
331 <div class="item"><a href="http://www.percona.com/about-us/conferences/">Conferences</a></div>
332 <div class="item"><a href="http://www.percona.com/about-us/presentations/">Presentations</a></div>
333 <div class="item"><a href="http://www.percona.com/about-us/newsletters/">Newsletters</a></div>
334 <div class="item"><a href="http://www.percona.com/about-us/pressreleases/">Press Releases</a></div>
335 <div class="item"><a href="http://www.percona.com/about-us/percona-in-the-news/">In The News</a></div>
336 <div class="item"><a href="http://www.percona.com/about-us/careers/">Careers</a></div>
337
338 </div>
339 <div class="navi-dropdown-footer"><!-- //--></div>
340 </div>
341 <div class="navi-dropdown" id="navi-dropdown-mysql-consulting">
342 <div class="navi-dropdown-header-l"><!-- //--></div>
343 <div class="navi-dropdown-content">
344 <div class="item"><a href="http://www.percona.com/mysql-consulting/overview/">MySQL Consulting Overview</a></div>
345 <div class="item"><a href="http://www.percona.com/mysql-consulting/prices/">MySQL Consulting Prices</a></div>
346 <div class="item"><a href="http://www.percona.com/mysql-consulting/architecture/">MySQL Architecture &amp; Design</a></div>
347 <div class="item"><a href="http://www.percona.com/mysql-consulting/mysql-backups/">MySQL Backups</a></div>
348 <div class="item"><a href="http://www.percona.com/mysql-consulting/cloud-computing/">MySQL Cloud Solutions</a></div>
349
350 <div class="item"><a href="http://www.percona.com/mysql-consulting/cluster/">MySQL Cluster Consulting</a></div>
351 <div class="item"><a href="http://www.percona.com/mysql-consulting/data-warehousing/">MySQL Data Warehousing</a></div>
352 <div class="item"><a href="http://www.percona.com/mysql-consulting/data-recovery/">MySQL Data Recovery</a></div>
353 <div class="item"><a href="http://www.percona.com/mysql-consulting/high-availability/">MySQL High Availability</a></div>
354 <div class="item"><a href="http://www.percona.com/mysql-consulting/mysql-monitoring-graphing/">MySQL Monitoring &amp; Graphing</a></div>
355 <div class="item"><a href="http://www.percona.com/mysql-consulting/mysql-onsite-consulting/">MySQL Onsite Consulting</a></div>
356 <div class="item"><a href="http://www.percona.com/mysql-consulting/performance-audit/">MySQL Performance Audit</a></div>
357 <div class="item"><a href="http://www.percona.com/mysql-consulting/remote-dba/">MySQL Remote DBA</a></div>
358
359 <div class="item"><a href="http://www.percona.com/mysql-consulting/mysql-replication/">MySQL Replication</a></div>
360 <div class="item"><a href="http://www.percona.com/mysql-consulting/upgrade/">MySQL Version Upgrades</a></div>
361 <div class="item"><a href="http://www.percona.com/mysql-consulting/24x7-emergency/">Emergency 24&times;7 Consulting</a></div>
362 <div class="item"><a href="http://www.percona.com/mysql-consulting/migration/">Migration to MySQL</a></div>
363 <div class="item"><a href="http://www.percona.com/drizzle-consulting/">Drizzle Consulting</a></div>
364 <div class="item"><a href="http://www.percona.com/mysql-consulting/sphinx/">Sphinx Consulting</a></div>
365 <div class="item"><a href="http://www.percona.com/mysql-consulting/drbd/">DRBD Consulting</a></div>
366 <div class="item"><a href="http://www.percona.com/mysql-consulting/memcached/">Memcached Consulting</a></div>
367
368 <div class="item"><a href="http://www.percona.com/mysql-consulting/other-services/">Other Consulting Services</a></div>
369 </div>
370 <div class="navi-dropdown-footer"><!-- //--></div>
371 </div>
372 <div class="navi-dropdown" id="navi-dropdown-support">
373 <div class="navi-dropdown-header-l"><!-- //--></div>
374 <div class="navi-dropdown-content">
375 <div class="item"><a href="http://www.percona.com/mysql-support/">MySQL Support Overview</a></div>
376 <div class="item"><a href="http://www.percona.com/prices/mysql-support/">MySQL Support Prices</a></div>
377 <div class="item"><a href="http://www.percona.com/mysql-support/policies/">MySQL Support Policies</a></div>
378 <div class="item"><a href="http://www.percona.com/mysql-support/consulting-vs-support/">Consulting vs. Support</a></div>
379 <div class="item"><a href="https://customers.percona.com">Customer Portal Login</a></div>
380
381 </div>
382 <div class="navi-dropdown-footer"><!-- //--></div>
383 </div>
384 <div class="navi-dropdown" id="navi-dropdown-training">
385 <div class="navi-dropdown-header-l"><!-- //--></div>
386 <div class="navi-dropdown-content">
387 <div class="item"><a href="http://www.percona.com/training/">MySQL Training Overview</a></div>
388 <div class="item"><a href="http://www.percona.com/prices/training/">MySQL Training Prices</a></div>
389 <div class="item"><a href="http://www.percona.com/training/classes/dba/">MySQL DBA Training</a></div>
390 <div class="item"><a href="http://www.percona.com/training/classes/developers/">MySQL Developer Training</a></div>
391 <div class="item"><a href="http://www.percona.com/training/classes/operations/">MySQL Operations Training</a></div>
392 <div class="item"><a href="http://www.percona.com/training/classes/innodb/">InnoDB &amp; XtraDB Training</a></div>
393
394 <div class="item"><a href="http://www.percona.com/training/classes/custom-onsite/">Custom Onsite Training</a></div>
395 </div>
396 <div class="navi-dropdown-footer"><!-- //--></div>
397 </div>
398 <div class="navi-dropdown" id="navi-dropdown-development">
399 <div class="navi-dropdown-header-l"><!-- //--></div>
400 <div class="navi-dropdown-content">
401 <div class="item"><a href="http://www.percona.com/development/mysql/">MySQL Development Overview</a></div>
402 <div class="item"><a href="http://www.percona.com/development/prices/">Custom Development Prices</a></div>
403 <div class="item"><a href="http://www.percona.com/development/maintenance/">MySQL Support Overview</a></div>
404 <div class="item"><a href="http://www.percona.com/development/benchmarking/">Custom Product Evaluation</a></div>
405 <div class="item"><a href="http://www.percona.com/development/maatkit/">Custom Maatkit Development</a></div>
406
407 <div class="item"><a href="http://www.percona.com/development/custom-tools/">Custom Tools Development</a></div>
408 </div>
409 <div class="navi-dropdown-footer"><!-- //--></div>
410 </div>
411 <div class="navi-dropdown" id="navi-dropdown-software">
412 <div class="navi-dropdown-header-l"><!-- //--></div>
413 <div class="navi-dropdown-content">
414 <div class="item"><a href="http://www.percona.com/software/">Percona Software for MySQL</a></div>
415 <div class="item"><a href="http://www.percona.com/software/percona-server/">Percona Server with XtraDB</a></div>
416 <div class="item"><a href="http://www.percona.com/software/percona-xtradb-cluster/">Percona XtraDB Cluster</a></div>
417 <div class="item"><a href="http://www.percona.com/software/percona-xtrabackup/">Percona XtraBackup</a></div>
418 <div class="item"><a href="http://www.percona.com/software/mysql-innodb-data-recovery-tools/">Data Recovery Toolkit</a></div>
419 <div class="item"><a href="http://www.percona.com/software/percona-xtradb/">Percona XtraDB</a></div>
420 <div class="item"><a href="http://www.percona.com/software/percona-toolkit/">Percona Toolkit</a></div>
421 <div class="item"><a href="http://www.percona.com/software/percona-monitoring-plugins/">Percona Monitoring Plugins</a></div>
422 <div class="item"><a href="http://www.percona.com/prices/software/">Software Prices</a></div>
423 <div class="item"><a href="http://www.percona.com/downloads/">Downloads</a></div>
424 <div class="item"><a href="http://www.percona.com/software/repositories/">Repositories</a></div>
425 <div class="item"><a href="http://www.percona.com/software/documentation/">Documentation</a></div>
426 <div class="item"><a href="http://forum.percona.com">Forum</a></div>
427 <div class="item"><a href="http://groups.google.com/group/percona-discussion">Google Discussion</a></div>
428 <div class="item"><a href="https://launchpad.net/percona-server">Launchpad</a></div>
429 </div>
430 <div class="navi-dropdown-footer"><!-- //--></div>
431 </div>
432 <div class="navi-dropdown" id="navi-dropdown-events">
433 <div class="navi-dropdown-header-r"><!-- //--></div>
434 <div class="navi-dropdown-content">
435 <div class="item"><a href="http://www.percona.com/live/mysql-conference-2012/">MySQL Conference &amp; Expo 2012</a></div>
436 <div class="item"><a href="http://www.percona.com/live/">Previous Percona Live Events</a></div>
437 </div>
438 <div class="navi-dropdown-footer"><!-- //--></div>
439 </div>
440
441 <div class="navi-dropdown" id="navi-dropdown-contact">
442 <div class="navi-dropdown-header-r"><!-- //--></div>
443 <div class="navi-dropdown-content">
444 <div class="item"><a href="http://www.percona.com/contact/24x7-emergency/">24&times;7 Emergency</a></div>
445 <div class="item"><a href="http://www.percona.com/contact/sales/">Sales &amp; General Inquiries</a></div>
446 <div class="item"><a href="http://www.percona.com/contact/billing/">Billing Inquiries</a></div>
447 <div class="item"><a href="https://customers.percona.com">Customer Portal Login</a></div>
448 <div class="item"><a href="http://www.percona.com/contact/phone-directory/">Phone Directory</a></div>
449 <div class="item"><a href="http://www.percona.com/subscribe/">Subscribe to Newsletter</a></div>
450
451 </div>
452 <div class="navi-dropdown-footer"><!-- //--></div>
453 </div>
454 <div id="search-dropdown" class="search-dropdown">
455 <div class="search-dropdown-header"><!-- //--></div>
456 <div class="search-dropdown-content">
457 <div class="search-info">Search Percona.com:</div>
458 <form method="get" action="http://search.percona.com/search/" id="search-form">
459 <div class="form"><input type="text" id="search-input" name="q" maxlength="100"></div>
460 </form>
461 </div>
462 <div class="search-dropdown-footer"><!-- //--></div>
463 </div>
464</div>
465<div id="stats">
466<!-- GA //-->
467 <script src="http://www.percona.com/static/js/urchin.js" type="text/javascript"></script>
468 <script type="text/javascript">
469 _uacct = "UA-343802-3";
470 urchinTracker();
471 </script>
472<!-- /GA //-->
473<!-- NAVI //-->
474<script type="text/javascript">//<![CDATA[
475var navi = [{id:"about-us", direction: "l"},{id:"mysql-consulting", direction: "l"},{id:"support", direction: "l"},{id:"training", direction: "l"},{id:"development", direction: "l"},{id:"software", direction: "l"},{id:"events", direction: "r"},{id:"contact", direction: "r"}];
476for(var i = 0, c = navi.length; i < c; i++) {
477window.jQuery('#navilink-a-' + navi[i].id).bind('mouseover',{id: navi[i].id, direction:navi[i].direction}, function(e) { NAVI.Open(e.data.id, e.data.direction); } );
478}
479window.jQuery('#search-form').bind('submit', function() { window.location.href = jQuery('#search-form').attr('action') + jQuery('#search-input').val(); return false; });
480//]]></script>
481<!-- /NAVI //-->
482<script type="text/javascript">
483//<![CDATA[
484Percona.host = 'www.percona.com';
485Percona.getRecentServerVersion('#recentServerVersion');
486//]]>
487</script>
488</div>
489 </body>
490</html>
491
492
493
494{% if theme_collapsiblesidebar|tobool %}
495{% set script_files = script_files + ['_static/sidebar.js'] %}
496{% endif %}
4970
=== removed file 'doc-pxc/source/percona-theme/searchbox.html'
--- doc-pxc/source/percona-theme/searchbox.html 2012-06-01 04:28:35 +0000
+++ doc-pxc/source/percona-theme/searchbox.html 1970-01-01 00:00:00 +0000
@@ -1,22 +0,0 @@
1{#
2 basic/searchbox.html
3 ~~~~~~~~~~~~~~~~~~~~
4
5 Sphinx sidebar template: quick search box.
6
7 :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
8 :license: BSD, see LICENSE for details.
9#}
10{%- if pagename != "search" %}
11<div id="searchbox" style="display: none; padding: 3px;">
12 <h3>{{ _('Quick search') }}</h3>
13 <form class="search" action="{{ pathto('search') }}" method="get">
14 <input type="text" name="q" size="18" />
15 <input type="submit" value="{{ _('Go') }}" />
16 <input type="hidden" name="check_keywords" value="yes" />
17 <input type="hidden" name="area" value="default" />
18 </form>
19
20</div>
21<script type="text/javascript">$('#searchbox').show(0);</script>
22{%- endif %}
230
=== removed directory 'doc-pxc/source/percona-theme/static'
=== removed file 'doc-pxc/source/percona-theme/static/boxes_header_bulletpoint.png'
24Binary files doc-pxc/source/percona-theme/static/boxes_header_bulletpoint.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/boxes_header_bulletpoint.png 1970-01-01 00:00:00 +0000 differ1Binary files doc-pxc/source/percona-theme/static/boxes_header_bulletpoint.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/boxes_header_bulletpoint.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/button-download-icon.png'
25Binary files doc-pxc/source/percona-theme/static/button-download-icon.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/button-download-icon.png 1970-01-01 00:00:00 +0000 differ2Binary files doc-pxc/source/percona-theme/static/button-download-icon.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/button-download-icon.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/content_list_bulletpoint.png'
26Binary files doc-pxc/source/percona-theme/static/content_list_bulletpoint.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/content_list_bulletpoint.png 1970-01-01 00:00:00 +0000 differ3Binary files doc-pxc/source/percona-theme/static/content_list_bulletpoint.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/content_list_bulletpoint.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/default.css_t'
--- doc-pxc/source/percona-theme/static/default.css_t 2012-06-01 04:28:35 +0000
+++ doc-pxc/source/percona-theme/static/default.css_t 1970-01-01 00:00:00 +0000
@@ -1,433 +0,0 @@
1/*
2 * default.css_t
3 * ~~~~~~~~~~~~~
4 *
5 * Sphinx stylesheet -- default theme.
6 *
7 * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
8 * :license: BSD, see LICENSE for details.
9 *
10 */
11
12@import url("basic.css");
13
14/* -- page layout ----------------------------------------------------------- */
15
16body {
17 font-size: 12px;
18 line-height: 16px;
19 font-family: Arial;
20
21 background-color: #fff;
22 color: #333333;
23 line-height: 20px;
24 margin: 0;
25 padding: 0;
26
27}
28
29div.document {
30 background-color: #fff;
31 margin: 0 auto;
32 overflow: hidden;
33 padding: 30px 0;
34 width: 960px;
35}
36
37div.documentwrapper {
38 /* float: left; */
39 /* width: 100%; */
40
41}
42
43div.bodywrapper {
44 margin: 10 0 0 0px;
45 width: 660px;
46 float:right;
47}
48
49div.body {
50 background-color: #fff;
51 color: #333333;
52 padding: 0 0 20px;
53}
54
55{%- if theme_rightsidebar|tobool %}
56div.bodywrapper {
57 margin: 0 {{ theme_sidebarwidth }}px 0 0;
58}
59{%- endif %}
60
61div.footer {
62 /* color: {{ theme_footertextcolor }}; */
63 /* width: 100%; */
64 /* padding: 9px 0 9px 0; */
65 /* text-align: center; */
66 /* font-size: 75%; */
67 font: 80% "Lucida Grande",Verdana,Lucida,Helvetica,Arial,sans-serif;
68 background: none repeat scroll 0 0 #333333;
69 border-top: 2px solid #D95200;
70 overflow: hidden;
71}
72
73div.footer a {
74 color: {{ theme_footertextcolor }};
75 text-decoration: underline;
76}
77
78div.related {
79 background-color: #ccc;
80 line-height: 30px;
81 color: #333;
82 background: none repeat scroll 0 0 #F8F8F8;
83 border: 1px solid #E0E0E0;
84 clear: both;
85 padding: 10px;
86 width: 635px;
87 margin-bottom: 5px;
88}
89
90div.related a {
91 color: #999;
92}
93
94div.sphinxsidebar {
95 margin-left: 0px;
96 margin-right: 30px;
97 color: #333333;
98 font-family: Arial,Helvetica,sans-serif;
99 width: 260px;
100 {%- if theme_stickysidebar|tobool %}
101 top: 30px;
102 bottom: 0;
103 margin: 0;
104 position: fixed;
105 overflow: auto;
106 height: auto;
107 {%- endif %}
108 {%- if theme_rightsidebar|tobool %}
109 float: right;
110 {%- if theme_stickysidebar|tobool %}
111 right: 0;
112 {%- endif %}
113 {%- endif %}
114}
115
116{%- if theme_stickysidebar|tobool %}
117/* this is nice, but it it leads to hidden headings when jumping
118 to an anchor */
119/*
120div.related {
121 position: fixed;
122}
123
124div.documentwrapper {
125 margin-top: 30px;
126}
127*/
128{%- endif %}
129
130div.sphinxsidebar h3 {
131 /* font-family: {{ theme_headfont }}; */
132 color: #999;
133 font-size: 18px;
134 line-height: 15px;
135 font-weight: 400;
136 margin-left: 5px;
137 padding: 0;
138}
139
140div.sphinxsidebar h3 a {
141 color: #333;
142}
143
144div.sphinxsidebar a:hover {
145 /* color: #333; */
146}
147
148div.sphinxsidebar h4 {
149 /* font-family: {{ theme_headfont }}; */
150 color: #666;
151 font-size: 18px;
152 font-weight: normal;
153 margin: 5px 0 0 5px;
154 padding: 0;
155}
156
157div.sphinxsidebar p {
158 color: #333;
159 margin-bottom: 5px;
160 margin-left: 5px;
161}
162
163div.sphinxsidebar p.topless {
164 margin: 5px 10px 10px 10px;
165}
166
167div.sphinxsidebar ul {
168 margin: 10px;
169 padding-left: 5px;
170 color: #333;
171}
172
173div.sphinxsidebar a {
174 color: #D12907;
175}
176
177div.sphinxsidebar input {
178 border: 1px solid #999;
179 font-family: sans-serif;
180 font-size: 1em;
181}
182
183{% if theme_collapsiblesidebar|tobool %}
184/* for collapsible sidebar */
185div#sidebarbutton {
186 background-color: {{ theme_sidebarbtncolor }};
187}
188{% endif %}
189
190/* -- hyperlink styles ------------------------------------------------------ */
191
192a {
193 color: #D12907;
194 text-decoration: underline;
195 border: medium none;
196 cursor: pointer;
197}
198
199a:visited {
200 color: #D12907;
201 text-decoration: underline;
202}
203
204a:hover {
205 color: #D12907;
206 text-decoration: underline;
207}
208
209{% if theme_externalrefs|tobool %}
210a.external {
211 text-decoration: none;
212 border-bottom: 1px dashed {{ theme_linkcolor }};
213}
214
215a.external:hover {
216 text-decoration: none;
217 border-bottom: none;
218}
219
220a.external:visited {
221 text-decoration: none;
222 border-bottom: 1px dashed {{ theme_visitedlinkcolor }};
223}
224{% endif %}
225
226/* -- body styles ----------------------------------------------------------- */
227
228
229
230a.headerlink {
231 color: {{ theme_headlinkcolor }};
232 font-size: 0.8em;
233 padding: 0 4px 0 4px;
234 text-decoration: none;
235}
236
237a.headerlink:hover {
238 background-color: {{ theme_headlinkcolor }};
239 color: white;
240}
241
242div.body dd, div.body li {
243 text-align: justify;
244}
245
246div.body dt {
247 list-style-type: square;
248 /* margin: 8px 0 8px 30px; */
249 padding: 0 4px 0 5px;
250
251}
252
253div.body p {
254 text-align: justify;
255/* line-height: 130%;*/
256 margin: 10px 0;
257}
258
259/* div.body ul, */
260div.body li {
261 list-style-type: square;
262 margin: 8px 0 8px 30px;
263 padding: 0 4px 0 5px;
264}
265
266.reference em {
267 font-style: normal;
268}
269
270.std-term {
271 font-style: normal;
272 font-weight: 400;
273 color: #FF7400
274}
275
276div.admonition p.admonition-title + p {
277 display: inline;
278}
279
280div.admonition p {
281 margin-bottom: 5px;
282}
283
284div.admonition pre {
285 margin-bottom: 5px;
286}
287
288div.admonition ul, div.admonition ol {
289 margin-bottom: 5px;
290}
291
292div.note {
293 background-color: #eee;
294 border: 1px solid #ccc;
295}
296
297div.seealso {
298 background-color: #ffc;
299 border: 1px solid #ff6;
300}
301
302div.topic {
303 background-color: #eee;
304}
305
306div.warning {
307 background-color: #ffe4e4;
308 border: 1px solid #f66;
309}
310
311p.admonition-title {
312 display: inline;
313}
314
315p.admonition-title:after {
316 content: ":";
317}
318
319pre {
320 padding: 10px;
321 background-color: #F0E6D9/* {{ theme_codebgcolor }} */;
322 color: {{ theme_codetextcolor }};
323 line-height: 120%;
324 border: 1px dashed #ED9821;
325 font-size: 80%;
326 overflow: auto;
327 /* border-left: none; */
328 /* border-right: none; */
329}
330
331tt {
332/* background-color: #ecf0f3;
333 padding: 0 1px 0 1px;
334 font-size: 0.95em;*/
335 font-weight: 400;
336}
337
338div.body td {
339 text-align: none;
340}
341
342table.docutils th {
343 background-color: #DEE7EC;
344 border: 1px solid #8CACBB;
345 padding: 3px;
346 text-align: center;
347 font-style: normal;
348 font-weight: 400;
349}
350
351table.docutils td {
352 border: 1px solid #8CACBB;
353 padding: 3px;
354 line-height: 16px;
355 vertical-align: middle;
356}
357
358.warning tt {
359 background: #efc2c2;
360}
361
362.note tt {
363 background: #d6d6d6;
364}
365
366.viewcode-back {
367 font-family: {{ theme_bodyfont }};
368}
369
370div.viewcode-block:target {
371 background-color: #f4debf;
372 border-top: 1px solid #ac9;
373 border-bottom: 1px solid #ac9;
374}
375
376.file-bugs {
377 background: none repeat scroll 0 0 #E8E8E8;
378 border: 1px solid #E0E0E0;
379 clear: both;
380 color: #333333;
381 padding: 10px;
382 text-align: center;
383 font-size: 90%;
384}
385
386div.footer .footer {
387 margin: 0 auto;
388 overflow: hidden;
389 padding: 10px 0;
390 width: 960px;
391 border-top: none;
392}
393
394div.footer .footer .logo {
395 float: left;
396 overflow: hidden;
397 padding: 17px 0 0;
398}
399
400div.footer .footer .text {
401 color: #E0E0E0;
402 float: right;
403 font-family: Arial,Helvetica,sans-serif;
404 font-size: 11px;
405 line-height: 15px;
406 overflow: hidden;
407 text-align: right;
408}
409
410div.license {
411 font-size: 80%;
412 /* padding: 0.5em; */
413 text-align: center;
414 margin: 13px 0 -15px;
415}
416
417#sidenavi.noborder {
418 border-right: medium none;
419 border-top: medium none;
420 margin: 0;
421}
422
423#sidenavi {
424 color: #333333;
425 /* float: left; */
426 font-family: Arial,Helvetica,sans-serif;
427 font-size: 18px;
428 line-height: 25px;
429 overflow: hidden;
430 padding: 10px 0 8px 0px;
431 width: 255px;
432}
433
4340
=== removed file 'doc-pxc/source/percona-theme/static/email-small.png'
435Binary files doc-pxc/source/percona-theme/static/email-small.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/email-small.png 1970-01-01 00:00:00 +0000 differ1Binary files doc-pxc/source/percona-theme/static/email-small.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/email-small.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/jquery.min.js'
--- doc-pxc/source/percona-theme/static/jquery.min.js 2012-06-01 04:28:35 +0000
+++ doc-pxc/source/percona-theme/static/jquery.min.js 1970-01-01 00:00:00 +0000
@@ -1,154 +0,0 @@
1/*!
2 * jQuery JavaScript Library v1.4.2
3 * http://jquery.com/
4 *
5 * Copyright 2010, John Resig
6 * Dual licensed under the MIT or GPL Version 2 licenses.
7 * http://jquery.org/license
8 *
9 * Includes Sizzle.js
10 * http://sizzlejs.com/
11 * Copyright 2010, The Dojo Foundation
12 * Released under the MIT, BSD, and GPL Licenses.
13 *
14 * Date: Sat Feb 13 22:33:48 2010 -0500
15 */
16(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
17e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
18j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
19"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
20true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
21Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
22(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
23a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
24"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
25function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
26c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
27L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
28"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
29a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
30d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
31a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
32!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
33true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
34var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
35parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
36false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
37s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
38applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
39else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
40a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
41w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
42cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
43i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
44" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
45this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
46e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
47c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
48a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
49function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
50k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
51C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
52null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
53e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
54f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
55if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
56fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
57d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
58"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
59a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
60isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
61{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
62if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
63e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
64"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
65d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
66!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
67toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
68u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});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".split(" "),
69function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
70if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
71e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
72t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
73g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
74for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
751)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
76CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
77relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
78l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
79h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
80CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
81g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
82text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
83setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
84h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
85m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
86"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
87h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
88!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
89h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
90q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
91if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
92(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
93function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
94gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
95c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
96{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
97"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
98d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
99a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
1001&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
101a:b+"></"+d+">"},F={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,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
102c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
103wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
104prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
105this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
106return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
107""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
108this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
109u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
1101?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
111return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
112""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
113c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
114c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
115function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
116Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
117"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
118a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
119a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
120"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
121serialize: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||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
122function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
123global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
124e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
125"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
126false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
127false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
128c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
129d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
130g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
1311223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
132"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
133if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
134this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
135"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
136animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
137j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
138this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
139"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
140c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
141this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
142this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
143e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
144c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
145function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
146this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
147k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
148f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
149a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
150c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
151d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
152f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
153"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
154e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);
1550
=== removed file 'doc-pxc/source/percona-theme/static/percona.com.css'
--- doc-pxc/source/percona-theme/static/percona.com.css 2012-06-01 04:28:35 +0000
+++ doc-pxc/source/percona-theme/static/percona.com.css 1970-01-01 00:00:00 +0000
@@ -1,1849 +0,0 @@
1body, html{
2 height:100%;
3 margin:0;
4 padding:0;
5 font-size: 12px;
6 line-height: 16px;
7 font-family: Arial;
8 color: #333333;
9}
10
11form{
12 display:inline
13}
14
15a, a:visited{
16 border:none;
17 cursor:pointer;
18 color: #d5390b;
19 text-decoration: underline;
20}
21a:hover
22{
23 color: #712000;
24 text-decoration: underline;
25}
26
27img{
28 border:none
29}
30
31div,img{
32 behavior:url(/static/css/iepngfix.htc)
33}
34
35em
36{
37 font-style: italic;
38}
39
40del
41{
42 text-decoration: line-through;
43}
44
45.hidden{
46 display:none
47}
48
49strong {
50 font-weight: bold;
51}
52
53html, body {
54 height: 100%;
55}
56
57#stickywrapper {
58 position: relative;
59 min-height: 100%;
60}
61
62* html #stickywrapper {
63 height: 100%;
64}
65
66#stickycontent {
67 padding-bottom: 102px;
68}
69
70#stickyfooter {
71 position: relative;
72 margin: -97px auto 0 auto;
73}
74a.links
75{
76 font-style: oblique;
77 text-decoration: underline;
78}
79span.subpart
80{
81 font-weight: bold;
82}
83
84/**
85 * LAYOUT
86 */
87
88#header{
89 background:#333;
90 height:95px;
91 overflow:hidden;
92 zoom:1
93}
94
95#header .header{
96 height:95px;
97 margin:0 auto;
98 overflow:hidden;
99 width:960px;
100 zoom:1
101}
102#header .header .logo{
103 float:left;
104 overflow:hidden;
105 padding:20px 0;
106 width:240px;
107 zoom:1
108}
109
110#header .header .logo
111{
112 overflow: hidden;
113 zoom: 1;
114 float: left;
115 width: 240px;
116 padding: 20px 0px;
117}
118
119#header .header .right
120{
121 overflow: hidden;
122 zoom: 1;
123 float: left;
124 width: 720px;
125 height: 35px;
126 padding: 30px 0px;
127}
128
129
130#header .header .right .searchlink
131{
132 overflow: hidden;
133 zoom: 1;
134 width: 35px;
135 height: 35px;
136 float: right;
137 padding: 0px 0px 0px 10px;
138}
139
140
141#header .header .right .navicontainer
142{
143 overflow: hidden;
144 zoom: 1;
145 float: right;
146 height: 35px;
147 background: #ffffff url(ui-navi-l.png) top left no-repeat;
148}
149
150#header .header .right .navi
151{
152 overflow: hidden;
153 zoom: 1;
154 height: 27px;
155 padding: 4px 10px;
156 background: url(ui-navi-r.png) top right no-repeat;
157}
158
159#header .header .right .navicontainer .navi span
160{
161 overflow: hidden;
162 zoom: 1;
163 height: 27px;
164 float: left;
165 margin: 0px;
166}
167#header .header .right .navicontainer .navi span:hover
168{
169 background: #f0f0f0 url(ui-navi-hover-l.png) top left no-repeat;
170}
171#header .header .right .navicontainer .navi span.selected, #header .header .right .navicontainer .navi span.selected:hover
172{
173 background: #d5390b url(ui-navi-sel-l.png) top left no-repeat;
174}
175
176#header .header .right .navicontainer .navi span a, #header .header .right .navicontainer .navi span a:visited
177{
178 display: block;
179 padding: 6px 10px 4px 10px;
180 height: 17px;
181 font-family: Arial, Helvetica, sans-serif;
182 font-size: 14px;
183 line-height: 14px;
184 color: #000000;
185 text-decoration: none;
186}
187#header .header .right .navicontainer .navi span a:hover
188{
189 background: url(ui-navi-hover-r.png) top right no-repeat;
190}
191#header .header .right .navicontainer .navi span.selected a.selected, #header .header .right .navicontainer .navi span.selected a.selected:visited, #header .header .right .navicontainer .navi span.selected a.selected:hover
192{
193 background: url(ui-navi-sel-r.png) top right no-repeat;
194 color: #ffffff;
195}
196
197
198
199/*
200 * Banners
201 */
202
203#slogan
204{
205 overflow: hidden;
206 zoom: 1;
207 height: 125px;
208 background: #d24300 url(ui-orange-front.png) bottom center no-repeat;
209 text-align: center;
210}
211
212#stripe
213{
214 overflow: hidden;
215 zoom: 1;
216 height: 20px;
217 background: #d24300 url(ui-orange-content.png) top center no-repeat;
218}
219
220
221
222/*
223 * Footer
224 */
225
226#footer
227{
228 overflow: hidden;
229 zoom: 1;
230 background: #333333;
231 border-top: 2px #d95200 solid;
232}
233
234#footer .footer
235{
236 overflow: hidden;
237 zoom: 1;
238 width: 960px;
239 margin: 0px auto;
240 padding: 10px 0px;
241}
242
243#footer .footer .logo
244{
245 overflow: hidden;
246 zoom: 1;
247 float: left;
248 padding: 17px 0px 0px 0px;
249}
250
251#footer .footer .text
252{
253 overflow: hidden;
254 zoom: 1;
255 float: right;
256 text-align: right;
257 font-family: Arial, Helvetica, sans-serif;
258 font-size: 11px;
259 line-height: 15px;
260 color: #e0e0e0;
261}
262
263#footer .footer .text a, #footer .footer .text a:visited
264{
265 color: #e0e0e0;
266 text-decoration: none;
267}
268#footer .footer .text a:hover
269{
270 color: #ffffff;
271 text-decoration: underline;
272}
273
274
275/*
276 * Menu Dropdowns
277 */
278
279div.navi-dropdown
280{
281 display: none;
282 position: absolute;
283 overflow: hidden;
284 zoom: 1;
285 width: 255px;
286 z-index: 900;
287}
288
289div.navi-dropdown .navi-dropdown-header-l
290{
291 overflow: hidden;
292 zoom: 1;
293 width: 255px;
294 height: 20px;
295 background: url(ui-dropdown-header-l.png) top left no-repeat;
296}
297
298div.navi-dropdown .navi-dropdown-header-r
299{
300 overflow: hidden;
301 zoom: 1;
302 width: 255px;
303 height: 20px;
304 background: url(ui-dropdown-header-r.png) top left no-repeat;
305}
306
307div.navi-dropdown .navi-dropdown-content
308{
309 overflow: hidden;
310 zoom: 1;
311 width: 225px;
312 padding: 0px 15px 5px 15px;
313 background: #ffffff url(ui-dropdown-bg.png) repeat-y;
314 font-family: Arial, Helvetica, sans-serif;
315 font-size: 14px;
316 line-height: 20px;
317 color: #333333;
318}
319
320div.navi-dropdown .navi-dropdown-content .item
321{
322 padding: 3px 0px 1px 0px;
323}
324
325div.navi-dropdown .navi-dropdown-content a, div.navi-dropdown .navi-dropdown-content a:visited
326{
327 display: block;
328 color: #333333;
329 text-decoration: none;
330}
331div.navi-dropdown .navi-dropdown-content a:hover
332{
333 color: #d12907;
334 text-decoration: underline;
335}
336
337div.navi-dropdown .navi-dropdown-footer
338{
339 overflow: hidden;
340 zoom: 1;
341 width: 255px;
342 height: 10px;
343 background: url(ui-dropdown-footer.png) top left no-repeat;
344}
345
346
347div.search-dropdown
348{
349 display: none;
350 position: absolute;
351 overflow: hidden;
352 zoom: 1;
353 width: 255px;
354}
355
356div.search-dropdown .search-dropdown-header
357{
358 overflow: hidden;
359 zoom: 1;
360 width: 255px;
361 height: 20px;
362 background: url(ui-dropdown-header-search.png) top left no-repeat;
363}
364
365div.search-dropdown .search-dropdown-content
366{
367 overflow: hidden;
368 zoom: 1;
369 width: 225px;
370 padding: 0px 15px 5px 15px;
371 background: #ffffff url(ui-dropdown-bg.png) repeat-y;
372 font-family: Arial, Helvetica, sans-serif;
373 font-size: 14px;
374 line-height: 20px;
375 color: #333333;
376}
377
378div.search-dropdown .search-dropdown-content .form
379{
380 padding-top: 2px;
381}
382
383div.search-dropdown .search-dropdown-content .form input
384{
385 border: 1px #c0c0c0 solid;
386 padding: 4px;
387 width: 210px;
388 outline: none;
389}
390div.search-dropdown .search-dropdown-content .form input:focus
391{
392 border: 1px #707070 solid;
393 outline: none;
394}
395
396div.search-dropdown .search-dropdown-footer
397{
398 overflow: hidden;
399 zoom: 1;
400 width: 255px;
401 height: 10px;
402 background: url(ui-dropdown-footer.png) top left no-repeat;
403}
404
405
406
407#left-column .navi-title {
408 font-size: 15px;
409 color: #d5390b;
410 margin-bottom: 20px;
411}
412
413#left-column .navi-title span {
414 background: url("left_menu_title_bullet.png") right top no-repeat;
415 padding-right: 20px;
416 padding-left: 10px;
417}
418
419#left-column .item, #left-column .subitem {
420
421 border-top: 1px solid #f3f1ee;
422}
423
424#left-column .subitem {
425 padding-left: 15px;
426}
427
428#left-column .item a, #left-column .subitem a {
429 min-height: 18px;
430 /* line-height: 23px; */
431
432 color: #a3a3a3;
433 font-size: 11px;
434 text-decoration: none;
435 display: block;
436 padding: 5px 0 2px 10px;
437 background: url('left_column_item_bulletpoint.png') left no-repeat;
438}
439#left-column .item a:hover {
440 text-decoration: underline;
441}
442
443#left-column .selected > a {
444 color: #b82c02;
445 background: url('left_menu_item_selected_bulletpoint.png') left no-repeat;
446}
447
448/*
449 * Front page
450 */
451.frontpage-text {
452 font-size: 13px;
453}
454div.frontpage-banners
455{
456 overflow: hidden;
457 zoom: 1;
458 width: 960px;
459 margin: 0px;
460 margin-bottom: 20px;
461 padding: 0px;
462}
463
464div.frontpage-banners div.frontpage-banners-container
465{
466 overflow: hidden;
467 zoom: 1;
468 width: 960px;
469 height: 200px;
470 padding-bottom: 30px;
471 z-index: 100;
472}
473
474div.frontpage-banners a.nivo-imageLink
475{
476 position: absolute;
477 top: 0px;
478 left: 0px;
479 width: 960px;
480 height: 200px;
481 border: 0;
482 padding: 0;
483 margin: 0;
484 z-index: 20;
485 display: none;
486}
487
488
489div.frontpage-banners div.frontpage-banners-container div.nivo-directionNav
490{
491 width: 1px;
492 height: 1px;
493 display: none !important;
494 z-index: 18 !important;
495}
496
497div.frontpage-banners div.frontpage-banners-container div.nivo-controlNav
498{
499 position: absolute;
500 top: 200px;
501 width: 960px;
502 text-align: center;
503 font-size: 28px;
504 line-height: 25px;
505}
506
507div.frontpage-banners div.frontpage-banners-container div.nivo-controlNav a
508{
509 padding: 0px 3px;
510 text-decoration: none !important;
511 color: #919191 !important;
512}
513
514div.frontpage-banners div.frontpage-banners-container div.nivo-controlNav a.active
515{
516 color: #d12907 !important;
517}
518
519div.frontpage-banners div.frontpage-banners-selector
520{
521 overflow: hidden;
522 zoom: 1;
523 height: 20px;
524 text-align: center;
525}
526
527div.frontpage-main
528{
529 overflow: hidden;
530 zoom: 1;
531 width: 960px;
532 padding: 0px;
533}
534
535div.frontpage-boxes
536{
537 overflow: hidden;
538 zoom: 1;
539 margin: 25px 0px 0px 0px;
540 width: 515px;
541 padding: 0px;
542}
543
544div.frontpage-boxes div.frontpage-boxes-selector
545{
546 overflow: hidden;
547 zoom: 1;
548 width: 515px;
549}
550
551div.frontpage-boxes div.frontpage-boxes-selector div.frontpage-boxes-selector-item
552{
553 overflow: hidden;
554 zoom: 1;
555 width: 127px;
556 float: left;
557 margin-left: -1px;
558 border-top: 1px #cccccc solid;
559 border-left: 1px #cccccc solid;
560 border-right: 1px #cccccc solid;
561 border-bottom: 1px #cccccc solid;
562 text-align: center;
563 margin-top: 10px;
564 padding: 0px 0px 0px 0px;
565}
566
567div.frontpage-boxes div.frontpage-boxes-selector div.frontpage-boxes-selector-item:first-child
568{
569 margin-left: 0px;
570}
571
572div.frontpage-boxes div.frontpage-boxes-selector div.frontpage-boxes-selector-item.selected
573{
574 background: url(ui-tab-bg.png) repeat-x;
575 margin-top: 0px;
576 border-bottom: none;
577 padding: 5px 0px 6px 0px;
578}
579
580div.frontpage-boxes div.frontpage-boxes-selector div.frontpage-boxes-selector-item a
581{
582 display: block;
583 font-size: 13px;
584 line-height: 13px;
585 font-weight: bold;
586 color: #444444 !important;
587 text-decoration: none !important;
588 padding: 9px 0px 8px 0px;
589}
590
591div.frontpage-boxes div.frontpage-boxes-container
592{
593 overflow: hidden;
594 zoom: 1;
595 font-size: 12px;
596 width: 511px;
597 height: 150px;
598 padding-top: 20px;
599 border-left: 1px #cccccc solid;
600 border-right: 1px #cccccc solid;
601 border-bottom: 1px #cccccc solid;
602 padding-left: 0px;
603}
604
605div.frontpage-boxes div.frontpage-boxes-container div.frontpage-box img
606{
607 padding: 5px 15px 55px 0;
608 float:left;
609}
610
611.innerpage-box {
612 padding: 10px 20px;
613}
614/*
615 * Content
616 */
617
618#contentcontainer
619{
620 overflow: hidden;
621 zoom: 1;
622 width: 960px;
623 padding: 30px 0px;
624 margin: 0px auto;
625}
626
627
628.document p
629{
630 margin-bottom:15px;
631}
632
633.document h1
634{
635 font-size: 23px;
636 line-height: 30px;
637 margin: 5px 0px 10px 0px;
638 color: #d5390b;
639}
640
641.document h2
642{
643 font-size: 17px;
644 line-height: 20px;
645 padding: 0px 0px 3px 0px;
646 margin: 30px 0px 15px 0px;
647 color: #000000;
648 border-bottom: 1px #e0e0e0 solid;
649}
650
651.document h3
652{
653 font-weight: bold;
654 font-size: 14px;
655 line-height: 17px;
656 margin: 20px 0px 5px 0px;
657 color: #000000;
658}
659
660.document dl dt
661{
662 font-weight: bold;
663 margin-top: 10px;
664 margin-bottom: 10px;
665}
666
667.document dl dd
668{
669 padding: 0px 0px 0px 30px;
670}
671
672.document ol
673{
674 list-style-type: decimal;
675 padding: 0px 0px 0px 30px;
676}
677
678.document ol li
679{
680 list-style-type: decimal;
681 margin: 8px 0px;
682}
683
684/*
685.document h4
686{
687 font-family: Arial, Helvetica, sans-serif;
688 font-size: 14px;
689 line-height: 14px;
690 font-weight: bold;
691 padding: 5px 0px 0px 0px;
692 margin: -16px 0px 20px 0px;
693 color: #000000;
694 border-top: 1px #e0e0e0 solid;
695}
696.document h4 a, .document h4 a:visited
697{
698 color: #000000;
699 text-decoration: none;
700}
701.document h4 a:hover
702{
703 color: #d12907;
704 text-decoration: none;
705}
706
707
708
709.document ul
710{
711 list-style-type: square;
712 padding: 0px 0px 0px 30px;
713}
714
715.document ul li
716{
717 list-style-type: square;
718 margin: 8px 0px;
719}
720
721
722
723.document div.pagecontent
724{
725 overflow: hidden;
726 zoom: 1;
727}
728*/
729
730
731/*
732 * Content box
733 */
734/*
735div.contentbox
736{
737 border: 1px #e0e0e0 solid;
738}
739
740div.contentbox div.title
741{
742 font-size: 16px;
743 line-height: 20px;
744 font-weight: bold;
745 padding: 8px 15px 2px 15px;
746 background: url(ui-leftnavi-sel.png) repeat-x;
747}
748
749div.contentbox div.content
750{
751 padding: 15px;
752}
753*/
754
755
756div.side-column-block
757{
758 width: 220px;
759 position: relative;
760 margin: 0 0 20px;
761}
762
763div.side-column-block .header
764{
765 background: url("boxes_header_bulletpoint.png") left no-repeat;
766 text-align: left;
767 font-size: 14px;
768 line-height: 20px;
769 padding: 3px 0px 3px 20px;
770 margin-bottom: 10px;
771 font-weight: bold;
772 border-bottom: 1px solid #efece8;
773
774}
775
776div.side-column-block div.content
777{
778 font-size: 11px;
779 padding-left: 5px;
780}
781
782div.side-column-block div.content div.more
783{
784 overflow: hidden;
785 zoom: 1;
786 text-align: right;
787 padding: 5px 0px 0px 0px;
788 font-size: 11px;
789 line-height: 17px;
790}
791div.side-column-block div.content li {
792 padding-left: 10px;
793
794 background: url('boxes_list_bulletpoints.png') left top no-repeat;
795 margin-bottom:7px;
796}
797
798div.side-column-block .content a {
799 color: #b82c02;
800}
801
802div.side-column-block .content table.call-us {
803 width: 100%;
804}
805div.side-column-block .content table.call-us tr {
806 margin-bottom: 10px;
807}
808div.side-column-block .content table.call-us th {
809 vertical-align: text-top;
810 color: #e05d02;
811 font-size: 11px;
812}
813div.side-column-block .content table.call-us td, div.side-column-block .content table.call-us th {
814 padding-bottom: 10px;
815}
816div.side-column-block .content table.call-us td a {
817 color: #e05d02;
818}
819
820div.side-column-block .content .button-customer-login span{
821 display: none;
822}
823.side-column-block .content .button-customer-login {
824 display: block;
825 background: url('button-customer-login.png') top left no-repeat;
826 width: 220px;
827 height: 30px;
828 margin-top: 12px;
829}
830
831.side-column-block .side-contact-buttons {
832 margin: 0 !important;
833 padding-left: 0px !important;
834}
835.side-column-block .side-contact-buttons li {
836 margin-bottom: 5px;
837}
838.side-column-block .side-contact-buttons a {
839 display: block;
840 width: 228px;
841 height: 32px;
842 background: url('side_buttons.png') top left no-repeat;
843}
844.side-column-block .side-contact-buttons a.contact-me { background-position: 0px 0px; }
845.side-column-block .side-contact-buttons a.webinar { background-position: 0px -36px; }
846.side-column-block .side-contact-buttons a.download-software { background-position: 0px -72px; }
847.side-column-block .side-contact-buttons a.newsletters { background-position: 0px -108px; }
848
849.side-column-block .side-contact-buttons a span {
850 display: none;
851}
852
853
854.side-column-block .content .numbers
855{
856 padding-left: 45px;
857 background: url(phone.png) 2px center no-repeat;
858 line-height: 18px;
859 text-align: right;
860 padding-right: 5px;
861}
862
863/*
864 * Our team list
865 */
866
867.our-team-page h2
868{
869 clear: both;
870}
871
872div.our-team-item
873{
874 text-align: center;
875 overflow: hidden;
876 zoom: 1;
877 width: 162px;
878 margin-left: 5px;
879 height: 200px;
880 float: left;
881}
882
883.pagecontent div.our-team-profile {
884 height: inherit;
885 margin-left: 0;
886}
887.pagecontent div.our-team-profile img{
888 margin-top: 20px;
889 margin-left: 0;
890 margin-right: 0;
891}
892div.our-team-item .img img
893{
894 border: 1px #e0e0e0 solid;
895 padding: 2px;
896}
897
898/*
899 * Phone Directory
900 */
901
902table.phonetable {
903 margin-top: 1em;
904 border-collapse: collapse;
905}
906
907.phonetable {
908 margin-left: 2em;
909}
910
911table.phonetable th,
912table.phonetable tr {
913 text-align: left;
914}
915
916table.phonetable th {
917 border: 1px #e0e0e0 solid;
918 background: #f8f8f8;
919 padding: 7px;
920 font-weight: bold;
921}
922
923table.phonetable td {
924 border: 1px #e0e0e0 solid;
925 padding: 7px ;
926}
927
928table.phonetable .label {
929 text-align: left;
930}
931
932table.phonetable td.label {
933}
934
935/*
936 * contact forms
937 */
938.form-item
939{
940 clear: both;
941 margin-top: 1em;
942 position: relative;
943}
944.form-item label
945{
946 display: block;
947 font-weight: bold;
948 position: absolute;
949 top: 0;
950 left: 0;
951 width: 13em;
952}
953.form-required
954{
955 color: #fa0;
956 font-weight: bold;
957}
958.form-item .description
959{
960 color: #888;
961 font-size: 0.85em;
962 line-height: 150%;
963 position: relative;
964 left: 14em;
965}
966#edit-submitbutton
967{
968 position: relative;
969 left: 12em;
970 margin: 1em 0;
971}
972.form-item input[type=text],
973.form-item select,
974.form-item textarea
975{
976 border: 1px solid #CCC;
977 width: 350px;
978 position: relative;
979 top: 0;
980 left: 12em;
981}
982.form-item textarea
983{
984 height: 12em;
985 padding: 3px;
986}
987.form-item-spacer
988{
989 padding-top: 1em;
990}
991.form-item #captcha
992{
993 position: relative;
994 top: 0;
995 left: 12em;
996}
997#edit-submitted-captcha
998{
999 margin-top: 0.5em;
1000 width: 154px;
1001}
1002fieldset.form-item-set
1003{
1004 border: 1px solid #ccc;
1005 display: block;
1006 margin: 12px 0;
1007 padding: 12px;
1008}
1009fieldset.form-item-set legend
1010{
1011 border: none;
1012 display: block;
1013 padding: 0 2px;
1014}
1015div.error
1016{
1017 background: #fff;
1018 border: solid 1px #c52020;
1019 color: #C52020;
1020 padding: 5px;
1021}
1022div.messages
1023{
1024 margin: 5px 20px;
1025 font-size: 11px;
1026}
1027div.messages ul,
1028div.messages ul li
1029{
1030 list-style-image: none;
1031 list-style-type: none;
1032}
1033div.messages ul li
1034{
1035 padding: 0 0 0.2em 0;
1036}
1037.form-item .error
1038{
1039 background-color :#fdd;
1040}
1041
1042#emergency-contacts .node-field-name
1043{
1044 text-align: right;
1045 font-weight: bold;
1046 padding-right: 1em;
1047}
1048#emergency-contacts .node-field-value-phone
1049{
1050 font-weight: bold;
1051 color: #137F00;
1052}
1053#emergency-contacts .node-field-help
1054{
1055 font-weight: bold;
1056}
1057
1058/*
1059 * compact template
1060 */
1061#compact_footer
1062{
1063 width: auto !important;
1064}
1065#compact_contentcontainer
1066{
1067 overflow: hidden;
1068 zoom: 1;
1069 width: auto;
1070 padding: 30px 0px;
1071 margin: 0px 20px;
1072}
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088.content-featured-box {
1089 float: right;
1090 background-color: #f9f9f9;
1091 color: #999999;
1092 font-size: 11px;
1093 padding: 20px;
1094 width: 130px;
1095 margin: 0px 0 10px 10px;
1096}
1097.content-featured-box .footer {
1098 margin-top: 10px;
1099 text-align: right;
1100 color: #666666;
1101 font-size: 11px;
1102}
1103.content-featured-box .footer em {
1104 font-style: normal;
1105 font-size: 11px;
1106}
1107
1108.document ul {
1109 margin-left: 5px;
1110 padding-left: 15px;
1111 margin-bottom: 15px;
1112}
1113
1114.document ul li {
1115 list-style-image: url('content_list_bulletpoint.png');
1116 margin-bottom: 5px;
1117 line-height: 16px;
1118}
1119
1120.document ul.alt-list li {
1121 list-style-image: url('content_list_bulletpoint_alt.png');
1122 font-size: 13px;
1123}
1124
1125.document ul.alt-list li a {
1126 text-decoration: none;
1127
1128}
1129
1130.field-row {
1131 margin-bottom: 20px;
1132}
1133.field-row label {
1134 display:block;
1135 width: 80px;
1136 color: #cc3300;
1137 float: left;
1138}
1139.field-row .field {
1140 display: block;
1141 width: 400px;
1142 float: left;
1143}
1144.field-row:after {
1145 content: ".";
1146 display: block;
1147 visibility: hidden;
1148 height: 0;
1149 clear:both;
1150}
1151
1152/* **************************************************************************************** */
1153/*
1154 * Customer list
1155 */
1156
1157.custlogo img
1158{
1159 /* Images are 175px wide; three side-by-side in a 720px div means each has
1160 * roughly 240px of space to occupy. */
1161 padding: 20px;
1162 border: 1px solid white;
1163}
1164
1165.custlogo img:hover
1166{
1167 border: 1px solid gray;
1168}
1169
1170/*
1171 * Form table
1172 */
1173
1174table.formtable
1175{
1176 border-collapse: collapse;
1177}
1178
1179table.formtable th
1180{
1181 font-weight: normal;
1182 white-space: nowrap;
1183 padding: 4px 20px 4px 0px;
1184}
1185
1186table.formtable td
1187{
1188 padding: 4px 0px 4px 0px;
1189}
1190
1191table.formtable td input[type='text'],
1192table.formtable td select
1193{
1194 border: 1px #e0e0e0 solid;
1195 padding: 4px;
1196 width: 400px;
1197}
1198
1199table.formtable td.submit
1200{
1201 padding: 10px 0px 0px 0px;
1202 text-align: center;
1203}
1204
1205
1206/*
1207 * Data table
1208 */
1209
1210table.datatable
1211{
1212 margin-top: 1em;
1213 border-collapse: collapse;
1214}
1215.datatable
1216{
1217 margin-left: 2em;
1218}
1219table.datatable th,
1220table.datatable tr {
1221 text-align: center;
1222}
1223
1224table.datatable th
1225{
1226 border: 1px #e0e0e0 solid;
1227 background: #f8f8f8;
1228 padding: 7px;
1229 font-weight: bold;
1230}
1231
1232table.datatable td
1233{
1234 border: 1px #e0e0e0 solid;
1235 padding: 7px;
1236}
1237
1238table.datatable .label {
1239 text-align: left;
1240
1241}
1242
1243
1244
1245/*
1246 * Front page blocks
1247 */
1248/*
1249.frontpage-sidebar .header
1250{
1251 padding: 0px 0px 10px 0px;
1252 font-size: 18px;
1253 font-weight: normal;
1254 text-align: center;
1255}
1256.frontpage-sidebar .header.link
1257{
1258 padding: 13px 0px 10px 4px;
1259 text-align: left;
1260}
1261.frontpage-sidebar .header a, .frontpage-sidebar .header a:visited
1262{
1263 color: #333333 !important;
1264 text-decoration: none !important;
1265}
1266.frontpage-sidebar .header a:hover
1267{
1268 color: #d12907 !important;
1269 text-decoration: none !important;
1270}
1271
1272.frontpage-sidebar .header.bloglink
1273{
1274 font-size:16px;
1275 padding: 0px 0px 10px 10px;
1276 text-align: center;
1277}
1278
1279.frontpage-sidebar .header.blogheader
1280{
1281 font-weight:normal;
1282 text-align:center;
1283 font-size: 15px;
1284 padding: 13px 10px 10px 0px;
1285}
1286
1287.frontpage-sidebar .header a.email
1288{
1289 padding: 13px 10px 10px 40px;
1290 background: url(email-small.png) left center no-repeat;
1291}
1292
1293
1294
1295
1296
1297.frontpage-sidebar .eventum a, .frontpage-sidebar .eventum a:visited
1298{
1299 padding: 0px 2px 0px 55px;
1300 font-size: 12px;
1301 line-height: 18px;
1302 text-align: left;
1303 background: url(support-small.png) left center no-repeat;
1304 display: block;
1305 color: #333333 !important;
1306 text-decoration: none !important;
1307}
1308
1309.frontpage-sidebar .eventum a:hover
1310{
1311 color: #d12907 !important;
1312 text-decoration: underline !important;
1313}
1314*/
1315
1316/*
1317 * Presentations
1318 */
1319
1320div.presentation
1321{
1322 border-top: 1px #e0e0e0 dotted;
1323 padding: 15px 0px;
1324}
1325div.presentation:first-child
1326{
1327 margin-top: 0;
1328 border: none;
1329}
1330
1331div.presentation table.presentation
1332{
1333 border-collapse: collapse;
1334}
1335
1336div.presentation table.presentation td div.bordered-image-screenshot
1337{
1338 border: 1px #e0e0e0 solid;
1339 background: #f8f8f8;
1340 padding: 5px;
1341}
1342
1343div.presentation table.presentation td.presentations-descr
1344{
1345
1346 padding-left: 15px;
1347}
1348
1349div.presentation table.presentation td.presentations-descr h4
1350{
1351 font-size: 14px;
1352
1353 font-weight: bold;
1354 margin-top: 0px !important;
1355 margin-bottom: 10px;
1356 border-top: none !important;
1357}
1358
1359.customer-vote {
1360 width: 412px;
1361 text-align: justify;
1362}
1363
1364.training-info-container {
1365 float: right;
1366 width:200px;
1367 background-color:#fff;
1368 padding:10px;
1369 margin:0 15px;
1370 border:1px solid #E0E0E0;
1371}
1372
1373/*
1374 * Software info container
1375 */
1376
1377div.software-info-container
1378{
1379 overflow: hidden;
1380 zoom: 1;
1381 float: right;
1382 padding: 0px 0px 25px 25px;
1383}
1384
1385table.software-info-container
1386{
1387 width: 240px;
1388 border-collapse: collapse;
1389}
1390
1391table.software-info-container td
1392{
1393 border: 1px #e0e0e0 solid;
1394 padding: 10px 10px 10px 10px;
1395}
1396
1397table.software-info-container td.latest
1398{
1399 padding: 10px 10px 10px 62px;
1400 background: url(software-latest.png) 15px center no-repeat;
1401 min-height: 32px;
1402 font-size: 16px;
1403 line-height: 24px;
1404}
1405
1406table.software-info-container td.download a
1407{
1408 font-weight: bold;
1409}
1410
1411table.software-info-container td.download
1412{
1413 padding: 15px 62px 15px 20px;
1414 background: url(software-download.png) 195px center no-repeat;
1415 min-height: 32px;
1416 font-size: 18px;
1417 line-height: 24px;
1418}
1419
1420table.software-info-container td.links
1421{
1422 text-align: left;
1423 padding: 4px 10px 4px 20px;
1424}
1425
1426table.software-info-container td.links div
1427{
1428 margin: 10px 0px;
1429}
1430
1431.inv {
1432 display: none;
1433}
1434
1435/*
1436 * Downloads table
1437 */
1438
1439table.downloadstable
1440{
1441 margin-top: 20px;
1442 border-collapse: collapse;
1443}
1444
1445table.downloadstable th
1446{
1447 border: 1px #e0e0e0 solid;
1448 background: #f8f8f8;
1449 padding: 7px;
1450 font-weight: bold;
1451}
1452
1453table.downloadstable td
1454{
1455 border: 1px #e0e0e0 solid;
1456 padding: 7px;
1457}
1458
1459table.downloadstable td.file
1460{
1461 width: 90%;
1462 text-align: left;
1463}
1464
1465table.downloadstable td.modified
1466{
1467 width: 5%;
1468 text-align: center;
1469 white-space: nowrap;
1470}
1471
1472table.downloadstable td.size
1473{
1474 width: 5%;
1475 text-align: right;
1476 white-space: nowrap;
1477}
1478
1479/*
1480 * Maintenance promo on /downloads
1481 */
1482
1483div.downloads-maintenance-promo, div.downloads-warning
1484{
1485 border: 1px #e0e0e0 solid;
1486 padding: 15px 20px 15px 150px;
1487 margin: 30px 0px;
1488 background: url(shield.png) 35px center no-repeat;
1489}
1490div.downloads-maintenance-promo > .close-button
1491{
1492 float:right;
1493 clear:right;
1494 margin-top:-10px;
1495 margin-right:-15px;
1496 cursor: pointer; cursor: hand;
1497}
1498
1499div.downloads-warning {
1500 background: url(warning.png) 35px center no-repeat;
1501}
1502
1503
1504/*
1505 * Downloads pages
1506 */
1507
1508div.downloads-version
1509{
1510 border-top: 1px #e0e0e0 solid;
1511 margin-top: -10px;
1512 padding-top: 10px;
1513 text-align: right;
1514 font-size: 14px;
1515 line-height: 14px;
1516 font-weight: bold;
1517}
1518
1519div.downloads-anchors
1520{
1521 font-size: 12px;
1522 line-height: 15px;
1523 margin: 20px 0px;
1524}
1525
1526div.downloads-backtotop
1527{
1528 font-size: 12px;
1529 line-height: 15px;
1530 padding-top: 8px;
1531}
1532
1533
1534/*
1535 * Downloads signup
1536 */
1537
1538.downloadsignupdialog .ui-dialog-titlebar
1539{
1540 display: none;
1541}
1542
1543#downloadsignup .title-bar-close {
1544 float:right;
1545 margin-top:-10px;
1546}
1547
1548#downloadsignup h2
1549{
1550 font-family: Arial, Helvetica, sans-serif;
1551 font-size: 22px;
1552 line-height: 22px;
1553 margin: 10px 0px 20px 0px;
1554 color: #d12907;
1555}
1556
1557#downloadsignup .intro
1558{
1559 margin: 10px 0px 15px 0px;
1560}
1561
1562#downloadsignup .form .field
1563{
1564 overflow: hidden;
1565 zoom: 1;
1566 margin: 10px 0px;
1567}
1568
1569#downloadsignup .form .field .label
1570{
1571 overflow: hidden;
1572 zoom: 1;
1573 width: 150px;
1574 float: left;
1575 padding-top: 5px;
1576}
1577
1578#downloadsignup .form .field .element
1579{
1580 overflow: hidden;
1581 zoom: 1;
1582 width: 410px;
1583 float: left;
1584}
1585
1586#downloadsignup .form .field .element input, #downloadsignup .form .field .element select
1587{
1588 width: 400px;
1589 border: 1px #cccccc solid;
1590 padding: 3px;
1591 outline: none;
1592}
1593
1594#downloadsignup .form .field .element input:focus, #downloadsignup .form .field .element select:focus
1595{
1596 border: 1px #333333 solid;
1597 background: #f8f8f8;
1598 outline: none;
1599}
1600
1601#downloadsignup .form .field .radiolist
1602{
1603 overflow: hidden;
1604 zoom: 1;
1605 display: block;
1606 padding: 0;
1607 margin: 0;
1608}
1609
1610#downloadsignup .form .field table.radiolist
1611{
1612 width: 100%;
1613}
1614
1615#downloadsignup .form .field .radiolist td
1616{
1617 width: 25%;
1618}
1619
1620#downloadsignup .form .field div.radiolist label
1621{
1622 display: block;
1623 min-width: 55px;
1624 float: left;
1625 zoom: 1;
1626 padding: 8px 10px 2px 24px !important;
1627 text-indent: -24px;
1628 overflow: auto;
1629}
1630
1631#downloadsignup .form .field table.radiolist label
1632{
1633 padding: 8px 15px 2px 0px !important;
1634 zoom: 1;
1635 display: block;
1636}
1637#downloadsignup .form .field .radiolist label input
1638{
1639 margin: 0px 7px 0px 3px !important;
1640}
1641
1642/*
1643.schedule td {
1644 padding: 3px;
1645 border: 1px solid #eeeeee;
1646 padding-left: 10px;
1647 font-size: 16px;
1648}
1649
1650.tdmini {
1651 font-weight: bold;
1652 font-size: 10px !important;
1653}
1654
1655.tdbreak {
1656 background-color: #ffeeee;
1657 text-align: center;
1658}
1659.trhead td {
1660 background-color: #d12907;
1661 color: #ffffff;
1662 font-weight: bold;
1663}
1664
1665.speaker {
1666 font-size: 10px;
1667}
1668*/
1669/* Tables with bolded-right aligned headers in the first column */
1670/*table.left-headers th {
1671 font-weight: bold;
1672 text-align: right;
1673 padding: 5px 12px;
1674 vertical-align: top;
1675 border-right: 1px solid black;
1676}
1677table.left-headers td {
1678 padding: 5px 12px;
1679}
1680
1681.training-list tr th {
1682 font-weight:bold;
1683}
1684
1685.training-list tr td {
1686 padding-right: 15px;
1687}
1688*/
1689/***
1690 * side style buttons
1691*/
1692.a-btn-container {
1693 overflow:hidden;
1694 border-radius:4px;
1695}
1696.a-btn, .a-btn-new {
1697 width: 218px;
1698 height: 48px;
1699 background: #fdcd34;
1700 background:-webkit-gradient(linear,left top,left bottom,color-stop(##fdcd34,0),color-stop(##d42c14,1));
1701 background:-webkit-linear-gradient(top, #fdcd34 0%, #d42c14 100%);
1702 background:-moz-linear-gradient(top, #fdcd34 0%, #d42c14 100%);
1703 background:-o-linear-gradient(top, #fdcd34 0%, #d42c14 100%);
1704 background:linear-gradient(top, #fdcd34 0%, #d42c14 100%);
1705 filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#fdcd34', endColorstr='#d42c14',GradientType=0 );
1706
1707 padding:0px;
1708
1709 display:inline-block;
1710 position:relative;
1711 -webkit-border-radius:4px;
1712 -moz-border-radius:4px;
1713 border-radius:4px;
1714
1715 overflow:hidden;
1716 -webkit-transition:all 0.3s linear;
1717 -moz-transition:all 0.3s linear;
1718 -o-transition:all 0.3s linear;
1719 transition:all 0.3s linear;
1720 text-decoration: none !important;
1721 border: 1px solid #f08900;
1722 margin-bottom: 10px;
1723}
1724
1725.a-btn-text{
1726 padding-left:10px;
1727 padding-top:5px;
1728 display:block;
1729 font-size:13px;
1730 white-space:nowrap;
1731 color: #ffffff;
1732 -webkit-transition:all 0.3s linear;
1733 -moz-transition:all 0.3s linear;
1734 -o-transition:all 0.3s linear;
1735 transition:all 0.3s linear;
1736
1737}
1738
1739.a-btn-slide-text, .a-btn-fixed-slide-text {
1740 padding-left: 10px;
1741 left:0px;
1742 width:auto;
1743 right:52px;
1744 height:0px;
1745
1746 color:#000000;
1747 font-size:12px;
1748 white-space:nowrap;
1749 font-family:Georgia, serif;
1750 font-style:italic;
1751 text-indent:15px;
1752 overflow:hidden;
1753
1754
1755}
1756.a-btn-fixed-slide-text{
1757 height: 30px;
1758}
1759
1760.a-btn-icon-right{
1761 position:absolute;
1762 right:0px;
1763 top:0px;
1764 height:100%;
1765 width:52px;
1766}
1767
1768.a-btn-icon-right span{
1769 width:38px;
1770 height:38px;
1771
1772 position:absolute;
1773 left:50%;
1774 top:50%;
1775 margin:-20px 0px 0px -20px;
1776 background:transparent url('button-download-icon.png') no-repeat 50% 55%;
1777 -webkit-transition:all 0.3s linear;
1778 -moz-transition:all 0.3s linear;
1779 -o-transition:all 0.3s linear;
1780 transition:all 0.3s linear;
1781
1782}
1783
1784
1785.paper-desc {
1786 padding-left: 20px;
1787}
1788.papers-content h2 a {
1789 text-decoration: none !important;
1790 color: inherit !important;
1791}
1792.paper-author {
1793 padding-bottom: 20px;
1794}
1795.paper-author img {
1796 border: 1px solid #CCCCCC;
1797 display: block;
1798 float: left;
1799 margin-right: 15px;
1800 padding: 1px;
1801 width: 110px;
1802}
1803.paper-author h2 {
1804 border-bottom: 0 !important;
1805 color: #000000;
1806 font-family: Arial,Helvetica,sans-serif;
1807 font-size: 20px;
1808 line-height: 20px;
1809 margin: 30px 0 0 !important;
1810 padding: 0 0 3px;
1811}
1812.paper-author h3 {
1813 color: #555555 !important;
1814 font-family: Times New Roman,serif !important;
1815 font-style: italic;
1816 font-weight: normal !important;
1817 margin-left: 130px !important;
1818 margin-top: 5px !important;
1819}
1820.paper-long-desc {
1821 width: 325px;
1822 float: left;
1823}
1824.paper-long-desc > p{
1825 padding: 0 20px;
1826 margin:0 !important;
1827}
1828.paper-details .paper-thumb {
1829 width: 185px; float: left;
1830}
1831.paper-details .paper-thumb div.content {
1832 padding: 5px;
1833}
1834.paper-details .paper-thumb img {
1835 width: 175px;
1836}
1837.pr-subhead {
1838 font-size: 16px !important;
1839 border: none !important;
1840 text-align: center;
1841 margin-top: 15px !important;
1842 font-style: italic;
1843}
1844
1845
1846.clearer {
1847 clear: both;
1848}
1849
18500
=== removed file 'doc-pxc/source/percona-theme/static/percona.com.js'
--- doc-pxc/source/percona-theme/static/percona.com.js 2012-06-01 04:28:35 +0000
+++ doc-pxc/source/percona-theme/static/percona.com.js 1970-01-01 00:00:00 +0000
@@ -1,269 +0,0 @@
1window.jQuery(function($) {
2
3
4
5function setCookie(c_name, value, expiredays)
6{
7 var exdate = new Date();
8 exdate.setDate(exdate.getDate() + expiredays);
9 document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";path=/;expires=" + exdate.toUTCString());
10}
11
12function getCookie(c_name)
13{
14 if (document.cookie.length > 0)
15 {
16 c_start = document.cookie.indexOf(c_name + "=");
17 if (c_start != -1)
18 {
19 c_start = c_start + c_name.length+1;
20 c_end = document.cookie.indexOf(";",c_start);
21 if (c_end == -1)
22 {
23 c_end = document.cookie.length;
24 }
25 return unescape(document.cookie.substring(c_start, c_end));
26 }
27 }
28 return "";
29}
30
31
32NAVI = new Object();
33
34NAVI.CloseTimer = null;
35
36NAVI.Open = function ( menu_tag, dir )
37{
38 NAVI_CancelTimer();
39 NAVI_Close();
40 SEARCH_CancelTimer();
41 SEARCH_Close();
42 if ('h' == dir)
43 {
44 return;
45 }
46 var pos = $("#navilink-span-"+menu_tag).offset();
47 if (dir=='r')
48 {
49 $("#navi-dropdown-"+menu_tag).css( { "position": "absolute", "left": (pos.left + ($("#navilink-span-"+menu_tag).width()) + 2 - ($("#navi-dropdown-"+menu_tag).width())) + "px", "top": (pos.top + 32) + "px" } );
50 }
51 else
52 {
53 $("#navi-dropdown-"+menu_tag).css( { "position": "absolute", "left": (pos.left) + "px", "top": (pos.top + 32) + "px" } );
54 }
55 $("#navi-dropdown-"+menu_tag).show();
56 $("#navilink-span-"+menu_tag).bind('mouseover',NAVI_CancelTimer);
57 $("#navilink-span-"+menu_tag).bind('mouseout',NAVI_Timer);
58 $("#navi-dropdown-"+menu_tag).bind('mouseover',NAVI_CancelTimer);
59 $("#navi-dropdown-"+menu_tag).bind('mouseout',NAVI_Timer);
60};
61
62function NAVI_Close()
63{
64 $(".navi-dropdown").hide();
65 $("#menu div").unbind('mouseover');
66 $(".dropdown").unbind('mouseover');
67 $(".dropdown").unbind('mouseout');
68
69 $("#search-dropdown").hide();
70 $("#searchlink-anchor").unbind('mouseover');
71 $("#searchlink-anchor").unbind('mouseout');
72 $("#search-dropdown").unbind('mouseover');
73 $("#search-dropdown").unbind('mouseout');
74}
75
76function NAVI_CancelTimer()
77{
78 if (NAVI.CloseTimer!=null)
79 {
80 window.clearTimeout(NAVI.CloseTimer);
81 NAVI.CloseTimer = null;
82 }
83}
84
85function NAVI_Timer()
86{
87 if (NAVI.CloseTimer==null)
88 {
89 NAVI.CloseTimer = window.setTimeout(NAVI_Close, 300);
90 }
91}
92
93
94SUBNAVI = new Object();
95
96SUBNAVI.Open = function ( menu_tag )
97{
98 if ($("#sidesubnavi-" + menu_tag + ':hidden').length)
99 {
100 $(".sidesubnavi").hide();
101 $("#sidesubnavi-"+menu_tag).show();
102 return false;
103 } else {
104 return true;
105 }
106};
107
108
109SEARCH = new Object();
110
111SEARCH.CloseTimer = null;
112
113SEARCH.Open = function()
114{
115 NAVI_CancelTimer();
116 NAVI_Close();
117 SEARCH_CancelTimer();
118 SEARCH_Close();
119 var pos = $("#searchlink-anchor").offset();
120 $("#search-dropdown").css( { "position": "absolute", "left": (pos.left - ($("#search-dropdown").width()) + 40) + "px", "top": (pos.top + 36) + "px" } );
121 $("#search-dropdown").show();
122 $("#searchlink-anchor").bind('mouseover',NAVI_CancelTimer);
123 $("#searchlink-anchor").bind('mouseout',NAVI_Timer);
124 $("#search-dropdown").bind('mouseover',NAVI_CancelTimer);
125 $("#search-dropdown").bind('mouseout',NAVI_Timer);
126 $("#search-input")[0].focus();
127};
128
129function SEARCH_Close()
130{
131 $(".navi-dropdown").hide();
132 $("#menu div").unbind('mouseover');
133 $(".dropdown").unbind('mouseover');
134 $(".dropdown").unbind('mouseout');
135
136 $("#search-dropdown").hide();
137 $("#searchlink-anchor").unbind('mouseover');
138 $("#searchlink-anchor").unbind('mouseout');
139 $("#search-dropdown").unbind('mouseover');
140 $("#search-dropdown").unbind('mouseout');
141}
142
143
144function SEARCH_CancelTimer()
145{
146 if (SEARCH.CloseTimer!=null)
147 {
148 window.clearTimeout(SEARCH.CloseTimer);
149 SEARCH.CloseTimer = null;
150 }
151}
152
153function SEARCH_Timer()
154{
155 if (SEARCH.CloseTimer==null)
156 {
157 SEARCH.CloseTimer = window.setTimeout(SEARCH_Close, 300);
158 }
159}
160
161menuImg1 = new Image(); menuImg1.src = 'http://s1.percona.com/ui-dropdown-header-l.png';
162menuImg2 = new Image(); menuImg2.src = 'http://s2.percona.com/ui-dropdown-header-r.png';
163menuImg3 = new Image(); menuImg3.src = 'http://s3.percona.com/ui-dropdown-header-search.png';
164menuImg4 = new Image(); menuImg4.src = 'http://s0.percona.com/ui-dropdown-bg.png';
165menuImg5 = new Image(); menuImg5.src = 'http://s1.percona.com/ui-dropdown-footer.png';
166
167
168});
169
170
171var Percona = {
172 ssl: false,
173 host: 'www.percona.com'
174};
175/**
176 * @param string selector jQuery selector string
177 */
178Percona.getRecentServerVersion = function(selector)
179{
180 if ('string' != typeof(selector))
181 {
182 alert('Percona.getRecentServerVersion: missed or wrong selector!');
183 }
184 /* Localize jQuery variable */
185 var jQuery;
186 /******** Load jQuery if not present *********/
187 if (window.jQuery === undefined || window.jQuery.fn.jquery !== '1.4.2')
188 {
189 var script_tag = document.createElement('script');
190 script_tag.setAttribute("type","text/javascript");
191 script_tag.setAttribute('src', 'http' + (Percona.ssl ? 's' : '') + ':/' + '/ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');
192 script_tag.onload = scriptLoadHandler;
193 script_tag.onreadystatechange = function () /* Same thing but for IE */
194 {
195 if (this.readyState == 'complete' || this.readyState == 'loaded')
196 {
197 scriptLoadHandler();
198 }
199 };
200 /* Try to find the head, otherwise default to the documentElement */
201 (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
202 } else {
203 /* The jQuery version on the window is the one we want to use */
204 jQuery = window.jQuery;
205 main();
206 }
207 var scriptLoadHandler_counter = 0;
208 /******** Called once jQuery has loaded ******/
209 function scriptLoadHandler()
210 {
211 if (++scriptLoadHandler_counter > 1)
212 {
213 return;
214 }
215 /* Restore $ and window.jQuery to their previous values and store the
216 new jQuery in our local jQuery variable */
217 jQuery = window.jQuery.noConflict(true);
218 /* Call our main function */
219 main(jQuery);
220 }
221 /******** Our main function ********/
222 function main($)
223 {
224 var fillRecentServerVersion = function($)
225 {
226 if ($(selector).get(0))
227 {
228 $.get('http' + (Percona.ssl ? 's' : '') + ':/' + '/' + Percona.host + '/ajax/server-version/?callback=?', {}, function(json)
229 {
230 if ('object' == typeof(json) && 'string' == typeof(json.recentServerVersion))
231 {
232 $(selector).text(' ' + json.recentServerVersion);
233 }
234 }, 'jsonp');
235 }
236 };
237 $(document).ready(function()
238 {
239 fillRecentServerVersion(jQuery);
240 });
241 }
242};
243
244$(document).ready(function(){
245 $(window).bind("resize", resizeWindow);
246 resizeWindow();
247 function resizeWindow() {
248 var win_w = $(window).width();
249 var ribon = $("#support-ribbon");
250 if(win_w < 1265){
251 if(/mobile/i.test(navigator.userAgent)){
252 ribon.hide();
253 }else{
254 if(ribon.hasClass("vertical")){
255 ribon.removeClass("vertical");
256 ribon.addClass("horizontal");
257 }
258 ribon.css({"left":'50%', "margin-left": '-'+(ribon.width() / 2)+'px'});
259 }
260 }else{
261 if(ribon.hasClass("horizontal")){
262 ribon.addClass("vertical");
263 ribon.removeClass("horizontal");
264 ribon.removeAttr("style");
265 }
266
267 }
268 }
269});
270\ No newline at end of file0\ No newline at end of file
2711
=== removed file 'doc-pxc/source/percona-theme/static/phone-small.png'
272Binary files doc-pxc/source/percona-theme/static/phone-small.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/phone-small.png 1970-01-01 00:00:00 +0000 differ2Binary files doc-pxc/source/percona-theme/static/phone-small.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/phone-small.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/phone.png'
273Binary files doc-pxc/source/percona-theme/static/phone.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/phone.png 1970-01-01 00:00:00 +0000 differ3Binary files doc-pxc/source/percona-theme/static/phone.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/phone.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/shield.png'
274Binary files doc-pxc/source/percona-theme/static/shield.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/shield.png 1970-01-01 00:00:00 +0000 differ4Binary files doc-pxc/source/percona-theme/static/shield.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/shield.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/side_buttons.png'
275Binary files doc-pxc/source/percona-theme/static/side_buttons.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/side_buttons.png 1970-01-01 00:00:00 +0000 differ5Binary files doc-pxc/source/percona-theme/static/side_buttons.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/side_buttons.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/sidebar.js'
--- doc-pxc/source/percona-theme/static/sidebar.js 2012-06-01 04:28:35 +0000
+++ doc-pxc/source/percona-theme/static/sidebar.js 1970-01-01 00:00:00 +0000
@@ -1,151 +0,0 @@
1/*
2 * sidebar.js
3 * ~~~~~~~~~~
4 *
5 * This script makes the Sphinx sidebar collapsible.
6 *
7 * .sphinxsidebar contains .sphinxsidebarwrapper. This script adds
8 * in .sphixsidebar, after .sphinxsidebarwrapper, the #sidebarbutton
9 * used to collapse and expand the sidebar.
10 *
11 * When the sidebar is collapsed the .sphinxsidebarwrapper is hidden
12 * and the width of the sidebar and the margin-left of the document
13 * are decreased. When the sidebar is expanded the opposite happens.
14 * This script saves a per-browser/per-session cookie used to
15 * remember the position of the sidebar among the pages.
16 * Once the browser is closed the cookie is deleted and the position
17 * reset to the default (expanded).
18 *
19 * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
20 * :license: BSD, see LICENSE for details.
21 *
22 */
23
24$(function() {
25 // global elements used by the functions.
26 // the 'sidebarbutton' element is defined as global after its
27 // creation, in the add_sidebar_button function
28 var bodywrapper = $('.bodywrapper');
29 var sidebar = $('.sphinxsidebar');
30 var sidebarwrapper = $('.sphinxsidebarwrapper');
31
32 // for some reason, the document has no sidebar; do not run into errors
33 if (!sidebar.length) return;
34
35 // original margin-left of the bodywrapper and width of the sidebar
36 // with the sidebar expanded
37 var bw_margin_expanded = bodywrapper.css('margin-left');
38 var ssb_width_expanded = sidebar.width();
39
40 // margin-left of the bodywrapper and width of the sidebar
41 // with the sidebar collapsed
42 var bw_margin_collapsed = '.8em';
43 var ssb_width_collapsed = '.8em';
44
45 // colors used by the current theme
46 var dark_color = $('.related').css('background-color');
47 var light_color = $('.document').css('background-color');
48
49 function sidebar_is_collapsed() {
50 return sidebarwrapper.is(':not(:visible)');
51 }
52
53 function toggle_sidebar() {
54 if (sidebar_is_collapsed())
55 expand_sidebar();
56 else
57 collapse_sidebar();
58 }
59
60 function collapse_sidebar() {
61 sidebarwrapper.hide();
62 sidebar.css('width', ssb_width_collapsed);
63 bodywrapper.css('margin-left', bw_margin_collapsed);
64 sidebarbutton.css({
65 'margin-left': '0',
66 'height': bodywrapper.height()
67 });
68 sidebarbutton.find('span').text('»');
69 sidebarbutton.attr('title', _('Expand sidebar'));
70 document.cookie = 'sidebar=collapsed';
71 }
72
73 function expand_sidebar() {
74 bodywrapper.css('margin-left', bw_margin_expanded);
75 sidebar.css('width', ssb_width_expanded);
76 sidebarwrapper.show();
77 sidebarbutton.css({
78 'margin-left': ssb_width_expanded-12,
79 'height': bodywrapper.height()
80 });
81 sidebarbutton.find('span').text('«');
82 sidebarbutton.attr('title', _('Collapse sidebar'));
83 document.cookie = 'sidebar=expanded';
84 }
85
86 function add_sidebar_button() {
87 sidebarwrapper.css({
88 'float': 'left',
89 'margin-right': '0',
90 'width': ssb_width_expanded - 28
91 });
92 // create the button
93 sidebar.append(
94 '<div id="sidebarbutton"><span>&laquo;</span></div>'
95 );
96 var sidebarbutton = $('#sidebarbutton');
97 light_color = sidebarbutton.css('background-color');
98 // find the height of the viewport to center the '<<' in the page
99 var viewport_height;
100 if (window.innerHeight)
101 viewport_height = window.innerHeight;
102 else
103 viewport_height = $(window).height();
104 sidebarbutton.find('span').css({
105 'display': 'block',
106 'margin-top': (viewport_height - sidebar.position().top - 20) / 2
107 });
108
109 sidebarbutton.click(toggle_sidebar);
110 sidebarbutton.attr('title', _('Collapse sidebar'));
111 sidebarbutton.css({
112 'color': '#FFFFFF',
113 'border-left': '1px solid ' + dark_color,
114 'font-size': '1.2em',
115 'cursor': 'pointer',
116 'height': bodywrapper.height(),
117 'padding-top': '1px',
118 'margin-left': ssb_width_expanded - 12
119 });
120
121 sidebarbutton.hover(
122 function () {
123 $(this).css('background-color', dark_color);
124 },
125 function () {
126 $(this).css('background-color', light_color);
127 }
128 );
129 }
130
131 function set_position_from_cookie() {
132 if (!document.cookie)
133 return;
134 var items = document.cookie.split(';');
135 for(var k=0; k<items.length; k++) {
136 var key_val = items[k].split('=');
137 var key = key_val[0];
138 if (key == 'sidebar') {
139 var value = key_val[1];
140 if ((value == 'collapsed') && (!sidebar_is_collapsed()))
141 collapse_sidebar();
142 else if ((value == 'expanded') && (sidebar_is_collapsed()))
143 expand_sidebar();
144 }
145 }
146 }
147
148 add_sidebar_button();
149 var sidebarbutton = $('#sidebarbutton');
150 set_position_from_cookie();
151});
1520
=== removed file 'doc-pxc/source/percona-theme/static/software-download.png'
153Binary files doc-pxc/source/percona-theme/static/software-download.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/software-download.png 1970-01-01 00:00:00 +0000 differ1Binary files doc-pxc/source/percona-theme/static/software-download.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/software-download.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/software-latest.png'
154Binary files doc-pxc/source/percona-theme/static/software-latest.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/software-latest.png 1970-01-01 00:00:00 +0000 differ2Binary files doc-pxc/source/percona-theme/static/software-latest.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/software-latest.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/support-small.png'
155Binary files doc-pxc/source/percona-theme/static/support-small.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/support-small.png 1970-01-01 00:00:00 +0000 differ3Binary files doc-pxc/source/percona-theme/static/support-small.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/support-small.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/ui-dropdown-bg.png'
156Binary files doc-pxc/source/percona-theme/static/ui-dropdown-bg.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-dropdown-bg.png 1970-01-01 00:00:00 +0000 differ4Binary files doc-pxc/source/percona-theme/static/ui-dropdown-bg.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-dropdown-bg.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/ui-dropdown-footer.png'
157Binary files doc-pxc/source/percona-theme/static/ui-dropdown-footer.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-dropdown-footer.png 1970-01-01 00:00:00 +0000 differ5Binary files doc-pxc/source/percona-theme/static/ui-dropdown-footer.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-dropdown-footer.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/ui-dropdown-header-l.png'
158Binary files doc-pxc/source/percona-theme/static/ui-dropdown-header-l.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-dropdown-header-l.png 1970-01-01 00:00:00 +0000 differ6Binary files doc-pxc/source/percona-theme/static/ui-dropdown-header-l.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-dropdown-header-l.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/ui-dropdown-header-r.png'
159Binary files doc-pxc/source/percona-theme/static/ui-dropdown-header-r.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-dropdown-header-r.png 1970-01-01 00:00:00 +0000 differ7Binary files doc-pxc/source/percona-theme/static/ui-dropdown-header-r.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-dropdown-header-r.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/ui-dropdown-header-search.png'
160Binary files doc-pxc/source/percona-theme/static/ui-dropdown-header-search.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-dropdown-header-search.png 1970-01-01 00:00:00 +0000 differ8Binary files doc-pxc/source/percona-theme/static/ui-dropdown-header-search.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-dropdown-header-search.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/ui-footer-logo.png'
161Binary files doc-pxc/source/percona-theme/static/ui-footer-logo.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-footer-logo.png 1970-01-01 00:00:00 +0000 differ9Binary files doc-pxc/source/percona-theme/static/ui-footer-logo.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-footer-logo.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/ui-leftnavi-sel.png'
162Binary files doc-pxc/source/percona-theme/static/ui-leftnavi-sel.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-leftnavi-sel.png 1970-01-01 00:00:00 +0000 differ10Binary files doc-pxc/source/percona-theme/static/ui-leftnavi-sel.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-leftnavi-sel.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/ui-logo.png'
163Binary files doc-pxc/source/percona-theme/static/ui-logo.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-logo.png 1970-01-01 00:00:00 +0000 differ11Binary files doc-pxc/source/percona-theme/static/ui-logo.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-logo.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/ui-navi-hover-l.png'
164Binary files doc-pxc/source/percona-theme/static/ui-navi-hover-l.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-navi-hover-l.png 1970-01-01 00:00:00 +0000 differ12Binary files doc-pxc/source/percona-theme/static/ui-navi-hover-l.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-navi-hover-l.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/ui-navi-hover-r.png'
165Binary files doc-pxc/source/percona-theme/static/ui-navi-hover-r.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-navi-hover-r.png 1970-01-01 00:00:00 +0000 differ13Binary files doc-pxc/source/percona-theme/static/ui-navi-hover-r.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-navi-hover-r.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/ui-navi-l.png'
166Binary files doc-pxc/source/percona-theme/static/ui-navi-l.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-navi-l.png 1970-01-01 00:00:00 +0000 differ14Binary files doc-pxc/source/percona-theme/static/ui-navi-l.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-navi-l.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/ui-navi-r.png'
167Binary files doc-pxc/source/percona-theme/static/ui-navi-r.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-navi-r.png 1970-01-01 00:00:00 +0000 differ15Binary files doc-pxc/source/percona-theme/static/ui-navi-r.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-navi-r.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/ui-navi-sel-l.png'
168Binary files doc-pxc/source/percona-theme/static/ui-navi-sel-l.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-navi-sel-l.png 1970-01-01 00:00:00 +0000 differ16Binary files doc-pxc/source/percona-theme/static/ui-navi-sel-l.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-navi-sel-l.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/ui-navi-sel-r.png'
169Binary files doc-pxc/source/percona-theme/static/ui-navi-sel-r.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-navi-sel-r.png 1970-01-01 00:00:00 +0000 differ17Binary files doc-pxc/source/percona-theme/static/ui-navi-sel-r.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-navi-sel-r.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/ui-orange-content.png'
170Binary files doc-pxc/source/percona-theme/static/ui-orange-content.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-orange-content.png 1970-01-01 00:00:00 +0000 differ18Binary files doc-pxc/source/percona-theme/static/ui-orange-content.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-orange-content.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/ui-orange-front.png'
171Binary files doc-pxc/source/percona-theme/static/ui-orange-front.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-orange-front.png 1970-01-01 00:00:00 +0000 differ19Binary files doc-pxc/source/percona-theme/static/ui-orange-front.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-orange-front.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/ui-search.png'
172Binary files doc-pxc/source/percona-theme/static/ui-search.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-search.png 1970-01-01 00:00:00 +0000 differ20Binary files doc-pxc/source/percona-theme/static/ui-search.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-search.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/ui-tab-bg.png'
173Binary files doc-pxc/source/percona-theme/static/ui-tab-bg.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-tab-bg.png 1970-01-01 00:00:00 +0000 differ21Binary files doc-pxc/source/percona-theme/static/ui-tab-bg.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/ui-tab-bg.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/static/warning.png'
174Binary files doc-pxc/source/percona-theme/static/warning.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/warning.png 1970-01-01 00:00:00 +0000 differ22Binary files doc-pxc/source/percona-theme/static/warning.png 2012-06-01 04:28:35 +0000 and doc-pxc/source/percona-theme/static/warning.png 1970-01-01 00:00:00 +0000 differ
=== removed file 'doc-pxc/source/percona-theme/theme.conf'
--- doc-pxc/source/percona-theme/theme.conf 2012-06-01 04:28:35 +0000
+++ doc-pxc/source/percona-theme/theme.conf 1970-01-01 00:00:00 +0000
@@ -1,32 +0,0 @@
1[theme]
2inherit = default
3stylesheet = default.css
4pygments_style = sphinx
5
6[options]
7rightsidebar = false
8stickysidebar = false
9collapsiblesidebar = false
10externalrefs = false
11
12footerbgcolor = #11303d
13footertextcolor = #ffffff
14sidebarbgcolor = #1c4e63
15sidebarbtncolor = #3c6e83
16sidebartextcolor = #ffffff
17sidebarlinkcolor = #98dbcc
18relbarbgcolor = #133f52
19relbartextcolor = #ffffff
20relbarlinkcolor = #ffffff
21bgcolor = #ffffff
22textcolor = #000000
23headbgcolor = #f2f2f2
24headtextcolor = #20435c
25headlinkcolor = #c60f0f
26linkcolor = #355f7c
27visitedlinkcolor = #355f7c
28codebgcolor = #eeffcc
29codetextcolor = #333333
30
31bodyfont = sans-serif
32headfont = 'Arial', 'Helvetica' sans-serif
330
=== modified file 'doc-pxc/source/resources.rst'
--- doc-pxc/source/resources.rst 2012-06-01 04:28:35 +0000
+++ doc-pxc/source/resources.rst 2012-06-27 10:50:28 +0000
@@ -19,8 +19,9 @@
1919
20as most other Galera options. This may save you some extra typing.20as most other Galera options. This may save you some extra typing.
2121
22The fourth one is wsrep_sst_receive_address. This is the address at which the node will be listening for and receiving the state. Note that in galera cluster _joining_ nodes are waiting for connections from donors. It goes contrary to tradition and seems to confuse people time and again, but there are good reasons it was made like that.22The fourth one is :option:`wsrep_sst_receive_address`. This is the address at which the node will be listening for and receiving the state. Note that in galera cluster joining nodes are waiting for connections from donors. It goes contrary to tradition and seems to confuse people time and again, but there are good reasons it was made like that.
2323
24If you use mysqldump SST it should be the same as this mysql client connection address plus you need to set wsrep_sst_auth variable to hold user:password pair. The user should be privileged enough to read system tables from donor and create system tables on this node. For simplicity that could be just the root user. Note that it also means that you need to properly set up the privileges on the new node before attempting to join the cluster.24If you use mysqldump SST it should be the same as this mysql client connection address plus you need to set :option:`wsrep_sst_auth` variable to hold user:password pair. The user should be privileged enough to read system tables from donor and create system tables on this node. For simplicity that could be just the root user. Note that it also means that you need to properly set up the privileges on the new node before attempting to join the cluster. If you use |xtrabackup| as SST method, it will use /usr/bin/wsrep_sst_xtrabackup provided in Percona-XtraDB-Cluster-server package. And this script also needs user password if you have a password for root@localhost.
2525
26If you use rsync or |xtrabackup| SST, wsrep_sst_auth is not necessary unless your SST script makes use of it. wsrep_sst_address can be anything local (it may even be the same on all nodes provided you'll be starting them one at a time).26If you use rsync SST, :option:`wsrep_sst_auth` is not necessary unless your SST script makes use of it. :option:`wsrep_sst_address` can be anything local (it may even be the same on all nodes provided you'll be starting them one at a time).
27

Subscribers

People subscribed via source and target branches