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
1=== modified file '.bzrignore'
2--- .bzrignore 2012-06-04 14:01:13 +0000
3+++ .bzrignore 2012-06-27 10:50:28 +0000
4@@ -3087,3 +3087,4 @@
5 percona-xtradb-cluster-galera
6 client/mysql_plugin
7 scripts/mysqlchk
8+percona-theme
9
10=== modified file 'doc-pxc/Makefile'
11--- doc-pxc/Makefile 2012-06-04 14:01:13 +0000
12+++ doc-pxc/Makefile 2012-06-27 10:50:28 +0000
13@@ -37,6 +37,14 @@
14 -rm -rf $(BUILDDIR)/*
15
16 html:
17+ @echo "Downloading percona-theme ..."
18+ @wget -O percona-theme.tar.gz http://percona.com/docs/theme/percona-xtradb-cluster
19+ @echo "Extracting theme."
20+ @tar -zxf percona-theme.tar.gz
21+ @rm -rf source/percona-theme
22+ @mv percona-theme source/percona-theme
23+ @rm percona-theme.tar.gz
24+ @echo "Building html doc"
25 $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
26 @echo
27 @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
28
29=== added file 'doc-pxc/source/_static/pxc_haproxy_lb_active_backup.png'
30Binary 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
31=== added file 'doc-pxc/source/_static/pxc_haproxy_lb_leastconn.png'
32Binary 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
33=== added file 'doc-pxc/source/_static/pxc_haproxy_status_example.png'
34Binary 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
35=== modified file 'doc-pxc/source/conf.py'
36--- doc-pxc/source/conf.py 2012-06-12 08:47:38 +0000
37+++ doc-pxc/source/conf.py 2012-06-27 10:50:28 +0000
38@@ -102,12 +102,16 @@
39
40 .. |IST| replace:: :term:`IST`
41
42+.. |SST| replace:: :term:`SST`
43+
44 .. |XtraDB Cluster| replace:: :term:`XtraDB Cluster`
45
46 .. |Percona XtraDB Cluster| replace:: :term:`Percona XtraDB Cluster`
47
48 .. |InnoDB| replace:: :term:`InnoDB`
49
50+.. |HAProxy| replace:: :term:`HAProxy`
51+
52 .. |MyISAM| replace:: :term:`MyISAM`
53
54 .. |split brain| replace:: :term:`split brain`
55@@ -124,6 +128,10 @@
56
57 .. |MySQL| replace:: *MySQL*
58
59+.. |sysbench| replace:: *sysbench*
60+
61+.. |PXC| replace:: *Percona XtraDB Cluster*
62+
63 .. |Drizzle| replace:: *Drizzle*
64
65 .. |MariaDB| replace:: *MariaDB*
66
67=== modified file 'doc-pxc/source/features/highavailability.rst'
68--- doc-pxc/source/features/highavailability.rst 2012-06-01 04:28:35 +0000
69+++ doc-pxc/source/features/highavailability.rst 2012-06-27 10:50:28 +0000
70@@ -11,7 +11,7 @@
71
72 * 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).
73
74-* 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.
75+* 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.
76
77 You can monitor current state of Node by using
78
79@@ -19,4 +19,4 @@
80
81 SHOW STATUS LIKE 'wsrep_local_state_comment';
82
83-When it is ‘Synced (6)’, the node is ready to handle traffic.
84+When it is `Synced (6)`, the node is ready to handle traffic.
85
86=== modified file 'doc-pxc/source/glossary.rst'
87--- doc-pxc/source/glossary.rst 2012-06-01 04:28:35 +0000
88+++ doc-pxc/source/glossary.rst 2012-06-27 10:50:28 +0000
89@@ -12,9 +12,15 @@
90
91 MyISAM
92 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`.
93+
94+ HAProxy
95+ `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.
96
97 IST
98- 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.
99+ 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.
100+
101+ SST
102+ 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).
103
104 XtraBackup
105 *Percona XtraBackup* is an open-source hot backup utility for |MySQL| - based servers that doesn’t lock your database during the backup.
106@@ -26,7 +32,7 @@
107 *Percona XtraDB Cluster* is a high availability solution for MySQL.
108
109 Percona XtraDB Cluster
110- *Percona XtraDB Cluster* is a high availability solution for MySQL.
111+ *Percona XtraDB Cluster* (PXC) is a high availability solution for MySQL.
112
113 my.cnf
114 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.
115
116=== added directory 'doc-pxc/source/howtos'
117=== renamed file 'doc-pxc/source/3nodesec2.rst' => 'doc-pxc/source/howtos/3nodesec2.rst'
118=== renamed file 'doc-pxc/source/haproxy.rst' => 'doc-pxc/source/howtos/haproxy.rst'
119--- doc-pxc/source/haproxy.rst 2012-06-01 04:28:35 +0000
120+++ doc-pxc/source/howtos/haproxy.rst 2012-06-27 10:50:28 +0000
121@@ -2,9 +2,9 @@
122 Load balancing with HAProxy
123 =============================
124
125-This section describes how to configure `HAProxy <http://haproxy.1wt.eu/>`_ to work in front of the cluster.
126+This section describes how to configure |HAProxy| to work in front of the cluster.
127
128-Here is the simple configuration file example for *HAProxy* ::
129+Here is the simple configuration file example for |HAProxy| ::
130
131 # this config needs haproxy-1.4.20
132
133@@ -39,7 +39,7 @@
134 server db02 10.4.29.99:3306 check
135 server db03 10.4.29.98:3306 check
136
137-With 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.
138+With 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.
139
140 To 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>`_.
141
142@@ -48,13 +48,13 @@
143 * **clustercheck** (place to /usr/local/bin) and a config for xined and
144 * **mysqlchk** (place to /etc/xined.d) on each node.
145
146-Both scripts are available in binaries and source distributions of *Percona XtraDB Cluster*.
147+Both scripts are available in binaries and source distributions of |Percona XtraDB Cluster|.
148
149 You'll need to change /etc/services file by adding the following line on each node: ::
150
151 mysqlchk 9200/tcp # mysqlchk
152
153-The configuration file for *HAProxy* in this case may look like this: ::
154+The configuration file for |HAProxy| in this case may look like this: ::
155
156 # this config needs haproxy-1.4.20
157
158
159=== renamed file 'doc-pxc/source/kewpietests.rst' => 'doc-pxc/source/howtos/kewpietests.rst'
160=== renamed file 'doc-pxc/source/singlebox.rst' => 'doc-pxc/source/howtos/singlebox.rst'
161=== added file 'doc-pxc/source/howtos/virt_sandbox.rst'
162--- doc-pxc/source/howtos/virt_sandbox.rst 1970-01-01 00:00:00 +0000
163+++ doc-pxc/source/howtos/virt_sandbox.rst 2012-06-27 10:50:28 +0000
164@@ -0,0 +1,285 @@
165+=====================================================
166+ Setting up PXC reference architecture with HAProxy
167+=====================================================
168+
169+This 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).
170+You 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.
171+
172+The 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.
173+
174+We'll use `Percona <http://www.percona.com/docs/wiki/repositories:yum>`_ and `EPEL <http://fedoraproject.org/wiki/EPEL>`_ repositories for software installation.
175+
176+After configuring the repositories you'll be able to install software that will be used. First, install |PXC| on the database nodes. ::
177+
178+ # yum -y install Percona-XtraDB-Cluster-server Percona-XtraDB-Cluster-client percona-xtrabackup
179+
180+Install |HAProxy| and |sysbench| on the client node. ::
181+
182+ # yum -y install haproxy sysbench
183+
184+After installing everything, we'll configure |PXC| first. On the first node, :file:`my.cnf` should look something like this on a relatively weak machine. ::
185+
186+ [mysqld]
187+ server_id=1
188+ binlog_format=ROW
189+ log_bin=mysql-bin
190+ wsrep_cluster_address=gcomm://
191+ wsrep_provider=/usr/lib/libgalera_smm.so
192+ datadir=/var/lib/mysql
193+
194+ wsrep_slave_threads=2
195+ wsrep_cluster_name=pxctest
196+ wsrep_sst_method=xtrabackup
197+ wsrep_node_name=ip-10-112-39-98
198+
199+ log_slave_updates
200+
201+ innodb_locks_unsafe_for_binlog=1
202+ innodb_autoinc_lock_mode=2
203+ innodb_buffer_pool_size=400M
204+ innodb_log_file_size=64M
205+
206+You 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|).
207+
208+This 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.
209+
210+Based on that, for the second node, the differences in the configuration should be the following. ::
211+
212+ server_id=2
213+ wsrep_cluster_address=gcomm://10.116.39.76 # replace this with the IP of your first node
214+ wsrep_node_name=ip-10-244-33-92
215+
216+For the third node, the differences look like this. ::
217+
218+ server_id=3
219+ wsrep_cluster_address=gcomm://10.116.39.76 # replace this with the IP of your first node
220+ wsrep_node_name=ip-10-194-10-179
221+
222+For |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. ::
223+
224+ 120619 13:20:17 [Note] WSREP: State transfer required:
225+ Group state: 77c9da88-b965-11e1-0800-ea53b7b12451:97
226+ Local state: 00000000-0000-0000-0000-000000000000:-1
227+ 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
228+ 120619 13:20:17 [Warning] WSREP: Gap in state sequence. Need state transfer.
229+ 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'
230+ 120619 13:20:19 [Note] WSREP: Prepared |SST| request: xtrabackup|10.195.206.117:4444/xtrabackup_sst
231+ 120619 13:20:19 [Note] WSREP: wsrep_notify_cmd is not defined, skipping notification.
232+ 120619 13:20:19 [Note] WSREP: Assign initial position for certification: 97, protocol version: 2
233+ 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)
234+ at galera/src/replicator_str.cpp:prepare_for_IST():439. IST will be unavailable.
235+ 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.
236+ 120619 13:20:19 [Note] WSREP: Shifting PRIMARY -> JOINER (TO: 102)
237+ 120619 13:20:19 [Note] WSREP: Requesting state transfer: success, donor: 1
238+ 120619 13:20:59 [Note] WSREP: 1 (ip-10-112-39-98): State transfer to 0 (ip-10-244-33-92) complete.
239+ 120619 13:20:59 [Note] WSREP: Member 1 (ip-10-112-39-98) synced with group.
240+ 120619 13:21:17 [Note] WSREP: |SST| complete, seqno: 105
241+ 120619 13:21:17 [Note] Plugin 'FEDERATED' is disabled.
242+ 120619 13:21:17 InnoDB: The InnoDB memory heap is disabled
243+ 120619 13:21:17 InnoDB: Mutexes and rw_locks use GCC atomic builtins
244+ 120619 13:21:17 InnoDB: Compressed tables use zlib 1.2.3
245+ 120619 13:21:17 InnoDB: Using Linux native AIO
246+ 120619 13:21:17 InnoDB: Initializing buffer pool, size = 400.0M
247+ 120619 13:21:17 InnoDB: Completed initialization of buffer pool
248+ 120619 13:21:18 InnoDB: highest supported file format is Barracuda.
249+ 120619 13:21:18 InnoDB: Waiting for the background threads to start
250+ 120619 13:21:19 Percona XtraDB (http://www.percona.com) 1.1.8-rel25.3 started; log sequence number 246661644
251+ 120619 13:21:19 [Note] Recovering after a crash using mysql-bin
252+ 120619 13:21:19 [Note] Starting crash recovery...
253+ 120619 13:21:19 [Note] Crash recovery finished.
254+ 120619 13:21:19 [Note] Server hostname (bind-address): '(null)'; port: 3306
255+ 120619 13:21:19 [Note] - '(null)' resolves to '0.0.0.0';
256+ 120619 13:21:19 [Note] - '(null)' resolves to '::';
257+ 120619 13:21:19 [Note] Server socket created on IP: '0.0.0.0'.
258+ 120619 13:21:19 [Note] Event Scheduler: Loaded 0 events
259+ 120619 13:21:19 [Note] WSREP: Signalling provider to continue.
260+ 120619 13:21:19 [Note] WSREP: Received |SST|: 77c9da88-b965-11e1-0800-ea53b7b12451:105
261+ 120619 13:21:19 [Note] WSREP: |SST| received: 77c9da88-b965-11e1-0800-ea53b7b12451:105
262+ 120619 13:21:19 [Note] WSREP: 0 (ip-10-244-33-92): State transfer from 1 (ip-10-112-39-98) complete.
263+ 120619 13:21:19 [Note] WSREP: Shifting JOINER -> JOINED (TO: 105)
264+ 120619 13:21:19 [Note] /usr/sbin/mysqld: ready for connections.
265+ Version: '5.5.24-log' socket: '/var/lib/mysql/mysql.sock' port: 3306 Percona XtraDB Cluster (GPL), wsrep_23.6.r340
266+ 120619 13:21:19 [Note] WSREP: Member 0 (ip-10-244-33-92) synced with group.
267+ 120619 13:21:19 [Note] WSREP: Shifting JOINED -> SYNCED (TO: 105)
268+ 120619 13:21:20 [Note] WSREP: Synchronized with group, ready for connections
269+
270+For debugging information about the |SST|, you can check the sst.err file and the error log too.
271+
272+After the SST's is done, you should check if you have a 3 node cluster.
273+
274+.. code-block:: mysql
275+
276+ mysql> show global status like 'wsrep_cluster_size';
277+ +--------------------+-------+
278+ | Variable_name | Value |
279+ +--------------------+-------+
280+ | wsrep_cluster_size | 3 |
281+ +--------------------+-------+
282+ 1 row in set (0.00 sec)
283+
284+When 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.
285+
286+In order to achieve this, you'll need to configure HAProxy on the client node. There are 2 possible configurations here.
287+First 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.
288+
289+HAProxy can be configured in the /etc/haproxy/haproxy.cfg and it should look like this. ::
290+
291+ global
292+ log 127.0.0.1 local0
293+ log 127.0.0.1 local1 notice
294+ maxconn 4096
295+ chroot /usr/share/haproxy
296+ user haproxy
297+ group haproxy
298+ daemon
299+
300+ defaults
301+ log global
302+ mode http
303+ option tcplog
304+ option dontlognull
305+ retries 3
306+ option redispatch
307+ maxconn 2000
308+ contimeout 5000
309+ clitimeout 50000
310+ srvtimeout 50000
311+
312+ frontend pxc-front
313+ bind *:3307
314+ mode tcp
315+ default_backend pxc-back
316+
317+ frontend stats-front
318+ bind *:80
319+ mode http
320+ default_backend stats-back
321+
322+ frontend pxc-onenode-front
323+ bind *:3306
324+ mode tcp
325+ default_backend pxc-onenode-back
326+
327+ backend pxc-back
328+ mode tcp
329+ balance leastconn
330+ option httpchk
331+ server c1 10.116.39.76:3306 check port 9200 inter 12000 rise 3 fall 3
332+ server c2 10.195.206.117:3306 check port 9200 inter 12000 rise 3 fall 3
333+ server c3 10.202.23.92:3306 check port 9200 inter 12000 rise 3 fall 3
334+
335+ backend stats-back
336+ mode http
337+ balance roundrobin
338+ stats uri /haproxy/stats
339+ stats auth pxcstats:secret
340+
341+ backend pxc-onenode-back
342+ mode tcp
343+ balance leastconn
344+ option httpchk
345+ server c1 10.116.39.76:3306 check port 9200 inter 12000 rise 3 fall 3
346+ server c2 10.195.206.117:3306 check port 9200 inter 12000 rise 3 fall 3 backup
347+ server c3 10.202.23.92:3306 check port 9200 inter 12000 rise 3 fall 3 backup
348+
349+In 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.
350+However 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.
351+The 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).
352+
353+Here |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.
354+
355+To set it up, create the clustercheck user.
356+
357+.. code-block:: mysql
358+
359+ mysql> grant process on *.* to 'clustercheckuser'@'localhost' identified by 'clustercheckpassword!';
360+ Query OK, 0 rows affected (0.00 sec)
361+
362+ mysql> flush privileges;
363+ Query OK, 0 rows affected (0.00 sec)
364+
365+If you want to use a different username or password, you have to modify them in the script too.
366+Let's test. ::
367+
368+ # clustercheck
369+ HTTP/1.1 200 OK
370+
371+ Content-Type: Content-Type: text/plain
372+
373+Node is running.
374+
375+You can use `xinetd` to daemonize the script. If `xinetd` is not installed yet, you can install it with yum. ::
376+
377+ # yum -y install xinetd
378+
379+The service itself should be configured in :file:`/etc/xinetd.d/mysqlchk`. ::
380+
381+ # default: on
382+ # description: mysqlchk
383+ service mysqlchk
384+ {
385+ # this is a config for xinetd, place it in /etc/xinetd.d/
386+ disable = no
387+ flags = REUSE
388+ socket_type = stream
389+ port = 9200
390+ wait = no
391+ user = nobody
392+ server = /usr/bin/clustercheck
393+ log_on_failure += USERID
394+ only_from = 0.0.0.0/0
395+ # recommended to put the IPs that need
396+ # to connect exclusively (security purposes)
397+ per_source = UNLIMITED
398+ }
399+
400+Also, you should add the new service to :file:`/etc/services`. ::
401+
402+ mysqlchk 9200/tcp # mysqlchk
403+
404+Clustercheck will now listen on port 9200 after xinetd restart, and |HAProxy| is ready to check |MySQL| via HTTP. ::
405+
406+ # service xinetd restart
407+
408+If you did everything right so far, the statistics page of |HAProxy| should look like this.
409+
410+.. image:: ../_static/pxc_haproxy_status_example.png
411+
412+
413+Testing the cluster with sysbench
414+=================================
415+
416+You 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.
417+
418+.. code-block:: mysql
419+
420+ mysql> create database sbtest;
421+ Query OK, 1 row affected (0.01 sec)
422+
423+ mysql> grant all on sbtest.* to 'sbtest'@'%' identified by 'sbpass';
424+ Query OK, 0 rows affected (0.00 sec)
425+
426+ mysql> flush privileges;
427+ Query OK, 0 rows affected (0.00 sec)
428+
429+Populate the table with data for the benchmark. ::
430+
431+ # 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
432+
433+You can now run the benchmark against the 3307 port. ::
434+
435+ # 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
436+
437+.. image:: ../_static/pxc_haproxy_lb_leastconn.png
438+
439+This 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.
440+
441+If 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. ::
442+
443+ # 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
444+
445+.. image:: ../_static/pxc_haproxy_lb_active_backup.png
446+
447+This 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.
448+
449+If 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.
450
451=== modified file 'doc-pxc/source/index.rst'
452--- doc-pxc/source/index.rst 2012-06-01 04:28:35 +0000
453+++ doc-pxc/source/index.rst 2012-06-27 10:50:28 +0000
454@@ -75,11 +75,11 @@
455 :maxdepth: 1
456 :glob:
457
458- singlebox
459- 3nodesec2
460- haproxy
461- kewpietests
462- bugreport
463+ howtos/singlebox
464+ howtos/3nodesec2
465+ howtos/haproxy
466+ howtos/virt_sandbox
467+ howtos/kewpietests
468
469 Percona XtraDB Cluster limitations
470 ==================================
471@@ -106,6 +106,7 @@
472 :glob:
473
474 release-notes/release-notes_index
475+ bugreport
476 glossary
477
478 Indices and tables
479
480=== removed directory 'doc-pxc/source/percona-theme'
481=== removed file 'doc-pxc/source/percona-theme/layout.html'
482--- doc-pxc/source/percona-theme/layout.html 2012-06-01 04:28:35 +0000
483+++ doc-pxc/source/percona-theme/layout.html 1970-01-01 00:00:00 +0000
484@@ -1,496 +0,0 @@
485-{#
486- basic/layout.html
487- ~~~~~~~~~~~~~~~~~
488-
489- Master layout template for Sphinx themes.
490-
491- :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
492- :license: BSD, see LICENSE for details.
493-#}
494-{%- block doctype -%}
495-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
496- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
497-{%- endblock %}
498-{%- set reldelim1 = reldelim1 is not defined and ' &raquo;' or reldelim1 %}
499-{%- set reldelim2 = reldelim2 is not defined and ' |' or reldelim2 %}
500-{%- set render_sidebar = (not embedded) and (not theme_nosidebar|tobool) and
501- (sidebars != []) %}
502-{%- set url_root = pathto('', 1) %}
503-{# XXX necessary? #}
504-{%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
505-{%- if not embedded and docstitle %}
506- {%- set titlesuffix = " &mdash; "|safe + docstitle|e %}
507-{%- else %}
508- {%- set titlesuffix = "" %}
509-{%- endif %}
510-
511-{%- macro relbar() %}
512- <div class="related">
513- <h3>{{ _('Navigation') }}</h3>
514- <ul>
515- {%- for rellink in rellinks %}
516- <li class="right" {% if loop.first %}style="margin-right: 10px"{% endif %}>
517- <a href="{{ pathto(rellink[0]) }}" title="{{ rellink[1]|striptags|e }}"
518- {{ accesskey(rellink[2]) }}>{{ rellink[3] }}</a>
519- {%- if not loop.first %}{{ reldelim2 }}{% endif %}</li>
520- {%- endfor %}
521- {%- block rootrellink %}
522- <li><a href="{{ pathto(master_doc) }}">{{ shorttitle|e }}</a>{{ reldelim1 }}</li>
523- {%- endblock %}
524- {%- for parent in parents %}
525- <li><a href="{{ parent.link|e }}" {% if loop.last %}{{ accesskey("U") }}{% endif %}>{{ parent.title }}</a>{{ reldelim1 }}</li>
526- {%- endfor %}
527- {%- block relbaritems %} {% endblock %}
528- </ul>
529- </div>
530-{%- endmacro %}
531-
532-{%- macro sidebar() %}
533- {%- if render_sidebar %}
534- <div class="sphinxsidebar">
535- <div class="sphinxsidebarwrapper">
536-
537- <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>
538-
539- <div class="side-column-block">
540- <div class="header">Call Us</div>
541- <div class="content">
542- <div class="numbers">
543- <div style="padding-bottom: 4px">
544- +1-888-316-9775 (USA - Sales)<br>
545- +1-208-473-2904 (USA - Sales)
546- </div>
547- <div style="padding-bottom: 4px;">
548- +44-208-133-0309 (UK - Sales)
549- </div>
550- <div style="padding-bottom: 4px;">
551- +1-877-862-4316 (Emergency)
552- </div>
553- <div>
554- +1-855-55TRAIN (Training)<br>
555- +1-925-271-5054 (Training)
556- </div>
557- </div>
558- </div>
559- </div>
560-
561- <div class="side-column-block">
562-
563- <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>
564- </div>
565- </div>
566- {%- if sidebars != None %}
567- {#- new style sidebar: explicitly include/exclude templates #}
568- {%- for sidebartemplate in sidebars %}
569- {%- include sidebartemplate %}
570- {%- endfor %}
571- {%- else %}
572- {#- old style sidebars: using blocks -- should be deprecated #}
573- {%- block serverseries %}
574- {%- endblock %}
575- {%- block sidebartoc %}
576- {%- include "localtoc.html" %}
577- {%- endblock %}
578- {%- block sidebarrel %}
579- {%- include "relations.html" %}
580- {%- endblock %}
581- {%- block sidebarsourcelink %}
582- {%- include "sourcelink.html" %}
583- {%- endblock %}
584- {%- if customsidebar %}
585- {%- include customsidebar %}
586- {%- endif %}
587- {%- block sidebarsearch %}
588- {%- include "searchbox.html" %}
589- {%- endblock %}
590- {%- endif %}
591-<br /><br />
592- <div class="side-column-block">
593- <ul class="side-contact-buttons">
594- <li><a href="http://form.percona.com/ContactMe.html" title="Contact Me" class="contact-me"><span>Contact Me</span></a></li>
595- <li><a href="http://www.percona.com/webinars/" title="Attend a Webinar" class="webinar"><span>Attend a Webinar</span></a></li>
596- <li><a href="http://www.percona.com/downloads/" title="Download Software" class="download-software"><span>Download Software</span></a></li>
597- <li><a href="http://www.percona.com/subscribe/" title="Register For Newsletters" class="newsletters"><span>Register For Newsletters</span></a></li>
598- </ul>
599- </div>
600-
601- </div>
602- </div>
603- {%- endif %}
604-{%- endmacro %}
605-
606-{%- macro script() %}
607- <script type="text/javascript">
608- var DOCUMENTATION_OPTIONS = {
609- URL_ROOT: '{{ url_root }}',
610- VERSION: '{{ release|e }}',
611- COLLAPSE_INDEX: false,
612- FILE_SUFFIX: '{{ '' if no_search_suffix else file_suffix }}',
613- HAS_SOURCE: {{ has_source|lower }}
614- };
615- </script>
616- {%- for scriptfile in script_files %}
617- <script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
618- {%- endfor %}
619-{%- endmacro %}
620-
621-{%- macro css() %}
622- <link rel="stylesheet" href="{{ pathto('_static/percona.com.css', 1) }}" type="text/css" />
623- <link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
624- <link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" />
625- {%- for cssfile in css_files %}
626- <link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
627- {%- endfor %}
628-{%- endmacro %}
629-
630-<html xmlns="http://www.w3.org/1999/xhtml">
631- <head>
632- <meta http-equiv="Content-Type" content="text/html; charset={{ encoding }}" />
633- {{ metatags }}
634- {%- block htmltitle %}
635- <title>{{ title|striptags|e }}{{ titlesuffix }}</title>
636- {%- endblock %}
637-
638- {{ css() }}
639- {%- if not embedded %}
640- {{ script() }}
641- {%- if use_opensearch %}
642- <link rel="search" type="application/opensearchdescription+xml"
643- title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}"
644- href="{{ pathto('_static/opensearch.xml', 1) }}"/>
645- {%- endif %}
646-
647-<script src="{{ pathto('_static/percona.com.js', 1)}}" type="text/javascript"></script>
648-
649- {%- if favicon %}
650- <link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
651- {%- endif %}
652- {%- endif %}
653-{%- block linktags %}
654- {%- if hasdoc('about') %}
655- <link rel="author" title="{{ _('About these documents') }}" href="{{ pathto('about') }}" />
656- {%- endif %}
657- {%- if hasdoc('genindex') %}
658- <link rel="index" title="{{ _('Index') }}" href="{{ pathto('genindex') }}" />
659- {%- endif %}
660- {%- if hasdoc('search') %}
661- <link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}" />
662- {%- endif %}
663- {%- if hasdoc('copyright') %}
664- <link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}" />
665- {%- endif %}
666- <link rel="top" title="{{ docstitle|e }}" href="{{ pathto('index') }}" />
667- {%- if parents %}
668- <link rel="up" title="{{ parents[-1].title|striptags|e }}" href="{{ parents[-1].link|e }}" />
669- {%- endif %}
670- {%- if next %}
671- <link rel="next" title="{{ next.title|striptags|e }}" href="{{ next.link|e }}" />
672- {%- endif %}
673- {%- if prev %}
674- <link rel="prev" title="{{ prev.title|striptags|e }}" href="{{ prev.link|e }}" />
675- {%- endif %}
676-{%- endblock %}
677-{%- block extrahead %} {% endblock %}
678- </head>
679- <body>
680-
681-{%- block header %}
682-
683- <!-- <div id="stickywrapper"> -->
684- <!-- <div id="stickycontent"> -->
685- <div id="header"><div class="header">
686- <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>
687- <div class="right">
688- <div class="searchlink"><a onmouseover="SEARCH.Open()"><img id="searchlink-anchor" src="http://s2.percona.com/ui-search.png" alt="" /></a></div>
689- <span class="inv"><![CDATA[<noindex>]]></span>
690- <div class="navicontainer"><div class="navi">
691- <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>
692-
693- <span class="inv"><![CDATA[</noindex>]]></span>
694- <span class="inv"><![CDATA[</noindex>]]></span>
695- </div>
696- </div></div>
697- <div id="stripe"></div>
698-
699-{% endblock %}
700-
701- <!-- <div id="stripe"></div> -->
702-
703-{%- block content %}
704-
705-
706-
707- {%- block sidebar1 %} {# possible location for sidebar #} {% endblock %}
708-
709- <div class="document">
710-
711-
712-
713- {%- block document %}
714- <div class="documentwrapper">
715- {%- if render_sidebar %}
716- <div class="bodywrapper">
717- {%- endif %}
718-
719- {%- block relbar1 %}{{ relbar() }}{% endblock %}
720-
721- <div class="body">
722- {% block body %} {% endblock %}
723- </div>
724-
725- {%- block relbar2 %}{{ relbar() }}
726-
727- {%- if render_sidebar %}
728- </div>
729- {%- endif %}
730-
731-
732-
733- </div>
734-
735- {%- endblock %}
736-
737- {%- block sidebar2 %}{{ sidebar() }}{% endblock %}
738-
739- <div class="clearer"></div>
740-
741- {%- if last_updated %}
742- {% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
743- {%- endif %}
744-
745- <div class="license">
746-
747- {%- if show_copyright %}
748- {%- if hasdoc('copyright') %}
749- {% trans path=pathto('copyright'), copyright=copyright|e %}&copy; <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %}
750- {%- else %}
751- {% trans copyright=copyright|e %}&copy; Copyright {{ copyright }}.{% endtrans %}
752- {%- endif %}
753- {%- endif %}
754-
755- <br />
756- Except where otherwise noted, this documentation is licensed under the following license:
757- <br />
758- <a class="urlextern" rel="license" href="http://creativecommons.org/licenses/by-sa/2.0/">
759- CC Attribution-ShareAlike 2.0 Generic</a><br />
760-
761- {%- if show_sphinx %}
762- {% trans sphinx_version=sphinx_version|e %}Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> {{ sphinx_version }}.{% endtrans %}
763- {%- endif %}
764-
765- </div>
766-
767- </div>
768- {%- endblock %}
769-
770- {% endblock %}
771-
772-{%- block footer %}
773-
774- <div class="file-bugs">
775- 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/>
776- 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>.
777-
778- </div>
779-
780- <div id="footer">
781-
782- <div class="footer">
783- <div class="logo"><img width="110" height="25" alt="" src="{{ pathto('_static/ui-footer-logo.png', 1) }}">
784- </div>
785-
786- <div class="text">
787- <span class="inv"><!--[CDATA[<noindex-->]]&gt;</span>
788- Call us: 1-888-316-9775 • <a href="/contact">Contact Us</a><br>
789- MySQL and InnoDB are trademarks of Oracle Corp.<br>
790- Proudly running <a href="/software/percona-server/">Percona Server<span id="recentServerVersion"></span></a><br>
791- Copyright &copy; 2006-2011 Percona Inc.<br>
792- <a href="/about-us/policies/">Copyright, Trademark, and Privacy Policy</a> • <a href="/sitemap/">Sitemap</a>
793- <span class="inv"><!--[CDATA[</noindex-->]]&gt;</span>
794- </div>
795- </div>
796-
797- </div>
798-{%- endblock %}
799-<span class="inv"><!--[CDATA[<noindex-->]]&gt;</span>
800-<div id="submenus">
801- <div class="navi-dropdown" id="navi-dropdown-about-us">
802- <div class="navi-dropdown-header-l"><!-- //--></div>
803- <div class="navi-dropdown-content">
804- <div class="item"><a href="http://www.percona.com/about-us/our-mission/">Our Mission</a></div>
805- <div class="item"><a href="http://www.percona.com/about-us/why-percona/">Why Percona?</a></div>
806- <div class="item"><a href="http://www.percona.com/about-us/procedures/">Coordinating with Percona</a></div>
807- <div class="item"><a href="http://www.percona.com/about-us/customers/">Customers</a></div>
808- <div class="item"><a href="http://www.percona.com/webinars/">Webinars</a></div>
809- <div class="item"><a href="http://www.percona.com/about-us/mysql-case-studies/">MySQL Case Studies</a></div>
810- <div class="item"><a href="http://www.percona.com/about-us/our-team/">Our Team</a></div>
811-
812- <div class="item"><a href="http://www.percona.com/about-us/books/">Our Books</a></div>
813- <div class="item"><a href="http://www.percona.com/about-us/blogs/">Our Blogs</a></div>
814- <div class="item"><a href="http://www.percona.com/about-us/mysql-white-papers/">MySQL White Papers</a></div>
815- <div class="item"><a href="http://www.percona.com/about-us/conferences/">Conferences</a></div>
816- <div class="item"><a href="http://www.percona.com/about-us/presentations/">Presentations</a></div>
817- <div class="item"><a href="http://www.percona.com/about-us/newsletters/">Newsletters</a></div>
818- <div class="item"><a href="http://www.percona.com/about-us/pressreleases/">Press Releases</a></div>
819- <div class="item"><a href="http://www.percona.com/about-us/percona-in-the-news/">In The News</a></div>
820- <div class="item"><a href="http://www.percona.com/about-us/careers/">Careers</a></div>
821-
822- </div>
823- <div class="navi-dropdown-footer"><!-- //--></div>
824- </div>
825- <div class="navi-dropdown" id="navi-dropdown-mysql-consulting">
826- <div class="navi-dropdown-header-l"><!-- //--></div>
827- <div class="navi-dropdown-content">
828- <div class="item"><a href="http://www.percona.com/mysql-consulting/overview/">MySQL Consulting Overview</a></div>
829- <div class="item"><a href="http://www.percona.com/mysql-consulting/prices/">MySQL Consulting Prices</a></div>
830- <div class="item"><a href="http://www.percona.com/mysql-consulting/architecture/">MySQL Architecture &amp; Design</a></div>
831- <div class="item"><a href="http://www.percona.com/mysql-consulting/mysql-backups/">MySQL Backups</a></div>
832- <div class="item"><a href="http://www.percona.com/mysql-consulting/cloud-computing/">MySQL Cloud Solutions</a></div>
833-
834- <div class="item"><a href="http://www.percona.com/mysql-consulting/cluster/">MySQL Cluster Consulting</a></div>
835- <div class="item"><a href="http://www.percona.com/mysql-consulting/data-warehousing/">MySQL Data Warehousing</a></div>
836- <div class="item"><a href="http://www.percona.com/mysql-consulting/data-recovery/">MySQL Data Recovery</a></div>
837- <div class="item"><a href="http://www.percona.com/mysql-consulting/high-availability/">MySQL High Availability</a></div>
838- <div class="item"><a href="http://www.percona.com/mysql-consulting/mysql-monitoring-graphing/">MySQL Monitoring &amp; Graphing</a></div>
839- <div class="item"><a href="http://www.percona.com/mysql-consulting/mysql-onsite-consulting/">MySQL Onsite Consulting</a></div>
840- <div class="item"><a href="http://www.percona.com/mysql-consulting/performance-audit/">MySQL Performance Audit</a></div>
841- <div class="item"><a href="http://www.percona.com/mysql-consulting/remote-dba/">MySQL Remote DBA</a></div>
842-
843- <div class="item"><a href="http://www.percona.com/mysql-consulting/mysql-replication/">MySQL Replication</a></div>
844- <div class="item"><a href="http://www.percona.com/mysql-consulting/upgrade/">MySQL Version Upgrades</a></div>
845- <div class="item"><a href="http://www.percona.com/mysql-consulting/24x7-emergency/">Emergency 24&times;7 Consulting</a></div>
846- <div class="item"><a href="http://www.percona.com/mysql-consulting/migration/">Migration to MySQL</a></div>
847- <div class="item"><a href="http://www.percona.com/drizzle-consulting/">Drizzle Consulting</a></div>
848- <div class="item"><a href="http://www.percona.com/mysql-consulting/sphinx/">Sphinx Consulting</a></div>
849- <div class="item"><a href="http://www.percona.com/mysql-consulting/drbd/">DRBD Consulting</a></div>
850- <div class="item"><a href="http://www.percona.com/mysql-consulting/memcached/">Memcached Consulting</a></div>
851-
852- <div class="item"><a href="http://www.percona.com/mysql-consulting/other-services/">Other Consulting Services</a></div>
853- </div>
854- <div class="navi-dropdown-footer"><!-- //--></div>
855- </div>
856- <div class="navi-dropdown" id="navi-dropdown-support">
857- <div class="navi-dropdown-header-l"><!-- //--></div>
858- <div class="navi-dropdown-content">
859- <div class="item"><a href="http://www.percona.com/mysql-support/">MySQL Support Overview</a></div>
860- <div class="item"><a href="http://www.percona.com/prices/mysql-support/">MySQL Support Prices</a></div>
861- <div class="item"><a href="http://www.percona.com/mysql-support/policies/">MySQL Support Policies</a></div>
862- <div class="item"><a href="http://www.percona.com/mysql-support/consulting-vs-support/">Consulting vs. Support</a></div>
863- <div class="item"><a href="https://customers.percona.com">Customer Portal Login</a></div>
864-
865- </div>
866- <div class="navi-dropdown-footer"><!-- //--></div>
867- </div>
868- <div class="navi-dropdown" id="navi-dropdown-training">
869- <div class="navi-dropdown-header-l"><!-- //--></div>
870- <div class="navi-dropdown-content">
871- <div class="item"><a href="http://www.percona.com/training/">MySQL Training Overview</a></div>
872- <div class="item"><a href="http://www.percona.com/prices/training/">MySQL Training Prices</a></div>
873- <div class="item"><a href="http://www.percona.com/training/classes/dba/">MySQL DBA Training</a></div>
874- <div class="item"><a href="http://www.percona.com/training/classes/developers/">MySQL Developer Training</a></div>
875- <div class="item"><a href="http://www.percona.com/training/classes/operations/">MySQL Operations Training</a></div>
876- <div class="item"><a href="http://www.percona.com/training/classes/innodb/">InnoDB &amp; XtraDB Training</a></div>
877-
878- <div class="item"><a href="http://www.percona.com/training/classes/custom-onsite/">Custom Onsite Training</a></div>
879- </div>
880- <div class="navi-dropdown-footer"><!-- //--></div>
881- </div>
882- <div class="navi-dropdown" id="navi-dropdown-development">
883- <div class="navi-dropdown-header-l"><!-- //--></div>
884- <div class="navi-dropdown-content">
885- <div class="item"><a href="http://www.percona.com/development/mysql/">MySQL Development Overview</a></div>
886- <div class="item"><a href="http://www.percona.com/development/prices/">Custom Development Prices</a></div>
887- <div class="item"><a href="http://www.percona.com/development/maintenance/">MySQL Support Overview</a></div>
888- <div class="item"><a href="http://www.percona.com/development/benchmarking/">Custom Product Evaluation</a></div>
889- <div class="item"><a href="http://www.percona.com/development/maatkit/">Custom Maatkit Development</a></div>
890-
891- <div class="item"><a href="http://www.percona.com/development/custom-tools/">Custom Tools Development</a></div>
892- </div>
893- <div class="navi-dropdown-footer"><!-- //--></div>
894- </div>
895- <div class="navi-dropdown" id="navi-dropdown-software">
896- <div class="navi-dropdown-header-l"><!-- //--></div>
897- <div class="navi-dropdown-content">
898- <div class="item"><a href="http://www.percona.com/software/">Percona Software for MySQL</a></div>
899- <div class="item"><a href="http://www.percona.com/software/percona-server/">Percona Server with XtraDB</a></div>
900- <div class="item"><a href="http://www.percona.com/software/percona-xtradb-cluster/">Percona XtraDB Cluster</a></div>
901- <div class="item"><a href="http://www.percona.com/software/percona-xtrabackup/">Percona XtraBackup</a></div>
902- <div class="item"><a href="http://www.percona.com/software/mysql-innodb-data-recovery-tools/">Data Recovery Toolkit</a></div>
903- <div class="item"><a href="http://www.percona.com/software/percona-xtradb/">Percona XtraDB</a></div>
904- <div class="item"><a href="http://www.percona.com/software/percona-toolkit/">Percona Toolkit</a></div>
905- <div class="item"><a href="http://www.percona.com/software/percona-monitoring-plugins/">Percona Monitoring Plugins</a></div>
906- <div class="item"><a href="http://www.percona.com/prices/software/">Software Prices</a></div>
907- <div class="item"><a href="http://www.percona.com/downloads/">Downloads</a></div>
908- <div class="item"><a href="http://www.percona.com/software/repositories/">Repositories</a></div>
909- <div class="item"><a href="http://www.percona.com/software/documentation/">Documentation</a></div>
910- <div class="item"><a href="http://forum.percona.com">Forum</a></div>
911- <div class="item"><a href="http://groups.google.com/group/percona-discussion">Google Discussion</a></div>
912- <div class="item"><a href="https://launchpad.net/percona-server">Launchpad</a></div>
913- </div>
914- <div class="navi-dropdown-footer"><!-- //--></div>
915- </div>
916- <div class="navi-dropdown" id="navi-dropdown-events">
917- <div class="navi-dropdown-header-r"><!-- //--></div>
918- <div class="navi-dropdown-content">
919- <div class="item"><a href="http://www.percona.com/live/mysql-conference-2012/">MySQL Conference &amp; Expo 2012</a></div>
920- <div class="item"><a href="http://www.percona.com/live/">Previous Percona Live Events</a></div>
921- </div>
922- <div class="navi-dropdown-footer"><!-- //--></div>
923- </div>
924-
925- <div class="navi-dropdown" id="navi-dropdown-contact">
926- <div class="navi-dropdown-header-r"><!-- //--></div>
927- <div class="navi-dropdown-content">
928- <div class="item"><a href="http://www.percona.com/contact/24x7-emergency/">24&times;7 Emergency</a></div>
929- <div class="item"><a href="http://www.percona.com/contact/sales/">Sales &amp; General Inquiries</a></div>
930- <div class="item"><a href="http://www.percona.com/contact/billing/">Billing Inquiries</a></div>
931- <div class="item"><a href="https://customers.percona.com">Customer Portal Login</a></div>
932- <div class="item"><a href="http://www.percona.com/contact/phone-directory/">Phone Directory</a></div>
933- <div class="item"><a href="http://www.percona.com/subscribe/">Subscribe to Newsletter</a></div>
934-
935- </div>
936- <div class="navi-dropdown-footer"><!-- //--></div>
937- </div>
938- <div id="search-dropdown" class="search-dropdown">
939- <div class="search-dropdown-header"><!-- //--></div>
940- <div class="search-dropdown-content">
941- <div class="search-info">Search Percona.com:</div>
942- <form method="get" action="http://search.percona.com/search/" id="search-form">
943- <div class="form"><input type="text" id="search-input" name="q" maxlength="100"></div>
944- </form>
945- </div>
946- <div class="search-dropdown-footer"><!-- //--></div>
947- </div>
948-</div>
949-<div id="stats">
950-<!-- GA //-->
951- <script src="http://www.percona.com/static/js/urchin.js" type="text/javascript"></script>
952- <script type="text/javascript">
953- _uacct = "UA-343802-3";
954- urchinTracker();
955- </script>
956-<!-- /GA //-->
957-<!-- NAVI //-->
958-<script type="text/javascript">//<![CDATA[
959-var 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"}];
960-for(var i = 0, c = navi.length; i < c; i++) {
961-window.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); } );
962-}
963-window.jQuery('#search-form').bind('submit', function() { window.location.href = jQuery('#search-form').attr('action') + jQuery('#search-input').val(); return false; });
964-//]]></script>
965-<!-- /NAVI //-->
966-<script type="text/javascript">
967-//<![CDATA[
968-Percona.host = 'www.percona.com';
969-Percona.getRecentServerVersion('#recentServerVersion');
970-//]]>
971-</script>
972-</div>
973- </body>
974-</html>
975-
976-
977-
978-{% if theme_collapsiblesidebar|tobool %}
979-{% set script_files = script_files + ['_static/sidebar.js'] %}
980-{% endif %}
981
982=== removed file 'doc-pxc/source/percona-theme/searchbox.html'
983--- doc-pxc/source/percona-theme/searchbox.html 2012-06-01 04:28:35 +0000
984+++ doc-pxc/source/percona-theme/searchbox.html 1970-01-01 00:00:00 +0000
985@@ -1,22 +0,0 @@
986-{#
987- basic/searchbox.html
988- ~~~~~~~~~~~~~~~~~~~~
989-
990- Sphinx sidebar template: quick search box.
991-
992- :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
993- :license: BSD, see LICENSE for details.
994-#}
995-{%- if pagename != "search" %}
996-<div id="searchbox" style="display: none; padding: 3px;">
997- <h3>{{ _('Quick search') }}</h3>
998- <form class="search" action="{{ pathto('search') }}" method="get">
999- <input type="text" name="q" size="18" />
1000- <input type="submit" value="{{ _('Go') }}" />
1001- <input type="hidden" name="check_keywords" value="yes" />
1002- <input type="hidden" name="area" value="default" />
1003- </form>
1004-
1005-</div>
1006-<script type="text/javascript">$('#searchbox').show(0);</script>
1007-{%- endif %}
1008
1009=== removed directory 'doc-pxc/source/percona-theme/static'
1010=== removed file 'doc-pxc/source/percona-theme/static/boxes_header_bulletpoint.png'
1011Binary 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
1012=== removed file 'doc-pxc/source/percona-theme/static/button-download-icon.png'
1013Binary 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
1014=== removed file 'doc-pxc/source/percona-theme/static/content_list_bulletpoint.png'
1015Binary 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
1016=== removed file 'doc-pxc/source/percona-theme/static/default.css_t'
1017--- doc-pxc/source/percona-theme/static/default.css_t 2012-06-01 04:28:35 +0000
1018+++ doc-pxc/source/percona-theme/static/default.css_t 1970-01-01 00:00:00 +0000
1019@@ -1,433 +0,0 @@
1020-/*
1021- * default.css_t
1022- * ~~~~~~~~~~~~~
1023- *
1024- * Sphinx stylesheet -- default theme.
1025- *
1026- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
1027- * :license: BSD, see LICENSE for details.
1028- *
1029- */
1030-
1031-@import url("basic.css");
1032-
1033-/* -- page layout ----------------------------------------------------------- */
1034-
1035-body {
1036- font-size: 12px;
1037- line-height: 16px;
1038- font-family: Arial;
1039-
1040- background-color: #fff;
1041- color: #333333;
1042- line-height: 20px;
1043- margin: 0;
1044- padding: 0;
1045-
1046-}
1047-
1048-div.document {
1049- background-color: #fff;
1050- margin: 0 auto;
1051- overflow: hidden;
1052- padding: 30px 0;
1053- width: 960px;
1054-}
1055-
1056-div.documentwrapper {
1057- /* float: left; */
1058- /* width: 100%; */
1059-
1060-}
1061-
1062-div.bodywrapper {
1063- margin: 10 0 0 0px;
1064- width: 660px;
1065- float:right;
1066-}
1067-
1068-div.body {
1069- background-color: #fff;
1070- color: #333333;
1071- padding: 0 0 20px;
1072-}
1073-
1074-{%- if theme_rightsidebar|tobool %}
1075-div.bodywrapper {
1076- margin: 0 {{ theme_sidebarwidth }}px 0 0;
1077-}
1078-{%- endif %}
1079-
1080-div.footer {
1081- /* color: {{ theme_footertextcolor }}; */
1082- /* width: 100%; */
1083- /* padding: 9px 0 9px 0; */
1084- /* text-align: center; */
1085- /* font-size: 75%; */
1086- font: 80% "Lucida Grande",Verdana,Lucida,Helvetica,Arial,sans-serif;
1087- background: none repeat scroll 0 0 #333333;
1088- border-top: 2px solid #D95200;
1089- overflow: hidden;
1090-}
1091-
1092-div.footer a {
1093- color: {{ theme_footertextcolor }};
1094- text-decoration: underline;
1095-}
1096-
1097-div.related {
1098- background-color: #ccc;
1099- line-height: 30px;
1100- color: #333;
1101- background: none repeat scroll 0 0 #F8F8F8;
1102- border: 1px solid #E0E0E0;
1103- clear: both;
1104- padding: 10px;
1105- width: 635px;
1106- margin-bottom: 5px;
1107-}
1108-
1109-div.related a {
1110- color: #999;
1111-}
1112-
1113-div.sphinxsidebar {
1114- margin-left: 0px;
1115- margin-right: 30px;
1116- color: #333333;
1117- font-family: Arial,Helvetica,sans-serif;
1118- width: 260px;
1119- {%- if theme_stickysidebar|tobool %}
1120- top: 30px;
1121- bottom: 0;
1122- margin: 0;
1123- position: fixed;
1124- overflow: auto;
1125- height: auto;
1126- {%- endif %}
1127- {%- if theme_rightsidebar|tobool %}
1128- float: right;
1129- {%- if theme_stickysidebar|tobool %}
1130- right: 0;
1131- {%- endif %}
1132- {%- endif %}
1133-}
1134-
1135-{%- if theme_stickysidebar|tobool %}
1136-/* this is nice, but it it leads to hidden headings when jumping
1137- to an anchor */
1138-/*
1139-div.related {
1140- position: fixed;
1141-}
1142-
1143-div.documentwrapper {
1144- margin-top: 30px;
1145-}
1146-*/
1147-{%- endif %}
1148-
1149-div.sphinxsidebar h3 {
1150- /* font-family: {{ theme_headfont }}; */
1151- color: #999;
1152- font-size: 18px;
1153- line-height: 15px;
1154- font-weight: 400;
1155- margin-left: 5px;
1156- padding: 0;
1157-}
1158-
1159-div.sphinxsidebar h3 a {
1160- color: #333;
1161-}
1162-
1163-div.sphinxsidebar a:hover {
1164- /* color: #333; */
1165-}
1166-
1167-div.sphinxsidebar h4 {
1168- /* font-family: {{ theme_headfont }}; */
1169- color: #666;
1170- font-size: 18px;
1171- font-weight: normal;
1172- margin: 5px 0 0 5px;
1173- padding: 0;
1174-}
1175-
1176-div.sphinxsidebar p {
1177- color: #333;
1178- margin-bottom: 5px;
1179- margin-left: 5px;
1180-}
1181-
1182-div.sphinxsidebar p.topless {
1183- margin: 5px 10px 10px 10px;
1184-}
1185-
1186-div.sphinxsidebar ul {
1187- margin: 10px;
1188- padding-left: 5px;
1189- color: #333;
1190-}
1191-
1192-div.sphinxsidebar a {
1193- color: #D12907;
1194-}
1195-
1196-div.sphinxsidebar input {
1197- border: 1px solid #999;
1198- font-family: sans-serif;
1199- font-size: 1em;
1200-}
1201-
1202-{% if theme_collapsiblesidebar|tobool %}
1203-/* for collapsible sidebar */
1204-div#sidebarbutton {
1205- background-color: {{ theme_sidebarbtncolor }};
1206-}
1207-{% endif %}
1208-
1209-/* -- hyperlink styles ------------------------------------------------------ */
1210-
1211-a {
1212- color: #D12907;
1213- text-decoration: underline;
1214- border: medium none;
1215- cursor: pointer;
1216-}
1217-
1218-a:visited {
1219- color: #D12907;
1220- text-decoration: underline;
1221-}
1222-
1223-a:hover {
1224- color: #D12907;
1225- text-decoration: underline;
1226-}
1227-
1228-{% if theme_externalrefs|tobool %}
1229-a.external {
1230- text-decoration: none;
1231- border-bottom: 1px dashed {{ theme_linkcolor }};
1232-}
1233-
1234-a.external:hover {
1235- text-decoration: none;
1236- border-bottom: none;
1237-}
1238-
1239-a.external:visited {
1240- text-decoration: none;
1241- border-bottom: 1px dashed {{ theme_visitedlinkcolor }};
1242-}
1243-{% endif %}
1244-
1245-/* -- body styles ----------------------------------------------------------- */
1246-
1247-
1248-
1249-a.headerlink {
1250- color: {{ theme_headlinkcolor }};
1251- font-size: 0.8em;
1252- padding: 0 4px 0 4px;
1253- text-decoration: none;
1254-}
1255-
1256-a.headerlink:hover {
1257- background-color: {{ theme_headlinkcolor }};
1258- color: white;
1259-}
1260-
1261-div.body dd, div.body li {
1262- text-align: justify;
1263-}
1264-
1265-div.body dt {
1266- list-style-type: square;
1267- /* margin: 8px 0 8px 30px; */
1268- padding: 0 4px 0 5px;
1269-
1270-}
1271-
1272-div.body p {
1273- text-align: justify;
1274-/* line-height: 130%;*/
1275- margin: 10px 0;
1276-}
1277-
1278-/* div.body ul, */
1279-div.body li {
1280- list-style-type: square;
1281- margin: 8px 0 8px 30px;
1282- padding: 0 4px 0 5px;
1283-}
1284-
1285-.reference em {
1286- font-style: normal;
1287-}
1288-
1289-.std-term {
1290- font-style: normal;
1291- font-weight: 400;
1292- color: #FF7400
1293-}
1294-
1295-div.admonition p.admonition-title + p {
1296- display: inline;
1297-}
1298-
1299-div.admonition p {
1300- margin-bottom: 5px;
1301-}
1302-
1303-div.admonition pre {
1304- margin-bottom: 5px;
1305-}
1306-
1307-div.admonition ul, div.admonition ol {
1308- margin-bottom: 5px;
1309-}
1310-
1311-div.note {
1312- background-color: #eee;
1313- border: 1px solid #ccc;
1314-}
1315-
1316-div.seealso {
1317- background-color: #ffc;
1318- border: 1px solid #ff6;
1319-}
1320-
1321-div.topic {
1322- background-color: #eee;
1323-}
1324-
1325-div.warning {
1326- background-color: #ffe4e4;
1327- border: 1px solid #f66;
1328-}
1329-
1330-p.admonition-title {
1331- display: inline;
1332-}
1333-
1334-p.admonition-title:after {
1335- content: ":";
1336-}
1337-
1338-pre {
1339- padding: 10px;
1340- background-color: #F0E6D9/* {{ theme_codebgcolor }} */;
1341- color: {{ theme_codetextcolor }};
1342- line-height: 120%;
1343- border: 1px dashed #ED9821;
1344- font-size: 80%;
1345- overflow: auto;
1346- /* border-left: none; */
1347- /* border-right: none; */
1348-}
1349-
1350-tt {
1351-/* background-color: #ecf0f3;
1352- padding: 0 1px 0 1px;
1353- font-size: 0.95em;*/
1354- font-weight: 400;
1355-}
1356-
1357-div.body td {
1358- text-align: none;
1359-}
1360-
1361-table.docutils th {
1362- background-color: #DEE7EC;
1363- border: 1px solid #8CACBB;
1364- padding: 3px;
1365- text-align: center;
1366- font-style: normal;
1367- font-weight: 400;
1368-}
1369-
1370-table.docutils td {
1371- border: 1px solid #8CACBB;
1372- padding: 3px;
1373- line-height: 16px;
1374- vertical-align: middle;
1375-}
1376-
1377-.warning tt {
1378- background: #efc2c2;
1379-}
1380-
1381-.note tt {
1382- background: #d6d6d6;
1383-}
1384-
1385-.viewcode-back {
1386- font-family: {{ theme_bodyfont }};
1387-}
1388-
1389-div.viewcode-block:target {
1390- background-color: #f4debf;
1391- border-top: 1px solid #ac9;
1392- border-bottom: 1px solid #ac9;
1393-}
1394-
1395-.file-bugs {
1396- background: none repeat scroll 0 0 #E8E8E8;
1397- border: 1px solid #E0E0E0;
1398- clear: both;
1399- color: #333333;
1400- padding: 10px;
1401- text-align: center;
1402- font-size: 90%;
1403-}
1404-
1405-div.footer .footer {
1406- margin: 0 auto;
1407- overflow: hidden;
1408- padding: 10px 0;
1409- width: 960px;
1410- border-top: none;
1411-}
1412-
1413-div.footer .footer .logo {
1414- float: left;
1415- overflow: hidden;
1416- padding: 17px 0 0;
1417-}
1418-
1419-div.footer .footer .text {
1420- color: #E0E0E0;
1421- float: right;
1422- font-family: Arial,Helvetica,sans-serif;
1423- font-size: 11px;
1424- line-height: 15px;
1425- overflow: hidden;
1426- text-align: right;
1427-}
1428-
1429-div.license {
1430- font-size: 80%;
1431- /* padding: 0.5em; */
1432- text-align: center;
1433- margin: 13px 0 -15px;
1434-}
1435-
1436-#sidenavi.noborder {
1437- border-right: medium none;
1438- border-top: medium none;
1439- margin: 0;
1440-}
1441-
1442-#sidenavi {
1443- color: #333333;
1444- /* float: left; */
1445- font-family: Arial,Helvetica,sans-serif;
1446- font-size: 18px;
1447- line-height: 25px;
1448- overflow: hidden;
1449- padding: 10px 0 8px 0px;
1450- width: 255px;
1451-}
1452-
1453
1454=== removed file 'doc-pxc/source/percona-theme/static/email-small.png'
1455Binary 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
1456=== removed file 'doc-pxc/source/percona-theme/static/jquery.min.js'
1457--- doc-pxc/source/percona-theme/static/jquery.min.js 2012-06-01 04:28:35 +0000
1458+++ doc-pxc/source/percona-theme/static/jquery.min.js 1970-01-01 00:00:00 +0000
1459@@ -1,154 +0,0 @@
1460-/*!
1461- * jQuery JavaScript Library v1.4.2
1462- * http://jquery.com/
1463- *
1464- * Copyright 2010, John Resig
1465- * Dual licensed under the MIT or GPL Version 2 licenses.
1466- * http://jquery.org/license
1467- *
1468- * Includes Sizzle.js
1469- * http://sizzlejs.com/
1470- * Copyright 2010, The Dojo Foundation
1471- * Released under the MIT, BSD, and GPL Licenses.
1472- *
1473- * Date: Sat Feb 13 22:33:48 2010 -0500
1474- */
1475-(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?
1476-e(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=
1477-j.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,
1478-"&")}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=
1479-true;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/,
1480-Wa=/^(\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))&&
1481-(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,
1482-a)}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===
1483-"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,
1484-function(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)||
1485-c.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",
1486-L,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,
1487-"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 "+
1488-a))();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],
1489-d)===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]===
1490-a)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&&
1491-!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=
1492-true;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'/>";
1493-var 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,
1494-parentNode: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=
1495-false;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=
1496-s.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,
1497-applet: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];
1498-else 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,
1499-a,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===
1500-w)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,
1501-cb=/^(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+" ",
1502-i=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]+" ",
1503-" ");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=
1504-this.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=
1505-e[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=
1506-c.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");
1507-a[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,
1508-function(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(".");
1509-k=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),
1510-C=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!=
1511-null)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=
1512-e=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()&&
1513-f)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;
1514-if(!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(" "),
1515-fix: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||
1516-d&&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,
1517-"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=
1518-a;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,
1519-isImmediatePropagationStopped: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=
1520-{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")}};
1521-if(!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",
1522-e);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,
1523-"_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,
1524-d,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"&&
1525-!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}},
1526-toggle: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,
1527-u=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(" "),
1528-function(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];
1529-if(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,
1530-e=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();
1531-t=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||
1532-g);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[];
1533-for(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-
1534-1)!=="\\"){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-]|\\.)+)/,
1535-CLASS:/\.((?:[\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")}},
1536-relative:{"+":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]=
1537-l?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=[];
1538-h=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()},
1539-CHILD: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,
1540-g);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)},
1541-text: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)}},
1542-setFilters:{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=
1543-h[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=
1544-m.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===
1545-"="?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,
1546-h){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||
1547-!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=
1548-h.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"&&
1549-q.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>";
1550-if(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}}();
1551-(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)}:
1552-function(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)/,
1553-gb=/,/;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;
1554-c.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=
1555-{},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===
1556-"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",
1557-d)},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")?
1558-a.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===
1559-1&&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)?
1560-a: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=
1561-c(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},
1562-wrapInner: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)})},
1563-prepend: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,
1564-this.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);
1565-return 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,
1566-""):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]&&
1567-this[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]||
1568-u.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===
1569-1?(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]);
1570-return 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)||["",
1571-""])[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=
1572-c.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]?
1573-c.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=
1574-function(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=
1575-Na.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,
1576-"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=
1577-a.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=
1578-a.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!==
1579-"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},
1580-serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||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(" "),
1581-function(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,
1582-global: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&&
1583-e.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)?
1584-"&":"?")+(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===
1585-false&&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=
1586-false;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",
1587-c.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||
1588-d();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);
1589-g("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===
1590-1223||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===
1591-"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;
1592-if(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");
1593-this[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],
1594-"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)},
1595-animate: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=
1596-j.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([]);
1597-this.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===
1598-"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]||
1599-c.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;
1600-this.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=
1601-this.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,
1602-e,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||
1603-c.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?
1604-function(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=
1605-this[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;
1606-k-=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&&
1607-f.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>";
1608-a.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);
1609-c.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,
1610-d,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-
1611-f.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":
1612-"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
1613-e&&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);
1614
1615=== removed file 'doc-pxc/source/percona-theme/static/percona.com.css'
1616--- doc-pxc/source/percona-theme/static/percona.com.css 2012-06-01 04:28:35 +0000
1617+++ doc-pxc/source/percona-theme/static/percona.com.css 1970-01-01 00:00:00 +0000
1618@@ -1,1849 +0,0 @@
1619-body, html{
1620- height:100%;
1621- margin:0;
1622- padding:0;
1623- font-size: 12px;
1624- line-height: 16px;
1625- font-family: Arial;
1626- color: #333333;
1627-}
1628-
1629-form{
1630- display:inline
1631-}
1632-
1633-a, a:visited{
1634- border:none;
1635- cursor:pointer;
1636- color: #d5390b;
1637- text-decoration: underline;
1638-}
1639-a:hover
1640-{
1641- color: #712000;
1642- text-decoration: underline;
1643-}
1644-
1645-img{
1646- border:none
1647-}
1648-
1649-div,img{
1650- behavior:url(/static/css/iepngfix.htc)
1651-}
1652-
1653-em
1654-{
1655- font-style: italic;
1656-}
1657-
1658-del
1659-{
1660- text-decoration: line-through;
1661-}
1662-
1663-.hidden{
1664- display:none
1665-}
1666-
1667-strong {
1668- font-weight: bold;
1669-}
1670-
1671-html, body {
1672- height: 100%;
1673-}
1674-
1675-#stickywrapper {
1676- position: relative;
1677- min-height: 100%;
1678-}
1679-
1680-* html #stickywrapper {
1681- height: 100%;
1682-}
1683-
1684-#stickycontent {
1685- padding-bottom: 102px;
1686-}
1687-
1688-#stickyfooter {
1689- position: relative;
1690- margin: -97px auto 0 auto;
1691-}
1692-a.links
1693-{
1694- font-style: oblique;
1695- text-decoration: underline;
1696-}
1697-span.subpart
1698-{
1699- font-weight: bold;
1700-}
1701-
1702-/**
1703- * LAYOUT
1704- */
1705-
1706-#header{
1707- background:#333;
1708- height:95px;
1709- overflow:hidden;
1710- zoom:1
1711-}
1712-
1713-#header .header{
1714- height:95px;
1715- margin:0 auto;
1716- overflow:hidden;
1717- width:960px;
1718- zoom:1
1719-}
1720-#header .header .logo{
1721- float:left;
1722- overflow:hidden;
1723- padding:20px 0;
1724- width:240px;
1725- zoom:1
1726-}
1727-
1728-#header .header .logo
1729-{
1730- overflow: hidden;
1731- zoom: 1;
1732- float: left;
1733- width: 240px;
1734- padding: 20px 0px;
1735-}
1736-
1737-#header .header .right
1738-{
1739- overflow: hidden;
1740- zoom: 1;
1741- float: left;
1742- width: 720px;
1743- height: 35px;
1744- padding: 30px 0px;
1745-}
1746-
1747-
1748-#header .header .right .searchlink
1749-{
1750- overflow: hidden;
1751- zoom: 1;
1752- width: 35px;
1753- height: 35px;
1754- float: right;
1755- padding: 0px 0px 0px 10px;
1756-}
1757-
1758-
1759-#header .header .right .navicontainer
1760-{
1761- overflow: hidden;
1762- zoom: 1;
1763- float: right;
1764- height: 35px;
1765- background: #ffffff url(ui-navi-l.png) top left no-repeat;
1766-}
1767-
1768-#header .header .right .navi
1769-{
1770- overflow: hidden;
1771- zoom: 1;
1772- height: 27px;
1773- padding: 4px 10px;
1774- background: url(ui-navi-r.png) top right no-repeat;
1775-}
1776-
1777-#header .header .right .navicontainer .navi span
1778-{
1779- overflow: hidden;
1780- zoom: 1;
1781- height: 27px;
1782- float: left;
1783- margin: 0px;
1784-}
1785-#header .header .right .navicontainer .navi span:hover
1786-{
1787- background: #f0f0f0 url(ui-navi-hover-l.png) top left no-repeat;
1788-}
1789-#header .header .right .navicontainer .navi span.selected, #header .header .right .navicontainer .navi span.selected:hover
1790-{
1791- background: #d5390b url(ui-navi-sel-l.png) top left no-repeat;
1792-}
1793-
1794-#header .header .right .navicontainer .navi span a, #header .header .right .navicontainer .navi span a:visited
1795-{
1796- display: block;
1797- padding: 6px 10px 4px 10px;
1798- height: 17px;
1799- font-family: Arial, Helvetica, sans-serif;
1800- font-size: 14px;
1801- line-height: 14px;
1802- color: #000000;
1803- text-decoration: none;
1804-}
1805-#header .header .right .navicontainer .navi span a:hover
1806-{
1807- background: url(ui-navi-hover-r.png) top right no-repeat;
1808-}
1809-#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
1810-{
1811- background: url(ui-navi-sel-r.png) top right no-repeat;
1812- color: #ffffff;
1813-}
1814-
1815-
1816-
1817-/*
1818- * Banners
1819- */
1820-
1821-#slogan
1822-{
1823- overflow: hidden;
1824- zoom: 1;
1825- height: 125px;
1826- background: #d24300 url(ui-orange-front.png) bottom center no-repeat;
1827- text-align: center;
1828-}
1829-
1830-#stripe
1831-{
1832- overflow: hidden;
1833- zoom: 1;
1834- height: 20px;
1835- background: #d24300 url(ui-orange-content.png) top center no-repeat;
1836-}
1837-
1838-
1839-
1840-/*
1841- * Footer
1842- */
1843-
1844-#footer
1845-{
1846- overflow: hidden;
1847- zoom: 1;
1848- background: #333333;
1849- border-top: 2px #d95200 solid;
1850-}
1851-
1852-#footer .footer
1853-{
1854- overflow: hidden;
1855- zoom: 1;
1856- width: 960px;
1857- margin: 0px auto;
1858- padding: 10px 0px;
1859-}
1860-
1861-#footer .footer .logo
1862-{
1863- overflow: hidden;
1864- zoom: 1;
1865- float: left;
1866- padding: 17px 0px 0px 0px;
1867-}
1868-
1869-#footer .footer .text
1870-{
1871- overflow: hidden;
1872- zoom: 1;
1873- float: right;
1874- text-align: right;
1875- font-family: Arial, Helvetica, sans-serif;
1876- font-size: 11px;
1877- line-height: 15px;
1878- color: #e0e0e0;
1879-}
1880-
1881-#footer .footer .text a, #footer .footer .text a:visited
1882-{
1883- color: #e0e0e0;
1884- text-decoration: none;
1885-}
1886-#footer .footer .text a:hover
1887-{
1888- color: #ffffff;
1889- text-decoration: underline;
1890-}
1891-
1892-
1893-/*
1894- * Menu Dropdowns
1895- */
1896-
1897-div.navi-dropdown
1898-{
1899- display: none;
1900- position: absolute;
1901- overflow: hidden;
1902- zoom: 1;
1903- width: 255px;
1904- z-index: 900;
1905-}
1906-
1907-div.navi-dropdown .navi-dropdown-header-l
1908-{
1909- overflow: hidden;
1910- zoom: 1;
1911- width: 255px;
1912- height: 20px;
1913- background: url(ui-dropdown-header-l.png) top left no-repeat;
1914-}
1915-
1916-div.navi-dropdown .navi-dropdown-header-r
1917-{
1918- overflow: hidden;
1919- zoom: 1;
1920- width: 255px;
1921- height: 20px;
1922- background: url(ui-dropdown-header-r.png) top left no-repeat;
1923-}
1924-
1925-div.navi-dropdown .navi-dropdown-content
1926-{
1927- overflow: hidden;
1928- zoom: 1;
1929- width: 225px;
1930- padding: 0px 15px 5px 15px;
1931- background: #ffffff url(ui-dropdown-bg.png) repeat-y;
1932- font-family: Arial, Helvetica, sans-serif;
1933- font-size: 14px;
1934- line-height: 20px;
1935- color: #333333;
1936-}
1937-
1938-div.navi-dropdown .navi-dropdown-content .item
1939-{
1940- padding: 3px 0px 1px 0px;
1941-}
1942-
1943-div.navi-dropdown .navi-dropdown-content a, div.navi-dropdown .navi-dropdown-content a:visited
1944-{
1945- display: block;
1946- color: #333333;
1947- text-decoration: none;
1948-}
1949-div.navi-dropdown .navi-dropdown-content a:hover
1950-{
1951- color: #d12907;
1952- text-decoration: underline;
1953-}
1954-
1955-div.navi-dropdown .navi-dropdown-footer
1956-{
1957- overflow: hidden;
1958- zoom: 1;
1959- width: 255px;
1960- height: 10px;
1961- background: url(ui-dropdown-footer.png) top left no-repeat;
1962-}
1963-
1964-
1965-div.search-dropdown
1966-{
1967- display: none;
1968- position: absolute;
1969- overflow: hidden;
1970- zoom: 1;
1971- width: 255px;
1972-}
1973-
1974-div.search-dropdown .search-dropdown-header
1975-{
1976- overflow: hidden;
1977- zoom: 1;
1978- width: 255px;
1979- height: 20px;
1980- background: url(ui-dropdown-header-search.png) top left no-repeat;
1981-}
1982-
1983-div.search-dropdown .search-dropdown-content
1984-{
1985- overflow: hidden;
1986- zoom: 1;
1987- width: 225px;
1988- padding: 0px 15px 5px 15px;
1989- background: #ffffff url(ui-dropdown-bg.png) repeat-y;
1990- font-family: Arial, Helvetica, sans-serif;
1991- font-size: 14px;
1992- line-height: 20px;
1993- color: #333333;
1994-}
1995-
1996-div.search-dropdown .search-dropdown-content .form
1997-{
1998- padding-top: 2px;
1999-}
2000-
2001-div.search-dropdown .search-dropdown-content .form input
2002-{
2003- border: 1px #c0c0c0 solid;
2004- padding: 4px;
2005- width: 210px;
2006- outline: none;
2007-}
2008-div.search-dropdown .search-dropdown-content .form input:focus
2009-{
2010- border: 1px #707070 solid;
2011- outline: none;
2012-}
2013-
2014-div.search-dropdown .search-dropdown-footer
2015-{
2016- overflow: hidden;
2017- zoom: 1;
2018- width: 255px;
2019- height: 10px;
2020- background: url(ui-dropdown-footer.png) top left no-repeat;
2021-}
2022-
2023-
2024-
2025-#left-column .navi-title {
2026- font-size: 15px;
2027- color: #d5390b;
2028- margin-bottom: 20px;
2029-}
2030-
2031-#left-column .navi-title span {
2032- background: url("left_menu_title_bullet.png") right top no-repeat;
2033- padding-right: 20px;
2034- padding-left: 10px;
2035-}
2036-
2037-#left-column .item, #left-column .subitem {
2038-
2039- border-top: 1px solid #f3f1ee;
2040-}
2041-
2042-#left-column .subitem {
2043- padding-left: 15px;
2044-}
2045-
2046-#left-column .item a, #left-column .subitem a {
2047- min-height: 18px;
2048- /* line-height: 23px; */
2049-
2050- color: #a3a3a3;
2051- font-size: 11px;
2052- text-decoration: none;
2053- display: block;
2054- padding: 5px 0 2px 10px;
2055- background: url('left_column_item_bulletpoint.png') left no-repeat;
2056-}
2057-#left-column .item a:hover {
2058- text-decoration: underline;
2059-}
2060-
2061-#left-column .selected > a {
2062- color: #b82c02;
2063- background: url('left_menu_item_selected_bulletpoint.png') left no-repeat;
2064-}
2065-
2066-/*
2067- * Front page
2068- */
2069-.frontpage-text {
2070- font-size: 13px;
2071-}
2072-div.frontpage-banners
2073-{
2074- overflow: hidden;
2075- zoom: 1;
2076- width: 960px;
2077- margin: 0px;
2078- margin-bottom: 20px;
2079- padding: 0px;
2080-}
2081-
2082-div.frontpage-banners div.frontpage-banners-container
2083-{
2084- overflow: hidden;
2085- zoom: 1;
2086- width: 960px;
2087- height: 200px;
2088- padding-bottom: 30px;
2089- z-index: 100;
2090-}
2091-
2092-div.frontpage-banners a.nivo-imageLink
2093-{
2094- position: absolute;
2095- top: 0px;
2096- left: 0px;
2097- width: 960px;
2098- height: 200px;
2099- border: 0;
2100- padding: 0;
2101- margin: 0;
2102- z-index: 20;
2103- display: none;
2104-}
2105-
2106-
2107-div.frontpage-banners div.frontpage-banners-container div.nivo-directionNav
2108-{
2109- width: 1px;
2110- height: 1px;
2111- display: none !important;
2112- z-index: 18 !important;
2113-}
2114-
2115-div.frontpage-banners div.frontpage-banners-container div.nivo-controlNav
2116-{
2117- position: absolute;
2118- top: 200px;
2119- width: 960px;
2120- text-align: center;
2121- font-size: 28px;
2122- line-height: 25px;
2123-}
2124-
2125-div.frontpage-banners div.frontpage-banners-container div.nivo-controlNav a
2126-{
2127- padding: 0px 3px;
2128- text-decoration: none !important;
2129- color: #919191 !important;
2130-}
2131-
2132-div.frontpage-banners div.frontpage-banners-container div.nivo-controlNav a.active
2133-{
2134- color: #d12907 !important;
2135-}
2136-
2137-div.frontpage-banners div.frontpage-banners-selector
2138-{
2139- overflow: hidden;
2140- zoom: 1;
2141- height: 20px;
2142- text-align: center;
2143-}
2144-
2145-div.frontpage-main
2146-{
2147- overflow: hidden;
2148- zoom: 1;
2149- width: 960px;
2150- padding: 0px;
2151-}
2152-
2153-div.frontpage-boxes
2154-{
2155- overflow: hidden;
2156- zoom: 1;
2157- margin: 25px 0px 0px 0px;
2158- width: 515px;
2159- padding: 0px;
2160-}
2161-
2162-div.frontpage-boxes div.frontpage-boxes-selector
2163-{
2164- overflow: hidden;
2165- zoom: 1;
2166- width: 515px;
2167-}
2168-
2169-div.frontpage-boxes div.frontpage-boxes-selector div.frontpage-boxes-selector-item
2170-{
2171- overflow: hidden;
2172- zoom: 1;
2173- width: 127px;
2174- float: left;
2175- margin-left: -1px;
2176- border-top: 1px #cccccc solid;
2177- border-left: 1px #cccccc solid;
2178- border-right: 1px #cccccc solid;
2179- border-bottom: 1px #cccccc solid;
2180- text-align: center;
2181- margin-top: 10px;
2182- padding: 0px 0px 0px 0px;
2183-}
2184-
2185-div.frontpage-boxes div.frontpage-boxes-selector div.frontpage-boxes-selector-item:first-child
2186-{
2187- margin-left: 0px;
2188-}
2189-
2190-div.frontpage-boxes div.frontpage-boxes-selector div.frontpage-boxes-selector-item.selected
2191-{
2192- background: url(ui-tab-bg.png) repeat-x;
2193- margin-top: 0px;
2194- border-bottom: none;
2195- padding: 5px 0px 6px 0px;
2196-}
2197-
2198-div.frontpage-boxes div.frontpage-boxes-selector div.frontpage-boxes-selector-item a
2199-{
2200- display: block;
2201- font-size: 13px;
2202- line-height: 13px;
2203- font-weight: bold;
2204- color: #444444 !important;
2205- text-decoration: none !important;
2206- padding: 9px 0px 8px 0px;
2207-}
2208-
2209-div.frontpage-boxes div.frontpage-boxes-container
2210-{
2211- overflow: hidden;
2212- zoom: 1;
2213- font-size: 12px;
2214- width: 511px;
2215- height: 150px;
2216- padding-top: 20px;
2217- border-left: 1px #cccccc solid;
2218- border-right: 1px #cccccc solid;
2219- border-bottom: 1px #cccccc solid;
2220- padding-left: 0px;
2221-}
2222-
2223-div.frontpage-boxes div.frontpage-boxes-container div.frontpage-box img
2224-{
2225- padding: 5px 15px 55px 0;
2226- float:left;
2227-}
2228-
2229-.innerpage-box {
2230- padding: 10px 20px;
2231-}
2232-/*
2233- * Content
2234- */
2235-
2236-#contentcontainer
2237-{
2238- overflow: hidden;
2239- zoom: 1;
2240- width: 960px;
2241- padding: 30px 0px;
2242- margin: 0px auto;
2243-}
2244-
2245-
2246-.document p
2247-{
2248- margin-bottom:15px;
2249-}
2250-
2251-.document h1
2252-{
2253- font-size: 23px;
2254- line-height: 30px;
2255- margin: 5px 0px 10px 0px;
2256- color: #d5390b;
2257-}
2258-
2259-.document h2
2260-{
2261- font-size: 17px;
2262- line-height: 20px;
2263- padding: 0px 0px 3px 0px;
2264- margin: 30px 0px 15px 0px;
2265- color: #000000;
2266- border-bottom: 1px #e0e0e0 solid;
2267-}
2268-
2269-.document h3
2270-{
2271- font-weight: bold;
2272- font-size: 14px;
2273- line-height: 17px;
2274- margin: 20px 0px 5px 0px;
2275- color: #000000;
2276-}
2277-
2278-.document dl dt
2279-{
2280- font-weight: bold;
2281- margin-top: 10px;
2282- margin-bottom: 10px;
2283-}
2284-
2285-.document dl dd
2286-{
2287- padding: 0px 0px 0px 30px;
2288-}
2289-
2290-.document ol
2291-{
2292- list-style-type: decimal;
2293- padding: 0px 0px 0px 30px;
2294-}
2295-
2296-.document ol li
2297-{
2298- list-style-type: decimal;
2299- margin: 8px 0px;
2300-}
2301-
2302-/*
2303-.document h4
2304-{
2305- font-family: Arial, Helvetica, sans-serif;
2306- font-size: 14px;
2307- line-height: 14px;
2308- font-weight: bold;
2309- padding: 5px 0px 0px 0px;
2310- margin: -16px 0px 20px 0px;
2311- color: #000000;
2312- border-top: 1px #e0e0e0 solid;
2313-}
2314-.document h4 a, .document h4 a:visited
2315-{
2316- color: #000000;
2317- text-decoration: none;
2318-}
2319-.document h4 a:hover
2320-{
2321- color: #d12907;
2322- text-decoration: none;
2323-}
2324-
2325-
2326-
2327-.document ul
2328-{
2329- list-style-type: square;
2330- padding: 0px 0px 0px 30px;
2331-}
2332-
2333-.document ul li
2334-{
2335- list-style-type: square;
2336- margin: 8px 0px;
2337-}
2338-
2339-
2340-
2341-.document div.pagecontent
2342-{
2343- overflow: hidden;
2344- zoom: 1;
2345-}
2346-*/
2347-
2348-
2349-/*
2350- * Content box
2351- */
2352-/*
2353-div.contentbox
2354-{
2355- border: 1px #e0e0e0 solid;
2356-}
2357-
2358-div.contentbox div.title
2359-{
2360- font-size: 16px;
2361- line-height: 20px;
2362- font-weight: bold;
2363- padding: 8px 15px 2px 15px;
2364- background: url(ui-leftnavi-sel.png) repeat-x;
2365-}
2366-
2367-div.contentbox div.content
2368-{
2369- padding: 15px;
2370-}
2371-*/
2372-
2373-
2374-div.side-column-block
2375-{
2376- width: 220px;
2377- position: relative;
2378- margin: 0 0 20px;
2379-}
2380-
2381-div.side-column-block .header
2382-{
2383- background: url("boxes_header_bulletpoint.png") left no-repeat;
2384- text-align: left;
2385- font-size: 14px;
2386- line-height: 20px;
2387- padding: 3px 0px 3px 20px;
2388- margin-bottom: 10px;
2389- font-weight: bold;
2390- border-bottom: 1px solid #efece8;
2391-
2392-}
2393-
2394-div.side-column-block div.content
2395-{
2396- font-size: 11px;
2397- padding-left: 5px;
2398-}
2399-
2400-div.side-column-block div.content div.more
2401-{
2402- overflow: hidden;
2403- zoom: 1;
2404- text-align: right;
2405- padding: 5px 0px 0px 0px;
2406- font-size: 11px;
2407- line-height: 17px;
2408-}
2409-div.side-column-block div.content li {
2410- padding-left: 10px;
2411-
2412- background: url('boxes_list_bulletpoints.png') left top no-repeat;
2413- margin-bottom:7px;
2414-}
2415-
2416-div.side-column-block .content a {
2417- color: #b82c02;
2418-}
2419-
2420-div.side-column-block .content table.call-us {
2421- width: 100%;
2422-}
2423-div.side-column-block .content table.call-us tr {
2424- margin-bottom: 10px;
2425-}
2426-div.side-column-block .content table.call-us th {
2427- vertical-align: text-top;
2428- color: #e05d02;
2429- font-size: 11px;
2430-}
2431-div.side-column-block .content table.call-us td, div.side-column-block .content table.call-us th {
2432- padding-bottom: 10px;
2433-}
2434-div.side-column-block .content table.call-us td a {
2435- color: #e05d02;
2436-}
2437-
2438-div.side-column-block .content .button-customer-login span{
2439- display: none;
2440-}
2441-.side-column-block .content .button-customer-login {
2442- display: block;
2443- background: url('button-customer-login.png') top left no-repeat;
2444- width: 220px;
2445- height: 30px;
2446- margin-top: 12px;
2447-}
2448-
2449-.side-column-block .side-contact-buttons {
2450- margin: 0 !important;
2451- padding-left: 0px !important;
2452-}
2453-.side-column-block .side-contact-buttons li {
2454- margin-bottom: 5px;
2455-}
2456-.side-column-block .side-contact-buttons a {
2457- display: block;
2458- width: 228px;
2459- height: 32px;
2460- background: url('side_buttons.png') top left no-repeat;
2461-}
2462-.side-column-block .side-contact-buttons a.contact-me { background-position: 0px 0px; }
2463-.side-column-block .side-contact-buttons a.webinar { background-position: 0px -36px; }
2464-.side-column-block .side-contact-buttons a.download-software { background-position: 0px -72px; }
2465-.side-column-block .side-contact-buttons a.newsletters { background-position: 0px -108px; }
2466-
2467-.side-column-block .side-contact-buttons a span {
2468- display: none;
2469-}
2470-
2471-
2472-.side-column-block .content .numbers
2473-{
2474- padding-left: 45px;
2475- background: url(phone.png) 2px center no-repeat;
2476- line-height: 18px;
2477- text-align: right;
2478- padding-right: 5px;
2479-}
2480-
2481-/*
2482- * Our team list
2483- */
2484-
2485-.our-team-page h2
2486-{
2487- clear: both;
2488-}
2489-
2490-div.our-team-item
2491-{
2492- text-align: center;
2493- overflow: hidden;
2494- zoom: 1;
2495- width: 162px;
2496- margin-left: 5px;
2497- height: 200px;
2498- float: left;
2499-}
2500-
2501-.pagecontent div.our-team-profile {
2502- height: inherit;
2503- margin-left: 0;
2504-}
2505-.pagecontent div.our-team-profile img{
2506- margin-top: 20px;
2507- margin-left: 0;
2508- margin-right: 0;
2509-}
2510-div.our-team-item .img img
2511-{
2512- border: 1px #e0e0e0 solid;
2513- padding: 2px;
2514-}
2515-
2516-/*
2517- * Phone Directory
2518- */
2519-
2520-table.phonetable {
2521- margin-top: 1em;
2522- border-collapse: collapse;
2523-}
2524-
2525-.phonetable {
2526- margin-left: 2em;
2527-}
2528-
2529-table.phonetable th,
2530-table.phonetable tr {
2531- text-align: left;
2532-}
2533-
2534-table.phonetable th {
2535- border: 1px #e0e0e0 solid;
2536- background: #f8f8f8;
2537- padding: 7px;
2538- font-weight: bold;
2539-}
2540-
2541-table.phonetable td {
2542- border: 1px #e0e0e0 solid;
2543- padding: 7px ;
2544-}
2545-
2546-table.phonetable .label {
2547- text-align: left;
2548-}
2549-
2550-table.phonetable td.label {
2551-}
2552-
2553-/*
2554- * contact forms
2555- */
2556-.form-item
2557-{
2558- clear: both;
2559- margin-top: 1em;
2560- position: relative;
2561-}
2562-.form-item label
2563-{
2564- display: block;
2565- font-weight: bold;
2566- position: absolute;
2567- top: 0;
2568- left: 0;
2569- width: 13em;
2570-}
2571-.form-required
2572-{
2573- color: #fa0;
2574- font-weight: bold;
2575-}
2576-.form-item .description
2577-{
2578- color: #888;
2579- font-size: 0.85em;
2580- line-height: 150%;
2581- position: relative;
2582- left: 14em;
2583-}
2584-#edit-submitbutton
2585-{
2586- position: relative;
2587- left: 12em;
2588- margin: 1em 0;
2589-}
2590-.form-item input[type=text],
2591-.form-item select,
2592-.form-item textarea
2593-{
2594- border: 1px solid #CCC;
2595- width: 350px;
2596- position: relative;
2597- top: 0;
2598- left: 12em;
2599-}
2600-.form-item textarea
2601-{
2602- height: 12em;
2603- padding: 3px;
2604-}
2605-.form-item-spacer
2606-{
2607- padding-top: 1em;
2608-}
2609-.form-item #captcha
2610-{
2611- position: relative;
2612- top: 0;
2613- left: 12em;
2614-}
2615-#edit-submitted-captcha
2616-{
2617- margin-top: 0.5em;
2618- width: 154px;
2619-}
2620-fieldset.form-item-set
2621-{
2622- border: 1px solid #ccc;
2623- display: block;
2624- margin: 12px 0;
2625- padding: 12px;
2626-}
2627-fieldset.form-item-set legend
2628-{
2629- border: none;
2630- display: block;
2631- padding: 0 2px;
2632-}
2633-div.error
2634-{
2635- background: #fff;
2636- border: solid 1px #c52020;
2637- color: #C52020;
2638- padding: 5px;
2639-}
2640-div.messages
2641-{
2642- margin: 5px 20px;
2643- font-size: 11px;
2644-}
2645-div.messages ul,
2646-div.messages ul li
2647-{
2648- list-style-image: none;
2649- list-style-type: none;
2650-}
2651-div.messages ul li
2652-{
2653- padding: 0 0 0.2em 0;
2654-}
2655-.form-item .error
2656-{
2657- background-color :#fdd;
2658-}
2659-
2660-#emergency-contacts .node-field-name
2661-{
2662- text-align: right;
2663- font-weight: bold;
2664- padding-right: 1em;
2665-}
2666-#emergency-contacts .node-field-value-phone
2667-{
2668- font-weight: bold;
2669- color: #137F00;
2670-}
2671-#emergency-contacts .node-field-help
2672-{
2673- font-weight: bold;
2674-}
2675-
2676-/*
2677- * compact template
2678- */
2679-#compact_footer
2680-{
2681- width: auto !important;
2682-}
2683-#compact_contentcontainer
2684-{
2685- overflow: hidden;
2686- zoom: 1;
2687- width: auto;
2688- padding: 30px 0px;
2689- margin: 0px 20px;
2690-}
2691-
2692-
2693-
2694-
2695-
2696-
2697-
2698-
2699-
2700-
2701-
2702-
2703-
2704-
2705-
2706-.content-featured-box {
2707- float: right;
2708- background-color: #f9f9f9;
2709- color: #999999;
2710- font-size: 11px;
2711- padding: 20px;
2712- width: 130px;
2713- margin: 0px 0 10px 10px;
2714-}
2715-.content-featured-box .footer {
2716- margin-top: 10px;
2717- text-align: right;
2718- color: #666666;
2719- font-size: 11px;
2720-}
2721-.content-featured-box .footer em {
2722- font-style: normal;
2723- font-size: 11px;
2724-}
2725-
2726-.document ul {
2727- margin-left: 5px;
2728- padding-left: 15px;
2729- margin-bottom: 15px;
2730-}
2731-
2732-.document ul li {
2733- list-style-image: url('content_list_bulletpoint.png');
2734- margin-bottom: 5px;
2735- line-height: 16px;
2736-}
2737-
2738-.document ul.alt-list li {
2739- list-style-image: url('content_list_bulletpoint_alt.png');
2740- font-size: 13px;
2741-}
2742-
2743-.document ul.alt-list li a {
2744- text-decoration: none;
2745-
2746-}
2747-
2748-.field-row {
2749- margin-bottom: 20px;
2750-}
2751-.field-row label {
2752- display:block;
2753- width: 80px;
2754- color: #cc3300;
2755- float: left;
2756-}
2757-.field-row .field {
2758- display: block;
2759- width: 400px;
2760- float: left;
2761-}
2762-.field-row:after {
2763- content: ".";
2764- display: block;
2765- visibility: hidden;
2766- height: 0;
2767- clear:both;
2768-}
2769-
2770-/* **************************************************************************************** */
2771-/*
2772- * Customer list
2773- */
2774-
2775-.custlogo img
2776-{
2777- /* Images are 175px wide; three side-by-side in a 720px div means each has
2778- * roughly 240px of space to occupy. */
2779- padding: 20px;
2780- border: 1px solid white;
2781-}
2782-
2783-.custlogo img:hover
2784-{
2785- border: 1px solid gray;
2786-}
2787-
2788-/*
2789- * Form table
2790- */
2791-
2792-table.formtable
2793-{
2794- border-collapse: collapse;
2795-}
2796-
2797-table.formtable th
2798-{
2799- font-weight: normal;
2800- white-space: nowrap;
2801- padding: 4px 20px 4px 0px;
2802-}
2803-
2804-table.formtable td
2805-{
2806- padding: 4px 0px 4px 0px;
2807-}
2808-
2809-table.formtable td input[type='text'],
2810-table.formtable td select
2811-{
2812- border: 1px #e0e0e0 solid;
2813- padding: 4px;
2814- width: 400px;
2815-}
2816-
2817-table.formtable td.submit
2818-{
2819- padding: 10px 0px 0px 0px;
2820- text-align: center;
2821-}
2822-
2823-
2824-/*
2825- * Data table
2826- */
2827-
2828-table.datatable
2829-{
2830- margin-top: 1em;
2831- border-collapse: collapse;
2832-}
2833-.datatable
2834-{
2835- margin-left: 2em;
2836-}
2837-table.datatable th,
2838-table.datatable tr {
2839- text-align: center;
2840-}
2841-
2842-table.datatable th
2843-{
2844- border: 1px #e0e0e0 solid;
2845- background: #f8f8f8;
2846- padding: 7px;
2847- font-weight: bold;
2848-}
2849-
2850-table.datatable td
2851-{
2852- border: 1px #e0e0e0 solid;
2853- padding: 7px;
2854-}
2855-
2856-table.datatable .label {
2857- text-align: left;
2858-
2859-}
2860-
2861-
2862-
2863-/*
2864- * Front page blocks
2865- */
2866-/*
2867-.frontpage-sidebar .header
2868-{
2869- padding: 0px 0px 10px 0px;
2870- font-size: 18px;
2871- font-weight: normal;
2872- text-align: center;
2873-}
2874-.frontpage-sidebar .header.link
2875-{
2876- padding: 13px 0px 10px 4px;
2877- text-align: left;
2878-}
2879-.frontpage-sidebar .header a, .frontpage-sidebar .header a:visited
2880-{
2881- color: #333333 !important;
2882- text-decoration: none !important;
2883-}
2884-.frontpage-sidebar .header a:hover
2885-{
2886- color: #d12907 !important;
2887- text-decoration: none !important;
2888-}
2889-
2890-.frontpage-sidebar .header.bloglink
2891-{
2892- font-size:16px;
2893- padding: 0px 0px 10px 10px;
2894- text-align: center;
2895-}
2896-
2897-.frontpage-sidebar .header.blogheader
2898-{
2899- font-weight:normal;
2900- text-align:center;
2901- font-size: 15px;
2902- padding: 13px 10px 10px 0px;
2903-}
2904-
2905-.frontpage-sidebar .header a.email
2906-{
2907- padding: 13px 10px 10px 40px;
2908- background: url(email-small.png) left center no-repeat;
2909-}
2910-
2911-
2912-
2913-
2914-
2915-.frontpage-sidebar .eventum a, .frontpage-sidebar .eventum a:visited
2916-{
2917- padding: 0px 2px 0px 55px;
2918- font-size: 12px;
2919- line-height: 18px;
2920- text-align: left;
2921- background: url(support-small.png) left center no-repeat;
2922- display: block;
2923- color: #333333 !important;
2924- text-decoration: none !important;
2925-}
2926-
2927-.frontpage-sidebar .eventum a:hover
2928-{
2929- color: #d12907 !important;
2930- text-decoration: underline !important;
2931-}
2932-*/
2933-
2934-/*
2935- * Presentations
2936- */
2937-
2938-div.presentation
2939-{
2940- border-top: 1px #e0e0e0 dotted;
2941- padding: 15px 0px;
2942-}
2943-div.presentation:first-child
2944-{
2945- margin-top: 0;
2946- border: none;
2947-}
2948-
2949-div.presentation table.presentation
2950-{
2951- border-collapse: collapse;
2952-}
2953-
2954-div.presentation table.presentation td div.bordered-image-screenshot
2955-{
2956- border: 1px #e0e0e0 solid;
2957- background: #f8f8f8;
2958- padding: 5px;
2959-}
2960-
2961-div.presentation table.presentation td.presentations-descr
2962-{
2963-
2964- padding-left: 15px;
2965-}
2966-
2967-div.presentation table.presentation td.presentations-descr h4
2968-{
2969- font-size: 14px;
2970-
2971- font-weight: bold;
2972- margin-top: 0px !important;
2973- margin-bottom: 10px;
2974- border-top: none !important;
2975-}
2976-
2977-.customer-vote {
2978- width: 412px;
2979- text-align: justify;
2980-}
2981-
2982-.training-info-container {
2983- float: right;
2984- width:200px;
2985- background-color:#fff;
2986- padding:10px;
2987- margin:0 15px;
2988- border:1px solid #E0E0E0;
2989-}
2990-
2991-/*
2992- * Software info container
2993- */
2994-
2995-div.software-info-container
2996-{
2997- overflow: hidden;
2998- zoom: 1;
2999- float: right;
3000- padding: 0px 0px 25px 25px;
3001-}
3002-
3003-table.software-info-container
3004-{
3005- width: 240px;
3006- border-collapse: collapse;
3007-}
3008-
3009-table.software-info-container td
3010-{
3011- border: 1px #e0e0e0 solid;
3012- padding: 10px 10px 10px 10px;
3013-}
3014-
3015-table.software-info-container td.latest
3016-{
3017- padding: 10px 10px 10px 62px;
3018- background: url(software-latest.png) 15px center no-repeat;
3019- min-height: 32px;
3020- font-size: 16px;
3021- line-height: 24px;
3022-}
3023-
3024-table.software-info-container td.download a
3025-{
3026- font-weight: bold;
3027-}
3028-
3029-table.software-info-container td.download
3030-{
3031- padding: 15px 62px 15px 20px;
3032- background: url(software-download.png) 195px center no-repeat;
3033- min-height: 32px;
3034- font-size: 18px;
3035- line-height: 24px;
3036-}
3037-
3038-table.software-info-container td.links
3039-{
3040- text-align: left;
3041- padding: 4px 10px 4px 20px;
3042-}
3043-
3044-table.software-info-container td.links div
3045-{
3046- margin: 10px 0px;
3047-}
3048-
3049-.inv {
3050- display: none;
3051-}
3052-
3053-/*
3054- * Downloads table
3055- */
3056-
3057-table.downloadstable
3058-{
3059- margin-top: 20px;
3060- border-collapse: collapse;
3061-}
3062-
3063-table.downloadstable th
3064-{
3065- border: 1px #e0e0e0 solid;
3066- background: #f8f8f8;
3067- padding: 7px;
3068- font-weight: bold;
3069-}
3070-
3071-table.downloadstable td
3072-{
3073- border: 1px #e0e0e0 solid;
3074- padding: 7px;
3075-}
3076-
3077-table.downloadstable td.file
3078-{
3079- width: 90%;
3080- text-align: left;
3081-}
3082-
3083-table.downloadstable td.modified
3084-{
3085- width: 5%;
3086- text-align: center;
3087- white-space: nowrap;
3088-}
3089-
3090-table.downloadstable td.size
3091-{
3092- width: 5%;
3093- text-align: right;
3094- white-space: nowrap;
3095-}
3096-
3097-/*
3098- * Maintenance promo on /downloads
3099- */
3100-
3101-div.downloads-maintenance-promo, div.downloads-warning
3102-{
3103- border: 1px #e0e0e0 solid;
3104- padding: 15px 20px 15px 150px;
3105- margin: 30px 0px;
3106- background: url(shield.png) 35px center no-repeat;
3107-}
3108-div.downloads-maintenance-promo > .close-button
3109-{
3110- float:right;
3111- clear:right;
3112- margin-top:-10px;
3113- margin-right:-15px;
3114- cursor: pointer; cursor: hand;
3115-}
3116-
3117-div.downloads-warning {
3118- background: url(warning.png) 35px center no-repeat;
3119-}
3120-
3121-
3122-/*
3123- * Downloads pages
3124- */
3125-
3126-div.downloads-version
3127-{
3128- border-top: 1px #e0e0e0 solid;
3129- margin-top: -10px;
3130- padding-top: 10px;
3131- text-align: right;
3132- font-size: 14px;
3133- line-height: 14px;
3134- font-weight: bold;
3135-}
3136-
3137-div.downloads-anchors
3138-{
3139- font-size: 12px;
3140- line-height: 15px;
3141- margin: 20px 0px;
3142-}
3143-
3144-div.downloads-backtotop
3145-{
3146- font-size: 12px;
3147- line-height: 15px;
3148- padding-top: 8px;
3149-}
3150-
3151-
3152-/*
3153- * Downloads signup
3154- */
3155-
3156-.downloadsignupdialog .ui-dialog-titlebar
3157-{
3158- display: none;
3159-}
3160-
3161-#downloadsignup .title-bar-close {
3162- float:right;
3163- margin-top:-10px;
3164-}
3165-
3166-#downloadsignup h2
3167-{
3168- font-family: Arial, Helvetica, sans-serif;
3169- font-size: 22px;
3170- line-height: 22px;
3171- margin: 10px 0px 20px 0px;
3172- color: #d12907;
3173-}
3174-
3175-#downloadsignup .intro
3176-{
3177- margin: 10px 0px 15px 0px;
3178-}
3179-
3180-#downloadsignup .form .field
3181-{
3182- overflow: hidden;
3183- zoom: 1;
3184- margin: 10px 0px;
3185-}
3186-
3187-#downloadsignup .form .field .label
3188-{
3189- overflow: hidden;
3190- zoom: 1;
3191- width: 150px;
3192- float: left;
3193- padding-top: 5px;
3194-}
3195-
3196-#downloadsignup .form .field .element
3197-{
3198- overflow: hidden;
3199- zoom: 1;
3200- width: 410px;
3201- float: left;
3202-}
3203-
3204-#downloadsignup .form .field .element input, #downloadsignup .form .field .element select
3205-{
3206- width: 400px;
3207- border: 1px #cccccc solid;
3208- padding: 3px;
3209- outline: none;
3210-}
3211-
3212-#downloadsignup .form .field .element input:focus, #downloadsignup .form .field .element select:focus
3213-{
3214- border: 1px #333333 solid;
3215- background: #f8f8f8;
3216- outline: none;
3217-}
3218-
3219-#downloadsignup .form .field .radiolist
3220-{
3221- overflow: hidden;
3222- zoom: 1;
3223- display: block;
3224- padding: 0;
3225- margin: 0;
3226-}
3227-
3228-#downloadsignup .form .field table.radiolist
3229-{
3230- width: 100%;
3231-}
3232-
3233-#downloadsignup .form .field .radiolist td
3234-{
3235- width: 25%;
3236-}
3237-
3238-#downloadsignup .form .field div.radiolist label
3239-{
3240- display: block;
3241- min-width: 55px;
3242- float: left;
3243- zoom: 1;
3244- padding: 8px 10px 2px 24px !important;
3245- text-indent: -24px;
3246- overflow: auto;
3247-}
3248-
3249-#downloadsignup .form .field table.radiolist label
3250-{
3251- padding: 8px 15px 2px 0px !important;
3252- zoom: 1;
3253- display: block;
3254-}
3255-#downloadsignup .form .field .radiolist label input
3256-{
3257- margin: 0px 7px 0px 3px !important;
3258-}
3259-
3260-/*
3261-.schedule td {
3262- padding: 3px;
3263- border: 1px solid #eeeeee;
3264- padding-left: 10px;
3265- font-size: 16px;
3266-}
3267-
3268-.tdmini {
3269- font-weight: bold;
3270- font-size: 10px !important;
3271-}
3272-
3273-.tdbreak {
3274- background-color: #ffeeee;
3275- text-align: center;
3276-}
3277-.trhead td {
3278- background-color: #d12907;
3279- color: #ffffff;
3280- font-weight: bold;
3281-}
3282-
3283-.speaker {
3284- font-size: 10px;
3285-}
3286-*/
3287-/* Tables with bolded-right aligned headers in the first column */
3288-/*table.left-headers th {
3289- font-weight: bold;
3290- text-align: right;
3291- padding: 5px 12px;
3292- vertical-align: top;
3293- border-right: 1px solid black;
3294-}
3295-table.left-headers td {
3296- padding: 5px 12px;
3297-}
3298-
3299-.training-list tr th {
3300- font-weight:bold;
3301-}
3302-
3303-.training-list tr td {
3304- padding-right: 15px;
3305-}
3306-*/
3307-/***
3308- * side style buttons
3309-*/
3310-.a-btn-container {
3311- overflow:hidden;
3312- border-radius:4px;
3313-}
3314-.a-btn, .a-btn-new {
3315- width: 218px;
3316- height: 48px;
3317- background: #fdcd34;
3318- background:-webkit-gradient(linear,left top,left bottom,color-stop(##fdcd34,0),color-stop(##d42c14,1));
3319- background:-webkit-linear-gradient(top, #fdcd34 0%, #d42c14 100%);
3320- background:-moz-linear-gradient(top, #fdcd34 0%, #d42c14 100%);
3321- background:-o-linear-gradient(top, #fdcd34 0%, #d42c14 100%);
3322- background:linear-gradient(top, #fdcd34 0%, #d42c14 100%);
3323- filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#fdcd34', endColorstr='#d42c14',GradientType=0 );
3324-
3325- padding:0px;
3326-
3327- display:inline-block;
3328- position:relative;
3329- -webkit-border-radius:4px;
3330- -moz-border-radius:4px;
3331- border-radius:4px;
3332-
3333- overflow:hidden;
3334- -webkit-transition:all 0.3s linear;
3335- -moz-transition:all 0.3s linear;
3336- -o-transition:all 0.3s linear;
3337- transition:all 0.3s linear;
3338- text-decoration: none !important;
3339- border: 1px solid #f08900;
3340- margin-bottom: 10px;
3341-}
3342-
3343-.a-btn-text{
3344- padding-left:10px;
3345- padding-top:5px;
3346- display:block;
3347- font-size:13px;
3348- white-space:nowrap;
3349- color: #ffffff;
3350- -webkit-transition:all 0.3s linear;
3351- -moz-transition:all 0.3s linear;
3352- -o-transition:all 0.3s linear;
3353- transition:all 0.3s linear;
3354-
3355-}
3356-
3357-.a-btn-slide-text, .a-btn-fixed-slide-text {
3358- padding-left: 10px;
3359- left:0px;
3360- width:auto;
3361- right:52px;
3362- height:0px;
3363-
3364- color:#000000;
3365- font-size:12px;
3366- white-space:nowrap;
3367- font-family:Georgia, serif;
3368- font-style:italic;
3369- text-indent:15px;
3370- overflow:hidden;
3371-
3372-
3373-}
3374-.a-btn-fixed-slide-text{
3375- height: 30px;
3376-}
3377-
3378-.a-btn-icon-right{
3379- position:absolute;
3380- right:0px;
3381- top:0px;
3382- height:100%;
3383- width:52px;
3384-}
3385-
3386-.a-btn-icon-right span{
3387- width:38px;
3388- height:38px;
3389-
3390- position:absolute;
3391- left:50%;
3392- top:50%;
3393- margin:-20px 0px 0px -20px;
3394- background:transparent url('button-download-icon.png') no-repeat 50% 55%;
3395- -webkit-transition:all 0.3s linear;
3396- -moz-transition:all 0.3s linear;
3397- -o-transition:all 0.3s linear;
3398- transition:all 0.3s linear;
3399-
3400-}
3401-
3402-
3403-.paper-desc {
3404- padding-left: 20px;
3405-}
3406-.papers-content h2 a {
3407- text-decoration: none !important;
3408- color: inherit !important;
3409-}
3410-.paper-author {
3411- padding-bottom: 20px;
3412-}
3413-.paper-author img {
3414- border: 1px solid #CCCCCC;
3415- display: block;
3416- float: left;
3417- margin-right: 15px;
3418- padding: 1px;
3419- width: 110px;
3420-}
3421-.paper-author h2 {
3422- border-bottom: 0 !important;
3423- color: #000000;
3424- font-family: Arial,Helvetica,sans-serif;
3425- font-size: 20px;
3426- line-height: 20px;
3427- margin: 30px 0 0 !important;
3428- padding: 0 0 3px;
3429-}
3430-.paper-author h3 {
3431- color: #555555 !important;
3432- font-family: Times New Roman,serif !important;
3433- font-style: italic;
3434- font-weight: normal !important;
3435- margin-left: 130px !important;
3436- margin-top: 5px !important;
3437-}
3438-.paper-long-desc {
3439- width: 325px;
3440- float: left;
3441-}
3442-.paper-long-desc > p{
3443- padding: 0 20px;
3444- margin:0 !important;
3445-}
3446-.paper-details .paper-thumb {
3447- width: 185px; float: left;
3448-}
3449-.paper-details .paper-thumb div.content {
3450- padding: 5px;
3451-}
3452-.paper-details .paper-thumb img {
3453- width: 175px;
3454-}
3455-.pr-subhead {
3456- font-size: 16px !important;
3457- border: none !important;
3458- text-align: center;
3459- margin-top: 15px !important;
3460- font-style: italic;
3461-}
3462-
3463-
3464-.clearer {
3465- clear: both;
3466-}
3467-
3468
3469=== removed file 'doc-pxc/source/percona-theme/static/percona.com.js'
3470--- doc-pxc/source/percona-theme/static/percona.com.js 2012-06-01 04:28:35 +0000
3471+++ doc-pxc/source/percona-theme/static/percona.com.js 1970-01-01 00:00:00 +0000
3472@@ -1,269 +0,0 @@
3473-window.jQuery(function($) {
3474-
3475-
3476-
3477-function setCookie(c_name, value, expiredays)
3478-{
3479- var exdate = new Date();
3480- exdate.setDate(exdate.getDate() + expiredays);
3481- document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";path=/;expires=" + exdate.toUTCString());
3482-}
3483-
3484-function getCookie(c_name)
3485-{
3486- if (document.cookie.length > 0)
3487- {
3488- c_start = document.cookie.indexOf(c_name + "=");
3489- if (c_start != -1)
3490- {
3491- c_start = c_start + c_name.length+1;
3492- c_end = document.cookie.indexOf(";",c_start);
3493- if (c_end == -1)
3494- {
3495- c_end = document.cookie.length;
3496- }
3497- return unescape(document.cookie.substring(c_start, c_end));
3498- }
3499- }
3500- return "";
3501-}
3502-
3503-
3504-NAVI = new Object();
3505-
3506-NAVI.CloseTimer = null;
3507-
3508-NAVI.Open = function ( menu_tag, dir )
3509-{
3510- NAVI_CancelTimer();
3511- NAVI_Close();
3512- SEARCH_CancelTimer();
3513- SEARCH_Close();
3514- if ('h' == dir)
3515- {
3516- return;
3517- }
3518- var pos = $("#navilink-span-"+menu_tag).offset();
3519- if (dir=='r')
3520- {
3521- $("#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" } );
3522- }
3523- else
3524- {
3525- $("#navi-dropdown-"+menu_tag).css( { "position": "absolute", "left": (pos.left) + "px", "top": (pos.top + 32) + "px" } );
3526- }
3527- $("#navi-dropdown-"+menu_tag).show();
3528- $("#navilink-span-"+menu_tag).bind('mouseover',NAVI_CancelTimer);
3529- $("#navilink-span-"+menu_tag).bind('mouseout',NAVI_Timer);
3530- $("#navi-dropdown-"+menu_tag).bind('mouseover',NAVI_CancelTimer);
3531- $("#navi-dropdown-"+menu_tag).bind('mouseout',NAVI_Timer);
3532-};
3533-
3534-function NAVI_Close()
3535-{
3536- $(".navi-dropdown").hide();
3537- $("#menu div").unbind('mouseover');
3538- $(".dropdown").unbind('mouseover');
3539- $(".dropdown").unbind('mouseout');
3540-
3541- $("#search-dropdown").hide();
3542- $("#searchlink-anchor").unbind('mouseover');
3543- $("#searchlink-anchor").unbind('mouseout');
3544- $("#search-dropdown").unbind('mouseover');
3545- $("#search-dropdown").unbind('mouseout');
3546-}
3547-
3548-function NAVI_CancelTimer()
3549-{
3550- if (NAVI.CloseTimer!=null)
3551- {
3552- window.clearTimeout(NAVI.CloseTimer);
3553- NAVI.CloseTimer = null;
3554- }
3555-}
3556-
3557-function NAVI_Timer()
3558-{
3559- if (NAVI.CloseTimer==null)
3560- {
3561- NAVI.CloseTimer = window.setTimeout(NAVI_Close, 300);
3562- }
3563-}
3564-
3565-
3566-SUBNAVI = new Object();
3567-
3568-SUBNAVI.Open = function ( menu_tag )
3569-{
3570- if ($("#sidesubnavi-" + menu_tag + ':hidden').length)
3571- {
3572- $(".sidesubnavi").hide();
3573- $("#sidesubnavi-"+menu_tag).show();
3574- return false;
3575- } else {
3576- return true;
3577- }
3578-};
3579-
3580-
3581-SEARCH = new Object();
3582-
3583-SEARCH.CloseTimer = null;
3584-
3585-SEARCH.Open = function()
3586-{
3587- NAVI_CancelTimer();
3588- NAVI_Close();
3589- SEARCH_CancelTimer();
3590- SEARCH_Close();
3591- var pos = $("#searchlink-anchor").offset();
3592- $("#search-dropdown").css( { "position": "absolute", "left": (pos.left - ($("#search-dropdown").width()) + 40) + "px", "top": (pos.top + 36) + "px" } );
3593- $("#search-dropdown").show();
3594- $("#searchlink-anchor").bind('mouseover',NAVI_CancelTimer);
3595- $("#searchlink-anchor").bind('mouseout',NAVI_Timer);
3596- $("#search-dropdown").bind('mouseover',NAVI_CancelTimer);
3597- $("#search-dropdown").bind('mouseout',NAVI_Timer);
3598- $("#search-input")[0].focus();
3599-};
3600-
3601-function SEARCH_Close()
3602-{
3603- $(".navi-dropdown").hide();
3604- $("#menu div").unbind('mouseover');
3605- $(".dropdown").unbind('mouseover');
3606- $(".dropdown").unbind('mouseout');
3607-
3608- $("#search-dropdown").hide();
3609- $("#searchlink-anchor").unbind('mouseover');
3610- $("#searchlink-anchor").unbind('mouseout');
3611- $("#search-dropdown").unbind('mouseover');
3612- $("#search-dropdown").unbind('mouseout');
3613-}
3614-
3615-
3616-function SEARCH_CancelTimer()
3617-{
3618- if (SEARCH.CloseTimer!=null)
3619- {
3620- window.clearTimeout(SEARCH.CloseTimer);
3621- SEARCH.CloseTimer = null;
3622- }
3623-}
3624-
3625-function SEARCH_Timer()
3626-{
3627- if (SEARCH.CloseTimer==null)
3628- {
3629- SEARCH.CloseTimer = window.setTimeout(SEARCH_Close, 300);
3630- }
3631-}
3632-
3633-menuImg1 = new Image(); menuImg1.src = 'http://s1.percona.com/ui-dropdown-header-l.png';
3634-menuImg2 = new Image(); menuImg2.src = 'http://s2.percona.com/ui-dropdown-header-r.png';
3635-menuImg3 = new Image(); menuImg3.src = 'http://s3.percona.com/ui-dropdown-header-search.png';
3636-menuImg4 = new Image(); menuImg4.src = 'http://s0.percona.com/ui-dropdown-bg.png';
3637-menuImg5 = new Image(); menuImg5.src = 'http://s1.percona.com/ui-dropdown-footer.png';
3638-
3639-
3640-});
3641-
3642-
3643-var Percona = {
3644- ssl: false,
3645- host: 'www.percona.com'
3646-};
3647-/**
3648- * @param string selector jQuery selector string
3649- */
3650-Percona.getRecentServerVersion = function(selector)
3651-{
3652- if ('string' != typeof(selector))
3653- {
3654- alert('Percona.getRecentServerVersion: missed or wrong selector!');
3655- }
3656- /* Localize jQuery variable */
3657- var jQuery;
3658- /******** Load jQuery if not present *********/
3659- if (window.jQuery === undefined || window.jQuery.fn.jquery !== '1.4.2')
3660- {
3661- var script_tag = document.createElement('script');
3662- script_tag.setAttribute("type","text/javascript");
3663- script_tag.setAttribute('src', 'http' + (Percona.ssl ? 's' : '') + ':/' + '/ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');
3664- script_tag.onload = scriptLoadHandler;
3665- script_tag.onreadystatechange = function () /* Same thing but for IE */
3666- {
3667- if (this.readyState == 'complete' || this.readyState == 'loaded')
3668- {
3669- scriptLoadHandler();
3670- }
3671- };
3672- /* Try to find the head, otherwise default to the documentElement */
3673- (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
3674- } else {
3675- /* The jQuery version on the window is the one we want to use */
3676- jQuery = window.jQuery;
3677- main();
3678- }
3679- var scriptLoadHandler_counter = 0;
3680- /******** Called once jQuery has loaded ******/
3681- function scriptLoadHandler()
3682- {
3683- if (++scriptLoadHandler_counter > 1)
3684- {
3685- return;
3686- }
3687- /* Restore $ and window.jQuery to their previous values and store the
3688- new jQuery in our local jQuery variable */
3689- jQuery = window.jQuery.noConflict(true);
3690- /* Call our main function */
3691- main(jQuery);
3692- }
3693- /******** Our main function ********/
3694- function main($)
3695- {
3696- var fillRecentServerVersion = function($)
3697- {
3698- if ($(selector).get(0))
3699- {
3700- $.get('http' + (Percona.ssl ? 's' : '') + ':/' + '/' + Percona.host + '/ajax/server-version/?callback=?', {}, function(json)
3701- {
3702- if ('object' == typeof(json) && 'string' == typeof(json.recentServerVersion))
3703- {
3704- $(selector).text(' ' + json.recentServerVersion);
3705- }
3706- }, 'jsonp');
3707- }
3708- };
3709- $(document).ready(function()
3710- {
3711- fillRecentServerVersion(jQuery);
3712- });
3713- }
3714-};
3715-
3716-$(document).ready(function(){
3717- $(window).bind("resize", resizeWindow);
3718- resizeWindow();
3719- function resizeWindow() {
3720- var win_w = $(window).width();
3721- var ribon = $("#support-ribbon");
3722- if(win_w < 1265){
3723- if(/mobile/i.test(navigator.userAgent)){
3724- ribon.hide();
3725- }else{
3726- if(ribon.hasClass("vertical")){
3727- ribon.removeClass("vertical");
3728- ribon.addClass("horizontal");
3729- }
3730- ribon.css({"left":'50%', "margin-left": '-'+(ribon.width() / 2)+'px'});
3731- }
3732- }else{
3733- if(ribon.hasClass("horizontal")){
3734- ribon.addClass("vertical");
3735- ribon.removeClass("horizontal");
3736- ribon.removeAttr("style");
3737- }
3738-
3739- }
3740- }
3741-});
3742\ No newline at end of file
3743
3744=== removed file 'doc-pxc/source/percona-theme/static/phone-small.png'
3745Binary 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
3746=== removed file 'doc-pxc/source/percona-theme/static/phone.png'
3747Binary 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
3748=== removed file 'doc-pxc/source/percona-theme/static/shield.png'
3749Binary 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
3750=== removed file 'doc-pxc/source/percona-theme/static/side_buttons.png'
3751Binary 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
3752=== removed file 'doc-pxc/source/percona-theme/static/sidebar.js'
3753--- doc-pxc/source/percona-theme/static/sidebar.js 2012-06-01 04:28:35 +0000
3754+++ doc-pxc/source/percona-theme/static/sidebar.js 1970-01-01 00:00:00 +0000
3755@@ -1,151 +0,0 @@
3756-/*
3757- * sidebar.js
3758- * ~~~~~~~~~~
3759- *
3760- * This script makes the Sphinx sidebar collapsible.
3761- *
3762- * .sphinxsidebar contains .sphinxsidebarwrapper. This script adds
3763- * in .sphixsidebar, after .sphinxsidebarwrapper, the #sidebarbutton
3764- * used to collapse and expand the sidebar.
3765- *
3766- * When the sidebar is collapsed the .sphinxsidebarwrapper is hidden
3767- * and the width of the sidebar and the margin-left of the document
3768- * are decreased. When the sidebar is expanded the opposite happens.
3769- * This script saves a per-browser/per-session cookie used to
3770- * remember the position of the sidebar among the pages.
3771- * Once the browser is closed the cookie is deleted and the position
3772- * reset to the default (expanded).
3773- *
3774- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
3775- * :license: BSD, see LICENSE for details.
3776- *
3777- */
3778-
3779-$(function() {
3780- // global elements used by the functions.
3781- // the 'sidebarbutton' element is defined as global after its
3782- // creation, in the add_sidebar_button function
3783- var bodywrapper = $('.bodywrapper');
3784- var sidebar = $('.sphinxsidebar');
3785- var sidebarwrapper = $('.sphinxsidebarwrapper');
3786-
3787- // for some reason, the document has no sidebar; do not run into errors
3788- if (!sidebar.length) return;
3789-
3790- // original margin-left of the bodywrapper and width of the sidebar
3791- // with the sidebar expanded
3792- var bw_margin_expanded = bodywrapper.css('margin-left');
3793- var ssb_width_expanded = sidebar.width();
3794-
3795- // margin-left of the bodywrapper and width of the sidebar
3796- // with the sidebar collapsed
3797- var bw_margin_collapsed = '.8em';
3798- var ssb_width_collapsed = '.8em';
3799-
3800- // colors used by the current theme
3801- var dark_color = $('.related').css('background-color');
3802- var light_color = $('.document').css('background-color');
3803-
3804- function sidebar_is_collapsed() {
3805- return sidebarwrapper.is(':not(:visible)');
3806- }
3807-
3808- function toggle_sidebar() {
3809- if (sidebar_is_collapsed())
3810- expand_sidebar();
3811- else
3812- collapse_sidebar();
3813- }
3814-
3815- function collapse_sidebar() {
3816- sidebarwrapper.hide();
3817- sidebar.css('width', ssb_width_collapsed);
3818- bodywrapper.css('margin-left', bw_margin_collapsed);
3819- sidebarbutton.css({
3820- 'margin-left': '0',
3821- 'height': bodywrapper.height()
3822- });
3823- sidebarbutton.find('span').text('»');
3824- sidebarbutton.attr('title', _('Expand sidebar'));
3825- document.cookie = 'sidebar=collapsed';
3826- }
3827-
3828- function expand_sidebar() {
3829- bodywrapper.css('margin-left', bw_margin_expanded);
3830- sidebar.css('width', ssb_width_expanded);
3831- sidebarwrapper.show();
3832- sidebarbutton.css({
3833- 'margin-left': ssb_width_expanded-12,
3834- 'height': bodywrapper.height()
3835- });
3836- sidebarbutton.find('span').text('«');
3837- sidebarbutton.attr('title', _('Collapse sidebar'));
3838- document.cookie = 'sidebar=expanded';
3839- }
3840-
3841- function add_sidebar_button() {
3842- sidebarwrapper.css({
3843- 'float': 'left',
3844- 'margin-right': '0',
3845- 'width': ssb_width_expanded - 28
3846- });
3847- // create the button
3848- sidebar.append(
3849- '<div id="sidebarbutton"><span>&laquo;</span></div>'
3850- );
3851- var sidebarbutton = $('#sidebarbutton');
3852- light_color = sidebarbutton.css('background-color');
3853- // find the height of the viewport to center the '<<' in the page
3854- var viewport_height;
3855- if (window.innerHeight)
3856- viewport_height = window.innerHeight;
3857- else
3858- viewport_height = $(window).height();
3859- sidebarbutton.find('span').css({
3860- 'display': 'block',
3861- 'margin-top': (viewport_height - sidebar.position().top - 20) / 2
3862- });
3863-
3864- sidebarbutton.click(toggle_sidebar);
3865- sidebarbutton.attr('title', _('Collapse sidebar'));
3866- sidebarbutton.css({
3867- 'color': '#FFFFFF',
3868- 'border-left': '1px solid ' + dark_color,
3869- 'font-size': '1.2em',
3870- 'cursor': 'pointer',
3871- 'height': bodywrapper.height(),
3872- 'padding-top': '1px',
3873- 'margin-left': ssb_width_expanded - 12
3874- });
3875-
3876- sidebarbutton.hover(
3877- function () {
3878- $(this).css('background-color', dark_color);
3879- },
3880- function () {
3881- $(this).css('background-color', light_color);
3882- }
3883- );
3884- }
3885-
3886- function set_position_from_cookie() {
3887- if (!document.cookie)
3888- return;
3889- var items = document.cookie.split(';');
3890- for(var k=0; k<items.length; k++) {
3891- var key_val = items[k].split('=');
3892- var key = key_val[0];
3893- if (key == 'sidebar') {
3894- var value = key_val[1];
3895- if ((value == 'collapsed') && (!sidebar_is_collapsed()))
3896- collapse_sidebar();
3897- else if ((value == 'expanded') && (sidebar_is_collapsed()))
3898- expand_sidebar();
3899- }
3900- }
3901- }
3902-
3903- add_sidebar_button();
3904- var sidebarbutton = $('#sidebarbutton');
3905- set_position_from_cookie();
3906-});
3907
3908=== removed file 'doc-pxc/source/percona-theme/static/software-download.png'
3909Binary 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
3910=== removed file 'doc-pxc/source/percona-theme/static/software-latest.png'
3911Binary 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
3912=== removed file 'doc-pxc/source/percona-theme/static/support-small.png'
3913Binary 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
3914=== removed file 'doc-pxc/source/percona-theme/static/ui-dropdown-bg.png'
3915Binary 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
3916=== removed file 'doc-pxc/source/percona-theme/static/ui-dropdown-footer.png'
3917Binary 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
3918=== removed file 'doc-pxc/source/percona-theme/static/ui-dropdown-header-l.png'
3919Binary 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
3920=== removed file 'doc-pxc/source/percona-theme/static/ui-dropdown-header-r.png'
3921Binary 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
3922=== removed file 'doc-pxc/source/percona-theme/static/ui-dropdown-header-search.png'
3923Binary 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
3924=== removed file 'doc-pxc/source/percona-theme/static/ui-footer-logo.png'
3925Binary 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
3926=== removed file 'doc-pxc/source/percona-theme/static/ui-leftnavi-sel.png'
3927Binary 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
3928=== removed file 'doc-pxc/source/percona-theme/static/ui-logo.png'
3929Binary 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
3930=== removed file 'doc-pxc/source/percona-theme/static/ui-navi-hover-l.png'
3931Binary 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
3932=== removed file 'doc-pxc/source/percona-theme/static/ui-navi-hover-r.png'
3933Binary 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
3934=== removed file 'doc-pxc/source/percona-theme/static/ui-navi-l.png'
3935Binary 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
3936=== removed file 'doc-pxc/source/percona-theme/static/ui-navi-r.png'
3937Binary 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
3938=== removed file 'doc-pxc/source/percona-theme/static/ui-navi-sel-l.png'
3939Binary 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
3940=== removed file 'doc-pxc/source/percona-theme/static/ui-navi-sel-r.png'
3941Binary 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
3942=== removed file 'doc-pxc/source/percona-theme/static/ui-orange-content.png'
3943Binary 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
3944=== removed file 'doc-pxc/source/percona-theme/static/ui-orange-front.png'
3945Binary 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
3946=== removed file 'doc-pxc/source/percona-theme/static/ui-search.png'
3947Binary 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
3948=== removed file 'doc-pxc/source/percona-theme/static/ui-tab-bg.png'
3949Binary 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
3950=== removed file 'doc-pxc/source/percona-theme/static/warning.png'
3951Binary 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
3952=== removed file 'doc-pxc/source/percona-theme/theme.conf'
3953--- doc-pxc/source/percona-theme/theme.conf 2012-06-01 04:28:35 +0000
3954+++ doc-pxc/source/percona-theme/theme.conf 1970-01-01 00:00:00 +0000
3955@@ -1,32 +0,0 @@
3956-[theme]
3957-inherit = default
3958-stylesheet = default.css
3959-pygments_style = sphinx
3960-
3961-[options]
3962-rightsidebar = false
3963-stickysidebar = false
3964-collapsiblesidebar = false
3965-externalrefs = false
3966-
3967-footerbgcolor = #11303d
3968-footertextcolor = #ffffff
3969-sidebarbgcolor = #1c4e63
3970-sidebarbtncolor = #3c6e83
3971-sidebartextcolor = #ffffff
3972-sidebarlinkcolor = #98dbcc
3973-relbarbgcolor = #133f52
3974-relbartextcolor = #ffffff
3975-relbarlinkcolor = #ffffff
3976-bgcolor = #ffffff
3977-textcolor = #000000
3978-headbgcolor = #f2f2f2
3979-headtextcolor = #20435c
3980-headlinkcolor = #c60f0f
3981-linkcolor = #355f7c
3982-visitedlinkcolor = #355f7c
3983-codebgcolor = #eeffcc
3984-codetextcolor = #333333
3985-
3986-bodyfont = sans-serif
3987-headfont = 'Arial', 'Helvetica' sans-serif
3988
3989=== modified file 'doc-pxc/source/resources.rst'
3990--- doc-pxc/source/resources.rst 2012-06-01 04:28:35 +0000
3991+++ doc-pxc/source/resources.rst 2012-06-27 10:50:28 +0000
3992@@ -19,8 +19,9 @@
3993
3994 as most other Galera options. This may save you some extra typing.
3995
3996-The 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.
3997-
3998-If 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.
3999-
4000-If 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).
4001+The 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.
4002+
4003+If 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.
4004+
4005+If 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).
4006+

Subscribers

People subscribed via source and target branches