galaxy-commits
Threads by month
- ----- 2025 -----
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 15302 discussions

commit/galaxy-central: dan: Better determination in tests if a provided input is a DataToolParameter to better handle .gz and .zip uploads and allowing uploads from a sub-directory of test-data/.
by Bitbucket 28 Feb '11
by Bitbucket 28 Feb '11
28 Feb '11
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/4d2d7c952d87/
changeset: r5142:4d2d7c952d87
user: dan
date: 2011-02-28 18:16:28
summary: Better determination in tests if a provided input is a DataToolParameter to better handle .gz and .zip uploads and allowing uploads from a sub-directory of test-data/.
affected #: 16 files (2.5 KB)
--- a/lib/galaxy/tools/test.py Mon Feb 28 09:59:30 2011 -0500
+++ b/lib/galaxy/tools/test.py Mon Feb 28 12:16:28 2011 -0500
@@ -1,4 +1,5 @@
import new, sys
+import os.path
import galaxy.util
import parameters
from parameters import basic
@@ -12,7 +13,7 @@
"""
Encapsulates information about a tool test, and allows creation of a
dynamic TestCase class (the unittest framework is very class oriented,
- doing dynamic tests in this was allows better integration)
+ doing dynamic tests in this way allows better integration)
"""
def __init__( self, tool, name, maxseconds ):
self.tool = tool
@@ -26,19 +27,17 @@
def add_param( self, name, value, extra ):
try:
if name not in self.tool.inputs:
+ found_parameter = False
for input_name, input_value in self.tool.inputs.items():
- if isinstance( input_value, grouping.Conditional ) or isinstance( input_value, grouping.Repeat ):
- self.__expand_grouping_for_data_input(name, value, extra, input_name, input_value)
- elif isinstance( self.tool.inputs[name], parameters.DataToolParameter ) and ( value, extra ) not in self.required_files:
- name_change = [ att for att in extra.get( 'edit_attributes', [] ) if att.get( 'type' ) == 'name' ]
- if name_change:
- name_change = name_change[-1].get( 'value' ) #only the last name change really matters
- if value is None and not name_change:
- assert self.tool.inputs[name].optional, '%s is not optional. You must provide a valid filename.' % name
- else:
- self.required_files.append( ( value, extra ) ) #these files will be uploaded
- if name_change:
- value = name_change #change value for select to renamed uploaded file for e.g. composite dataset
+ if isinstance( input_value, grouping.Group ):
+ found_parameter, new_value = self.__expand_grouping_for_data_input(name, value, extra, input_name, input_value)
+ if found_parameter:
+ value = new_value
+ break
+ if not found_parameter:
+ raise ValueError( "Unable to determine parameter type of test input '%s'. Ensure that the parameter exists and that any container groups are defined first." % name )
+ elif isinstance( self.tool.inputs[name], basic.DataToolParameter ):
+ value = self.__add_uploaded_dataset( name, value, extra, self.tool.inputs[name] )
except Exception, e:
log.debug( "Error in add_param for %s: %s" % ( name, e ) )
self.inputs.append( ( name, value, extra ) )
@@ -47,27 +46,65 @@
def __expand_grouping_for_data_input( self, name, value, extra, grouping_name, grouping_value ):
# Currently handles grouping.Conditional and grouping.Repeat
if isinstance( grouping_value, grouping.Conditional ):
- if name != grouping_value.test_param.name:
- for case in grouping_value.cases:
- for case_input_name, case_input_value in case.inputs.items():
- if case_input_name == name and isinstance( case_input_value, basic.DataToolParameter ) and ( value, extra ) not in self.required_files:
- if value is None:
- assert case_input_value.optional, '%s is not optional. You must provide a valid filename.' % name
- else:
- self.required_files.append( ( value, extra ) )
- return True
- elif isinstance( case_input_value, grouping.Conditional ):
- self.__expand_grouping_for_data_input(name, value, extra, case_input_name, case_input_value)
+ if name == grouping_value.test_param.name:
+ return True, value
+ case_test_param_value = None
+ for input in self.inputs:
+ if input[0] == grouping_value.test_param.name:
+ case_test_param_value = input[1]
+ break
+ if case_test_param_value is None:
+ #case for this group has not been set yet
+ return False, value
+ for case in grouping_value.cases:
+ if case.value == case_test_param_value:
+ break
+ if case.value != case_test_param_value:
+ return False, value
+ #assert case.value == case_test_param_value, "Current case could not be determined for parameter '%s'. Provided value '%s' could not be found in '%s'." % ( grouping_value.name, value, grouping_value.test_param.name )
+ if name in case.inputs:
+ if isinstance( case.inputs[name], basic.DataToolParameter ):
+ return True, self.__add_uploaded_dataset( name, value, extra, case.inputs[name] )
+ else:
+ return True, value
+ else:
+ for input_name, input_parameter in case.inputs.iteritems():
+ if isinstance( input_parameter, grouping.Group ):
+ found_parameter, new_value = self.__expand_grouping_for_data_input( name, value, extra, input_name, input_parameter )
+ if found_parameter:
+ return True, new_value
elif isinstance( grouping_value, grouping.Repeat ):
# FIXME: grouping.Repeat can only handle 1 repeat param element since the param name
# is something like "input2" and the expanded page display is something like "queries_0|input2".
# The problem is that the only param name on the page is "input2", and adding more test input params
- # with the same name ( "input2" ) is not yet supported in our test code ( the lat one added is the only
- # one used ).
- for input_name, input_value in grouping_value.inputs.items():
- if input_name == name and isinstance( input_value, basic.DataToolParameter ) and ( value, extra ) not in self.required_files:
- if value is None:
- assert input_value.optional, '%s is not optional. You must provide a valid filename.' % name
- else:
- self.required_files.append( ( value, extra ) )
- return True
+ # with the same name ( "input2" ) is not yet supported in our test code ( the last one added is the only
+ # one used ).
+ if name in grouping_value.inputs:
+ if isinstance( grouping_value.inputs[name], basic.DataToolParameter ):
+ return True, self.__add_uploaded_dataset( name, value, extra, grouping_value.inputs[name] )
+ else:
+ return True, value
+ else:
+ for input_name, input_parameter in grouping_value.inputs.iteritems():
+ if isinstance( input_parameter, grouping.Group ):
+ found_parameter, new_value = self.__expand_grouping_for_data_input( name, value, extra, input_name, input_parameter )
+ if found_parameter:
+ return True, new_value
+ return False, value
+ def __add_uploaded_dataset( self, name, value, extra, input_parameter ):
+ if value is None:
+ assert input_parameter.optional, '%s is not optional. You must provide a valid filename.' % name
+ return value
+ if ( value, extra ) not in self.required_files:
+ self.required_files.append( ( value, extra ) ) #these files will be uploaded
+ name_change = [ att for att in extra.get( 'edit_attributes', [] ) if att.get( 'type' ) == 'name' ]
+ if name_change:
+ name_change = name_change[-1].get( 'value' ) #only the last name change really matters
+ value = name_change #change value for select to renamed uploaded file for e.g. composite dataset
+ else:
+ for end in [ '.zip', '.gz' ]:
+ if value.endswith( end ):
+ value = value[ :-len( end ) ]
+ break
+ value = os.path.basename( value ) #if uploading a file in a path other than root of test-data
+ return value
--- a/test/functional/test_toolbox.py Mon Feb 28 09:59:30 2011 -0500
+++ b/test/functional/test_toolbox.py Mon Feb 28 12:16:28 2011 -0500
@@ -1,5 +1,4 @@
import sys, new
-import os.path
from galaxy.tools.parameters import grouping
from galaxy.tools.parameters import basic
from base.twilltestcase import TwillTestCase
@@ -56,12 +55,6 @@
# tool will have uncompressed it on the fly.
all_inputs = {}
for name, value, _ in testdef.inputs:
- if value:
- for end in [ '.zip', '.gz' ]:
- if value.endswith( end ):
- value = value[ :-len( end ) ]
- break
- value = os.path.basename( value ) #if uploading a file in a path other than root of test-data
all_inputs[ name ] = value
# See if we have a grouping.Repeat element
repeat_name = None
--- a/tools/human_genome_variation/ldtools.xml Mon Feb 28 09:59:30 2011 -0500
+++ b/tools/human_genome_variation/ldtools.xml Mon Feb 28 12:16:28 2011 -0500
@@ -24,7 +24,7 @@
<param name="input" value="ldInput1.txt" /><param name="rsquare" value="0.64" /><param name="freq" value="0.00" />
- <param name="output" file="ldOutput1.txt" />
+ <output name="output" file="ldOutput1.txt" /></test></tests>
--- a/tools/maf/maf_to_fasta.xml Mon Feb 28 09:59:30 2011 -0500
+++ b/tools/maf/maf_to_fasta.xml Mon Feb 28 12:16:28 2011 -0500
@@ -38,15 +38,15 @@
<tests><test><param name="input1" value="3.maf" ftype="maf"/>
+ <param name="fasta_type" value="concatenated"/><param name="species" value="canFam1"/>
- <param name="fasta_type" value="concatenated"/><output name="out_file1" file="cf_maf2fasta_concat.dat" ftype="fasta"/></test><test><param name="input1" value="4.maf" ftype="maf"/>
+ <param name="fasta_type" value="multiple"/><param name="species" value="hg17,panTro1,rheMac2,rn3,mm7,canFam2,bosTau2,dasNov1"/><param name="complete_blocks" value="partial_allowed"/>
- <param name="fasta_type" value="multiple"/><output name="out_file1" file="cf_maf2fasta_new.dat" ftype="fasta"/></test></tests>
--- a/tools/new_operations/intersect.xml Mon Feb 28 09:59:30 2011 -0500
+++ b/tools/new_operations/intersect.xml Mon Feb 28 12:16:28 2011 -0500
@@ -38,7 +38,6 @@
<code file="operation_filter.py"/><tests><test>
- <param name="type" value="Interval"/><param name="input1" value="1.bed" /><param name="input2" value="2.bed" /><param name="min" value="1" />
@@ -46,7 +45,6 @@
<output name="output" file="gops_intersect_out.bed" /></test><test>
- <param name="type" value="Interval"/><param name="input1" value="1.bed" /><param name="input2" value="2_mod.bed" ftype="interval"/><param name="min" value="1" />
--- a/tools/next_gen_conversion/solid2fastq.xml Mon Feb 28 09:59:30 2011 -0500
+++ b/tools/next_gen_conversion/solid2fastq.xml Mon Feb 28 12:16:28 2011 -0500
@@ -54,9 +54,9 @@
<test><param name="input1" value="fr.csfasta" ftype="csfasta"/><param name="input2" value="fr.qualsolid" ftype="qualsolid" />
+ <param name="paired" value="yes"/><param name="input3" value="rr.csfasta" ftype="csfasta"/><param name="input4" value="rr.qualsolid" ftype="qualsolid" />
- <param name="paired" value="yes"/><param name="qual" value="0" /><param name="trim_first_base" value="No" /><param name="trim_name" value="Yes" />
--- a/tools/peak_calling/macs_wrapper.xml Mon Feb 28 09:59:30 2011 -0500
+++ b/tools/peak_calling/macs_wrapper.xml Mon Feb 28 12:16:28 2011 -0500
@@ -140,10 +140,10 @@
</configfiles><tests><test>
+ <param name="input_type_selector" value="single_end" /><param name="input_chipseq_file1" value="chipseq_enriched.bed.gz" ftype="bed" /><param name="input_control_file1" value="chipseq_input.bed.gz" ftype="bed" /><param name="experiment_name" value="Galaxy Test Run" />
- <param name="input_type_selector" value="single_end" /><param name="tsize" value="36" /><param name="mfold" value="13" /><param name="gsize" value="2.7e+9" />
@@ -166,10 +166,10 @@
</output></test><test>
+ <param name="input_type_selector" value="single_end" /><param name="input_chipseq_file1" value="chipseq_enriched.bed.gz" ftype="bed" /><param name="input_control_file1" value="chipseq_input.bed.gz" ftype="bed" /><param name="experiment_name" value="Galaxy Test Run" />
- <param name="input_type_selector" value="single_end" /><param name="tsize" value="36" /><param name="mfold" value="13" /><param name="gsize" value="2.7e+9" />
@@ -190,10 +190,10 @@
</output></test><!-- <test>
+ <param name="input_type_selector" value="single_end" /><param name="input_chipseq_file1" value="chipseq_enriched.bed.gz" ftype="bed" /><param name="input_control_file1" value="chipseq_input.bed.gz" ftype="bed" /><param name="experiment_name" value="Galaxy Test Run" />
- <param name="input_type_selector" value="single_end" /><param name="tsize" value="36" /><param name="mfold" value="13" /><param name="gsize" value="2.7e+9" />
--- a/tools/regVariation/maf_cpg_filter.xml Mon Feb 28 09:59:30 2011 -0500
+++ b/tools/regVariation/maf_cpg_filter.xml Mon Feb 28 12:16:28 2011 -0500
@@ -56,7 +56,6 @@
<param name="input" value="6.maf"/><param name="mask_char" value="0"/><param name="type" value="nonCpG" />
- <param name="definition" value="NA" /><output name="out_file1" file="6_mask_noncpg.maf"/></test></tests>
--- a/tools/regVariation/microsatellite_birthdeath.xml Mon Feb 28 09:59:30 2011 -0500
+++ b/tools/regVariation/microsatellite_birthdeath.xml Mon Feb 28 12:16:28 2011 -0500
@@ -41,7 +41,6 @@
<param name="alignment" value="chr22_5sp.maf"/><param name="orthfile" value="chr22_5sp.microraw.tabular"/><param name="thresholds" value="9,10,12,12"/>
- <param name="species" value="hg18,panTro2,ponAbe2,rheMac2,calJac1"/><param name="tree_definition" value="((((hg18, panTro2), ponAbe2), rheMac2), calJac1)"/><param name="separation" value="40"/><param name="simthresh" value="80"/>
--- a/tools/regVariation/quality_filter.xml Mon Feb 28 09:59:30 2011 -0500
+++ b/tools/regVariation/quality_filter.xml Mon Feb 28 12:16:28 2011 -0500
@@ -74,7 +74,6 @@
<param name="score" value="50"/><param name="mask_char" value="0"/><param name="region" value="0" />
- <param name="length" value="1" /><output name="out_file1" file="6_quality_filter.maf"/></test></tests>
--- a/tools/rgenetics/rgPedSub.xml Mon Feb 28 09:59:30 2011 -0500
+++ b/tools/rgenetics/rgPedSub.xml Mon Feb 28 12:16:28 2011 -0500
@@ -76,10 +76,10 @@
<edit_attributes type='name' value='tinywga' /></param><param name='title' value='rgPedSubtest1' />
+ <param name="mtype" value="grslist" /><param name="region" value="" /><param name="rslist" value="rs2283802Xrs2267000Xrs16997606Xrs4820537Xrs3788347Xrs756632Xrs4820539Xrs2283804Xrs2267006Xrs4822363X" /><param name="relfilter" value="all" />
- <param name="mtype" value="grslist" /><output name='output1' file='rgtestouts/rgPedSub/rgPedSubtest1.lped' ftype='lped' linesDiff='7'/></test></tests>
--- a/tools/samtools/bam_to_sam.xml Mon Feb 28 09:59:30 2011 -0500
+++ b/tools/samtools/bam_to_sam.xml Mon Feb 28 12:16:28 2011 -0500
@@ -29,7 +29,7 @@
samtools view -o bam_to_sam_out2.sam test-data/1.bam
--><param name="input1" value="3.bam" ftype="bam" />
- <param name="output1" file="bam_to_sam_out2.sam" sorted="True" />
+ <output name="output1" file="bam_to_sam_out2.sam" sorted="True" /></test></tests><help>
--- a/tools/samtools/sam2interval.xml Mon Feb 28 09:59:30 2011 -0500
+++ b/tools/samtools/sam2interval.xml Mon Feb 28 12:16:28 2011 -0500
@@ -15,13 +15,11 @@
<tests><test><param name="input1" value="sam_bioinf_example.sam" ftype="sam"/>
- <param name="flags" value="Read is mapped in a proper pair"/><param name="print_all" value="Yes"/><output name="out_file1" file="sam2interval_printAll.dat" ftype="interval"/></test><test><param name="input1" value="sam_bioinf_example.sam" ftype="sam"/>
- <param name="flags" value="Read is mapped in a proper pair"/><param name="print_all" value="No"/><output name="out_file1" file="sam2interval_noprintAll.dat" ftype="interval"/></test>
--- a/tools/samtools/sam_to_bam.xml Mon Feb 28 09:59:30 2011 -0500
+++ b/tools/samtools/sam_to_bam.xml Mon Feb 28 12:16:28 2011 -0500
@@ -60,7 +60,7 @@
--><param name="index_source" value="cached" /><param name="input1" value="3.sam" ftype="sam" dbkey="equCab2" />
- <param name="output1" file="sam_to_bam_out2.bam" />
+ <output name="output1" file="sam_to_bam_out2.bam" /></test></tests><help>
--- a/tools/samtools/samtools_flagstat.xml Mon Feb 28 09:59:30 2011 -0500
+++ b/tools/samtools/samtools_flagstat.xml Mon Feb 28 12:16:28 2011 -0500
@@ -14,7 +14,7 @@
<tests><test><param name="input1" value="3.bam" ftype="bam" />
- <param name="output1" file="samtools_flagstat_out1.txt" />
+ <output name="output1" file="samtools_flagstat_out1.txt" /></test></tests><help>
--- a/tools/sr_mapping/bfast_wrapper.xml Mon Feb 28 09:59:30 2011 -0500
+++ b/tools/sr_mapping/bfast_wrapper.xml Mon Feb 28 12:16:28 2011 -0500
@@ -368,8 +368,6 @@
<param name="indices" value="phiX_nt_50" /><param name="source_select" value="pre_set" /><param name="suppressHeader" value="False" />
- <param name="indexing_repeatmasker" value="" />
- <param name="indexing_option_selector" value="default" /><output name="output" ftype="sam" file="bfast_out3.sam" lines_diff="2" /><!-- MD:Z:11T38 instead of MD:Z:50 on one line--></test></tests>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

28 Feb '11
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/4146f64da13d/
changeset: r5141:4146f64da13d
user: jgoecks
date: 2011-02-28 15:59:30
summary: Fix bad value in cufflinks functional test.
affected #: 1 file (4 bytes)
--- a/tools/ngs_rna/cufflinks_wrapper.xml Mon Feb 28 09:52:17 2011 -0500
+++ b/tools/ngs_rna/cufflinks_wrapper.xml Mon Feb 28 09:59:30 2011 -0500
@@ -103,7 +103,7 @@
Simple test that uses test data included with cufflinks.
--><test>
- <param name="sPaired" value="single"/>
+ <param name="sPaired" value="No"/><param name="input" value="cufflinks_in.sam"/><param name="mean_inner_distance" value="20"/><param name="max_intron_len" value="300000"/>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: natefoo: Bugfix for the last commit when running functional tests with sqlite.
by Bitbucket 28 Feb '11
by Bitbucket 28 Feb '11
28 Feb '11
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/2e88578ef7e1/
changeset: r5140:2e88578ef7e1
user: natefoo
date: 2011-02-28 15:52:17
summary: Bugfix for the last commit when running functional tests with sqlite.
affected #: 1 file (49 bytes)
--- a/scripts/functional_tests.py Mon Feb 28 09:35:36 2011 -0500
+++ b/scripts/functional_tests.py Mon Feb 28 09:52:17 2011 -0500
@@ -139,13 +139,15 @@
if psu_production:
global_conf = None
+ if not database_connection.startswith( 'sqlite://' ):
+ kwargs['database_engine_option_max_overflow'] = '20'
+
# Build the Universe Application
app = UniverseApplication( job_queue_workers = 5,
id_secret = 'changethisinproductiontoo',
template_path = "templates",
database_connection = database_connection,
database_engine_option_pool_size = '10',
- database_engine_option_max_overflow = '20',
file_path = file_path,
new_file_path = new_file_path,
tool_path = tool_path,
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: natefoo: Require ctypes egg before pysam on Python 2.4
by Bitbucket 28 Feb '11
by Bitbucket 28 Feb '11
28 Feb '11
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/b9b772f2e4eb/
changeset: r5139:b9b772f2e4eb
user: natefoo
date: 2011-02-28 15:35:36
summary: Require ctypes egg before pysam on Python 2.4
affected #: 2 files (157 bytes)
--- a/lib/galaxy/datatypes/converters/bam_to_summary_tree_converter.py Mon Feb 28 08:33:48 2011 -0500
+++ b/lib/galaxy/datatypes/converters/bam_to_summary_tree_converter.py Mon Feb 28 09:35:36 2011 -0500
@@ -4,7 +4,11 @@
import sys
from galaxy import eggs
-import pkg_resources; pkg_resources.require( "pysam" )
+import pkg_resources
+
+if sys.version_info[:2] == (2, 4):
+ pkg_resources.require( "ctypes" )
+pkg_resources.require( "pysam" )
from pysam import csamtools
from galaxy.visualization.tracks.summary import *
@@ -24,4 +28,4 @@
st.write(out_fname)
if __name__ == "__main__":
- main()
\ No newline at end of file
+ main()
--- a/lib/galaxy/visualization/tracks/data_providers.py Mon Feb 28 08:33:48 2011 -0500
+++ b/lib/galaxy/visualization/tracks/data_providers.py Mon Feb 28 09:35:36 2011 -0500
@@ -2,9 +2,14 @@
Data providers for tracks visualizations.
"""
+import sys
from math import floor, ceil, log, pow
import pkg_resources
-pkg_resources.require( "bx-python" ); pkg_resources.require( "pysam" ); pkg_resources.require( "numpy" )
+pkg_resources.require( "bx-python" )
+if sys.version_info[:2] == (2, 4):
+ pkg_resources.require( "ctypes" )
+pkg_resources.require( "pysam" )
+pkg_resources.require( "numpy" )
from galaxy.datatypes.util.gff_util import *
from bx.interval_index_file import Indexes
from bx.arrays.array_tree import FileArrayTreeDict
@@ -671,4 +676,4 @@
blocks = zip( block_sizes, block_starts )
payload.append( [ ( feature.start + block[1], feature.start + block[1] + block[0] ) for block in blocks ] )
- return payload
\ No newline at end of file
+ return payload
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: natefoo: Add ccat_configurations.loc to buildbot_setup.sh
by Bitbucket 28 Feb '11
by Bitbucket 28 Feb '11
28 Feb '11
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/16cafc8da6f3/
changeset: r5138:16cafc8da6f3
user: natefoo
date: 2011-02-28 14:33:48
summary: Add ccat_configurations.loc to buildbot_setup.sh
affected #: 1 file (46 bytes)
--- a/buildbot_setup.sh Mon Feb 28 07:58:52 2011 -0500
+++ b/buildbot_setup.sh Mon Feb 28 08:33:48 2011 -0500
@@ -40,6 +40,7 @@
/galaxy/data/location/bowtie_indices_color.loc
/galaxy/data/location/bwa_index.loc
/galaxy/data/location/bwa_index_color.loc
+/galaxy/data/location/ccat_configurations.loc
/galaxy/data/location/codingSnps.loc
/galaxy/data/location/encode_datasets.loc
/galaxy/home/universe/encode_feature_partitions
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: natefoo: Increase the SQLAlchemy SuquePool limits for functional tests.
by Bitbucket 28 Feb '11
by Bitbucket 28 Feb '11
28 Feb '11
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/5bced201f40a/
changeset: r5137:5bced201f40a
user: natefoo
date: 2011-02-28 13:58:52
summary: Increase the SQLAlchemy SuquePool limits for functional tests.
affected #: 1 file (155 bytes)
--- a/scripts/functional_tests.py Sun Feb 27 14:48:23 2011 -0500
+++ b/scripts/functional_tests.py Mon Feb 28 07:58:52 2011 -0500
@@ -144,6 +144,8 @@
id_secret = 'changethisinproductiontoo',
template_path = "templates",
database_connection = database_connection,
+ database_engine_option_pool_size = '10',
+ database_engine_option_max_overflow = '20',
file_path = file_path,
new_file_path = new_file_path,
tool_path = tool_path,
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: jgoecks: Suppress most logging for cufflinks and cuffdiff as the logging can generate output that is incompatible with UTF-8 format used by database.
by Bitbucket 27 Feb '11
by Bitbucket 27 Feb '11
27 Feb '11
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/9bcf6ac08839/
changeset: r5136:9bcf6ac08839
user: jgoecks
date: 2011-02-27 20:48:23
summary: Suppress most logging for cufflinks and cuffdiff as the logging can generate output that is incompatible with UTF-8 format used by database.
affected #: 2 files (136 bytes)
--- a/tools/ngs_rna/cuffdiff_wrapper.py Sat Feb 26 13:12:44 2011 -0500
+++ b/tools/ngs_rna/cuffdiff_wrapper.py Sun Feb 27 14:48:23 2011 -0500
@@ -135,8 +135,8 @@
# Build command.
- # Base.
- cmd = "cuffdiff"
+ # Base; always use quiet mode to avoid problems with storing log output.
+ cmd = "cuffdiff -q"
# Add options.
if options.inner_dist_std_dev:
--- a/tools/ngs_rna/cufflinks_wrapper.py Sat Feb 26 13:12:44 2011 -0500
+++ b/tools/ngs_rna/cufflinks_wrapper.py Sun Feb 27 14:48:23 2011 -0500
@@ -84,8 +84,8 @@
# Build command.
- # Base.
- cmd = "cufflinks"
+ # Base; always use quiet mode to avoid problems with storing log output.
+ cmd = "cufflinks -q"
# Add options.
if options.inner_dist_std_dev:
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: natefoo: Add mosaik index location file to buildbot setup.
by Bitbucket 26 Feb '11
by Bitbucket 26 Feb '11
26 Feb '11
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/e58da3d454f2/
changeset: r5135:e58da3d454f2
user: natefoo
date: 2011-02-26 19:12:44
summary: Add mosaik index location file to buildbot setup.
affected #: 1 file (39 bytes)
--- a/buildbot_setup.sh Sat Feb 26 10:53:50 2011 -0500
+++ b/buildbot_setup.sh Sat Feb 26 13:12:44 2011 -0500
@@ -48,6 +48,7 @@
/galaxy/data/location/maf_index.loc
/galaxy/data/location/maf_pairwise.loc
/galaxy/data/location/microbes/microbial_data.loc
+/galaxy/data/location/mosaik_index.loc
/galaxy/data/location/perm_base_index.loc
/galaxy/data/location/perm_color_index.loc
/galaxy/data/location/phastOdds.loc
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/71c61850ea7a/
changeset: r5134:71c61850ea7a
user: dannon
date: 2011-02-26 16:53:50
summary: Basic Freebayes test added.
affected #: 3 files (277 bytes)
--- a/tools/human_genome_variation/freebayes.xml Fri Feb 25 17:53:58 2011 -0500
+++ b/tools/human_genome_variation/freebayes.xml Sat Feb 26 10:53:50 2011 -0500
@@ -112,6 +112,10 @@
</outputs><tests><test>
+ <param name="reference" ftype="fasta" value="mosaik_test_ref.fasta"/>
+ <param name="bamfile" ftype="bam" value="freebayes_in.bam"/>
+ <param name="source_select" value="pre_set"/>
+ <output name="output" ftype="vcf" file="freebayes_out.vcf" lines_diff="4"/></test></tests><help>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/6537337eeb50/
changeset: r5133:6537337eeb50
user: dannon
date: 2011-02-25 23:53:58
summary: Freebayes and Mosaik updates
affected #: 5 files (742 bytes)
Diff too large to display.
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: rc: Fixed adding an external service to a request type in edit_request_type
by Bitbucket 25 Feb '11
by Bitbucket 25 Feb '11
25 Feb '11
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/cad3884b8729/
changeset: r5132:cad3884b8729
user: rc
date: 2011-02-25 22:25:54
summary: Fixed adding an external service to a request type in edit_request_type
affected #: 1 file (37 bytes)
--- a/lib/galaxy/web/controllers/request_type.py Fri Feb 25 16:12:17 2011 -0500
+++ b/lib/galaxy/web/controllers/request_type.py Fri Feb 25 16:25:54 2011 -0500
@@ -244,7 +244,7 @@
sample_form_id = params.get( 'sample_form_id', 'none' )
external_service_id = params.get( 'external_service_id', 'none' )
# validate
- if not name or request_form_id == 'none' or sample_form_id == 'none' or not kwd.has_key( 'state_name_0' ):
+ if not name or request_form_id == 'none' or sample_form_id == 'none':
message = 'Enter the name, request form, sample form and at least one sample state associated with this request type.'
return trans.response.send_redirect( web.url_for( controller='request_type',
action=action,
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: rc: Bug fix: do not show sample field widgets in the view request page
by Bitbucket 25 Feb '11
by Bitbucket 25 Feb '11
25 Feb '11
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/67f76a732e97/
changeset: r5131:67f76a732e97
user: rc
date: 2011-02-25 22:12:17
summary: Bug fix: do not show sample field widgets in the view request page
affected #: 4 files (49 bytes)
--- a/templates/requests/common/add_samples.mako Fri Feb 25 15:58:13 2011 -0500
+++ b/templates/requests/common/add_samples.mako Fri Feb 25 16:12:17 2011 -0500
@@ -71,7 +71,7 @@
## Render the other grids
<% trans.sa_session.refresh( request.type.sample_form ) %>
%for grid_index, grid_name in enumerate( request.type.sample_form.layout ):
- ${render_request_type_sample_form_grids( grid_index, grid_name, request.type.sample_form.grid_fields( grid_index ), displayable_sample_widgets=displayable_sample_widgets, adding_new_samples=True )}
+ ${render_request_type_sample_form_grids( grid_index, grid_name, request.type.sample_form.grid_fields( grid_index ), displayable_sample_widgets=displayable_sample_widgets, show_saved_samples_read_only=True )}
%endfor
%else:
<label>There are no samples.</label>
--- a/templates/requests/common/common.mako Fri Feb 25 15:58:13 2011 -0500
+++ b/templates/requests/common/common.mako Fri Feb 25 16:12:17 2011 -0500
@@ -606,7 +606,7 @@
</tr></%def>
-<%def name="render_request_type_sample_form_grids( grid_index, grid_name, fields_dict, displayable_sample_widgets, adding_new_samples )">
+<%def name="render_request_type_sample_form_grids( grid_index, grid_name, fields_dict, displayable_sample_widgets, show_saved_samples_read_only )"><%
if not grid_name:
grid_name = "Sample form layout %s" % str( grid_index )
@@ -629,7 +629,7 @@
<% trans.sa_session.refresh( request ) %>
%for sample_index, sample in enumerate( displayable_sample_widgets ):
<%
- if not adding_new_samples or sample_index >= len( request.samples ):
+ if not show_saved_samples_read_only or sample_index >= len( request.samples ):
display_only = False
else:
display_only = True
--- a/templates/requests/common/edit_samples.mako Fri Feb 25 15:58:13 2011 -0500
+++ b/templates/requests/common/edit_samples.mako Fri Feb 25 16:12:17 2011 -0500
@@ -120,7 +120,7 @@
## Render the other grids
<% trans.sa_session.refresh( request.type.sample_form ) %>
%for grid_index, grid_name in enumerate( request.type.sample_form.layout ):
- ${render_request_type_sample_form_grids( grid_index, grid_name, request.type.sample_form.grid_fields( grid_index ), displayable_sample_widgets=displayable_sample_widgets, adding_new_samples=False )}
+ ${render_request_type_sample_form_grids( grid_index, grid_name, request.type.sample_form.grid_fields( grid_index ), displayable_sample_widgets=displayable_sample_widgets, show_saved_samples_read_only=False )}
%endfor
%else:
<label>There are no samples.</label>
--- a/templates/requests/common/view_request.mako Fri Feb 25 15:58:13 2011 -0500
+++ b/templates/requests/common/view_request.mako Fri Feb 25 16:12:17 2011 -0500
@@ -162,7 +162,7 @@
## Render the other grids
<% trans.sa_session.refresh( request.type.sample_form ) %>
%for grid_index, grid_name in enumerate( request.type.sample_form.layout ):
- ${render_request_type_sample_form_grids( grid_index, grid_name, request.type.sample_form.grid_fields( grid_index ), displayable_sample_widgets=displayable_sample_widgets, adding_new_samples=False )}
+ ${render_request_type_sample_form_grids( grid_index, grid_name, request.type.sample_form.grid_fields( grid_index ), displayable_sample_widgets=displayable_sample_widgets, show_saved_samples_read_only=True )}
%endfor
%else:
There are no samples.
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

25 Feb '11
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/69338ee03d1d/
changeset: r5130:69338ee03d1d
user: rc
date: 2011-02-25 21:58:13
summary: First pass of extract & filter VCF tools.
affected #: 6 files (22 bytes)
--- a/tools/vcf_tools/annotate.xml Fri Feb 25 14:58:35 2011 -0500
+++ b/tools/vcf_tools/annotate.xml Fri Feb 25 15:58:13 2011 -0500
@@ -1,5 +1,5 @@
-<tool id="vcf_annotate" name="Annotate a VCF file" version="1.0.0">
- <description></description>
+<tool id="vcf_annotate" name="Annotate" version="1.0.0">
+ <description>a VCF file (dbSNP, hapmap)</description><command interpreter="python">
vcfPytools.py
annotate
@@ -27,7 +27,7 @@
</conditional></inputs><outputs>
- <data format="vcf" name="output1" label="${tool.name} on ${on_string}" />
+ <data format="vcf" name="output1" label="${tool.name} ${on_string}" /></outputs><tests><test>
--- a/tools/vcf_tools/intersect.xml Fri Feb 25 14:58:35 2011 -0500
+++ b/tools/vcf_tools/intersect.xml Fri Feb 25 15:58:13 2011 -0500
@@ -1,4 +1,4 @@
-<tool id="vcf_intersect" name="Intersect VCF Files" version="1.0.0">
+<tool id="vcf_intersect" name="Intersect" version="1.0.0"><description>Generate the intersection of two VCF files</description><command interpreter="python">
vcfPytools.py
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

25 Feb '11
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/e448ba0e8843/
changeset: r5129:e448ba0e8843
user: kanwei
date: 2011-02-25 20:58:35
summary: Update test-data files for meme 4.6.0
affected #: 4 files (2.8 KB)
--- a/test-data/meme/meme/meme_output_html_1.html Fri Feb 25 13:35:27 2011 -0500
+++ b/test-data/meme/meme/meme_output_html_1.html Fri Feb 25 14:58:35 2011 -0500
@@ -4,6 +4,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>MEME</title><style type="text/css">
+
+ /* START INCLUDED FILE "meme.css" */
/* The following is the content of meme.css */
body { background-color:white; font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif;}
@@ -13,6 +15,7 @@
padding: 0px;
width: 12px;
height: 13px;
+ cursor: pointer;
background-image: url("help.gif");
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAANAQMAAACn5x0BAAAAAXNSR0IArs4c6QAAAAZQTFRFAAAAnp6eqp814gAAAAF0Uk5TAEDm2GYAAAABYktHRACIBR1IAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH2gMJBQgGYqhNZQAAACZJREFUCNdj+P+BoUGAoV+AYeYEEGoWYGgTYGgRAAm2gRGQ8f8DAOnhC2lYnqs6AAAAAElFTkSuQmCC");
}
@@ -123,8 +126,12 @@
padding:0px 10px;
}
+ /* END INCLUDED FILE "meme.css" */
+
</style><script type="text/javascript">
+
+ /* START INCLUDED FILE "motif_logo.js" */
//======================================================================
// start Alphabet object
//======================================================================
@@ -337,7 +344,9 @@
//======================================================================
// start Pspm object
//======================================================================
- function Pspm(pssm, name) {
+ function Pspm(pssm, name, ltrim, rtrim) {
+ if (ltrim === undefined) ltrim = 0;
+ if (rtrim === undefined) rtrim = 0;
//variable prototype
this.alph_length = 0;
this.motif_length = 0;
@@ -345,6 +354,8 @@
this.name = (typeof name == "string" ? name : "");
this.nsites = 0;
this.evalue = 0;
+ this.ltrim = ltrim;
+ this.rtrim = rtrim;
//function prototype
this.copy = Pspm_copy;
this.reverse_complement = Pspm_reverse_complement;
@@ -352,10 +363,11 @@
this.get_stack_ic = Pspm_get_stack_ic;
this.get_motif_length = Pspm_get_motif_length;
this.get_alph_length = Pspm_get_alph_length;
+ this.get_left_trim = Pspm_get_left_trim;
+ this.get_right_trim = Pspm_get_right_trim;
this.toString = Pspm_to_string;
//construct
var pspm_header = /letter-probability matrix:\s+alength=\s+(\d+)\s+w=\s+(\d+)(\s+nsites=\s+(\S+))?(\s+E=\s+(\S+))?\s*/;
- var is_prob = /^((1(\.0+)?)|(0(\.\d+)?))$/;
var is_empty = /^\s*$/;
var lines = pssm.split(/\s*\n\s*/);
var read_pssm = false;
@@ -392,11 +404,14 @@
if (!parts.hasOwnProperty(part_index) || parts[part_index] === undefined) continue;
var prob = parts[part_index];
- if (!is_prob.test(prob)) continue;
if (col_num >= this.alph_length) {
throw "TOO_MANY_COLS";
}
this.pspm[line_num][col_num] = (+prob);
+ //check the probability is within bounds
+ if (this.pspm[line_num][col_num] > 1 || this.pspm[line_num][col_num] < 0) {
+ throw "NUM_NOT_PROB";
+ }
col_num++;
}
if (col_num != this.alph_length) {
@@ -417,6 +432,11 @@
//so far only a shallow copy, need to copy everything
clone.alph_length = (0+this.alph_length);
clone.motif_length = (0+this.motif_length);
+ clone.name = (""+this.name);
+ clone.nsites = (0+this.nsites);
+ clone.evalue = (0+this.evalue);
+ clone.ltrim = (0+this.ltrim);
+ clone.rtrim = (0+this.rtrim);
clone.pspm = new Array(this.motif_length);
for (row = 0; row < this.motif_length; row++) {
clone.pspm[row] = new Array(this.alph_length);
@@ -460,6 +480,10 @@
row[c_index] = row[g_index];
row[g_index] = temp;
}
+ //swap triming
+ var temp_trim = this.ltrim;
+ this.ltrim = this.rtrim;
+ this.rtrim = temp_trim;
//note that ambigs are ignored because they don't effect motifs
return this; //allow function chaining...
}
@@ -515,6 +539,14 @@
return this.alph_length;
}
+ function Pspm_get_left_trim() {
+ return this.ltrim;
+ }
+
+ function Pspm_get_right_trim() {
+ return this.rtrim;
+ }
+
function Pspm_to_string() {
var str = "";
for (row_index in this.pspm) {
@@ -1036,6 +1068,62 @@
pos = pos - sym_height;
}
}
+
+ function draw_dashed_line(ctx, pattern, start, x1, y1, x2, y2) {
+ var x, y, len, i;
+ var dx = x2 - x1;
+ var dy = y2 - y1;
+ var tlen = Math.pow(dx*dx + dy*dy, 0.5);
+ var theta = Math.atan2(dy,dx);
+ var mulx = Math.cos(theta);
+ var muly = Math.sin(theta);
+ var lx = [];
+ var ly = [];
+ for (i = 0; i < pattern; ++i) {
+ lx.push(pattern[i] * mulx);
+ ly.push(pattern[i] * muly);
+ }
+ i = start;
+ x = x1;
+ y = y1;
+ len = 0;
+ ctx.beginPath();
+ while (len + pattern[i] < tlen) {
+ ctx.moveTo(x, y);
+ x += lx[i];
+ y += ly[i];
+ ctx.lineTo(x, y);
+ len += pattern[i];
+ i = (i + 1) % pattern.length;
+ x += lx[i];
+ y += ly[i];
+ len += pattern[i];
+ i = (i + 1) % pattern.length;
+ }
+ if (len < tlen) {
+ ctx.moveTo(x, y);
+ x += mulx * (tlen - len);
+ y += muly * (tlen - len);
+ ctx.lineTo(x, y);
+ }
+ ctx.stroke();
+ }
+
+ function draw_trim_background(ctx, metrics, pspm, offset) {
+ var lwidth = metrics.stack_width * pspm.get_left_trim();
+ var rwidth = metrics.stack_width * pspm.get_right_trim();
+ var mwidth = metrics.stack_width * pspm.get_motif_length();
+ var rstart = mwidth - rwidth;
+ ctx.save();//s8
+ ctx.translate(offset * metrics.stack_width, 0);
+ ctx.fillStyle = "rgb(240, 240, 240)";
+ if (pspm.get_left_trim() > 0) ctx.fillRect(0, 0, lwidth, metrics.stack_height);
+ if (pspm.get_right_trim() > 0) ctx.fillRect(rstart, 0, rwidth, metrics.stack_height);
+ ctx.fillStyle = "rgb(51, 51, 51)";
+ if (pspm.get_left_trim() > 0) draw_dashed_line(ctx, [3], 0, lwidth-0.5, 0, lwidth-0.5, metrics.stack_height);
+ if (pspm.get_right_trim() > 0) draw_dashed_line(ctx, [3], 0, rstart+0.5, 0, rstart+0.5, metrics.stack_height);
+ ctx.restore();//s8
+ }
function draw_logo_on_canvas(logo, canvas, show_names, scale) {
var draw_name = (typeof show_names == "boolean" ? show_names : (logo.get_rows() > 1));
@@ -1089,6 +1177,10 @@
//translate across past the scale
ctx.translate(metrics.y_label_height + metrics.y_label_spacer +
metrics.y_num_width + metrics.y_tic_width, 0);
+ //draw the trimming background
+ if (pspm.get_left_trim() > 0 || pspm.get_right_trim() > 0) {
+ draw_trim_background(ctx, metrics, pspm, offset);
+ }
//draw letters
ctx.translate(0, metrics.y_num_height / 2);
for (var col_index = 0; col_index < logo.get_columns(); col_index++) {
@@ -1211,15 +1303,8 @@
element.parentNode.replaceChild(canvas, element);
}
- //example code for creating a logo
- //function do_load() {
- // var alphabet = new Alphabet(document.getElementById("alphabet").value, document.getElementById("bgfreq").value);
- // var pspm = new Pspm(document.getElementById("pspm1").value);
- // var pspm_rc = pspm.copy().reverse_complement(alphabet);
- // draw_logo(pspm, alphabet, "Motif 1", "logo1");
- // draw_logo(pspm_rc, alphabet, "Motif 1 Reverse Complement", "logo_rc1");
- //}
-
+ /* END INCLUDED FILE "motif_logo.js" */
+
function setup() {
var motif_count = 1;
@@ -1377,15 +1462,15 @@
}
</script></head>
-<body onload="javascript:setup()"><form enctype="application/x-www-form-urlencoded" method="post" target="_new" action="http://dan/meme_request.cgi">
+<body onload="javascript:setup()"><form enctype="application/x-www-form-urlencoded" method="post" target="_new" action="http://straub/meme/cgi-bin/meme_request.cgi"><!--+++++++++++++++++++++++START DATA+++++++++++++++++++++++++++++++++++++-->
-<input type="hidden" name="version" value="MEME version 4.5.0">
+<input type="hidden" name="version" value="MEME version 4.6.0"><input type="hidden" name="alphabet" id="alphabet" value="ACDEFGHIKLMNPQRSTVWY"><input type="hidden" name="strands" value="none"><input type="hidden" name="bgfreq" id="bgfreq" value="A 0.291 C 0.229 D 0.001 E 0.001 F 0.001 G 0.255 H 0.001 I 0.001 K 0.001
L 0.001 M 0.001 N 0.001 P 0.001 Q 0.001 R 0.001 S 0.001 T 0.215 V 0.001
W 0.001 Y 0.001">
-<input type="hidden" name="name" value="dan.dat">
+<input type="hidden" name="name" value="dataset_3.dat"><input type="hidden" name="combinedblock" value="
chr21_19617074_19617124_+ 1.22e-03 1 50 1 39 3.06e-05
chr21_26934381_26934431_+ 2.21e-03 1 50 1 27 5.52e-05
@@ -2179,12 +2264,12 @@
</tbody></table></div>
-<p>Time 1.6 secs.</p>
+<p>Time 2.1 secs.</p></div><div class="bar"><div style="text-align:right;"><a href="#top_buttons">Top</a></div><div class="subsection">
-<a name="version"></a><h5>MEME version</h5>4.5.0 (Release date: Thu Oct 14 08:44:28 EST 2010)
+<a name="version"></a><h5>MEME version</h5>4.6.0 (Release date: Thu Jan 20 14:06:48 PST 2011)
</div><div class="subsection"><a name="reference"></a><h5>Reference</h5>
@@ -2196,7 +2281,7 @@
</div><a name="sequences"></a><a href="javascript:showHidden('trainingseq')" id="trainingseq_activator">show training set...</a><div class="subsection" id="trainingseq_data" style="display:none;"><h5>Training set:</h5>
- Datafile = dan.dat<br>
+ Datafile = dataset_3.dat<br>
Alphabet = ACDEFGHIKLMNPQRSTVWY<br><table><col><col>
@@ -2387,19 +2472,19 @@
</div><a href="javascript:hideShown('trainingseq')" style="display:none;" id="trainingseq_deactivator">hide training set...</a><div class="subsection"><a name="command"></a><h5>Command line summary</h5>
-<textarea rows="1" style="width:100%;" readonly>meme dan.dat -o /dataset_dan_files -nostatus </textarea><br>
+<textarea rows="1" style="width:100%;" readonly>meme dataset_3.dat -o dataset_4_files -nostatus </textarea><br>
Letter frequencies in dataset<br><div style="margin-left:25px;">A:Â 0.294Â Â Â C:Â 0.231Â Â Â D:Â 0.000Â Â Â E:Â 0.000Â Â Â F:Â 0.000Â Â Â G:Â 0.257Â Â Â H:Â 0.000Â Â Â I:Â 0.000Â Â Â K:Â 0.000Â Â Â L:Â 0.000Â Â Â M:Â 0.000Â Â Â N:Â 0.000Â Â Â P:Â 0.000Â Â Â Q:Â 0.000Â Â Â R:Â 0.000Â Â Â S:Â 0.000Â Â Â T:Â 0.217Â Â Â V:Â 0.000Â Â Â W:Â 0.000Â Â Â Y:Â 0.000</div><br>
Background letter frequencies (from dataset with add-one prior applied):<br><div style="margin-left:25px;">A:Â 0.291Â Â Â C:Â 0.229Â Â Â D:Â 0.001Â Â Â E:Â 0.001Â Â Â F:Â 0.001Â Â Â G:Â 0.255Â Â Â H:Â 0.001Â Â Â I:Â 0.001Â Â Â K:Â 0.001Â Â Â L:Â 0.001Â Â Â M:Â 0.001Â Â Â N:Â 0.001Â Â Â P:Â 0.001Â Â Â Q:Â 0.001Â Â Â R:Â 0.001Â Â Â S:Â 0.001Â Â Â T:Â 0.215Â Â Â V:Â 0.001Â Â Â W:Â 0.001Â Â Â Y:Â 0.001</div><br></div><div class="subsection">
-<a name="stopped"></a><h5>Stopping Reason</h5>Stopped because nmotifs = 1 reached. Program ran on <i>dan</i>.
+<a name="stopped"></a><h5>Stopping Reason</h5>Stopped because nmotifs = 1 reached. Program ran on <i>scofield</i>.
</div><a href="javascript:showHidden('model')" id="model_activator">show model parameters...</a><div class="subsection" id="model_data" style="display:none;"><h5>Model parameters</h5><textarea style="width:100%;" rows="28" readonly>
-host = dan
+host = scofield
type = zoops
nmotifs = 1
evalue_threshold = inf
--- a/test-data/meme/meme/meme_output_txt_1.txt Fri Feb 25 13:35:27 2011 -0500
+++ b/test-data/meme/meme/meme_output_txt_1.txt Fri Feb 25 14:58:35 2011 -0500
@@ -1,7 +1,7 @@
********************************************************************************
MEME - Motif discovery tool
********************************************************************************
-MEME version 4.5.0 (Release date: Thu Oct 14 08:44:28 EST 2010)
+MEME version 4.6.0 (Release date: Thu Jan 20 14:06:48 PST 2011)
For further information on how to interpret these results or to get
a copy of the MEME software please access http://meme.nbcr.net.
@@ -28,7 +28,7 @@
********************************************************************************
TRAINING SET
********************************************************************************
-DATAFILE= dan.dat
+DATAFILE= dataset_3.dat
ALPHABET= ACDEFGHIKLMNPQRSTVWY
Sequence name Weight Length Sequence name Weight Length
------------- ------ ------ ------------- ------ ------
@@ -55,7 +55,7 @@
This information can also be useful in the event you wish to report a
problem with the MEME software.
-command: meme dan.dat -o dan/dataset_dan_files -nostatus
+command: meme dataset_3.dat -o dataset_4_files -nostatus
model: mod= zoops nmotifs= 1 evt= inf
object function= E-value of product of p-values
@@ -267,7 +267,7 @@
-Time 1.56 secs.
+Time 2.13 secs.
********************************************************************************
@@ -320,6 +320,6 @@
Stopped because nmotifs = 1 reached.
********************************************************************************
-CPU: dan
+CPU: scofield
********************************************************************************
--- a/test-data/meme/meme/meme_output_xml_1.xml Fri Feb 25 13:35:27 2011 -0500
+++ b/test-data/meme/meme/meme_output_xml_1.xml Fri Feb 25 14:58:35 2011 -0500
@@ -157,8 +157,8 @@
]><!-- Begin document body -->
-<MEME version="4.5.0" release="Thu Oct 14 08:44:28 EST 2010">
-<training_set datafile="/dan_110.dat" length="30">
+<MEME version="4.6.0" release="Thu Jan 20 14:06:48 PST 2011">
+<training_set datafile="dataset_3.dat" length="30"><alphabet id="amino-acid" length="20"><letter id="letter_A" symbol="A"/><letter id="letter_C" symbol="C"/>
@@ -183,6 +183,8 @@
</alphabet><ambigs><letter id="letter_B" symbol="B"/>
+<letter id="letter_J" symbol="J"/>
+<letter id="letter_O" symbol="O"/><letter id="letter_U" symbol="U"/><letter id="letter_X" symbol="X"/><letter id="letter_Z" symbol="Z"/>
@@ -245,8 +247,8 @@
</letter_frequencies></training_set><model>
-<command_line>meme /dan.dat -o /dataset_dan_files -nostatus </command_line>
-<host>dan</host>
+<command_line>meme dataset_3.dat -o dataset_4_files -nostatus </command_line>
+<host>scofield</host><type>zoops</type><nmotifs>1</nmotifs><evalue_threshold>inf</evalue_threshold>
@@ -300,7 +302,7 @@
</background_frequencies></model><motifs>
-<motif id="motif_1" name="1" width="11" sites="25" ic="40.0" re="13.8" llr="239" e_value="2.4e-011" bayes_threshold="5.33554" elapsed_time="1.563760">
+<motif id="motif_1" name="1" width="11" sites="25" ic="40.0" re="13.8" llr="239" e_value="2.4e-011" bayes_threshold="5.33554" elapsed_time="2.128133"><scores><alphabet_matrix><alphabet_array>
--- a/tools/meme/meme.xml Fri Feb 25 13:35:27 2011 -0500
+++ b/tools/meme/meme.xml Fri Feb 25 14:58:35 2011 -0500
@@ -319,7 +319,7 @@
<param name="input1" value="meme_input_1.fasta" ftype="fasta" dbkey="hg19"/><param name="options_type_selector" value="basic"/><param name="non_commercial_use" value="True"/>
- <output name="html_outfile" file="meme/meme/meme_output_html_1.html" lines_diff="14"/>
+ <output name="html_outfile" file="meme/meme/meme_output_html_1.html" lines_diff="12"/><output name="txt_outfile" file="meme/meme/meme_output_txt_1.txt" lines_diff="12"/><output name="xml_outfile" file="meme/meme/meme_output_xml_1.xml" lines_diff="8"/></test>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/5215215c3659/
changeset: r5128:5215215c3659
user: kanwei
date: 2011-02-25 19:35:27
summary: Typos
affected #: 4 files (21 bytes)
--- a/tools/filters/fileGrep.xml Thu Feb 24 19:07:41 2011 -0500
+++ b/tools/filters/fileGrep.xml Fri Feb 25 13:35:27 2011 -0500
@@ -1,19 +1,19 @@
-<tool id="fileGrep1" name="Match">
- <description>a column from one Query against another Query</description>
- <command>cut -f $col $input1 | grep -f - $match $input2 > $out_file1</command>
- <inputs>
- <param name="col" size="2" type="text" value="1" label="Match content of column"/>
- <param format="tabular" name="input1" type="data" label="From Query1"/>
+<tool id="fileGrep1" name="Match">
+ <description>a column from one Query against another Query</description>
+ <command>cut -f $col $input1 | grep -f - $match $input2 > $out_file1</command>
+ <inputs>
+ <param name="col" size="2" type="text" value="1" label="Match content of column"/>
+ <param format="tabular" name="input1" type="data" label="From Query1"/><param format="tabular" name="input2" type="data" label="Against Query2"/>
- <param name="match" type="select" label="and return rows that">
- <option value="">Match</option>
- <option value="-v">Do not match</option>
- </param>
- </inputs>
- <outputs>
+ <param name="match" type="select" label="and return rows that">
+ <option value="">Match</option>
+ <option value="-v">Do not match</option>
+ </param>
+ </inputs>
+ <outputs><data format="input" name="out_file1" metadata_source="input2" />
- </outputs>
- <help>
+ </outputs>
+ <help>
This tool is based on UNIX command grep with option -f. It matches content of one query against another. For example, assume you have two queries - one that contains EST accession numbers and some other information::
AA001229 12 12
@@ -32,11 +32,11 @@
chr7 115443243 115443347 DB331869_exon_0_0_chr7_115443244_f 0 +
chr7 115443347 115443373 DB331869_exon_1_0_chr7_115443348_f 0 +
-Using this tool you will bne able to tell how many ESTs in Query1 are also preset in Query2 and will output this::
+Using this tool you will be able to tell how many ESTs in Query1 are also preset in Query2 and will output this::
chr7 115443239 115443802 AA001842_exon_0_0_chr7_115443240_f 0
if **Match** option is chosen.
-</help>
+</help></tool>
\ No newline at end of file
--- a/tools/ngs_rna/cuffdiff_wrapper.xml Thu Feb 24 19:07:41 2011 -0500
+++ b/tools/ngs_rna/cuffdiff_wrapper.xml Fri Feb 25 13:35:27 2011 -0500
@@ -209,7 +209,7 @@
1. Transcript FPKM expression tracking.
2. Gene FPKM expression tracking; tracks the summed FPKM of transcripts sharing each gene_id
3. Primary transcript FPKM tracking; tracks the summed FPKM of transcripts sharing each tss_id
-4. Coding sequence FPKM tracking; tracks the summed FPKM of transcripts sharing each p_id, indepedent of tss_id
+4. Coding sequence FPKM tracking; tracks the summed FPKM of transcripts sharing each p_id, independent of tss_id
5. Transcript differential FPKM.
6. Gene differential FPKM. Tests difference sin the summed FPKM of transcripts sharing each gene_id
7. Primary transcript differential FPKM. Tests difference sin the summed FPKM of transcripts sharing each tss_id
@@ -233,7 +233,7 @@
-m INT This is the expected (mean) inner distance between mate pairs. For, example, for paired end runs with fragments selected at 300bp, where each end is 50bp, you should set -r to be 200. The default is 45bp.
-s INT The standard deviation for the distribution on inner distances between mate pairs. The default is 20bp.
-Q Instructs Cufflinks to ignore alignments with a SAM mapping quality lower than this number. The default is 0.
- -c INT The minimum number of alignments in a locus for needed to conduct significance testing on changes in that locus observed between samples. If no testing is performed, changes in the locus are deemed not signficant, and the locus' observed changes don't contribute to correction for multiple testing. The default is 1,000 fragment alignments (up to 2,000 paired reads).
+ -c INT The minimum number of alignments in a locus for needed to conduct significance testing on changes in that locus observed between samples. If no testing is performed, changes in the locus are deemed not significant, and the locus' observed changes don't contribute to correction for multiple testing. The default is 1,000 fragment alignments (up to 2,000 paired reads).
--FDR FLOAT The allowed false discovery rate. The default is 0.05.
--num-importance-samples INT Sets the number of importance samples generated for each locus during abundance estimation. Default: 1000
--max-mle-iterations INT Sets the number of iterations allowed during maximum likelihood estimation of abundances. Default: 5000
--- a/tools/ngs_rna/tophat_wrapper.xml Thu Feb 24 19:07:41 2011 -0500
+++ b/tools/ngs_rna/tophat_wrapper.xml Fri Feb 25 13:35:27 2011 -0500
@@ -25,7 +25,7 @@
## First input file always required.
--input1=$singlePaired.input1
- ## Set parms based on whether reads are single-end or paired.
+ ## Set params based on whether reads are single-end or paired.
#if $singlePaired.sPaired == "single":
--settings=$singlePaired.sParams.sSettingsType
#if $singlePaired.sParams.sSettingsType == "full":
@@ -171,7 +171,7 @@
<option value="full">Full parameter list</option></param><when value="preSet" />
- <!-- Full/advanced parms. -->
+ <!-- Full/advanced params. --><when value="full"><param name="library_type" type="select" label="Library Type" help="TopHat will treat the reads as strand specific. Every read alignment will have an XS attribute tag. Consider supplying library type options below to select the correct RNA-seq protocol."><option value="fr-unstranded">FR Unstranded</option>
@@ -277,7 +277,7 @@
<option value="full">Full parameter list</option></param><when value="preSet" />
- <!-- Full/advanced parms. -->
+ <!-- Full/advanced params. --><when value="full"><param name="library_type" type="select" label="Library Type" help="TopHat will treat the reads as strand specific. Every read alignment will have an XS attribute tag. Consider supplying library type options below to select the correct RNA-seq protocol."><option value="fr-unstranded">FR Unstranded</option>
@@ -435,7 +435,7 @@
<test><!-- Tophat commands:
bowtie-build -f test-data/tophat_in1.fasta tophat_in1
- tophat -o tmp_dir -p 1 -a 8 -m 0 -i 70 -I 500000 -F 0.15 -g 40 ++allow-indels +coverage-search +min-coverage-intron 50 +max-coverage-intro 20000 +segment-mismatches 2 +segment-length 25 +closure-search +min-closure-exon 50 +min-closure-intron 50 +max-closure-intro 5000 +microexon-search tophat_in1 test-data/tophat_in2.fastqsanger
+ tophat -o tmp_dir -p 1 -a 8 -m 0 -i 70 -I 500000 -F 0.15 -g 40 +allow-indels +coverage-search +min-coverage-intron 50 +max-coverage-intro 20000 +segment-mismatches 2 +segment-length 25 +closure-search +min-closure-exon 50 +min-closure-intron 50 +max-closure-intro 5000 +microexon-search tophat_in1 test-data/tophat_in2.fastqsanger
Replace the + with double-dash
--><param name="genomeSource" value="history"/>
--- a/tools/sr_mapping/lastz_wrapper.xml Thu Feb 24 19:07:41 2011 -0500
+++ b/tools/sr_mapping/lastz_wrapper.xml Fri Feb 25 13:35:27 2011 -0500
@@ -504,7 +504,7 @@
up 65 thousand
--census32[=<output_file>] count and report how many times each target bas aligns, up
to 4 billion
- --writecapsule=<capsule_file> just write out a targegt capsule file and quit; don't
+ --writecapsule=<capsule_file> just write out a target capsule file and quit; don't
search for seeds or perform subsequent stages
--verbosity=<level> set info level (0 is minimum, 10 is everything)
(default is 0)
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: kanwei: Only lowercase columns if starting with "c".. fixes issue where "None" was lowercased to "none". Fixes subtract_query tests
by Bitbucket 24 Feb '11
by Bitbucket 24 Feb '11
24 Feb '11
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/88a118487292/
changeset: r5127:88a118487292
user: kanwei
date: 2011-02-25 01:07:41
summary: Only lowercase columns if starting with "c".. fixes issue where "None" was lowercased to "none". Fixes subtract_query tests
affected #: 1 file (28 bytes)
--- a/lib/galaxy/tools/parameters/basic.py Thu Feb 24 18:21:46 2011 -0500
+++ b/lib/galaxy/tools/parameters/basic.py Thu Feb 24 19:07:41 2011 -0500
@@ -845,9 +845,8 @@
removes the 'c' when entered into a workflow.
"""
def _strip_c( column ):
- column = column.strip().lower()
if column.startswith( 'c' ):
- column = column[1:]
+ column = column.strip().lower()[1:]
return column
if self.multiple:
#split on newline and ,
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: dannon: workflows: Will never collapse steps containing workflow parameters by default now.
by Bitbucket 24 Feb '11
by Bitbucket 24 Feb '11
24 Feb '11
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/6e72905f5119/
changeset: r5126:6e72905f5119
user: dannon
date: 2011-02-25 00:21:46
summary: workflows: Will never collapse steps containing workflow parameters by default now.
affected #: 1 file (10 bytes)
--- a/templates/workflow/run.mako Thu Feb 24 18:08:15 2011 -0500
+++ b/templates/workflow/run.mako Thu Feb 24 18:21:46 2011 -0500
@@ -27,7 +27,7 @@
toggle_tool_body($(this));
});
// Collapse non-interactive run-workflow panels by default.
- $("div.toolFormBody:not(:has(select, textarea, input[type!=hidden]))").hide().parent().css('border-bottom-width', '0px');
+ $("div.toolFormBody:not(:has(select, textarea, input[type!=hidden], .wfpspan))").hide().parent().css('border-bottom-width', '0px');
$("#show_all_tool_body").click(function(){
$("div.toolFormTitle").each(function(){
show_tool_body($(this));
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: dannon: workflows: Fix parameter replacement in long inputs where the parameter isn't the whole value.
by Bitbucket 24 Feb '11
by Bitbucket 24 Feb '11
24 Feb '11
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/5e552f7d9a17/
changeset: r5125:5e552f7d9a17
user: dannon
date: 2011-02-25 00:08:15
summary: workflows: Fix parameter replacement in long inputs where the parameter isn't the whole value.
affected #: 1 file (11 bytes)
--- a/templates/workflow/run.mako Thu Feb 24 17:23:16 2011 -0500
+++ b/templates/workflow/run.mako Thu Feb 24 18:08:15 2011 -0500
@@ -126,7 +126,7 @@
<div class="form-title-row"><b>${input.title} ${i + 1}</b></div>
${do_inputs( input.inputs, repeat_values[ i ], rep_errors, prefix + input.name + "_" + str(index) + "|", step, other_values )}
## <div class="form-row"><input type="submit" name="${step.id}|${prefix}${input.name}_${i}_remove" value="Remove ${input.title} ${i+1}" /></div>
- </div>
+ </div>
%endfor
## <div class="form-row"><input type="submit" name="${step.id}|${prefix}${input.name}_add" value="Add new ${input.title}" /></div></div>
@@ -209,7 +209,7 @@
<div style="width: 300px;"><img style="vertical-align: middle;" src="${h.url_for('/static/style/error_small.png')}"> <span style="vertical-align: middle;">${error_dict[param.name]}</span></div></div>
%endif
- <div style="clear: both"></div>
+ <div style="clear: both"></div></div></%def>
@@ -262,7 +262,7 @@
$('.wfpspan.wf_parm__'+tag_id).text(new_text);
// Now set the hidden input to the generated text.
$('.wfpspan.wf_parm__'+tag_id).not('.pja_wfp').each(function(){
- // var new_text = $(this).parent().text();
+ var new_text = $(this).parent().text();
$(this).parent().siblings().children().val(new_text);
});
}
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: kanwei: Update jQuery to 1.5.1, and also jquery.form as old one was incompatible with 1.5
by Bitbucket 24 Feb '11
by Bitbucket 24 Feb '11
24 Feb '11
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/632a7a0f3caa/
changeset: r5124:632a7a0f3caa
user: kanwei
date: 2011-02-24 23:23:16
summary: Update jQuery to 1.5.1, and also jquery.form as old one was incompatible with 1.5
affected #: 4 files (7.5 KB)
--- a/static/scripts/jquery.form.js Thu Feb 24 16:19:03 2011 -0500
+++ b/static/scripts/jquery.form.js Thu Feb 24 17:23:16 2011 -0500
@@ -1,632 +1,803 @@
-/*
- * jQuery Form Plugin
- * version: 2.21 (08-FEB-2009)
- * @requires jQuery v1.2.2 or later
- *
- * Examples and documentation at: http://malsup.com/jquery/form/
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- */
-;(function($) {
-
-/*
- Usage Note:
- -----------
- Do not use both ajaxSubmit and ajaxForm on the same form. These
- functions are intended to be exclusive. Use ajaxSubmit if you want
- to bind your own submit handler to the form. For example,
-
- $(document).ready(function() {
- $('#myForm').bind('submit', function() {
- $(this).ajaxSubmit({
- target: '#output'
- });
- return false; // <-- important!
- });
- });
-
- Use ajaxForm when you want the plugin to manage all the event binding
- for you. For example,
-
- $(document).ready(function() {
- $('#myForm').ajaxForm({
- target: '#output'
- });
- });
-
- When using ajaxForm, the ajaxSubmit function will be invoked for you
- at the appropriate time.
-*/
-
-/**
- * ajaxSubmit() provides a mechanism for immediately submitting
- * an HTML form using AJAX.
- */
-$.fn.ajaxSubmit = function(options) {
- // fast fail if nothing selected (http://dev.jquery.com/ticket/2752)
- if (!this.length) {
- log('ajaxSubmit: skipping submit process - no element selected');
- return this;
- }
-
- if (typeof options == 'function')
- options = { success: options };
-
- options = $.extend({
- url: this.attr('action') || window.location.toString(),
- type: this.attr('method') || 'GET'
- }, options || {});
-
- // hook for manipulating the form data before it is extracted;
- // convenient for use with rich editors like tinyMCE or FCKEditor
- var veto = {};
- this.trigger('form-pre-serialize', [this, options, veto]);
- if (veto.veto) {
- log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
- return this;
- }
-
- // provide opportunity to alter form data before it is serialized
- if (options.beforeSerialize && options.beforeSerialize(this, options) === false) {
- log('ajaxSubmit: submit aborted via beforeSerialize callback');
- return this;
- }
-
- var a = this.formToArray(options.semantic);
- if (options.data) {
- options.extraData = options.data;
- for (var n in options.data) {
- if(options.data[n] instanceof Array) {
- for (var k in options.data[n])
- a.push( { name: n, value: options.data[n][k] } )
- }
- else
- a.push( { name: n, value: options.data[n] } );
- }
- }
-
- // give pre-submit callback an opportunity to abort the submit
- if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {
- log('ajaxSubmit: submit aborted via beforeSubmit callback');
- return this;
- }
-
- // fire vetoable 'validate' event
- this.trigger('form-submit-validate', [a, this, options, veto]);
- if (veto.veto) {
- log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
- return this;
- }
-
- var q = $.param(a);
-
- if (options.type.toUpperCase() == 'GET') {
- options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
- options.data = null; // data is null for 'get'
- }
- else
- options.data = q; // data is the query string for 'post'
-
- var $form = this, callbacks = [];
- if (options.resetForm) callbacks.push(function() { $form.resetForm(); });
- if (options.clearForm) callbacks.push(function() { $form.clearForm(); });
-
- // perform a load on the target only if dataType is not provided
- if (!options.dataType && options.target) {
- var oldSuccess = options.success || function(){};
- callbacks.push(function(data) {
- $(options.target).html(data).each(oldSuccess, arguments);
- });
- }
- else if (options.success)
- callbacks.push(options.success);
-
- options.success = function(data, status) {
- for (var i=0, max=callbacks.length; i < max; i++)
- callbacks[i].apply(options, [data, status, $form]);
- };
-
- // are there files to upload?
- var files = $('input:file', this).fieldValue();
- var found = false;
- for (var j=0; j < files.length; j++)
- if (files[j])
- found = true;
-
- // options.iframe allows user to force iframe mode
- if (options.iframe || found) {
- // hack to fix Safari hang (thanks to Tim Molendijk for this)
- // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510…
- if (options.closeKeepAlive)
- $.get(options.closeKeepAlive, fileUpload);
- else
- fileUpload();
- }
- else
- $.ajax(options);
-
- // fire 'notify' event
- this.trigger('form-submit-notify', [this, options]);
- return this;
-
-
- // private function for handling file uploads (hat tip to YAHOO!)
- function fileUpload() {
- var form = $form[0];
-
- if ($(':input[name=submit]', form).length) {
- alert('Error: Form elements must not be named "submit".');
- return;
- }
-
- var opts = $.extend({}, $.ajaxSettings, options);
- var s = jQuery.extend(true, {}, $.extend(true, {}, $.ajaxSettings), opts);
-
- var id = 'jqFormIO' + (new Date().getTime());
- var $io = $('<iframe id="' + id + '" name="' + id + '" src="about:blank" />');
- var io = $io[0];
-
- $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
-
- var xhr = { // mock object
- aborted: 0,
- responseText: null,
- responseXML: null,
- status: 0,
- statusText: 'n/a',
- getAllResponseHeaders: function() {},
- getResponseHeader: function() {},
- setRequestHeader: function() {},
- abort: function() {
- this.aborted = 1;
- $io.attr('src','about:blank'); // abort op in progress
- }
- };
-
- var g = opts.global;
- // trigger ajax global events so that activity/block indicators work like normal
- if (g && ! $.active++) $.event.trigger("ajaxStart");
- if (g) $.event.trigger("ajaxSend", [xhr, opts]);
-
- if (s.beforeSend && s.beforeSend(xhr, s) === false) {
- s.global && jQuery.active--;
- return;
- }
- if (xhr.aborted)
- return;
-
- var cbInvoked = 0;
- var timedOut = 0;
-
- // add submitting element to data if we know it
- var sub = form.clk;
- if (sub) {
- var n = sub.name;
- if (n && !sub.disabled) {
- options.extraData = options.extraData || {};
- options.extraData[n] = sub.value;
- if (sub.type == "image") {
- options.extraData[name+'.x'] = form.clk_x;
- options.extraData[name+'.y'] = form.clk_y;
- }
- }
- }
-
- // take a breath so that pending repaints get some cpu time before the upload starts
- setTimeout(function() {
- // make sure form attrs are set
- var t = $form.attr('target'), a = $form.attr('action');
-
- // update form attrs in IE friendly way
- form.setAttribute('target',id);
- if (form.getAttribute('method') != 'POST')
- form.setAttribute('method', 'POST');
- if (form.getAttribute('action') != opts.url)
- form.setAttribute('action', opts.url);
-
- // ie borks in some cases when setting encoding
- if (! options.skipEncodingOverride) {
- $form.attr({
- encoding: 'multipart/form-data',
- enctype: 'multipart/form-data'
- });
- }
-
- // support timout
- if (opts.timeout)
- setTimeout(function() { timedOut = true; cb(); }, opts.timeout);
-
- // add "extra" data to form if provided in options
- var extraInputs = [];
- try {
- if (options.extraData)
- for (var n in options.extraData)
- extraInputs.push(
- $('<input type="hidden" name="'+n+'" value="'+options.extraData[n]+'" />')
- .appendTo(form)[0]);
-
- // add iframe to doc and submit the form
- $io.appendTo('body');
- io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
- form.submit();
- }
- finally {
- // reset attrs and remove "extra" input elements
- form.setAttribute('action',a);
- t ? form.setAttribute('target', t) : $form.removeAttr('target');
- $(extraInputs).remove();
- }
- }, 10);
-
- var nullCheckFlag = 0;
-
- function cb() {
- if (cbInvoked++) return;
-
- io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
-
- var ok = true;
- try {
- if (timedOut) throw 'timeout';
- // extract the server response from the iframe
- var data, doc;
-
- doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;
-
- if ((doc.body == null || doc.body.innerHTML == '') && !nullCheckFlag) {
- // in some browsers (cough, Opera 9.2.x) the iframe DOM is not always traversable when
- // the onload callback fires, so we give them a 2nd chance
- nullCheckFlag = 1;
- cbInvoked--;
- setTimeout(cb, 100);
- return;
- }
-
- xhr.responseText = doc.body ? doc.body.innerHTML : null;
- xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
- xhr.getResponseHeader = function(header){
- var headers = {'content-type': opts.dataType};
- return headers[header];
- };
-
- if (opts.dataType == 'json' || opts.dataType == 'script') {
- var ta = doc.getElementsByTagName('textarea')[0];
- xhr.responseText = ta ? ta.value : xhr.responseText;
- }
- else if (opts.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) {
- xhr.responseXML = toXml(xhr.responseText);
- }
- data = $.httpData(xhr, opts.dataType);
- }
- catch(e){
- ok = false;
- $.handleError(opts, xhr, 'error', e);
- }
-
- // ordering of these callbacks/triggers is odd, but that's how $.ajax does it
- if (ok) {
- opts.success(data, 'success');
- if (g) $.event.trigger("ajaxSuccess", [xhr, opts]);
- }
- if (g) $.event.trigger("ajaxComplete", [xhr, opts]);
- if (g && ! --$.active) $.event.trigger("ajaxStop");
- if (opts.complete) opts.complete(xhr, ok ? 'success' : 'error');
-
- // clean up
- setTimeout(function() {
- $io.remove();
- xhr.responseXML = null;
- }, 100);
- };
-
- function toXml(s, doc) {
- if (window.ActiveXObject) {
- doc = new ActiveXObject('Microsoft.XMLDOM');
- doc.async = 'false';
- doc.loadXML(s);
- }
- else
- doc = (new DOMParser()).parseFromString(s, 'text/xml');
- return (doc && doc.documentElement && doc.documentElement.tagName != 'parsererror') ? doc : null;
- };
- };
-};
-
-/**
- * ajaxForm() provides a mechanism for fully automating form submission.
- *
- * The advantages of using this method instead of ajaxSubmit() are:
- *
- * 1: This method will include coordinates for <input type="image" /> elements (if the element
- * is used to submit the form).
- * 2. This method will include the submit element's name/value data (for the element that was
- * used to submit the form).
- * 3. This method binds the submit() method to the form for you.
- *
- * The options argument for ajaxForm works exactly as it does for ajaxSubmit. ajaxForm merely
- * passes the options argument along after properly binding events for submit elements and
- * the form itself.
- */
-$.fn.ajaxForm = function(options) {
- return this.ajaxFormUnbind().bind('submit.form-plugin',function() {
- $(this).ajaxSubmit(options);
- return false;
- }).each(function() {
- // store options in hash
- $(":submit,input:image", this).bind('click.form-plugin',function(e) {
- var form = this.form;
- form.clk = this;
- if (this.type == 'image') {
- if (e.offsetX != undefined) {
- form.clk_x = e.offsetX;
- form.clk_y = e.offsetY;
- } else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin
- var offset = $(this).offset();
- form.clk_x = e.pageX - offset.left;
- form.clk_y = e.pageY - offset.top;
- } else {
- form.clk_x = e.pageX - this.offsetLeft;
- form.clk_y = e.pageY - this.offsetTop;
- }
- }
- // clear form vars
- setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 10);
- });
- });
-};
-
-// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
-$.fn.ajaxFormUnbind = function() {
- this.unbind('submit.form-plugin');
- return this.each(function() {
- $(":submit,input:image", this).unbind('click.form-plugin');
- });
-
-};
-
-/**
- * formToArray() gathers form element data into an array of objects that can
- * be passed to any of the following ajax functions: $.get, $.post, or load.
- * Each object in the array has both a 'name' and 'value' property. An example of
- * an array for a simple login form might be:
- *
- * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
- *
- * It is this array that is passed to pre-submit callback functions provided to the
- * ajaxSubmit() and ajaxForm() methods.
- */
-$.fn.formToArray = function(semantic) {
- var a = [];
- if (this.length == 0) return a;
-
- var form = this[0];
- var els = semantic ? form.getElementsByTagName('*') : form.elements;
- if (!els) return a;
- for(var i=0, max=els.length; i < max; i++) {
- var el = els[i];
- var n = el.name;
- if (!n) continue;
-
- if (semantic && form.clk && el.type == "image") {
- // handle image inputs on the fly when semantic == true
- if(!el.disabled && form.clk == el)
- a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
- continue;
- }
-
- var v = $.fieldValue(el, true);
- if (v && v.constructor == Array) {
- for(var j=0, jmax=v.length; j < jmax; j++)
- a.push({name: n, value: v[j]});
- }
- else if (v !== null && typeof v != 'undefined')
- a.push({name: n, value: v});
- }
-
- if (!semantic && form.clk) {
- // input type=='image' are not found in elements array! handle them here
- var inputs = form.getElementsByTagName("input");
- for(var i=0, max=inputs.length; i < max; i++) {
- var input = inputs[i];
- var n = input.name;
- if(n && !input.disabled && input.type == "image" && form.clk == input)
- a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
- }
- }
- return a;
-};
-
-/**
- * Serializes form data into a 'submittable' string. This method will return a string
- * in the format: name1=value1&name2=value2
- */
-$.fn.formSerialize = function(semantic) {
- //hand off to jQuery.param for proper encoding
- return $.param(this.formToArray(semantic));
-};
-
-/**
- * Serializes all field elements in the jQuery object into a query string.
- * This method will return a string in the format: name1=value1&name2=value2
- */
-$.fn.fieldSerialize = function(successful) {
- var a = [];
- this.each(function() {
- var n = this.name;
- if (!n) return;
- var v = $.fieldValue(this, successful);
- if (v && v.constructor == Array) {
- for (var i=0,max=v.length; i < max; i++)
- a.push({name: n, value: v[i]});
- }
- else if (v !== null && typeof v != 'undefined')
- a.push({name: this.name, value: v});
- });
- //hand off to jQuery.param for proper encoding
- return $.param(a);
-};
-
-/**
- * Returns the value(s) of the element in the matched set. For example, consider the following form:
- *
- * <form><fieldset>
- * <input name="A" type="text" />
- * <input name="A" type="text" />
- * <input name="B" type="checkbox" value="B1" />
- * <input name="B" type="checkbox" value="B2"/>
- * <input name="C" type="radio" value="C1" />
- * <input name="C" type="radio" value="C2" />
- * </fieldset></form>
- *
- * var v = $(':text').fieldValue();
- * // if no values are entered into the text inputs
- * v == ['','']
- * // if values entered into the text inputs are 'foo' and 'bar'
- * v == ['foo','bar']
- *
- * var v = $(':checkbox').fieldValue();
- * // if neither checkbox is checked
- * v === undefined
- * // if both checkboxes are checked
- * v == ['B1', 'B2']
- *
- * var v = $(':radio').fieldValue();
- * // if neither radio is checked
- * v === undefined
- * // if first radio is checked
- * v == ['C1']
- *
- * The successful argument controls whether or not the field element must be 'successful'
- * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls)
- * The default value of the successful argument is true. If this value is false the value(s)
- * for each element is returned.
- *
- * Note: This method *always* returns an array. If no valid value can be determined the
- * array will be empty, otherwise it will contain one or more values.
- */
-$.fn.fieldValue = function(successful) {
- for (var val=[], i=0, max=this.length; i < max; i++) {
- var el = this[i];
- var v = $.fieldValue(el, successful);
- if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length))
- continue;
- v.constructor == Array ? $.merge(val, v) : val.push(v);
- }
- return val;
-};
-
-/**
- * Returns the value of the field element.
- */
-$.fieldValue = function(el, successful) {
- var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
- if (typeof successful == 'undefined') successful = true;
-
- if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||
- (t == 'checkbox' || t == 'radio') && !el.checked ||
- (t == 'submit' || t == 'image') && el.form && el.form.clk != el ||
- tag == 'select' && el.selectedIndex == -1))
- return null;
-
- if (tag == 'select') {
- var index = el.selectedIndex;
- if (index < 0) return null;
- var a = [], ops = el.options;
- var one = (t == 'select-one');
- var max = (one ? index+1 : ops.length);
- for(var i=(one ? index : 0); i < max; i++) {
- var op = ops[i];
- if (op.selected) {
- var v = op.value;
- if (!v) // extra pain for IE...
- v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value;
- if (one) return v;
- a.push(v);
- }
- }
- return a;
- }
- return el.value;
-};
-
-/**
- * Clears the form data. Takes the following actions on the form's input fields:
- * - input text fields will have their 'value' property set to the empty string
- * - select elements will have their 'selectedIndex' property set to -1
- * - checkbox and radio inputs will have their 'checked' property set to false
- * - inputs of type submit, button, reset, and hidden will *not* be effected
- * - button elements will *not* be effected
- */
-$.fn.clearForm = function() {
- return this.each(function() {
- $('input,select,textarea', this).clearFields();
- });
-};
-
-/**
- * Clears the selected form elements.
- */
-$.fn.clearFields = $.fn.clearInputs = function() {
- return this.each(function() {
- var t = this.type, tag = this.tagName.toLowerCase();
- if (t == 'text' || t == 'password' || tag == 'textarea')
- this.value = '';
- else if (t == 'checkbox' || t == 'radio')
- this.checked = false;
- else if (tag == 'select')
- this.selectedIndex = -1;
- });
-};
-
-/**
- * Resets the form data. Causes all form elements to be reset to their original value.
- */
-$.fn.resetForm = function() {
- return this.each(function() {
- // guard against an input with the name of 'reset'
- // note that IE reports the reset function as an 'object'
- if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType))
- this.reset();
- });
-};
-
-/**
- * Enables or disables any matching elements.
- */
-$.fn.enable = function(b) {
- if (b == undefined) b = true;
- return this.each(function() {
- this.disabled = !b
- });
-};
-
-/**
- * Checks/unchecks any matching checkboxes or radio buttons and
- * selects/deselects and matching option elements.
- */
-$.fn.selected = function(select) {
- if (select == undefined) select = true;
- return this.each(function() {
- var t = this.type;
- if (t == 'checkbox' || t == 'radio')
- this.checked = select;
- else if (this.tagName.toLowerCase() == 'option') {
- var $sel = $(this).parent('select');
- if (select && $sel[0] && $sel[0].type == 'select-one') {
- // deselect all other options
- $sel.find('option').selected(false);
- }
- this.selected = select;
- }
- });
-};
-
-// helper fn for console logging
-// set $.fn.ajaxSubmit.debug to true to enable debug logging
-function log() {
- if ($.fn.ajaxSubmit.debug && window.console && window.console.log)
- window.console.log('[jquery.form] ' + Array.prototype.join.call(arguments,''));
-};
-
-})(jQuery);
+/*!
+ * jQuery Form Plugin
+ * version: 2.63 (29-JAN-2011)
+ * @requires jQuery v1.3.2 or later
+ *
+ * Examples and documentation at: http://malsup.com/jquery/form/
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ */
+;(function($) {
+
+/*
+ Usage Note:
+ -----------
+ Do not use both ajaxSubmit and ajaxForm on the same form. These
+ functions are intended to be exclusive. Use ajaxSubmit if you want
+ to bind your own submit handler to the form. For example,
+
+ $(document).ready(function() {
+ $('#myForm').bind('submit', function(e) {
+ e.preventDefault(); // <-- important
+ $(this).ajaxSubmit({
+ target: '#output'
+ });
+ });
+ });
+
+ Use ajaxForm when you want the plugin to manage all the event binding
+ for you. For example,
+
+ $(document).ready(function() {
+ $('#myForm').ajaxForm({
+ target: '#output'
+ });
+ });
+
+ When using ajaxForm, the ajaxSubmit function will be invoked for you
+ at the appropriate time.
+*/
+
+/**
+ * ajaxSubmit() provides a mechanism for immediately submitting
+ * an HTML form using AJAX.
+ */
+$.fn.ajaxSubmit = function(options) {
+ // fast fail if nothing selected (http://dev.jquery.com/ticket/2752)
+ if (!this.length) {
+ log('ajaxSubmit: skipping submit process - no element selected');
+ return this;
+ }
+
+ if (typeof options == 'function') {
+ options = { success: options };
+ }
+
+ var action = this.attr('action');
+ var url = (typeof action === 'string') ? $.trim(action) : '';
+ if (url) {
+ // clean url (don't include hash vaue)
+ url = (url.match(/^([^#]+)/)||[])[1];
+ }
+ url = url || window.location.href || '';
+
+ options = $.extend(true, {
+ url: url,
+ type: this[0].getAttribute('method') || 'GET', // IE7 massage (see issue 57)
+ iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank'
+ }, options);
+
+ // hook for manipulating the form data before it is extracted;
+ // convenient for use with rich editors like tinyMCE or FCKEditor
+ var veto = {};
+ this.trigger('form-pre-serialize', [this, options, veto]);
+ if (veto.veto) {
+ log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
+ return this;
+ }
+
+ // provide opportunity to alter form data before it is serialized
+ if (options.beforeSerialize && options.beforeSerialize(this, options) === false) {
+ log('ajaxSubmit: submit aborted via beforeSerialize callback');
+ return this;
+ }
+
+ var n,v,a = this.formToArray(options.semantic);
+ if (options.data) {
+ options.extraData = options.data;
+ for (n in options.data) {
+ if(options.data[n] instanceof Array) {
+ for (var k in options.data[n]) {
+ a.push( { name: n, value: options.data[n][k] } );
+ }
+ }
+ else {
+ v = options.data[n];
+ v = $.isFunction(v) ? v() : v; // if value is fn, invoke it
+ a.push( { name: n, value: v } );
+ }
+ }
+ }
+
+ // give pre-submit callback an opportunity to abort the submit
+ if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {
+ log('ajaxSubmit: submit aborted via beforeSubmit callback');
+ return this;
+ }
+
+ // fire vetoable 'validate' event
+ this.trigger('form-submit-validate', [a, this, options, veto]);
+ if (veto.veto) {
+ log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
+ return this;
+ }
+
+ var q = $.param(a);
+
+ if (options.type.toUpperCase() == 'GET') {
+ options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
+ options.data = null; // data is null for 'get'
+ }
+ else {
+ options.data = q; // data is the query string for 'post'
+ }
+
+ var $form = this, callbacks = [];
+ if (options.resetForm) {
+ callbacks.push(function() { $form.resetForm(); });
+ }
+ if (options.clearForm) {
+ callbacks.push(function() { $form.clearForm(); });
+ }
+
+ // perform a load on the target only if dataType is not provided
+ if (!options.dataType && options.target) {
+ var oldSuccess = options.success || function(){};
+ callbacks.push(function(data) {
+ var fn = options.replaceTarget ? 'replaceWith' : 'html';
+ $(options.target)[fn](data).each(oldSuccess, arguments);
+ });
+ }
+ else if (options.success) {
+ callbacks.push(options.success);
+ }
+
+ options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
+ var context = options.context || options; // jQuery 1.4+ supports scope context
+ for (var i=0, max=callbacks.length; i < max; i++) {
+ callbacks[i].apply(context, [data, status, xhr || $form, $form]);
+ }
+ };
+
+ // are there files to upload?
+ var fileInputs = $('input:file', this).length > 0;
+ var mp = 'multipart/form-data';
+ var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp);
+
+ // options.iframe allows user to force iframe mode
+ // 06-NOV-09: now defaulting to iframe mode if file input is detected
+ if (options.iframe !== false && (fileInputs || options.iframe || multipart)) {
+ // hack to fix Safari hang (thanks to Tim Molendijk for this)
+ // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510…
+ if (options.closeKeepAlive) {
+ $.get(options.closeKeepAlive, fileUpload);
+ }
+ else {
+ fileUpload();
+ }
+ }
+ else {
+ $.ajax(options);
+ }
+
+ // fire 'notify' event
+ this.trigger('form-submit-notify', [this, options]);
+ return this;
+
+
+ // private function for handling file uploads (hat tip to YAHOO!)
+ function fileUpload() {
+ var form = $form[0];
+
+ if ($(':input[name=submit],:input[id=submit]', form).length) {
+ // if there is an input with a name or id of 'submit' then we won't be
+ // able to invoke the submit fn on the form (at least not x-browser)
+ alert('Error: Form elements must not have name or id of "submit".');
+ return;
+ }
+
+ var s = $.extend(true, {}, $.ajaxSettings, options);
+ s.context = s.context || s;
+ var id = 'jqFormIO' + (new Date().getTime()), fn = '_'+id;
+ var $io = $('<iframe id="' + id + '" name="' + id + '" src="'+ s.iframeSrc +'" />');
+ var io = $io[0];
+
+ $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
+
+ var xhr = { // mock object
+ aborted: 0,
+ responseText: null,
+ responseXML: null,
+ status: 0,
+ statusText: 'n/a',
+ getAllResponseHeaders: function() {},
+ getResponseHeader: function() {},
+ setRequestHeader: function() {},
+ abort: function() {
+ this.aborted = 1;
+ $io.attr('src', s.iframeSrc); // abort op in progress
+ }
+ };
+
+ var g = s.global;
+ // trigger ajax global events so that activity/block indicators work like normal
+ if (g && ! $.active++) {
+ $.event.trigger("ajaxStart");
+ }
+ if (g) {
+ $.event.trigger("ajaxSend", [xhr, s]);
+ }
+
+ if (s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false) {
+ if (s.global) {
+ $.active--;
+ }
+ return;
+ }
+ if (xhr.aborted) {
+ return;
+ }
+
+ var timedOut = 0;
+
+ // add submitting element to data if we know it
+ var sub = form.clk;
+ if (sub) {
+ var n = sub.name;
+ if (n && !sub.disabled) {
+ s.extraData = s.extraData || {};
+ s.extraData[n] = sub.value;
+ if (sub.type == "image") {
+ s.extraData[n+'.x'] = form.clk_x;
+ s.extraData[n+'.y'] = form.clk_y;
+ }
+ }
+ }
+
+ // take a breath so that pending repaints get some cpu time before the upload starts
+ function doSubmit() {
+ // make sure form attrs are set
+ var t = $form.attr('target'), a = $form.attr('action');
+
+ // update form attrs in IE friendly way
+ form.setAttribute('target',id);
+ if (form.getAttribute('method') != 'POST') {
+ form.setAttribute('method', 'POST');
+ }
+ if (form.getAttribute('action') != s.url) {
+ form.setAttribute('action', s.url);
+ }
+
+ // ie borks in some cases when setting encoding
+ if (! s.skipEncodingOverride) {
+ $form.attr({
+ encoding: 'multipart/form-data',
+ enctype: 'multipart/form-data'
+ });
+ }
+
+ // support timout
+ if (s.timeout) {
+ setTimeout(function() { timedOut = true; cb(); }, s.timeout);
+ }
+
+ // add "extra" data to form if provided in options
+ var extraInputs = [];
+ try {
+ if (s.extraData) {
+ for (var n in s.extraData) {
+ extraInputs.push(
+ $('<input type="hidden" name="'+n+'" value="'+s.extraData[n]+'" />')
+ .appendTo(form)[0]);
+ }
+ }
+
+ // add iframe to doc and submit the form
+ $io.appendTo('body');
+ io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
+ form.submit();
+ }
+ finally {
+ // reset attrs and remove "extra" input elements
+ form.setAttribute('action',a);
+ if(t) {
+ form.setAttribute('target', t);
+ } else {
+ $form.removeAttr('target');
+ }
+ $(extraInputs).remove();
+ }
+ }
+
+ if (s.forceSync) {
+ doSubmit();
+ }
+ else {
+ setTimeout(doSubmit, 10); // this lets dom updates render
+ }
+
+ var data, doc, domCheckCount = 50;
+
+ function cb() {
+ doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;
+ if (!doc || doc.location.href == s.iframeSrc) {
+ // response not received yet
+ return;
+ }
+ io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
+
+ var ok = true;
+ try {
+ if (timedOut) {
+ throw 'timeout';
+ }
+
+ var isXml = s.dataType == 'xml' || doc.XMLDocument || $.isXMLDoc(doc);
+ log('isXml='+isXml);
+ if (!isXml && window.opera && (doc.body == null || doc.body.innerHTML == '')) {
+ if (--domCheckCount) {
+ // in some browsers (Opera) the iframe DOM is not always traversable when
+ // the onload callback fires, so we loop a bit to accommodate
+ log('requeing onLoad callback, DOM not available');
+ setTimeout(cb, 250);
+ return;
+ }
+ // let this fall through because server response could be an empty document
+ //log('Could not access iframe DOM after mutiple tries.');
+ //throw 'DOMException: not available';
+ }
+
+ //log('response detected');
+ xhr.responseText = doc.body ? doc.body.innerHTML : doc.documentElement ? doc.documentElement.innerHTML : null;
+ xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
+ xhr.getResponseHeader = function(header){
+ var headers = {'content-type': s.dataType};
+ return headers[header];
+ };
+
+ var scr = /(json|script)/.test(s.dataType);
+ if (scr || s.textarea) {
+ // see if user embedded response in textarea
+ var ta = doc.getElementsByTagName('textarea')[0];
+ if (ta) {
+ xhr.responseText = ta.value;
+ }
+ else if (scr) {
+ // account for browsers injecting pre around json response
+ var pre = doc.getElementsByTagName('pre')[0];
+ var b = doc.getElementsByTagName('body')[0];
+ if (pre) {
+ xhr.responseText = pre.textContent;
+ }
+ else if (b) {
+ xhr.responseText = b.innerHTML;
+ }
+ }
+ }
+ else if (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) {
+ xhr.responseXML = toXml(xhr.responseText);
+ }
+
+ data = httpData(xhr, s.dataType, s);
+ }
+ catch(e){
+ log('error caught:',e);
+ ok = false;
+ xhr.error = e;
+ s.error.call(s.context, xhr, 'error', e);
+ g && $.event.trigger("ajaxError", [xhr, s, e]);
+ }
+
+ if (xhr.aborted) {
+ log('upload aborted');
+ ok = false;
+ }
+
+ // ordering of these callbacks/triggers is odd, but that's how $.ajax does it
+ if (ok) {
+ s.success.call(s.context, data, 'success', xhr);
+ g && $.event.trigger("ajaxSuccess", [xhr, s]);
+ }
+
+ g && $.event.trigger("ajaxComplete", [xhr, s]);
+
+ if (g && ! --$.active) {
+ $.event.trigger("ajaxStop");
+ }
+
+ s.complete && s.complete.call(s.context, xhr, ok ? 'success' : 'error');
+
+ // clean up
+ setTimeout(function() {
+ $io.removeData('form-plugin-onload');
+ $io.remove();
+ xhr.responseXML = null;
+ }, 100);
+ }
+
+ var toXml = $.parseXML || function(s, doc) { // use parseXML if available (jQuery 1.5+)
+ if (window.ActiveXObject) {
+ doc = new ActiveXObject('Microsoft.XMLDOM');
+ doc.async = 'false';
+ doc.loadXML(s);
+ }
+ else {
+ doc = (new DOMParser()).parseFromString(s, 'text/xml');
+ }
+ return (doc && doc.documentElement && doc.documentElement.nodeName != 'parsererror') ? doc : null;
+ };
+ var parseJSON = $.parseJSON || function(s) {
+ return window['eval']('(' + s + ')');
+ };
+
+ var httpData = function( xhr, type, s ) { // mostly lifted from jq1.4.4
+ var ct = xhr.getResponseHeader('content-type') || '',
+ xml = type === 'xml' || !type && ct.indexOf('xml') >= 0,
+ data = xml ? xhr.responseXML : xhr.responseText;
+
+ if (xml && data.documentElement.nodeName === 'parsererror') {
+ $.error && $.error('parsererror');
+ }
+ if (s && s.dataFilter) {
+ data = s.dataFilter(data, type);
+ }
+ if (typeof data === 'string') {
+ if (type === 'json' || !type && ct.indexOf('json') >= 0) {
+ data = parseJSON(data);
+ } else if (type === "script" || !type && ct.indexOf("javascript") >= 0) {
+ $.globalEval(data);
+ }
+ }
+ return data;
+ };
+ }
+};
+
+/**
+ * ajaxForm() provides a mechanism for fully automating form submission.
+ *
+ * The advantages of using this method instead of ajaxSubmit() are:
+ *
+ * 1: This method will include coordinates for <input type="image" /> elements (if the element
+ * is used to submit the form).
+ * 2. This method will include the submit element's name/value data (for the element that was
+ * used to submit the form).
+ * 3. This method binds the submit() method to the form for you.
+ *
+ * The options argument for ajaxForm works exactly as it does for ajaxSubmit. ajaxForm merely
+ * passes the options argument along after properly binding events for submit elements and
+ * the form itself.
+ */
+$.fn.ajaxForm = function(options) {
+ // in jQuery 1.3+ we can fix mistakes with the ready state
+ if (this.length === 0) {
+ var o = { s: this.selector, c: this.context };
+ if (!$.isReady && o.s) {
+ log('DOM not ready, queuing ajaxForm');
+ $(function() {
+ $(o.s,o.c).ajaxForm(options);
+ });
+ return this;
+ }
+ // is your DOM ready? http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
+ log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
+ return this;
+ }
+
+ return this.ajaxFormUnbind().bind('submit.form-plugin', function(e) {
+ if (!e.isDefaultPrevented()) { // if event has been canceled, don't proceed
+ e.preventDefault();
+ $(this).ajaxSubmit(options);
+ }
+ }).bind('click.form-plugin', function(e) {
+ var target = e.target;
+ var $el = $(target);
+ if (!($el.is(":submit,input:image"))) {
+ // is this a child element of the submit el? (ex: a span within a button)
+ var t = $el.closest(':submit');
+ if (t.length == 0) {
+ return;
+ }
+ target = t[0];
+ }
+ var form = this;
+ form.clk = target;
+ if (target.type == 'image') {
+ if (e.offsetX != undefined) {
+ form.clk_x = e.offsetX;
+ form.clk_y = e.offsetY;
+ } else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin
+ var offset = $el.offset();
+ form.clk_x = e.pageX - offset.left;
+ form.clk_y = e.pageY - offset.top;
+ } else {
+ form.clk_x = e.pageX - target.offsetLeft;
+ form.clk_y = e.pageY - target.offsetTop;
+ }
+ }
+ // clear form vars
+ setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 100);
+ });
+};
+
+// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
+$.fn.ajaxFormUnbind = function() {
+ return this.unbind('submit.form-plugin click.form-plugin');
+};
+
+/**
+ * formToArray() gathers form element data into an array of objects that can
+ * be passed to any of the following ajax functions: $.get, $.post, or load.
+ * Each object in the array has both a 'name' and 'value' property. An example of
+ * an array for a simple login form might be:
+ *
+ * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
+ *
+ * It is this array that is passed to pre-submit callback functions provided to the
+ * ajaxSubmit() and ajaxForm() methods.
+ */
+$.fn.formToArray = function(semantic) {
+ var a = [];
+ if (this.length === 0) {
+ return a;
+ }
+
+ var form = this[0];
+ var els = semantic ? form.getElementsByTagName('*') : form.elements;
+ if (!els) {
+ return a;
+ }
+
+ var i,j,n,v,el,max,jmax;
+ for(i=0, max=els.length; i < max; i++) {
+ el = els[i];
+ n = el.name;
+ if (!n) {
+ continue;
+ }
+
+ if (semantic && form.clk && el.type == "image") {
+ // handle image inputs on the fly when semantic == true
+ if(!el.disabled && form.clk == el) {
+ a.push({name: n, value: $(el).val()});
+ a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
+ }
+ continue;
+ }
+
+ v = $.fieldValue(el, true);
+ if (v && v.constructor == Array) {
+ for(j=0, jmax=v.length; j < jmax; j++) {
+ a.push({name: n, value: v[j]});
+ }
+ }
+ else if (v !== null && typeof v != 'undefined') {
+ a.push({name: n, value: v});
+ }
+ }
+
+ if (!semantic && form.clk) {
+ // input type=='image' are not found in elements array! handle it here
+ var $input = $(form.clk), input = $input[0];
+ n = input.name;
+ if (n && !input.disabled && input.type == 'image') {
+ a.push({name: n, value: $input.val()});
+ a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
+ }
+ }
+ return a;
+};
+
+/**
+ * Serializes form data into a 'submittable' string. This method will return a string
+ * in the format: name1=value1&name2=value2
+ */
+$.fn.formSerialize = function(semantic) {
+ //hand off to jQuery.param for proper encoding
+ return $.param(this.formToArray(semantic));
+};
+
+/**
+ * Serializes all field elements in the jQuery object into a query string.
+ * This method will return a string in the format: name1=value1&name2=value2
+ */
+$.fn.fieldSerialize = function(successful) {
+ var a = [];
+ this.each(function() {
+ var n = this.name;
+ if (!n) {
+ return;
+ }
+ var v = $.fieldValue(this, successful);
+ if (v && v.constructor == Array) {
+ for (var i=0,max=v.length; i < max; i++) {
+ a.push({name: n, value: v[i]});
+ }
+ }
+ else if (v !== null && typeof v != 'undefined') {
+ a.push({name: this.name, value: v});
+ }
+ });
+ //hand off to jQuery.param for proper encoding
+ return $.param(a);
+};
+
+/**
+ * Returns the value(s) of the element in the matched set. For example, consider the following form:
+ *
+ * <form><fieldset>
+ * <input name="A" type="text" />
+ * <input name="A" type="text" />
+ * <input name="B" type="checkbox" value="B1" />
+ * <input name="B" type="checkbox" value="B2"/>
+ * <input name="C" type="radio" value="C1" />
+ * <input name="C" type="radio" value="C2" />
+ * </fieldset></form>
+ *
+ * var v = $(':text').fieldValue();
+ * // if no values are entered into the text inputs
+ * v == ['','']
+ * // if values entered into the text inputs are 'foo' and 'bar'
+ * v == ['foo','bar']
+ *
+ * var v = $(':checkbox').fieldValue();
+ * // if neither checkbox is checked
+ * v === undefined
+ * // if both checkboxes are checked
+ * v == ['B1', 'B2']
+ *
+ * var v = $(':radio').fieldValue();
+ * // if neither radio is checked
+ * v === undefined
+ * // if first radio is checked
+ * v == ['C1']
+ *
+ * The successful argument controls whether or not the field element must be 'successful'
+ * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls)
+ * The default value of the successful argument is true. If this value is false the value(s)
+ * for each element is returned.
+ *
+ * Note: This method *always* returns an array. If no valid value can be determined the
+ * array will be empty, otherwise it will contain one or more values.
+ */
+$.fn.fieldValue = function(successful) {
+ for (var val=[], i=0, max=this.length; i < max; i++) {
+ var el = this[i];
+ var v = $.fieldValue(el, successful);
+ if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) {
+ continue;
+ }
+ v.constructor == Array ? $.merge(val, v) : val.push(v);
+ }
+ return val;
+};
+
+/**
+ * Returns the value of the field element.
+ */
+$.fieldValue = function(el, successful) {
+ var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
+ if (successful === undefined) {
+ successful = true;
+ }
+
+ if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||
+ (t == 'checkbox' || t == 'radio') && !el.checked ||
+ (t == 'submit' || t == 'image') && el.form && el.form.clk != el ||
+ tag == 'select' && el.selectedIndex == -1)) {
+ return null;
+ }
+
+ if (tag == 'select') {
+ var index = el.selectedIndex;
+ if (index < 0) {
+ return null;
+ }
+ var a = [], ops = el.options;
+ var one = (t == 'select-one');
+ var max = (one ? index+1 : ops.length);
+ for(var i=(one ? index : 0); i < max; i++) {
+ var op = ops[i];
+ if (op.selected) {
+ var v = op.value;
+ if (!v) { // extra pain for IE...
+ v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value;
+ }
+ if (one) {
+ return v;
+ }
+ a.push(v);
+ }
+ }
+ return a;
+ }
+ return $(el).val();
+};
+
+/**
+ * Clears the form data. Takes the following actions on the form's input fields:
+ * - input text fields will have their 'value' property set to the empty string
+ * - select elements will have their 'selectedIndex' property set to -1
+ * - checkbox and radio inputs will have their 'checked' property set to false
+ * - inputs of type submit, button, reset, and hidden will *not* be effected
+ * - button elements will *not* be effected
+ */
+$.fn.clearForm = function() {
+ return this.each(function() {
+ $('input,select,textarea', this).clearFields();
+ });
+};
+
+/**
+ * Clears the selected form elements.
+ */
+$.fn.clearFields = $.fn.clearInputs = function() {
+ return this.each(function() {
+ var t = this.type, tag = this.tagName.toLowerCase();
+ if (t == 'text' || t == 'password' || tag == 'textarea') {
+ this.value = '';
+ }
+ else if (t == 'checkbox' || t == 'radio') {
+ this.checked = false;
+ }
+ else if (tag == 'select') {
+ this.selectedIndex = -1;
+ }
+ });
+};
+
+/**
+ * Resets the form data. Causes all form elements to be reset to their original value.
+ */
+$.fn.resetForm = function() {
+ return this.each(function() {
+ // guard against an input with the name of 'reset'
+ // note that IE reports the reset function as an 'object'
+ if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) {
+ this.reset();
+ }
+ });
+};
+
+/**
+ * Enables or disables any matching elements.
+ */
+$.fn.enable = function(b) {
+ if (b === undefined) {
+ b = true;
+ }
+ return this.each(function() {
+ this.disabled = !b;
+ });
+};
+
+/**
+ * Checks/unchecks any matching checkboxes or radio buttons and
+ * selects/deselects and matching option elements.
+ */
+$.fn.selected = function(select) {
+ if (select === undefined) {
+ select = true;
+ }
+ return this.each(function() {
+ var t = this.type;
+ if (t == 'checkbox' || t == 'radio') {
+ this.checked = select;
+ }
+ else if (this.tagName.toLowerCase() == 'option') {
+ var $sel = $(this).parent('select');
+ if (select && $sel[0] && $sel[0].type == 'select-one') {
+ // deselect all other options
+ $sel.find('option').selected(false);
+ }
+ this.selected = select;
+ }
+ });
+};
+
+// helper fn for console logging
+// set $.fn.ajaxSubmit.debug to true to enable debug logging
+function log() {
+ if ($.fn.ajaxSubmit.debug) {
+ var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
+ if (window.console && window.console.log) {
+ window.console.log(msg);
+ }
+ else if (window.opera && window.opera.postError) {
+ window.opera.postError(msg);
+ }
+ }
+};
+
+})(jQuery);
--- a/static/scripts/jquery.js Thu Feb 24 16:19:03 2011 -0500
+++ b/static/scripts/jquery.js Thu Feb 24 17:23:16 2011 -0500
@@ -1,5 +1,5 @@
-/*
- * jQuery JavaScript Library v1.5
+/*!
+ * jQuery JavaScript Library v1.5.1
* http://jquery.com/
*
* Copyright 2011, John Resig
@@ -11,7 +11,7 @@
* Copyright 2011, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses.
*
- * Date: Mon Jan 31 08:31:29 2011 -0500
+ * Date: Wed Feb 23 13:55:29 2011 -0500
*/
(function( window, undefined ) {
@@ -202,7 +202,7 @@
selector: "",
// The current version of jQuery being used
- jquery: "1.5",
+ jquery: "1.5.1",
// The default length of a jQuery object is 0
length: 0,
@@ -313,7 +313,7 @@
jQuery.fn.init.prototype = jQuery.fn;
jQuery.extend = jQuery.fn.extend = function() {
- var options, name, src, copy, copyIsArray, clone,
+ var options, name, src, copy, copyIsArray, clone,
target = arguments[0] || {},
i = 1,
length = arguments.length,
@@ -585,10 +585,8 @@
if ( data && rnotwhite.test(data) ) {
// Inspired by code by Andrea Giammarchi
// http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.h…
- var head = document.getElementsByTagName("head")[0] || document.documentElement,
- script = document.createElement("script");
-
- script.type = "text/javascript";
+ var head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement,
+ script = document.createElement( "script" );
if ( jQuery.support.scriptEval() ) {
script.appendChild( document.createTextNode( data ) );
@@ -864,6 +862,12 @@
callbacks.shift().apply( context, args );
}
}
+ // We have to add a catch block for
+ // IE prior to 8 or else the finally
+ // block will never get executed
+ catch (e) {
+ throw e;
+ }
finally {
fired = [ context, args ];
firing = 0;
@@ -911,22 +915,22 @@
isRejected: failDeferred.isResolved,
// Get a promise for this deferred
// If obj is provided, the promise aspect is added to the object
- promise: function( obj , i /* internal */ ) {
+ promise: function( obj ) {
if ( obj == null ) {
if ( promise ) {
return promise;
}
promise = obj = {};
}
- i = promiseMethods.length;
+ var i = promiseMethods.length;
while( i-- ) {
- obj[ promiseMethods[ i ] ] = deferred[ promiseMethods[ i ] ];
+ obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ];
}
return obj;
}
} );
// Make sure only one callback list will be used
- deferred.then( failDeferred.cancel, deferred.cancel );
+ deferred.done( failDeferred.cancel ).fail( deferred.cancel );
// Unexpose cancel
delete deferred.cancel;
// Call given func if any
@@ -938,24 +942,34 @@
// Deferred helper
when: function( object ) {
- var args = arguments,
- length = args.length,
- deferred = length <= 1 && object && jQuery.isFunction( object.promise ) ?
+ var lastIndex = arguments.length,
+ deferred = lastIndex <= 1 && object && jQuery.isFunction( object.promise ) ?
object :
jQuery.Deferred(),
- promise = deferred.promise(),
- resolveArray;
-
- if ( length > 1 ) {
- resolveArray = new Array( length );
- jQuery.each( args, function( index, element ) {
- jQuery.when( element ).then( function( value ) {
- resolveArray[ index ] = arguments.length > 1 ? slice.call( arguments, 0 ) : value;
- if( ! --length ) {
- deferred.resolveWith( promise, resolveArray );
- }
- }, deferred.reject );
- } );
+ promise = deferred.promise();
+
+ if ( lastIndex > 1 ) {
+ var array = slice.call( arguments, 0 ),
+ count = lastIndex,
+ iCallback = function( index ) {
+ return function( value ) {
+ array[ index ] = arguments.length > 1 ? slice.call( arguments, 0 ) : value;
+ if ( !( --count ) ) {
+ deferred.resolveWith( promise, array );
+ }
+ };
+ };
+ while( ( lastIndex-- ) ) {
+ object = array[ lastIndex ];
+ if ( object && jQuery.isFunction( object.promise ) ) {
+ object.promise().then( iCallback(lastIndex), deferred.reject );
+ } else {
+ --count;
+ }
+ }
+ if ( !count ) {
+ deferred.resolveWith( promise, array );
+ }
} else if ( deferred !== object ) {
deferred.resolve( object );
}
@@ -1071,7 +1085,7 @@
}
// Expose jQuery to the global object
-return (window.jQuery = window.$ = jQuery);
+return jQuery;
})();
@@ -1088,7 +1102,8 @@
var all = div.getElementsByTagName("*"),
a = div.getElementsByTagName("a")[0],
select = document.createElement("select"),
- opt = select.appendChild( document.createElement("option") );
+ opt = select.appendChild( document.createElement("option") ),
+ input = div.getElementsByTagName("input")[0];
// Can't get basic test support
if ( !all || !all.length || !a ) {
@@ -1127,7 +1142,7 @@
// Make sure that if no value is specified for a checkbox
// that it defaults to "on".
// (WebKit defaults to "" instead)
- checkOn: div.getElementsByTagName("input")[0].value === "on",
+ checkOn: input.value === "on",
// Make sure that a selected-by-default option has a working selected property.
// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
@@ -1137,26 +1152,29 @@
deleteExpando: true,
optDisabled: false,
checkClone: false,
- _scriptEval: null,
noCloneEvent: true,
+ noCloneChecked: true,
boxModel: null,
inlineBlockNeedsLayout: false,
shrinkWrapBlocks: false,
reliableHiddenOffsets: true
};
+ input.checked = true;
+ jQuery.support.noCloneChecked = input.cloneNode( true ).checked;
+
// Make sure that the options inside disabled selects aren't marked as disabled
// (WebKit marks them as diabled)
select.disabled = true;
jQuery.support.optDisabled = !opt.disabled;
+ var _scriptEval = null;
jQuery.support.scriptEval = function() {
- if ( jQuery.support._scriptEval === null ) {
+ if ( _scriptEval === null ) {
var root = document.documentElement,
script = document.createElement("script"),
id = "script" + jQuery.now();
- script.type = "text/javascript";
try {
script.appendChild( document.createTextNode( "window." + id + "=1;" ) );
} catch(e) {}
@@ -1167,10 +1185,10 @@
// tag with appendChild/createTextNode
// (IE doesn't support this, fails, and uses .text instead)
if ( window[ id ] ) {
- jQuery.support._scriptEval = true;
+ _scriptEval = true;
delete window[ id ];
} else {
- jQuery.support._scriptEval = false;
+ _scriptEval = false;
}
root.removeChild( script );
@@ -1178,7 +1196,7 @@
root = script = id = null;
}
- return jQuery.support._scriptEval;
+ return _scriptEval;
};
// Test to see if it's possible to delete an expando from an element
@@ -1190,7 +1208,7 @@
jQuery.support.deleteExpando = false;
}
- if ( div.attachEvent && div.fireEvent ) {
+ if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
div.attachEvent("onclick", function click() {
// Cloning a node shouldn't copy over any
// bound event handlers (IE does this)
@@ -1321,7 +1339,7 @@
hasData: function( elem ) {
elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
- return !!elem && !jQuery.isEmptyObject(elem);
+ return !!elem && !isEmptyDataObject( elem );
},
data: function( elem, name, data, pvt /* Internal Use Only */ ) {
@@ -1361,11 +1379,18 @@
if ( !cache[ id ] ) {
cache[ id ] = {};
+
+ // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery
+ // metadata on plain JS objects when the object is serialized using
+ // JSON.stringify
+ if ( !isNode ) {
+ cache[ id ].toJSON = jQuery.noop;
+ }
}
// An object can be passed to jQuery.data instead of a key/value pair; this gets
// shallow copied over onto the existing cache
- if ( typeof name === "object" ) {
+ if ( typeof name === "object" || typeof name === "function" ) {
if ( pvt ) {
cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name);
} else {
@@ -1427,7 +1452,7 @@
// If there is no data left in the cache, we want to continue
// and let the cache object itself get destroyed
- if ( !jQuery.isEmptyObject(thisCache) ) {
+ if ( !isEmptyDataObject(thisCache) ) {
return;
}
}
@@ -1439,7 +1464,7 @@
// Don't destroy the parent cache unless the internal data object
// had been the only thing left in it
- if ( !jQuery.isEmptyObject(cache[ id ]) ) {
+ if ( !isEmptyDataObject(cache[ id ]) ) {
return;
}
}
@@ -1460,6 +1485,13 @@
// data if it existed
if ( internalCache ) {
cache[ id ] = {};
+ // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery
+ // metadata on plain JS objects when the object is serialized using
+ // JSON.stringify
+ if ( !isNode ) {
+ cache[ id ].toJSON = jQuery.noop;
+ }
+
cache[ id ][ internalKey ] = internalCache;
// Otherwise, we need to eliminate the expando on the node to avoid
@@ -1588,6 +1620,19 @@
return data;
}
+// TODO: This is a hack for 1.5 ONLY to allow objects with a single toJSON
+// property to be considered empty objects; this property always exists in
+// order to make sure JSON.stringify does not expose internal metadata
+function isEmptyDataObject( obj ) {
+ for ( var name in obj ) {
+ if ( name !== "toJSON" ) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
@@ -1888,6 +1933,11 @@
}
}
+ // Fixes Bug #2551 -- select.val() broken in IE after form.reset()
+ if ( one && !values.length && options.length ) {
+ return jQuery( options[ index ] ).val();
+ }
+
return values;
}
@@ -2081,8 +2131,7 @@
rescape = /[^\w\s.|`]/g,
fcleanup = function( nm ) {
return nm.replace(rescape, "\\$&");
- },
- eventKey = "events";
+ };
/*
* A number of helper functions used for managing events.
@@ -2098,17 +2147,22 @@
return;
}
- // For whatever reason, IE has trouble passing the window object
- // around, causing it to be cloned in the process
- if ( jQuery.isWindow( elem ) && ( elem !== window && !elem.frameElement ) ) {
- elem = window;
- }
+ // TODO :: Use a try/catch until it's safe to pull this out (likely 1.6)
+ // Minor release fix for bug #8018
+ try {
+ // For whatever reason, IE has trouble passing the window object
+ // around, causing it to be cloned in the process
+ if ( jQuery.isWindow( elem ) && ( elem !== window && !elem.frameElement ) ) {
+ elem = window;
+ }
+ }
+ catch ( e ) {}
if ( handler === false ) {
handler = returnFalse;
} else if ( !handler ) {
// Fixes bug #7229. Fix recommended by jdalton
- return;
+ return;
}
var handleObjIn, handleObj;
@@ -2132,23 +2186,10 @@
return;
}
- var events = elemData[ eventKey ],
+ var events = elemData.events,
eventHandle = elemData.handle;
- if ( typeof events === "function" ) {
- // On plain objects events is a fn that holds the the data
- // which prevents this data from being JSON serialized
- // the function does not need to be called, it just contains the data
- eventHandle = events.handle;
- events = events.events;
-
- } else if ( !events ) {
- if ( !elem.nodeType ) {
- // On plain objects, create a fn that acts as the holder
- // of the values to avoid JSON serialization of event data
- elemData[ eventKey ] = elemData = function(){};
- }
-
+ if ( !events ) {
elemData.events = events = {};
}
@@ -2249,17 +2290,12 @@
var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType,
elemData = jQuery.hasData( elem ) && jQuery._data( elem ),
- events = elemData && elemData[ eventKey ];
+ events = elemData && elemData.events;
if ( !elemData || !events ) {
return;
}
- if ( typeof events === "function" ) {
- elemData = events;
- events = events.events;
- }
-
// types is actually an event object here
if ( types && types.type ) {
handler = types.handler;
@@ -2359,10 +2395,7 @@
delete elemData.events;
delete elemData.handle;
- if ( typeof elemData === "function" ) {
- jQuery.removeData( elem, eventKey, true );
-
- } else if ( jQuery.isEmptyObject( elemData ) ) {
+ if ( jQuery.isEmptyObject( elemData ) ) {
jQuery.removeData( elem, undefined, true );
}
}
@@ -2403,7 +2436,7 @@
// points to jQuery.expando
var internalKey = jQuery.expando,
internalCache = this[ internalKey ];
- if ( internalCache && internalCache.events && internalCache.events[type] ) {
+ if ( internalCache && internalCache.events && internalCache.events[ type ] ) {
jQuery.event.trigger( event, data, internalCache.handle.elem );
}
});
@@ -2429,9 +2462,7 @@
event.currentTarget = elem;
// Trigger the event, it is assumed that "handle" is a function
- var handle = elem.nodeType ?
- jQuery._data( elem, "handle" ) :
- (jQuery._data( elem, eventKey ) || {}).handle;
+ var handle = jQuery._data( elem, "handle" );
if ( handle ) {
handle.apply( elem, data );
@@ -2509,11 +2540,7 @@
event.namespace = event.namespace || namespace_sort.join(".");
- events = jQuery._data(this, eventKey);
-
- if ( typeof events === "function" ) {
- events = events.events;
- }
+ events = jQuery._data(this, "events");
handlers = (events || {})[ event.type ];
@@ -2680,7 +2707,7 @@
// Events bubbling up the document may have been marked as prevented
// by a handler lower down the tree; reflect the correct value.
- this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false ||
+ this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false ||
src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse;
// Event type
@@ -2755,6 +2782,12 @@
// Firefox sometimes assigns relatedTarget a XUL element
// which we cannot access the parentNode property of
try {
+
+ // Chrome does something similar, the parentNode property
+ // can be accessed but is null.
+ if ( parent !== document && !parent.parentNode ) {
+ return;
+ }
// Traverse up the tree
while ( parent && parent !== this ) {
parent = parent.parentNode;
@@ -2805,8 +2838,7 @@
type = elem.type;
if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) {
- e.liveFired = undefined;
- return trigger( "submit", this, arguments );
+ trigger( "submit", this, arguments );
}
});
@@ -2815,8 +2847,7 @@
type = elem.type;
if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) {
- e.liveFired = undefined;
- return trigger( "submit", this, arguments );
+ trigger( "submit", this, arguments );
}
});
@@ -2879,7 +2910,7 @@
if ( data != null || val ) {
e.type = "change";
e.liveFired = undefined;
- return jQuery.event.trigger( e, arguments[1], elem );
+ jQuery.event.trigger( e, arguments[1], elem );
}
};
@@ -2893,7 +2924,7 @@
var elem = e.target, type = elem.type;
if ( type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select" ) {
- return testChange.call( this, e );
+ testChange.call( this, e );
}
},
@@ -2905,7 +2936,7 @@
if ( (e.keyCode === 13 && elem.nodeName.toLowerCase() !== "textarea") ||
(e.keyCode === 32 && (type === "checkbox" || type === "radio")) ||
type === "select-multiple" ) {
- return testChange.call( this, e );
+ testChange.call( this, e );
}
},
@@ -2944,8 +2975,18 @@
}
function trigger( type, elem, args ) {
- args[0].type = type;
- return jQuery.event.handle.apply( elem, args );
+ // Piggyback on a donor event to simulate a different one.
+ // Fake originalEvent to avoid donor's stopPropagation, but if the
+ // simulated event prevents default then we do the same on the donor.
+ // Don't pass args or remember liveFired; they apply to the donor event.
+ var event = jQuery.extend( {}, args[ 0 ] );
+ event.type = type;
+ event.originalEvent = {};
+ event.liveFired = undefined;
+ jQuery.event.handle.call( elem, event );
+ if ( event.isDefaultPrevented() ) {
+ args[ 0 ].preventDefault();
+ }
}
// Create "bubbling" focus and blur events
@@ -2954,8 +2995,8 @@
jQuery.event.special[ fix ] = {
setup: function() {
this.addEventListener( orig, handler, true );
- },
- teardown: function() {
+ },
+ teardown: function() {
this.removeEventListener( orig, handler, true );
}
};
@@ -3148,11 +3189,7 @@
var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret,
elems = [],
selectors = [],
- events = jQuery._data( this, eventKey );
-
- if ( typeof events === "function" ) {
- events = events.events;
- }
+ events = jQuery._data( this, "events" );
// Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911)
if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) {
@@ -3186,7 +3223,7 @@
for ( j = 0; j < live.length; j++ ) {
handleObj = live[j];
- if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) ) {
+ if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) && !close.elem.disabled ) {
elem = close.elem;
related = null;
@@ -3269,7 +3306,9 @@
done = 0,
toString = Object.prototype.toString,
hasDuplicate = false,
- baseHasDuplicate = true;
+ baseHasDuplicate = true,
+ rBackslash = /\\/g,
+ rNonWord = /\W/;
// Here we check if the JavaScript engine is using some sort of
// optimization where it does not always call our comparision
@@ -3468,7 +3507,7 @@
match.splice( 1, 1 );
if ( left.substr( left.length - 1 ) !== "\\" ) {
- match[1] = (match[1] || "").replace(/\\/g, "");
+ match[1] = (match[1] || "").replace( rBackslash, "" );
set = Expr.find[ type ]( match, context, isXML );
if ( set != null ) {
@@ -3607,13 +3646,16 @@
attrHandle: {
href: function( elem ) {
return elem.getAttribute( "href" );
+ },
+ type: function( elem ) {
+ return elem.getAttribute( "type" );
}
},
relative: {
"+": function(checkSet, part){
var isPartStr = typeof part === "string",
- isTag = isPartStr && !/\W/.test( part ),
+ isTag = isPartStr && !rNonWord.test( part ),
isPartStrNotTag = isPartStr && !isTag;
if ( isTag ) {
@@ -3641,7 +3683,7 @@
i = 0,
l = checkSet.length;
- if ( isPartStr && !/\W/.test( part ) ) {
+ if ( isPartStr && !rNonWord.test( part ) ) {
part = part.toLowerCase();
for ( ; i < l; i++ ) {
@@ -3675,7 +3717,7 @@
doneName = done++,
checkFn = dirCheck;
- if ( typeof part === "string" && !/\W/.test(part) ) {
+ if ( typeof part === "string" && !rNonWord.test( part ) ) {
part = part.toLowerCase();
nodeCheck = part;
checkFn = dirNodeCheck;
@@ -3689,7 +3731,7 @@
doneName = done++,
checkFn = dirCheck;
- if ( typeof part === "string" && !/\W/.test( part ) ) {
+ if ( typeof part === "string" && !rNonWord.test( part ) ) {
part = part.toLowerCase();
nodeCheck = part;
checkFn = dirNodeCheck;
@@ -3732,7 +3774,7 @@
},
preFilter: {
CLASS: function( match, curLoop, inplace, result, not, isXML ) {
- match = " " + match[1].replace(/\\/g, "") + " ";
+ match = " " + match[1].replace( rBackslash, "" ) + " ";
if ( isXML ) {
return match;
@@ -3755,11 +3797,11 @@
},
ID: function( match ) {
- return match[1].replace(/\\/g, "");
+ return match[1].replace( rBackslash, "" );
},
TAG: function( match, curLoop ) {
- return match[1].toLowerCase();
+ return match[1].replace( rBackslash, "" ).toLowerCase();
},
CHILD: function( match ) {
@@ -3790,14 +3832,14 @@
},
ATTR: function( match, curLoop, inplace, result, not, isXML ) {
- var name = match[1] = match[1].replace(/\\/g, "");
+ var name = match[1] = match[1].replace( rBackslash, "" );
if ( !isXML && Expr.attrMap[name] ) {
match[1] = Expr.attrMap[name];
}
// Handle if an un-quoted value was used
- match[4] = ( match[4] || match[5] || "" ).replace(/\\/g, "");
+ match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" );
if ( match[2] === "~=" ) {
match[4] = " " + match[4] + " ";
@@ -3852,7 +3894,9 @@
selected: function( elem ) {
// Accessing this property makes selected-by-default
// options in Safari work properly
- elem.parentNode.selectedIndex;
+ if ( elem.parentNode ) {
+ elem.parentNode.selectedIndex;
+ }
return elem.selected === true;
},
@@ -3874,7 +3918,9 @@
},
text: function( elem ) {
- return "text" === elem.type;
+ // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
+ // use getAttribute instead to test this case
+ return "text" === elem.getAttribute( 'type' );
},
radio: function( elem ) {
return "radio" === elem.type;
@@ -4407,7 +4453,8 @@
// and working up from there (Thanks to Andrew Dupont for the technique)
// IE 8 doesn't work on object elements
} else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
- var old = context.getAttribute( "id" ),
+ var oldContext = context,
+ old = context.getAttribute( "id" ),
nid = old || id,
hasParent = context.parentNode,
relativeHierarchySelector = /^\s*[+~]/.test( query );
@@ -4429,7 +4476,7 @@
} catch(pseudoError) {
} finally {
if ( !old ) {
- context.removeAttribute( "id" );
+ oldContext.removeAttribute( "id" );
}
}
}
@@ -4845,11 +4892,11 @@
}, function( name, fn ) {
jQuery.fn[ name ] = function( until, selector ) {
var ret = jQuery.map( this, fn, until ),
- // The variable 'args' was introduced in
- // https://github.com/jquery/jquery/commit/52a0238
- // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed.
- // http://code.google.com/p/v8/issues/detail?id=1050
- args = slice.call(arguments);
+ // The variable 'args' was introduced in
+ // https://github.com/jquery/jquery/commit/52a0238
+ // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed.
+ // http://code.google.com/p/v8/issues/detail?id=1050
+ args = slice.call(arguments);
if ( !runtil.test( name ) ) {
selector = until;
@@ -4959,7 +5006,7 @@
rtbody = /<tbody/i,
rhtml = /<|&#?\w+;/,
rnocache = /<(?:script|object|embed|option|style)/i,
- // checked="checked" or checked (html5)
+ // checked="checked" or checked
rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
wrapMap = {
option: [ 1, "<select multiple='multiple'>", "</select>" ],
@@ -5111,7 +5158,7 @@
}
if ( elem.parentNode ) {
- elem.parentNode.removeChild( elem );
+ elem.parentNode.removeChild( elem );
}
}
}
@@ -5136,7 +5183,7 @@
},
clone: function( dataAndEvents, deepDataAndEvents ) {
- dataAndEvents = dataAndEvents == null ? true : dataAndEvents;
+ dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
return this.map( function () {
@@ -5305,8 +5352,8 @@
}
var internalKey = jQuery.expando,
- oldData = jQuery.data( src ),
- curData = jQuery.data( dest, oldData );
+ oldData = jQuery.data( src ),
+ curData = jQuery.data( dest, oldData );
// Switch to use the internal data object, if it exists, for the next
// stage of data copying
@@ -5320,7 +5367,7 @@
for ( var type in events ) {
for ( var i = 0, l = events[ type ].length; i < l; i++ ) {
- jQuery.event.add( dest, type, events[ type ][ i ], events[ type ][ i ].data );
+ jQuery.event.add( dest, type + ( events[ type ][ i ].namespace ? "." : "" ) + events[ type ][ i ].namespace, events[ type ][ i ], events[ type ][ i ].data );
}
}
}
@@ -5441,6 +5488,18 @@
};
});
+function getAll( elem ) {
+ if ( "getElementsByTagName" in elem ) {
+ return elem.getElementsByTagName( "*" );
+
+ } else if ( "querySelectorAll" in elem ) {
+ return elem.querySelectorAll( "*" );
+
+ } else {
+ return [];
+ }
+}
+
jQuery.extend({
clone: function( elem, dataAndEvents, deepDataAndEvents ) {
var clone = elem.cloneNode(true),
@@ -5448,17 +5507,20 @@
destElements,
i;
- if ( !jQuery.support.noCloneEvent && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
+ if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
+ (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
// IE copies events bound via attachEvent when using cloneNode.
// Calling detachEvent on the clone will also remove the events
// from the original. In order to get around this, we use some
// proprietary methods to clear the events. Thanks to MooTools
// guys for this hotness.
+ cloneFixAttributes( elem, clone );
+
// Using Sizzle here is crazy slow, so we use getElementsByTagName
// instead
- srcElements = elem.getElementsByTagName("*");
- destElements = clone.getElementsByTagName("*");
+ srcElements = getAll( elem );
+ destElements = getAll( clone );
// Weird iteration because IE will replace the length property
// with an element if you are cloning the body and one of the
@@ -5466,30 +5528,25 @@
for ( i = 0; srcElements[i]; ++i ) {
cloneFixAttributes( srcElements[i], destElements[i] );
}
-
- cloneFixAttributes( elem, clone );
}
// Copy the events from the original to the clone
if ( dataAndEvents ) {
-
cloneCopyEvent( elem, clone );
- if ( deepDataAndEvents && "getElementsByTagName" in elem ) {
-
- srcElements = elem.getElementsByTagName("*");
- destElements = clone.getElementsByTagName("*");
-
- if ( srcElements.length ) {
- for ( i = 0; srcElements[i]; ++i ) {
- cloneCopyEvent( srcElements[i], destElements[i] );
- }
- }
- }
- }
+ if ( deepDataAndEvents ) {
+ srcElements = getAll( elem );
+ destElements = getAll( clone );
+
+ for ( i = 0; srcElements[i]; ++i ) {
+ cloneCopyEvent( srcElements[i], destElements[i] );
+ }
+ }
+ }
+
// Return the cloned set
return clone;
- },
+},
clean: function( elems, context, fragment, scripts ) {
context = context || document;
@@ -5910,7 +5967,7 @@
if ( document.documentElement.currentStyle ) {
currentStyle = function( elem, name ) {
- var left,
+ var left,
ret = elem.currentStyle && elem.currentStyle[ name ],
rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ],
style = elem.style;
@@ -5988,8 +6045,10 @@
rbracket = /\[\]$/,
rCRLF = /\r?\n/g,
rhash = /#.*$/,
- rheaders = /^(.*?):\s*(.*?)\r?$/mg, // IE leaves an \r character at EOL
+ rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
+ // #7653, #8125, #8152: local protocol detection
+ rlocalProtocol = /(?:^file|^widget|\-extension):$/,
rnoContent = /^(?:GET|HEAD)$/,
rprotocol = /^\/\//,
rquery = /\?/,
@@ -5997,7 +6056,11 @@
rselectTextarea = /^(?:select|textarea)/i,
rspacesAjax = /\s+/,
rts = /([?&])_=[^&]*/,
- rurl = /^(\w+:)\/\/([^\/?#:]+)(?::(\d+))?/,
+ rucHeaders = /(^|\-)([a-z])/g,
+ rucHeadersFunc = function( _, $1, $2 ) {
+ return $1 + $2.toUpperCase();
+ },
+ rurl = /^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,
// Keep a copy of the old load method
_load = jQuery.fn.load,
@@ -6018,7 +6081,28 @@
* 2) the catchall symbol "*" can be used
* 3) selection will start with transport dataType and THEN go to "*" if needed
*/
- transports = {};
+ transports = {},
+
+ // Document location
+ ajaxLocation,
+
+ // Document location segments
+ ajaxLocParts;
+
+// #8138, IE may throw an exception when accessing
+// a field from document.location if document.domain has been set
+try {
+ ajaxLocation = document.location.href;
+} catch( e ) {
+ // Use the href attribute of an A element
+ // since IE will modify it given document.location
+ ajaxLocation = document.createElement( "a" );
+ ajaxLocation.href = "";
+ ajaxLocation = ajaxLocation.href;
+}
+
+// Segment location into parts
+ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() );
// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
function addToPrefiltersOrTransports( structure ) {
@@ -6057,7 +6141,7 @@
}
//Base inspection function for prefilters and transports
-function inspectPrefiltersOrTransports( structure, options, originalOptions, jXHR,
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR,
dataType /* internal */, inspected /* internal */ ) {
dataType = dataType || options.dataTypes[ 0 ];
@@ -6072,16 +6156,16 @@
selection;
for(; i < length && ( executeOnly || !selection ); i++ ) {
- selection = list[ i ]( options, originalOptions, jXHR );
+ selection = list[ i ]( options, originalOptions, jqXHR );
// If we got redirected to another dataType
- // we try there if not done already
+ // we try there if executing only and not done already
if ( typeof selection === "string" ) {
- if ( inspected[ selection ] ) {
+ if ( !executeOnly || inspected[ selection ] ) {
selection = undefined;
} else {
options.dataTypes.unshift( selection );
selection = inspectPrefiltersOrTransports(
- structure, options, originalOptions, jXHR, selection, inspected );
+ structure, options, originalOptions, jqXHR, selection, inspected );
}
}
}
@@ -6089,7 +6173,7 @@
// we try the catchall dataType if not done already
if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {
selection = inspectPrefiltersOrTransports(
- structure, options, originalOptions, jXHR, "*", inspected );
+ structure, options, originalOptions, jqXHR, "*", inspected );
}
// unnecessary when only executing (prefilters)
// but it'll be ignored by the caller in that case
@@ -6121,7 +6205,7 @@
if ( jQuery.isFunction( params ) ) {
// We assume that it's the callback
callback = params;
- params = null;
+ params = undefined;
// Otherwise, build a param string
} else if ( typeof params === "object" ) {
@@ -6139,14 +6223,14 @@
dataType: "html",
data: params,
// Complete callback (responseText is used internally)
- complete: function( jXHR, status, responseText ) {
- // Store the response as specified by the jXHR object
- responseText = jXHR.responseText;
+ complete: function( jqXHR, status, responseText ) {
+ // Store the response as specified by the jqXHR object
+ responseText = jqXHR.responseText;
// If successful, inject the HTML into all the matched elements
- if ( jXHR.isResolved() ) {
+ if ( jqXHR.isResolved() ) {
// #4825: Get the actual response in case
// a dataFilter is present in ajaxSettings
- jXHR.done(function( r ) {
+ jqXHR.done(function( r ) {
responseText = r;
});
// See if a selector was specified
@@ -6165,7 +6249,7 @@
}
if ( callback ) {
- self.each( callback, [ responseText, status, jXHR ] );
+ self.each( callback, [ responseText, status, jqXHR ] );
}
}
});
@@ -6213,7 +6297,7 @@
if ( jQuery.isFunction( data ) ) {
type = type || callback;
callback = data;
- data = null;
+ data = undefined;
}
return jQuery.ajax({
@@ -6229,22 +6313,39 @@
jQuery.extend({
getScript: function( url, callback ) {
- return jQuery.get( url, null, callback, "script" );
+ return jQuery.get( url, undefined, callback, "script" );
},
getJSON: function( url, data, callback ) {
return jQuery.get( url, data, callback, "json" );
},
- ajaxSetup: function( settings ) {
- jQuery.extend( true, jQuery.ajaxSettings, settings );
- if ( settings.context ) {
- jQuery.ajaxSettings.context = settings.context;
- }
+ // Creates a full fledged settings object into target
+ // with both ajaxSettings and settings fields.
+ // If target is omitted, writes into ajaxSettings.
+ ajaxSetup: function ( target, settings ) {
+ if ( !settings ) {
+ // Only one parameter, we extend ajaxSettings
+ settings = target;
+ target = jQuery.extend( true, jQuery.ajaxSettings, settings );
+ } else {
+ // target was provided, we extend into it
+ jQuery.extend( true, target, jQuery.ajaxSettings, settings );
+ }
+ // Flatten fields we don't want deep extended
+ for( var field in { context: 1, url: 1 } ) {
+ if ( field in settings ) {
+ target[ field ] = settings[ field ];
+ } else if( field in jQuery.ajaxSettings ) {
+ target[ field ] = jQuery.ajaxSettings[ field ];
+ }
+ }
+ return target;
},
ajaxSettings: {
- url: location.href,
+ url: ajaxLocation,
+ isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
global: true,
type: "GET",
contentType: "application/x-www-form-urlencoded",
@@ -6306,9 +6407,8 @@
// Main method
ajax: function( url, options ) {
- // If options is not an object,
- // we simulate pre-1.5 signature
- if ( typeof options !== "object" ) {
+ // If url is an object, simulate pre-1.5 signature
+ if ( typeof url === "object" ) {
options = url;
url = undefined;
}
@@ -6317,19 +6417,22 @@
options = options || {};
var // Create the final options object
- s = jQuery.extend( true, {}, jQuery.ajaxSettings, options ),
- // Callbacks contexts
- // We force the original context if it exists
- // or take it from jQuery.ajaxSettings otherwise
- // (plain objects used as context get extended)
- callbackContext =
- ( s.context = ( "context" in options ? options : jQuery.ajaxSettings ).context ) || s,
- globalEventContext = callbackContext === s ? jQuery.event : jQuery( callbackContext ),
+ s = jQuery.ajaxSetup( {}, options ),
+ // Callbacks context
+ callbackContext = s.context || s,
+ // Context for global events
+ // It's the callbackContext if one was provided in the options
+ // and if it's a DOM node or a jQuery collection
+ globalEventContext = callbackContext !== s &&
+ ( callbackContext.nodeType || callbackContext instanceof jQuery ) ?
+ jQuery( callbackContext ) : jQuery.event,
// Deferreds
deferred = jQuery.Deferred(),
completeDeferred = jQuery._Deferred(),
// Status-dependent callbacks
statusCode = s.statusCode || {},
+ // ifModified key
+ ifModifiedKey,
// Headers (they are sent all at once)
requestHeaders = {},
// Response headers
@@ -6340,22 +6443,22 @@
// timeout handle
timeoutTimer,
// Cross-domain detection vars
- loc = document.location,
- protocol = loc.protocol || "http:",
parts,
- // The jXHR state
+ // The jqXHR state
state = 0,
+ // To know if global events are to be dispatched
+ fireGlobals,
// Loop variable
i,
// Fake xhr
- jXHR = {
+ jqXHR = {
readyState: 0,
// Caches the header
setRequestHeader: function( name, value ) {
- if ( state === 0 ) {
- requestHeaders[ name.toLowerCase() ] = value;
+ if ( !state ) {
+ requestHeaders[ name.toLowerCase().replace( rucHeaders, rucHeadersFunc ) ] = value;
}
return this;
},
@@ -6377,7 +6480,15 @@
}
match = responseHeaders[ key.toLowerCase() ];
}
- return match || null;
+ return match === undefined ? null : match;
+ },
+
+ // Overrides response content-type header
+ overrideMimeType: function( type ) {
+ if ( !state ) {
+ s.mimeType = type;
+ }
+ return this;
},
// Cancel the request
@@ -6394,7 +6505,7 @@
// Callback for when everything is done
// It is defined here because jslint complains if it is declared
// at the end of the function (which would be more logical and readable)
- function done( status, statusText, responses, headers) {
+ function done( status, statusText, responses, headers ) {
// Called once
if ( state === 2 ) {
@@ -6410,19 +6521,19 @@
}
// Dereference transport for early garbage collection
- // (no matter how long the jXHR object will be used)
+ // (no matter how long the jqXHR object will be used)
transport = undefined;
// Cache response headers
responseHeadersString = headers || "";
// Set readyState
- jXHR.readyState = status ? 4 : 0;
+ jqXHR.readyState = status ? 4 : 0;
var isSuccess,
success,
error,
- response = responses ? ajaxHandleResponses( s, jXHR, responses ) : undefined,
+ response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined,
lastModified,
etag;
@@ -6432,11 +6543,11 @@
// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
if ( s.ifModified ) {
- if ( ( lastModified = jXHR.getResponseHeader( "Last-Modified" ) ) ) {
- jQuery.lastModified[ s.url ] = lastModified;
+ if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) {
+ jQuery.lastModified[ ifModifiedKey ] = lastModified;
}
- if ( ( etag = jXHR.getResponseHeader( "Etag" ) ) ) {
- jQuery.etag[ s.url ] = etag;
+ if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) {
+ jQuery.etag[ ifModifiedKey ] = etag;
}
}
@@ -6463,7 +6574,7 @@
// We extract error from statusText
// then normalize statusText and status for non-aborts
error = statusText;
- if( status ) {
+ if( !statusText || status ) {
statusText = "error";
if ( status < 0 ) {
status = 0;
@@ -6472,30 +6583,30 @@
}
// Set data for the fake xhr object
- jXHR.status = status;
- jXHR.statusText = statusText;
+ jqXHR.status = status;
+ jqXHR.statusText = statusText;
// Success/Error
if ( isSuccess ) {
- deferred.resolveWith( callbackContext, [ success, statusText, jXHR ] );
+ deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
} else {
- deferred.rejectWith( callbackContext, [ jXHR, statusText, error ] );
+ deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
}
// Status-dependent callbacks
- jXHR.statusCode( statusCode );
+ jqXHR.statusCode( statusCode );
statusCode = undefined;
- if ( s.global ) {
+ if ( fireGlobals ) {
globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ),
- [ jXHR, s, isSuccess ? success : error ] );
+ [ jqXHR, s, isSuccess ? success : error ] );
}
// Complete
- completeDeferred.resolveWith( callbackContext, [ jXHR, statusText ] );
-
- if ( s.global ) {
- globalEventContext.trigger( "ajaxComplete", [ jXHR, s] );
+ completeDeferred.resolveWith( callbackContext, [ jqXHR, statusText ] );
+
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxComplete", [ jqXHR, s] );
// Handle the global AJAX counter
if ( !( --jQuery.active ) ) {
jQuery.event.trigger( "ajaxStop" );
@@ -6504,13 +6615,13 @@
}
// Attach deferreds
- deferred.promise( jXHR );
- jXHR.success = jXHR.done;
- jXHR.error = jXHR.fail;
- jXHR.complete = completeDeferred.done;
+ deferred.promise( jqXHR );
+ jqXHR.success = jqXHR.done;
+ jqXHR.error = jqXHR.fail;
+ jqXHR.complete = completeDeferred.done;
// Status-dependent callbacks
- jXHR.statusCode = function( map ) {
+ jqXHR.statusCode = function( map ) {
if ( map ) {
var tmp;
if ( state < 2 ) {
@@ -6518,8 +6629,8 @@
statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ];
}
} else {
- tmp = map[ jXHR.status ];
- jXHR.then( tmp, tmp );
+ tmp = map[ jqXHR.status ];
+ jqXHR.then( tmp, tmp );
}
}
return this;
@@ -6528,7 +6639,7 @@
// Remove hash character (#7531: and string promotion)
// Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
// We also use the url parameter if available
- s.url = ( "" + ( url || s.url ) ).replace( rhash, "" ).replace( rprotocol, protocol + "//" );
+ s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
// Extract dataTypes list
s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax );
@@ -6537,9 +6648,9 @@
if ( !s.crossDomain ) {
parts = rurl.exec( s.url.toLowerCase() );
s.crossDomain = !!( parts &&
- ( parts[ 1 ] != protocol || parts[ 2 ] != loc.hostname ||
+ ( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] ||
( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
- ( loc.port || ( protocol === "http:" ? 80 : 443 ) ) )
+ ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )
);
}
@@ -6549,7 +6660,15 @@
}
// Apply prefilters
- inspectPrefiltersOrTransports( prefilters, s, options, jXHR );
+ inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+ // If request was aborted inside a prefiler, stop there
+ if ( state === 2 ) {
+ return false;
+ }
+
+ // We can fire global events as of now if asked to
+ fireGlobals = s.global;
// Uppercase the type
s.type = s.type.toUpperCase();
@@ -6558,7 +6677,7 @@
s.hasContent = !rnoContent.test( s.type );
// Watch for a new set of requests
- if ( s.global && jQuery.active++ === 0 ) {
+ if ( fireGlobals && jQuery.active++ === 0 ) {
jQuery.event.trigger( "ajaxStart" );
}
@@ -6570,6 +6689,9 @@
s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data;
}
+ // Get ifModifiedKey before adding the anti-cache parameter
+ ifModifiedKey = s.url;
+
// Add anti-cache in url if needed
if ( s.cache === false ) {
@@ -6584,77 +6706,77 @@
// Set the correct header, if data is being sent
if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
- requestHeaders[ "content-type" ] = s.contentType;
+ requestHeaders[ "Content-Type" ] = s.contentType;
}
// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
if ( s.ifModified ) {
- if ( jQuery.lastModified[ s.url ] ) {
- requestHeaders[ "if-modified-since" ] = jQuery.lastModified[ s.url ];
- }
- if ( jQuery.etag[ s.url ] ) {
- requestHeaders[ "if-none-match" ] = jQuery.etag[ s.url ];
+ ifModifiedKey = ifModifiedKey || s.url;
+ if ( jQuery.lastModified[ ifModifiedKey ] ) {
+ requestHeaders[ "If-Modified-Since" ] = jQuery.lastModified[ ifModifiedKey ];
+ }
+ if ( jQuery.etag[ ifModifiedKey ] ) {
+ requestHeaders[ "If-None-Match" ] = jQuery.etag[ ifModifiedKey ];
}
}
// Set the Accepts header for the server, depending on the dataType
- requestHeaders.accept = s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
+ requestHeaders.Accept = s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) :
s.accepts[ "*" ];
// Check for headers option
for ( i in s.headers ) {
- requestHeaders[ i.toLowerCase() ] = s.headers[ i ];
+ jqXHR.setRequestHeader( i, s.headers[ i ] );
}
// Allow custom headers/mimetypes and early abort
- if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jXHR, s ) === false || state === 2 ) ) {
+ if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
// Abort if not done already
- done( 0, "abort" );
- // Return false
- jXHR = false;
-
+ jqXHR.abort();
+ return false;
+
+ }
+
+ // Install callbacks on deferreds
+ for ( i in { success: 1, error: 1, complete: 1 } ) {
+ jqXHR[ i ]( s[ i ] );
+ }
+
+ // Get transport
+ transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+ // If no transport, we auto-abort
+ if ( !transport ) {
+ done( -1, "No Transport" );
} else {
-
- // Install callbacks on deferreds
- for ( i in { success: 1, error: 1, complete: 1 } ) {
- jXHR[ i ]( s[ i ] );
- }
-
- // Get transport
- transport = inspectPrefiltersOrTransports( transports, s, options, jXHR );
-
- // If no transport, we auto-abort
- if ( !transport ) {
- done( -1, "No Transport" );
- } else {
- // Set state as sending
- state = jXHR.readyState = 1;
- // Send global event
- if ( s.global ) {
- globalEventContext.trigger( "ajaxSend", [ jXHR, s ] );
- }
- // Timeout
- if ( s.async && s.timeout > 0 ) {
- timeoutTimer = setTimeout( function(){
- jXHR.abort( "timeout" );
- }, s.timeout );
- }
-
- try {
- transport.send( requestHeaders, done );
- } catch (e) {
- // Propagate exception as error if not done
- if ( status < 2 ) {
- done( -1, e );
- // Simply rethrow otherwise
- } else {
- jQuery.error( e );
- }
- }
- }
- }
- return jXHR;
+ jqXHR.readyState = 1;
+ // Send global event
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+ }
+ // Timeout
+ if ( s.async && s.timeout > 0 ) {
+ timeoutTimer = setTimeout( function(){
+ jqXHR.abort( "timeout" );
+ }, s.timeout );
+ }
+
+ try {
+ state = 1;
+ transport.send( requestHeaders, done );
+ } catch (e) {
+ // Propagate exception as error if not done
+ if ( status < 2 ) {
+ done( -1, e );
+ // Simply rethrow otherwise
+ } else {
+ jQuery.error( e );
+ }
+ }
+ }
+
+ return jqXHR;
},
// Serialize an array of form elements or a set of
@@ -6673,7 +6795,7 @@
}
// If an array was passed in, assume that it is an array of form elements.
- if ( jQuery.isArray( a ) || a.jquery ) {
+ if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
// Serialize the form elements
jQuery.each( a, function() {
add( this.name, this.value );
@@ -6720,9 +6842,9 @@
// Serialize object item.
} else {
- jQuery.each( obj, function( k, v ) {
- buildParams( prefix + "[" + k + "]", v, traditional, add );
- });
+ for ( var name in obj ) {
+ buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+ }
}
} else {
@@ -6749,7 +6871,7 @@
* - finds the right dataType (mediates between content-type and expected dataType)
* - returns the corresponding response
*/
-function ajaxHandleResponses( s, jXHR, responses ) {
+function ajaxHandleResponses( s, jqXHR, responses ) {
var contents = s.contents,
dataTypes = s.dataTypes,
@@ -6762,7 +6884,7 @@
// Fill responseXXX fields
for( type in responseFields ) {
if ( type in responses ) {
- jXHR[ responseFields[type] ] = responses[ type ];
+ jqXHR[ responseFields[type] ] = responses[ type ];
}
}
@@ -6770,7 +6892,7 @@
while( dataTypes[ 0 ] === "*" ) {
dataTypes.shift();
if ( ct === undefined ) {
- ct = jXHR.getResponseHeader( "content-type" );
+ ct = s.mimeType || jqXHR.getResponseHeader( "content-type" );
}
}
@@ -6822,8 +6944,9 @@
}
var dataTypes = s.dataTypes,
- converters = s.converters,
+ converters = {},
i,
+ key,
length = dataTypes.length,
tmp,
// Current and previous dataTypes
@@ -6840,6 +6963,16 @@
// For each dataType in the chain
for( i = 1; i < length; i++ ) {
+ // Create converters map
+ // with lowercased keys
+ if ( i === 1 ) {
+ for( key in s.converters ) {
+ if( typeof key === "string" ) {
+ converters[ key.toLowerCase() ] = s.converters[ key ];
+ }
+ }
+ }
+
// Get the dataTypes
prev = current;
current = dataTypes[ i ];
@@ -6902,9 +7035,9 @@
});
// Detect, normalize options and install callbacks for jsonp requests
-jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, dataIsString /* internal */ ) {
-
- dataIsString = ( typeof s.data === "string" );
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+ var dataIsString = ( typeof s.data === "string" );
if ( s.dataTypes[ 0 ] === "jsonp" ||
originalSettings.jsonpCallback ||
@@ -6918,7 +7051,15 @@
previous = window[ jsonpCallback ],
url = s.url,
data = s.data,
- replace = "$1" + jsonpCallback + "$2";
+ replace = "$1" + jsonpCallback + "$2",
+ cleanUp = function() {
+ // Set callback back to previous value
+ window[ jsonpCallback ] = previous;
+ // Call if it was a function and we have a response
+ if ( responseContainer && jQuery.isFunction( previous ) ) {
+ window[ jsonpCallback ]( responseContainer[ 0 ] );
+ }
+ };
if ( s.jsonp !== false ) {
url = url.replace( jsre, replace );
@@ -6936,32 +7077,17 @@
s.url = url;
s.data = data;
+ // Install callback
window[ jsonpCallback ] = function( response ) {
responseContainer = [ response ];
};
- s.complete = [ function() {
-
- // Set callback back to previous value
- window[ jsonpCallback ] = previous;
-
- // Call if it was a function and we have a response
- if ( previous) {
- if ( responseContainer && jQuery.isFunction( previous ) ) {
- window[ jsonpCallback ] ( responseContainer[ 0 ] );
- }
- } else {
- // else, more memory leak avoidance
- try{
- delete window[ jsonpCallback ];
- } catch( e ) {}
- }
-
- }, s.complete ];
+ // Install cleanUp function
+ jqXHR.then( cleanUp, cleanUp );
// Use data converter to retrieve json after script execution
s.converters["script json"] = function() {
- if ( ! responseContainer ) {
+ if ( !responseContainer ) {
jQuery.error( jsonpCallback + " was not called" );
}
return responseContainer[ 0 ];
@@ -6981,10 +7107,10 @@
// Install script dataType
jQuery.ajaxSetup({
accepts: {
- script: "text/javascript, application/javascript"
+ script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
},
contents: {
- script: /javascript/
+ script: /javascript|ecmascript/
},
converters: {
"text script": function( text ) {
@@ -7012,7 +7138,7 @@
if ( s.crossDomain ) {
var script,
- head = document.getElementsByTagName( "head" )[ 0 ] || document.documentElement;
+ head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;
return {
@@ -7067,18 +7193,36 @@
-var // Next active xhr id
+var // #5280: next active xhr id and list of active xhrs' callbacks
xhrId = jQuery.now(),
-
- // active xhrs
- xhrs = {},
-
- // #5280: see below
- xhrUnloadAbortInstalled,
+ xhrCallbacks,
// XHR used to determine supports properties
testXHR;
+// #5280: Internet Explorer will keep connections alive if we don't abort on unload
+function xhrOnUnloadAbort() {
+ jQuery( window ).unload(function() {
+ // Abort all pending requests
+ for ( var key in xhrCallbacks ) {
+ xhrCallbacks[ key ]( 0, 1 );
+ }
+ });
+}
+
+// Functions to create xhrs
+function createStandardXHR() {
+ try {
+ return new window.XMLHttpRequest();
+ } catch( e ) {}
+}
+
+function createActiveXHR() {
+ try {
+ return new window.ActiveXObject( "Microsoft.XMLHTTP" );
+ } catch( e ) {}
+}
+
// Create the request object
// (This is still attached to ajaxSettings for backward compatibility)
jQuery.ajaxSettings.xhr = window.ActiveXObject ?
@@ -7089,27 +7233,13 @@
* we need a fallback.
*/
function() {
- if ( window.location.protocol !== "file:" ) {
- try {
- return new window.XMLHttpRequest();
- } catch( xhrError ) {}
- }
-
- try {
- return new window.ActiveXObject("Microsoft.XMLHTTP");
- } catch( activeError ) {}
+ return !this.isLocal && createStandardXHR() || createActiveXHR();
} :
// For all other browsers, use the standard XMLHttpRequest object
- function() {
- return new window.XMLHttpRequest();
- };
+ createStandardXHR;
// Test if we can create an xhr object
-try {
- testXHR = jQuery.ajaxSettings.xhr();
-} catch( xhrCreationException ) {}
-
-//Does this browser support XHR requests?
+testXHR = jQuery.ajaxSettings.xhr();
jQuery.support.ajax = !!testXHR;
// Does this browser support crossDomain XHR requests
@@ -7130,26 +7260,10 @@
return {
send: function( headers, complete ) {
- // #5280: we need to abort on unload or IE will keep connections alive
- if ( !xhrUnloadAbortInstalled ) {
-
- xhrUnloadAbortInstalled = 1;
-
- jQuery(window).bind( "unload", function() {
-
- // Abort all pending requests
- jQuery.each( xhrs, function( _, xhr ) {
- if ( xhr.onreadystatechange ) {
- xhr.onreadystatechange( 1 );
- }
- } );
-
- } );
- }
-
// Get a new xhr
var xhr = s.xhr(),
- handle;
+ handle,
+ i;
// Open the socket
// Passing null username, generates a login popup on Opera (#2865)
@@ -7159,19 +7273,31 @@
xhr.open( s.type, s.url, s.async );
}
+ // Apply custom fields if provided
+ if ( s.xhrFields ) {
+ for ( i in s.xhrFields ) {
+ xhr[ i ] = s.xhrFields[ i ];
+ }
+ }
+
+ // Override mime type if needed
+ if ( s.mimeType && xhr.overrideMimeType ) {
+ xhr.overrideMimeType( s.mimeType );
+ }
+
// Requested-With header
// Not set for crossDomain requests with no content
// (see why at http://trac.dojotoolkit.org/ticket/9486)
// Won't change header if already provided
- if ( !( s.crossDomain && !s.hasContent ) && !headers["x-requested-with"] ) {
- headers[ "x-requested-with" ] = "XMLHttpRequest";
+ if ( !( s.crossDomain && !s.hasContent ) && !headers["X-Requested-With"] ) {
+ headers[ "X-Requested-With" ] = "XMLHttpRequest";
}
// Need an extra try/catch for cross domain requests in Firefox 3
try {
- jQuery.each( headers, function( key, value ) {
- xhr.setRequestHeader( key, value );
- } );
+ for ( i in headers ) {
+ xhr.setRequestHeader( i, headers[ i ] );
+ }
} catch( _ ) {}
// Do send the request
@@ -7182,75 +7308,79 @@
// Listener
callback = function( _, isAbort ) {
- // Was never called and is aborted or complete
- if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
-
- // Only called once
- callback = 0;
-
- // Do not keep as active anymore
- if ( handle ) {
- xhr.onreadystatechange = jQuery.noop;
- delete xhrs[ handle ];
+ var status,
+ statusText,
+ responseHeaders,
+ responses,
+ xml;
+
+ // Firefox throws exceptions when accessing properties
+ // of an xhr when a network error occured
+ // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0…
+ try {
+
+ // Was never called and is aborted or complete
+ if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
+
+ // Only called once
+ callback = undefined;
+
+ // Do not keep as active anymore
+ if ( handle ) {
+ xhr.onreadystatechange = jQuery.noop;
+ delete xhrCallbacks[ handle ];
+ }
+
+ // If it's an abort
+ if ( isAbort ) {
+ // Abort it manually if needed
+ if ( xhr.readyState !== 4 ) {
+ xhr.abort();
+ }
+ } else {
+ status = xhr.status;
+ responseHeaders = xhr.getAllResponseHeaders();
+ responses = {};
+ xml = xhr.responseXML;
+
+ // Construct response list
+ if ( xml && xml.documentElement /* #4958 */ ) {
+ responses.xml = xml;
+ }
+ responses.text = xhr.responseText;
+
+ // Firefox throws an exception when accessing
+ // statusText for faulty cross-domain requests
+ try {
+ statusText = xhr.statusText;
+ } catch( e ) {
+ // We normalize with Webkit giving an empty statusText
+ statusText = "";
+ }
+
+ // Filter status for non standard behaviors
+
+ // If the request is local and we have data: assume a success
+ // (success with no data won't get notified, that's the best we
+ // can do given current implementations)
+ if ( !status && s.isLocal && !s.crossDomain ) {
+ status = responses.text ? 200 : 404;
+ // IE - #1450: sometimes returns 1223 when it should be 204
+ } else if ( status === 1223 ) {
+ status = 204;
+ }
+ }
}
-
- // If it's an abort
- if ( isAbort ) {
- // Abort it manually if needed
- if ( xhr.readyState !== 4 ) {
- xhr.abort();
- }
- } else {
- // Get info
- var status = xhr.status,
- statusText,
- responseHeaders = xhr.getAllResponseHeaders(),
- responses = {},
- xml = xhr.responseXML;
-
- // Construct response list
- if ( xml && xml.documentElement /* #4958 */ ) {
- responses.xml = xml;
- }
- responses.text = xhr.responseText;
-
- // Firefox throws an exception when accessing
- // statusText for faulty cross-domain requests
- try {
- statusText = xhr.statusText;
- } catch( e ) {
- // We normalize with Webkit giving an empty statusText
- statusText = "";
- }
-
- // Filter status for non standard behaviours
- status =
- // Opera returns 0 when it should be 304
- // Webkit returns 0 for failing cross-domain no matter the real status
- status === 0 ?
- (
- // Webkit, Firefox: filter out faulty cross-domain requests
- !s.crossDomain || statusText ?
- (
- // Opera: filter out real aborts #6060
- responseHeaders ?
- 304 :
- 0
- ) :
- // We assume 302 but could be anything cross-domain related
- 302
- ) :
- (
- // IE sometimes returns 1223 when it should be 204 (see #1450)
- status == 1223 ?
- 204 :
- status
- );
-
- // Call complete
- complete( status, statusText, responses, responseHeaders );
+ } catch( firefoxAccessException ) {
+ if ( !isAbort ) {
+ complete( -1, firefoxAccessException );
}
}
+
+ // Call complete if needed
+ if ( responses ) {
+ complete( status, statusText, responses, responseHeaders );
+ }
};
// if we're in sync mode or it's in cache
@@ -7259,10 +7389,15 @@
if ( !s.async || xhr.readyState === 4 ) {
callback();
} else {
- // Add to list of active xhrs
+ // Create the active xhrs callbacks list if needed
+ // and attach the unload handler
+ if ( !xhrCallbacks ) {
+ xhrCallbacks = {};
+ xhrOnUnloadAbort();
+ }
+ // Add to list of active xhrs callbacks
handle = xhrId++;
- xhrs[ handle ] = xhr;
- xhr.onreadystatechange = callback;
+ xhr.onreadystatechange = xhrCallbacks[ handle ] = callback;
}
},
@@ -7464,11 +7599,11 @@
} else {
var parts = rfxnum.exec(val),
- start = e.cur() || 0;
+ start = e.cur();
if ( parts ) {
var end = parseFloat( parts[2] ),
- unit = parts[3] || "px";
+ unit = parts[3] || ( jQuery.cssNumber[ name ] ? "" : "px" );
// We need to compute starting value
if ( unit !== "px" ) {
@@ -7615,8 +7750,12 @@
return this.elem[ this.prop ];
}
- var r = parseFloat( jQuery.css( this.elem, this.prop ) );
- return r || 0;
+ var parsed,
+ r = jQuery.css( this.elem, this.prop );
+ // Empty strings, null, undefined and "auto" are converted to 0,
+ // complex values such as "rotate(1rad)" are returned as is,
+ // simple values such as "10px" are parsed to Float.
+ return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed;
},
// Start an animation from one number to another
@@ -7627,7 +7766,7 @@
this.startTime = jQuery.now();
this.start = from;
this.end = to;
- this.unit = unit || this.unit || "px";
+ this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" );
this.now = this.start;
this.pos = this.state = 0;
@@ -8078,7 +8217,7 @@
if ( win ) {
win.scrollTo(
!i ? val : jQuery(win).scrollLeft(),
- i ? val : jQuery(win).scrollTop()
+ i ? val : jQuery(win).scrollTop()
);
} else {
@@ -8173,4 +8312,5 @@
});
+window.jQuery = window.$ = jQuery;
})(window);
--- a/static/scripts/packed/jquery.form.js Thu Feb 24 16:19:03 2011 -0500
+++ b/static/scripts/packed/jquery.form.js Thu Feb 24 17:23:16 2011 -0500
@@ -1,1 +1,11 @@
-(function(b){b.fn.ajaxSubmit=function(p){if(!this.length){a("ajaxSubmit: skipping submit process - no element selected");return this}if(typeof p=="function"){p={success:p}}p=b.extend({url:this.attr("action")||window.location.toString(),type:this.attr("method")||"GET"},p||{});var s={};this.trigger("form-pre-serialize",[this,p,s]);if(s.veto){a("ajaxSubmit: submit vetoed via form-pre-serialize trigger");return this}if(p.beforeSerialize&&p.beforeSerialize(this,p)===false){a("ajaxSubmit: submit aborted via beforeSerialize callback");return this}var i=this.formToArray(p.semantic);if(p.data){p.extraData=p.data;for(var e in p.data){if(p.data[e] instanceof Array){for(var f in p.data[e]){i.push({name:e,value:p.data[e][f]})}}else{i.push({name:e,value:p.data[e]})}}}if(p.beforeSubmit&&p.beforeSubmit(i,this,p)===false){a("ajaxSubmit: submit aborted via beforeSubmit callback");return this}this.trigger("form-submit-validate",[i,this,p,s]);if(s.veto){a("ajaxSubmit: submit vetoed via form-submit-validate trigger");return this}var d=b.param(i);if(p.type.toUpperCase()=="GET"){p.url+=(p.url.indexOf("?")>=0?"&":"?")+d;p.data=null}else{p.data=d}var r=this,h=[];if(p.resetForm){h.push(function(){r.resetForm()})}if(p.clearForm){h.push(function(){r.clearForm()})}if(!p.dataType&&p.target){var m=p.success||function(){};h.push(function(j){b(p.target).html(j).each(m,arguments)})}else{if(p.success){h.push(p.success)}}p.success=function(q,k){for(var n=0,j=h.length;n<j;n++){h[n].apply(p,[q,k,r])}};var c=b("input:file",this).fieldValue();var o=false;for(var g=0;g<c.length;g++){if(c[g]){o=true}}if(p.iframe||o){if(p.closeKeepAlive){b.get(p.closeKeepAlive,l)}else{l()}}else{b.ajax(p)}this.trigger("form-submit-notify",[this,p]);return this;function l(){var u=r[0];if(b(":input[name=submit]",u).length){alert('Error: Form elements must not be named "submit".');return}var q=b.extend({},b.ajaxSettings,p);var E=jQuery.extend(true,{},b.extend(true,{},b.ajaxSettings),q);var t="jqFormIO"+(new Date().getTime());var A=b('<iframe id="'+t+'" name="'+t+'" src="about:blank" />');var C=A[0];A.css({position:"absolute",top:"-1000px",left:"-1000px"});var D={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(){this.aborted=1;A.attr("src","about:blank")}};var B=q.global;if(B&&!b.active++){b.event.trigger("ajaxStart")}if(B){b.event.trigger("ajaxSend",[D,q])}if(E.beforeSend&&E.beforeSend(D,E)===false){E.global&&jQuery.active--;return}if(D.aborted){return}var k=0;var w=0;var j=u.clk;if(j){var v=j.name;if(v&&!j.disabled){p.extraData=p.extraData||{};p.extraData[v]=j.value;if(j.type=="image"){p.extraData[name+".x"]=u.clk_x;p.extraData[name+".y"]=u.clk_y}}}setTimeout(function(){var H=r.attr("target"),F=r.attr("action");u.setAttribute("target",t);if(u.getAttribute("method")!="POST"){u.setAttribute("method","POST")}if(u.getAttribute("action")!=q.url){u.setAttribute("action",q.url)}if(!p.skipEncodingOverride){r.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"})}if(q.timeout){setTimeout(function(){w=true;x()},q.timeout)}var G=[];try{if(p.extraData){for(var I in p.extraData){G.push(b('<input type="hidden" name="'+I+'" value="'+p.extraData[I]+'" />').appendTo(u)[0])}}A.appendTo("body");C.attachEvent?C.attachEvent("onload",x):C.addEventListener("load",x,false);u.submit()}finally{u.setAttribute("action",F);H?u.setAttribute("target",H):r.removeAttr("target");b(G).remove()}},10);var y=0;function x(){if(k++){return}C.detachEvent?C.detachEvent("onload",x):C.removeEventListener("load",x,false);var F=true;try{if(w){throw"timeout"}var G,I;I=C.contentWindow?C.contentWindow.document:C.contentDocument?C.contentDocument:C.document;if((I.body==null||I.body.innerHTML=="")&&!y){y=1;k--;setTimeout(x,100);return}D.responseText=I.body?I.body.innerHTML:null;D.responseXML=I.XMLDocument?I.XMLDocument:I;D.getResponseHeader=function(K){var J={"content-type":q.dataType};return J[K]};if(q.dataType=="json"||q.dataType=="script"){var n=I.getElementsByTagName("textarea")[0];D.responseText=n?n.value:D.responseText}else{if(q.dataType=="xml"&&!D.responseXML&&D.responseText!=null){D.responseXML=z(D.responseText)}}G=b.httpData(D,q.dataType)}catch(H){F=false;b.handleError(q,D,"error",H)}if(F){q.success(G,"success");if(B){b.event.trigger("ajaxSuccess",[D,q])}}if(B){b.event.trigger("ajaxComplete",[D,q])}if(B&&!--b.active){b.event.trigger("ajaxStop")}if(q.complete){q.complete(D,F?"success":"error")}setTimeout(function(){A.remove();D.responseXML=null},100)}function z(n,F){if(window.ActiveXObject){F=new ActiveXObject("Microsoft.XMLDOM");F.async="false";F.loadXML(n)}else{F=(new DOMParser()).parseFromString(n,"text/xml")}return(F&&F.documentElement&&F.documentElement.tagName!="parsererror")?F:null}}};b.fn.ajaxForm=function(c){return this.ajaxFormUnbind().bind("submit.form-plugin",function(){b(this).ajaxSubmit(c);return false}).each(function(){b(":submit,input:image",this).bind("click.form-plugin",function(f){var d=this.form;d.clk=this;if(this.type=="image"){if(f.offsetX!=undefined){d.clk_x=f.offsetX;d.clk_y=f.offsetY}else{if(typeof b.fn.offset=="function"){var g=b(this).offset();d.clk_x=f.pageX-g.left;d.clk_y=f.pageY-g.top}else{d.clk_x=f.pageX-this.offsetLeft;d.clk_y=f.pageY-this.offsetTop}}}setTimeout(function(){d.clk=d.clk_x=d.clk_y=null},10)})})};b.fn.ajaxFormUnbind=function(){this.unbind("submit.form-plugin");return this.each(function(){b(":submit,input:image",this).unbind("click.form-plugin")})};b.fn.formToArray=function(q){var p=[];if(this.length==0){return p}var d=this[0];var h=q?d.getElementsByTagName("*"):d.elements;if(!h){return p}for(var k=0,m=h.length;k<m;k++){var e=h[k];var f=e.name;if(!f){continue}if(q&&d.clk&&e.type=="image"){if(!e.disabled&&d.clk==e){p.push({name:f+".x",value:d.clk_x},{name:f+".y",value:d.clk_y})}continue}var r=b.fieldValue(e,true);if(r&&r.constructor==Array){for(var g=0,c=r.length;g<c;g++){p.push({name:f,value:r[g]})}}else{if(r!==null&&typeof r!="undefined"){p.push({name:f,value:r})}}}if(!q&&d.clk){var l=d.getElementsByTagName("input");for(var k=0,m=l.length;k<m;k++){var o=l[k];var f=o.name;if(f&&!o.disabled&&o.type=="image"&&d.clk==o){p.push({name:f+".x",value:d.clk_x},{name:f+".y",value:d.clk_y})}}}return p};b.fn.formSerialize=function(c){return b.param(this.formToArray(c))};b.fn.fieldSerialize=function(d){var c=[];this.each(function(){var h=this.name;if(!h){return}var f=b.fieldValue(this,d);if(f&&f.constructor==Array){for(var g=0,e=f.length;g<e;g++){c.push({name:h,value:f[g]})}}else{if(f!==null&&typeof f!="undefined"){c.push({name:this.name,value:f})}}});return b.param(c)};b.fn.fieldValue=function(h){for(var g=[],e=0,c=this.length;e<c;e++){var f=this[e];var d=b.fieldValue(f,h);if(d===null||typeof d=="undefined"||(d.constructor==Array&&!d.length)){continue}d.constructor==Array?b.merge(g,d):g.push(d)}return g};b.fieldValue=function(c,j){var e=c.name,p=c.type,q=c.tagName.toLowerCase();if(typeof j=="undefined"){j=true}if(j&&(!e||c.disabled||p=="reset"||p=="button"||(p=="checkbox"||p=="radio")&&!c.checked||(p=="submit"||p=="image")&&c.form&&c.form.clk!=c||q=="select"&&c.selectedIndex==-1)){return null}if(q=="select"){var k=c.selectedIndex;if(k<0){return null}var m=[],d=c.options;var g=(p=="select-one");var l=(g?k+1:d.length);for(var f=(g?k:0);f<l;f++){var h=d[f];if(h.selected){var o=h.value;if(!o){o=(h.attributes&&h.attributes.value&&!(h.attributes.value.specified))?h.text:h.value}if(g){return o}m.push(o)}}return m}return c.value};b.fn.clearForm=function(){return this.each(function(){b("input,select,textarea",this).clearFields()})};b.fn.clearFields=b.fn.clearInputs=function(){return this.each(function(){var d=this.type,c=this.tagName.toLowerCase();if(d=="text"||d=="password"||c=="textarea"){this.value=""}else{if(d=="checkbox"||d=="radio"){this.checked=false}else{if(c=="select"){this.selectedIndex=-1}}}})};b.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=="function"||(typeof this.reset=="object"&&!this.reset.nodeType)){this.reset()}})};b.fn.enable=function(c){if(c==undefined){c=true}return this.each(function(){this.disabled=!c})};b.fn.selected=function(c){if(c==undefined){c=true}return this.each(function(){var d=this.type;if(d=="checkbox"||d=="radio"){this.checked=c}else{if(this.tagName.toLowerCase()=="option"){var e=b(this).parent("select");if(c&&e[0]&&e[0].type=="select-one"){e.find("option").selected(false)}this.selected=c}}})};function a(){if(b.fn.ajaxSubmit.debug&&window.console&&window.console.log){window.console.log("[jquery.form] "+Array.prototype.join.call(arguments,""))}}})(jQuery);
\ No newline at end of file
+/*
+ * jQuery Form Plugin
+ * version: 2.63 (29-JAN-2011)
+ * @requires jQuery v1.3.2 or later
+ *
+ * Examples and documentation at: http://malsup.com/jquery/form/
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ */
+(function(b){b.fn.ajaxSubmit=function(t){if(!this.length){a("ajaxSubmit: skipping submit process - no element selected");return this}if(typeof t=="function"){t={success:t}}var h=this.attr("action");var d=(typeof h==="string")?b.trim(h):"";if(d){d=(d.match(/^([^#]+)/)||[])[1]}d=d||window.location.href||"";t=b.extend(true,{url:d,type:this[0].getAttribute("method")||"GET",iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},t);var u={};this.trigger("form-pre-serialize",[this,t,u]);if(u.veto){a("ajaxSubmit: submit vetoed via form-pre-serialize trigger");return this}if(t.beforeSerialize&&t.beforeSerialize(this,t)===false){a("ajaxSubmit: submit aborted via beforeSerialize callback");return this}var f,p,m=this.formToArray(t.semantic);if(t.data){t.extraData=t.data;for(f in t.data){if(t.data[f] instanceof Array){for(var i in t.data[f]){m.push({name:f,value:t.data[f][i]})}}else{p=t.data[f];p=b.isFunction(p)?p():p;m.push({name:f,value:p})}}}if(t.beforeSubmit&&t.beforeSubmit(m,this,t)===false){a("ajaxSubmit: submit aborted via beforeSubmit callback");return this}this.trigger("form-submit-validate",[m,this,t,u]);if(u.veto){a("ajaxSubmit: submit vetoed via form-submit-validate trigger");return this}var c=b.param(m);if(t.type.toUpperCase()=="GET"){t.url+=(t.url.indexOf("?")>=0?"&":"?")+c;t.data=null}else{t.data=c}var s=this,l=[];if(t.resetForm){l.push(function(){s.resetForm()})}if(t.clearForm){l.push(function(){s.clearForm()})}if(!t.dataType&&t.target){var r=t.success||function(){};l.push(function(n){var k=t.replaceTarget?"replaceWith":"html";b(t.target)[k](n).each(r,arguments)})}else{if(t.success){l.push(t.success)}}t.success=function(w,n,x){var v=t.context||t;for(var q=0,k=l.length;q<k;q++){l[q].apply(v,[w,n,x||s,s])}};var g=b("input:file",this).length>0;var e="multipart/form-data";var j=(s.attr("enctype")==e||s.attr("encoding")==e);if(t.iframe!==false&&(g||t.iframe||j)){if(t.closeKeepAlive){b.get(t.closeKeepAlive,o)}else{o()}}else{b.ajax(t)}this.trigger("form-submit-notify",[this,t]);return this;function o(){var v=s[0];if(b(":input[name=submit],:input[id=submit]",v).length){alert('Error: Form elements must not have name or id of "submit".');return}var B=b.extend(true,{},b.ajaxSettings,t);B.context=B.context||B;var E="jqFormIO"+(new Date().getTime()),z="_"+E;var w=b('<iframe id="'+E+'" name="'+E+'" src="'+B.iframeSrc+'" />');var A=w[0];w.css({position:"absolute",top:"-1000px",left:"-1000px"});var x={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(){this.aborted=1;w.attr("src",B.iframeSrc)}};var I=B.global;if(I&&!b.active++){b.event.trigger("ajaxStart")}if(I){b.event.trigger("ajaxSend",[x,B])}if(B.beforeSend&&B.beforeSend.call(B.context,x,B)===false){if(B.global){b.active--}return}if(x.aborted){return}var H=0;var y=v.clk;if(y){var F=y.name;if(F&&!y.disabled){B.extraData=B.extraData||{};B.extraData[F]=y.value;if(y.type=="image"){B.extraData[F+".x"]=v.clk_x;B.extraData[F+".y"]=v.clk_y}}}function G(){var O=s.attr("target"),M=s.attr("action");v.setAttribute("target",E);if(v.getAttribute("method")!="POST"){v.setAttribute("method","POST")}if(v.getAttribute("action")!=B.url){v.setAttribute("action",B.url)}if(!B.skipEncodingOverride){s.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"})}if(B.timeout){setTimeout(function(){H=true;D()},B.timeout)}var N=[];try{if(B.extraData){for(var P in B.extraData){N.push(b('<input type="hidden" name="'+P+'" value="'+B.extraData[P]+'" />').appendTo(v)[0])}}w.appendTo("body");A.attachEvent?A.attachEvent("onload",D):A.addEventListener("load",D,false);v.submit()}finally{v.setAttribute("action",M);if(O){v.setAttribute("target",O)}else{s.removeAttr("target")}b(N).remove()}}if(B.forceSync){G()}else{setTimeout(G,10)}var K,L,J=50;function D(){L=A.contentWindow?A.contentWindow.document:A.contentDocument?A.contentDocument:A.document;if(!L||L.location.href==B.iframeSrc){return}A.detachEvent?A.detachEvent("onload",D):A.removeEventListener("load",D,false);var N=true;try{if(H){throw"timeout"}var R=B.dataType=="xml"||L.XMLDocument||b.isXMLDoc(L);a("isXml="+R);if(!R&&window.opera&&(L.body==null||L.body.innerHTML=="")){if(--J){a("requeing onLoad callback, DOM not available");setTimeout(D,250);return}}x.responseText=L.body?L.body.innerHTML:L.documentElement?L.documentElement.innerHTML:null;x.responseXML=L.XMLDocument?L.XMLDocument:L;x.getResponseHeader=function(T){var S={"content-type":B.dataType};return S[T]};var Q=/(json|script)/.test(B.dataType);if(Q||B.textarea){var M=L.getElementsByTagName("textarea")[0];if(M){x.responseText=M.value}else{if(Q){var P=L.getElementsByTagName("pre")[0];var n=L.getElementsByTagName("body")[0];if(P){x.responseText=P.textContent}else{if(n){x.responseText=n.innerHTML}}}}}else{if(B.dataType=="xml"&&!x.responseXML&&x.responseText!=null){x.responseXML=C(x.responseText)}}K=k(x,B.dataType,B)}catch(O){a("error caught:",O);N=false;x.error=O;B.error.call(B.context,x,"error",O);I&&b.event.trigger("ajaxError",[x,B,O])}if(x.aborted){a("upload aborted");N=false}if(N){B.success.call(B.context,K,"success",x);I&&b.event.trigger("ajaxSuccess",[x,B])}I&&b.event.trigger("ajaxComplete",[x,B]);if(I&&!--b.active){b.event.trigger("ajaxStop")}B.complete&&B.complete.call(B.context,x,N?"success":"error");setTimeout(function(){w.removeData("form-plugin-onload");w.remove();x.responseXML=null},100)}var C=b.parseXML||function(n,M){if(window.ActiveXObject){M=new ActiveXObject("Microsoft.XMLDOM");M.async="false";M.loadXML(n)}else{M=(new DOMParser()).parseFromString(n,"text/xml")}return(M&&M.documentElement&&M.documentElement.nodeName!="parsererror")?M:null};var q=b.parseJSON||function(n){return window["eval"]("("+n+")")};var k=function(Q,O,N){var M=Q.getResponseHeader("content-type")||"",n=O==="xml"||!O&&M.indexOf("xml")>=0,P=n?Q.responseXML:Q.responseText;if(n&&P.documentElement.nodeName==="parsererror"){b.error&&b.error("parsererror")}if(N&&N.dataFilter){P=N.dataFilter(P,O)}if(typeof P==="string"){if(O==="json"||!O&&M.indexOf("json")>=0){P=q(P)}else{if(O==="script"||!O&&M.indexOf("javascript")>=0){b.globalEval(P)}}}return P}}};b.fn.ajaxForm=function(c){if(this.length===0){var d={s:this.selector,c:this.context};if(!b.isReady&&d.s){a("DOM not ready, queuing ajaxForm");b(function(){b(d.s,d.c).ajaxForm(c)});return this}a("terminating; zero elements found by selector"+(b.isReady?"":" (DOM not ready)"));return this}return this.ajaxFormUnbind().bind("submit.form-plugin",function(f){if(!f.isDefaultPrevented()){f.preventDefault();b(this).ajaxSubmit(c)}}).bind("click.form-plugin",function(j){var i=j.target;var g=b(i);if(!(g.is(":submit,input:image"))){var f=g.closest(":submit");if(f.length==0){return}i=f[0]}var h=this;h.clk=i;if(i.type=="image"){if(j.offsetX!=undefined){h.clk_x=j.offsetX;h.clk_y=j.offsetY}else{if(typeof b.fn.offset=="function"){var k=g.offset();h.clk_x=j.pageX-k.left;h.clk_y=j.pageY-k.top}else{h.clk_x=j.pageX-i.offsetLeft;h.clk_y=j.pageY-i.offsetTop}}}setTimeout(function(){h.clk=h.clk_x=h.clk_y=null},100)})};b.fn.ajaxFormUnbind=function(){return this.unbind("submit.form-plugin click.form-plugin")};b.fn.formToArray=function(q){var p=[];if(this.length===0){return p}var d=this[0];var g=q?d.getElementsByTagName("*"):d.elements;if(!g){return p}var k,h,f,r,e,m,c;for(k=0,m=g.length;k<m;k++){e=g[k];f=e.name;if(!f){continue}if(q&&d.clk&&e.type=="image"){if(!e.disabled&&d.clk==e){p.push({name:f,value:b(e).val()});p.push({name:f+".x",value:d.clk_x},{name:f+".y",value:d.clk_y})}continue}r=b.fieldValue(e,true);if(r&&r.constructor==Array){for(h=0,c=r.length;h<c;h++){p.push({name:f,value:r[h]})}}else{if(r!==null&&typeof r!="undefined"){p.push({name:f,value:r})}}}if(!q&&d.clk){var l=b(d.clk),o=l[0];f=o.name;if(f&&!o.disabled&&o.type=="image"){p.push({name:f,value:l.val()});p.push({name:f+".x",value:d.clk_x},{name:f+".y",value:d.clk_y})}}return p};b.fn.formSerialize=function(c){return b.param(this.formToArray(c))};b.fn.fieldSerialize=function(d){var c=[];this.each(function(){var h=this.name;if(!h){return}var f=b.fieldValue(this,d);if(f&&f.constructor==Array){for(var g=0,e=f.length;g<e;g++){c.push({name:h,value:f[g]})}}else{if(f!==null&&typeof f!="undefined"){c.push({name:this.name,value:f})}}});return b.param(c)};b.fn.fieldValue=function(h){for(var g=[],e=0,c=this.length;e<c;e++){var f=this[e];var d=b.fieldValue(f,h);if(d===null||typeof d=="undefined"||(d.constructor==Array&&!d.length)){continue}d.constructor==Array?b.merge(g,d):g.push(d)}return g};b.fieldValue=function(c,j){var e=c.name,p=c.type,q=c.tagName.toLowerCase();if(j===undefined){j=true}if(j&&(!e||c.disabled||p=="reset"||p=="button"||(p=="checkbox"||p=="radio")&&!c.checked||(p=="submit"||p=="image")&&c.form&&c.form.clk!=c||q=="select"&&c.selectedIndex==-1)){return null}if(q=="select"){var k=c.selectedIndex;if(k<0){return null}var m=[],d=c.options;var g=(p=="select-one");var l=(g?k+1:d.length);for(var f=(g?k:0);f<l;f++){var h=d[f];if(h.selected){var o=h.value;if(!o){o=(h.attributes&&h.attributes.value&&!(h.attributes.value.specified))?h.text:h.value}if(g){return o}m.push(o)}}return m}return b(c).val()};b.fn.clearForm=function(){return this.each(function(){b("input,select,textarea",this).clearFields()})};b.fn.clearFields=b.fn.clearInputs=function(){return this.each(function(){var d=this.type,c=this.tagName.toLowerCase();if(d=="text"||d=="password"||c=="textarea"){this.value=""}else{if(d=="checkbox"||d=="radio"){this.checked=false}else{if(c=="select"){this.selectedIndex=-1}}}})};b.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=="function"||(typeof this.reset=="object"&&!this.reset.nodeType)){this.reset()}})};b.fn.enable=function(c){if(c===undefined){c=true}return this.each(function(){this.disabled=!c})};b.fn.selected=function(c){if(c===undefined){c=true}return this.each(function(){var d=this.type;if(d=="checkbox"||d=="radio"){this.checked=c}else{if(this.tagName.toLowerCase()=="option"){var e=b(this).parent("select");if(c&&e[0]&&e[0].type=="select-one"){e.find("option").selected(false)}this.selected=c}}})};function a(){if(b.fn.ajaxSubmit.debug){var c="[jquery.form] "+Array.prototype.join.call(arguments,"");if(window.console&&window.console.log){window.console.log(c)}else{if(window.opera&&window.opera.postError){window.opera.postError(c)}}}}})(jQuery);
\ No newline at end of file
--- a/static/scripts/packed/jquery.js Thu Feb 24 16:19:03 2011 -0500
+++ b/static/scripts/packed/jquery.js Thu Feb 24 17:23:16 2011 -0500
@@ -1,8 +1,23 @@
-(function(aP,E){var ae=aP.document;var a=(function(){var bf=function(bA,bB){return new bf.fn.init(bA,bB,bd)},bv=aP.jQuery,bh=aP.$,bd,bz=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,bn=/\S/,bj=/^\s+/,be=/\s+$/,bi=/\d/,bb=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bo=/^[\],:{}\s]*$/,bx=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bq=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bk=/(?:^|:|,)(?:\s*\[)+/g,a9=/(webkit)[ \/]([\w.]+)/,bs=/(opera)(?:.*version)?[ \/]([\w.]+)/,br=/(msie) ([\w.]+)/,bt=/(mozilla)(?:.*? rv:([\w.]+))?/,by=navigator.userAgent,bw,bu=false,bc,a4="then done fail isResolved isRejected promise".split(" "),a5,bm=Object.prototype.toString,bg=Object.prototype.hasOwnProperty,ba=Array.prototype.push,bl=Array.prototype.slice,bp=String.prototype.trim,a6=Array.prototype.indexOf,a8={};bf.fn=bf.prototype={constructor:bf,init:function(bA,bE,bD){var bC,bF,bB,bG;if(!bA){return this}if(bA.nodeType){this.context=this[0]=bA;this.length=1;return this}if(bA==="body"&&!bE&&ae.body){this.context=ae;this[0]=ae.body;this.selector="body";this.length=1;return this}if(typeof bA==="string"){bC=bz.exec(bA);if(bC&&(bC[1]||!bE)){if(bC[1]){bE=bE instanceof bf?bE[0]:bE;bG=(bE?bE.ownerDocument||bE:ae);bB=bb.exec(bA);if(bB){if(bf.isPlainObject(bE)){bA=[ae.createElement(bB[1])];bf.fn.attr.call(bA,bE,true)}else{bA=[bG.createElement(bB[1])]}}else{bB=bf.buildFragment([bC[1]],[bG]);bA=(bB.cacheable?bf.clone(bB.fragment):bB.fragment).childNodes}return bf.merge(this,bA)}else{bF=ae.getElementById(bC[2]);if(bF&&bF.parentNode){if(bF.id!==bC[2]){return bD.find(bA)}this.length=1;this[0]=bF}this.context=ae;this.selector=bA;return this}}else{if(!bE||bE.jquery){return(bE||bD).find(bA)}else{return this.constructor(bE).find(bA)}}}else{if(bf.isFunction(bA)){return bD.ready(bA)}}if(bA.selector!==E){this.selector=bA.selector;this.context=bA.context}return bf.makeArray(bA,this)},selector:"",jquery:"1.5",length:0,size:function(){return this.length},toArray:function(){return bl.call(this,0)},get:function(bA){return bA==null?this.toArray():(bA<0?this[this.length+bA]:this[bA])},pushStack:function(bB,bD,bA){var bC=this.constructor();if(bf.isArray(bB)){ba.apply(bC,bB)}else{bf.merge(bC,bB)}bC.prevObject=this;bC.context=this.context;if(bD==="find"){bC.selector=this.selector+(this.selector?" ":"")+bA}else{if(bD){bC.selector=this.selector+"."+bD+"("+bA+")"}}return bC},each:function(bB,bA){return bf.each(this,bB,bA)},ready:function(bA){bf.bindReady();bc.done(bA);return this},eq:function(bA){return bA===-1?this.slice(bA):this.slice(bA,+bA+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bl.apply(this,arguments),"slice",bl.call(arguments).join(","))},map:function(bA){return this.pushStack(bf.map(this,function(bC,bB){return bA.call(bC,bB,bC)}))},end:function(){return this.prevObject||this.constructor(null)},push:ba,sort:[].sort,splice:[].splice};bf.fn.init.prototype=bf.fn;bf.extend=bf.fn.extend=function(){var bJ,bC,bA,bB,bG,bH,bF=arguments[0]||{},bE=1,bD=arguments.length,bI=false;if(typeof bF==="boolean"){bI=bF;bF=arguments[1]||{};bE=2}if(typeof bF!=="object"&&!bf.isFunction(bF)){bF={}}if(bD===bE){bF=this;--bE}for(;bE<bD;bE++){if((bJ=arguments[bE])!=null){for(bC in bJ){bA=bF[bC];bB=bJ[bC];if(bF===bB){continue}if(bI&&bB&&(bf.isPlainObject(bB)||(bG=bf.isArray(bB)))){if(bG){bG=false;bH=bA&&bf.isArray(bA)?bA:[]}else{bH=bA&&bf.isPlainObject(bA)?bA:{}}bF[bC]=bf.extend(bI,bH,bB)}else{if(bB!==E){bF[bC]=bB}}}}}return bF};bf.extend({noConflict:function(bA){aP.$=bh;if(bA){aP.jQuery=bv}return bf},isReady:false,readyWait:1,ready:function(bA){if(bA===true){bf.readyWait--}if(!bf.readyWait||(bA!==true&&!bf.isReady)){if(!ae.body){return setTimeout(bf.ready,1)}bf.isReady=true;if(bA!==true&&--bf.readyWait>0){return}bc.resolveWith(ae,[bf]);if(bf.fn.trigger){bf(ae).trigger("ready").unbind("ready")}}},bindReady:function(){if(bu){return}bu=true;if(ae.readyState==="complete"){return setTimeout(bf.ready,1)}if(ae.addEventListener){ae.addEventListener("DOMContentLoaded",a5,false);aP.addEventListener("load",bf.ready,false)}else{if(ae.attachEvent){ae.attachEvent("onreadystatechange",a5);aP.attachEvent("onload",bf.ready);var bA=false;try{bA=aP.frameElement==null}catch(bB){}if(ae.documentElement.doScroll&&bA){a7()}}}},isFunction:function(bA){return bf.type(bA)==="function"},isArray:Array.isArray||function(bA){return bf.type(bA)==="array"},isWindow:function(bA){return bA&&typeof bA==="object"&&"setInterval" in bA},isNaN:function(bA){return bA==null||!bi.test(bA)||isNaN(bA)},type:function(bA){return bA==null?String(bA):a8[bm.call(bA)]||"object"},isPlainObject:function(bB){if(!bB||bf.type(bB)!=="object"||bB.nodeType||bf.isWindow(bB)){return false}if(bB.constructor&&!bg.call(bB,"constructor")&&!bg.call(bB.constructor.prototype,"isPrototypeOf")){return false}var bA;for(bA in bB){}return bA===E||bg.call(bB,bA)},isEmptyObject:function(bB){for(var bA in bB){return false}return true},error:function(bA){throw bA},parseJSON:function(bA){if(typeof bA!=="string"||!bA){return null}bA=bf.trim(bA);if(bo.test(bA.replace(bx,"@").replace(bq,"]").replace(bk,""))){return aP.JSON&&aP.JSON.parse?aP.JSON.parse(bA):(new Function("return "+bA))()}else{bf.error("Invalid JSON: "+bA)}},parseXML:function(bC,bA,bB){if(aP.DOMParser){bB=new DOMParser();bA=bB.parseFromString(bC,"text/xml")}else{bA=new ActiveXObject("Microsoft.XMLDOM");bA.async="false";bA.loadXML(bC)}bB=bA.documentElement;if(!bB||!bB.nodeName||bB.nodeName==="parsererror"){bf.error("Invalid XML: "+bC)}return bA},noop:function(){},globalEval:function(bC){if(bC&&bn.test(bC)){var bB=ae.getElementsByTagName("head")[0]||ae.documentElement,bA=ae.createElement("script");bA.type="text/javascript";if(bf.support.scriptEval()){bA.appendChild(ae.createTextNode(bC))}else{bA.text=bC}bB.insertBefore(bA,bB.firstChild);bB.removeChild(bA)}},nodeName:function(bB,bA){return bB.nodeName&&bB.nodeName.toUpperCase()===bA.toUpperCase()},each:function(bD,bH,bC){var bB,bE=0,bF=bD.length,bA=bF===E||bf.isFunction(bD);if(bC){if(bA){for(bB in bD){if(bH.apply(bD[bB],bC)===false){break}}}else{for(;bE<bF;){if(bH.apply(bD[bE++],bC)===false){break}}}}else{if(bA){for(bB in bD){if(bH.call(bD[bB],bB,bD[bB])===false){break}}}else{for(var bG=bD[0];bE<bF&&bH.call(bG,bE,bG)!==false;bG=bD[++bE]){}}}return bD},trim:bp?function(bA){return bA==null?"":bp.call(bA)}:function(bA){return bA==null?"":bA.toString().replace(bj,"").replace(be,"")},makeArray:function(bD,bB){var bA=bB||[];if(bD!=null){var bC=bf.type(bD);if(bD.length==null||bC==="string"||bC==="function"||bC==="regexp"||bf.isWindow(bD)){ba.call(bA,bD)}else{bf.merge(bA,bD)}}return bA},inArray:function(bC,bD){if(bD.indexOf){return bD.indexOf(bC)}for(var bA=0,bB=bD.length;bA<bB;bA++){if(bD[bA]===bC){return bA}}return -1},merge:function(bE,bC){var bD=bE.length,bB=0;if(typeof bC.length==="number"){for(var bA=bC.length;bB<bA;bB++){bE[bD++]=bC[bB]}}else{while(bC[bB]!==E){bE[bD++]=bC[bB++]}}bE.length=bD;return bE},grep:function(bB,bG,bA){var bC=[],bF;bA=!!bA;for(var bD=0,bE=bB.length;bD<bE;bD++){bF=!!bG(bB[bD],bD);if(bA!==bF){bC.push(bB[bD])}}return bC},map:function(bB,bG,bA){var bC=[],bF;for(var bD=0,bE=bB.length;bD<bE;bD++){bF=bG(bB[bD],bD,bA);if(bF!=null){bC[bC.length]=bF}}return bC.concat.apply([],bC)},guid:1,proxy:function(bC,bB,bA){if(arguments.length===2){if(typeof bB==="string"){bA=bC;bC=bA[bB];bB=E}else{if(bB&&!bf.isFunction(bB)){bA=bB;bB=E}}}if(!bB&&bC){bB=function(){return bC.apply(bA||this,arguments)}}if(bC){bB.guid=bC.guid=bC.guid||bB.guid||bf.guid++}return bB},access:function(bA,bI,bG,bC,bF,bH){var bB=bA.length;if(typeof bI==="object"){for(var bD in bI){bf.access(bA,bD,bI[bD],bC,bF,bG)}return bA}if(bG!==E){bC=!bH&&bC&&bf.isFunction(bG);for(var bE=0;bE<bB;bE++){bF(bA[bE],bI,bC?bG.call(bA[bE],bE,bF(bA[bE],bI)):bG,bH)}return bA}return bB?bF(bA[0],bI):E},now:function(){return(new Date()).getTime()},_Deferred:function(){var bD=[],bE,bB,bC,bA={done:function(){if(!bC){var bG=arguments,bH,bK,bJ,bI,bF;if(bE){bF=bE;bE=0}for(bH=0,bK=bG.length;bH<bK;bH++){bJ=bG[bH];bI=bf.type(bJ);if(bI==="array"){bA.done.apply(bA,bJ)}else{if(bI==="function"){bD.push(bJ)}}}if(bF){bA.resolveWith(bF[0],bF[1])}}return this},resolveWith:function(bG,bF){if(!bC&&!bE&&!bB){bB=1;try{while(bD[0]){bD.shift().apply(bG,bF)}}finally{bE=[bG,bF];bB=0}}return this},resolve:function(){bA.resolveWith(bf.isFunction(this.promise)?this.promise():this,arguments);return this},isResolved:function(){return !!(bB||bE)},cancel:function(){bC=1;bD=[];return this}};return bA},Deferred:function(bB){var bA=bf._Deferred(),bD=bf._Deferred(),bC;bf.extend(bA,{then:function(bF,bE){bA.done(bF).fail(bE);return this},fail:bD.done,rejectWith:bD.resolveWith,reject:bD.resolve,isRejected:bD.isResolved,promise:function(bF,bE){if(bF==null){if(bC){return bC}bC=bF={}}bE=a4.length;while(bE--){bF[a4[bE]]=bA[a4[bE]]}return bF}});bA.then(bD.cancel,bA.cancel);delete bA.cancel;if(bB){bB.call(bA,bA)}return bA},when:function(bD){var bC=arguments,bE=bC.length,bB=bE<=1&&bD&&bf.isFunction(bD.promise)?bD:bf.Deferred(),bF=bB.promise(),bA;if(bE>1){bA=new Array(bE);bf.each(bC,function(bG,bH){bf.when(bH).then(function(bI){bA[bG]=arguments.length>1?bl.call(arguments,0):bI;if(!--bE){bB.resolveWith(bF,bA)}},bB.reject)})}else{if(bB!==bD){bB.resolve(bD)}}return bF},uaMatch:function(bB){bB=bB.toLowerCase();var bA=a9.exec(bB)||bs.exec(bB)||br.exec(bB)||bB.indexOf("compatible")<0&&bt.exec(bB)||[];return{browser:bA[1]||"",version:bA[2]||"0"}},sub:function(){function bB(bD,bE){return new bB.fn.init(bD,bE)}bf.extend(true,bB,this);bB.superclass=this;bB.fn=bB.prototype=this();bB.fn.constructor=bB;bB.subclass=this.subclass;bB.fn.init=function bC(bD,bE){if(bE&&bE instanceof bf&&!(bE instanceof bB)){bE=bB(bE)}return bf.fn.init.call(this,bD,bE,bA)};bB.fn.init.prototype=bB.fn;var bA=bB(ae);return bB},browser:{}});bc=bf._Deferred();bf.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(bB,bA){a8["[object "+bA+"]"]=bA.toLowerCase()});bw=bf.uaMatch(by);if(bw.browser){bf.browser[bw.browser]=true;bf.browser.version=bw.version}if(bf.browser.webkit){bf.browser.safari=true}if(a6){bf.inArray=function(bA,bB){return a6.call(bB,bA)}}if(bn.test("\xA0")){bj=/^[\s\xA0]+/;be=/[\s\xA0]+$/}bd=bf(ae);if(ae.addEventListener){a5=function(){ae.removeEventListener("DOMContentLoaded",a5,false);bf.ready()}}else{if(ae.attachEvent){a5=function(){if(ae.readyState==="complete"){ae.detachEvent("onreadystatechange",a5);bf.ready()}}}}function a7(){if(bf.isReady){return}try{ae.documentElement.doScroll("left")}catch(bA){setTimeout(a7,1);return}bf.ready()}return(aP.jQuery=aP.$=bf)})();(function(){a.support={};var a4=ae.createElement("div");a4.style.display="none";a4.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var bb=a4.getElementsByTagName("*"),a9=a4.getElementsByTagName("a")[0],ba=ae.createElement("select"),a5=ba.appendChild(ae.createElement("option"));if(!bb||!bb.length||!a9){return}a.support={leadingWhitespace:a4.firstChild.nodeType===3,tbody:!a4.getElementsByTagName("tbody").length,htmlSerialize:!!a4.getElementsByTagName("link").length,style:/red/.test(a9.getAttribute("style")),hrefNormalized:a9.getAttribute("href")==="/a",opacity:/^0.55$/.test(a9.style.opacity),cssFloat:!!a9.style.cssFloat,checkOn:a4.getElementsByTagName("input")[0].value==="on",optSelected:a5.selected,deleteExpando:true,optDisabled:false,checkClone:false,_scriptEval:null,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};ba.disabled=true;a.support.optDisabled=!a5.disabled;a.support.scriptEval=function(){if(a.support._scriptEval===null){var bd=ae.documentElement,be=ae.createElement("script"),bg="script"+a.now();be.type="text/javascript";try{be.appendChild(ae.createTextNode("window."+bg+"=1;"))}catch(bf){}bd.insertBefore(be,bd.firstChild);if(aP[bg]){a.support._scriptEval=true;delete aP[bg]}else{a.support._scriptEval=false}bd.removeChild(be);bd=be=bg=null}return a.support._scriptEval};try{delete a4.test}catch(a6){a.support.deleteExpando=false}if(a4.attachEvent&&a4.fireEvent){a4.attachEvent("onclick",function bc(){a.support.noCloneEvent=false;a4.detachEvent("onclick",bc)});a4.cloneNode(true).fireEvent("onclick")}a4=ae.createElement("div");a4.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var a7=ae.createDocumentFragment();a7.appendChild(a4.firstChild);a.support.checkClone=a7.cloneNode(true).cloneNode(true).lastChild.checked;a(function(){var bf=ae.createElement("div"),bd=ae.getElementsByTagName("body")[0];if(!bd){return}bf.style.width=bf.style.paddingLeft="1px";bd.appendChild(bf);a.boxModel=a.support.boxModel=bf.offsetWidth===2;if("zoom" in bf.style){bf.style.display="inline";bf.style.zoom=1;a.support.inlineBlockNeedsLayout=bf.offsetWidth===2;bf.style.display="";bf.innerHTML="<div style='width:4px;'></div>";a.support.shrinkWrapBlocks=bf.offsetWidth!==2}bf.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var be=bf.getElementsByTagName("td");a.support.reliableHiddenOffsets=be[0].offsetHeight===0;be[0].style.display="";be[1].style.display="none";a.support.reliableHiddenOffsets=a.support.reliableHiddenOffsets&&be[0].offsetHeight===0;bf.innerHTML="";bd.removeChild(bf).style.display="none";bf=be=null});var a8=function(bd){var bf=ae.createElement("div");bd="on"+bd;if(!bf.attachEvent){return true}var be=(bd in bf);if(!be){bf.setAttribute(bd,"return;");be=typeof bf[bd]==="function"}bf=null;return be};a.support.submitBubbles=a8("submit");a.support.changeBubbles=a8("change");a4=bb=a9=null})();var at=/^(?:\{.*\}|\[.*\])$/;a.extend({cache:{},uuid:0,expando:"jQuery"+(a.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(a4){a4=a4.nodeType?a.cache[a4[a.expando]]:a4[a.expando];return !!a4&&!a.isEmptyObject(a4)},data:function(a7,a5,a9,a8){if(!a.acceptData(a7)){return}var bc=a.expando,bb=typeof a5==="string",ba,bd=a7.nodeType,a4=bd?a.cache:a7,a6=bd?a7[a.expando]:a7[a.expando]&&a.expando;if((!a6||(a8&&a6&&!a4[a6][bc]))&&bb&&a9===E){return}if(!a6){if(bd){a7[a.expando]=a6=++a.uuid}else{a6=a.expando}}if(!a4[a6]){a4[a6]={}}if(typeof a5==="object"){if(a8){a4[a6][bc]=a.extend(a4[a6][bc],a5)}else{a4[a6]=a.extend(a4[a6],a5)}}ba=a4[a6];if(a8){if(!ba[bc]){ba[bc]={}}ba=ba[bc]}if(a9!==E){ba[a5]=a9}if(a5==="events"&&!ba[a5]){return ba[bc]&&ba[bc].events}return bb?ba[a5]:ba},removeData:function(a8,a6,a9){if(!a.acceptData(a8)){return}var bb=a.expando,bc=a8.nodeType,a5=bc?a.cache:a8,a7=bc?a8[a.expando]:a.expando;if(!a5[a7]){return}if(a6){var ba=a9?a5[a7][bb]:a5[a7];if(ba){delete ba[a6];if(!a.isEmptyObject(ba)){return}}}if(a9){delete a5[a7][bb];if(!a.isEmptyObject(a5[a7])){return}}var a4=a5[a7][bb];if(a.support.deleteExpando||a5!=aP){delete a5[a7]}else{a5[a7]=null}if(a4){a5[a7]={};a5[a7][bb]=a4}else{if(bc){if(a.support.deleteExpando){delete a8[a.expando]}else{if(a8.removeAttribute){a8.removeAttribute(a.expando)}else{a8[a.expando]=null}}}}},_data:function(a5,a4,a6){return a.data(a5,a4,a6,true)},acceptData:function(a5){if(a5.nodeName){var a4=a.noData[a5.nodeName.toLowerCase()];if(a4){return !(a4===true||a5.getAttribute("classid")!==a4)}}return true}});a.fn.extend({data:function(a8,ba){var a9=null;if(typeof a8==="undefined"){if(this.length){a9=a.data(this[0]);if(this[0].nodeType===1){var a4=this[0].attributes,a6;for(var a7=0,a5=a4.length;a7<a5;a7++){a6=a4[a7].name;if(a6.indexOf("data-")===0){a6=a6.substr(5);aK(this[0],a6,a9[a6])}}}}return a9}else{if(typeof a8==="object"){return this.each(function(){a.data(this,a8)})}}var bb=a8.split(".");bb[1]=bb[1]?"."+bb[1]:"";if(ba===E){a9=this.triggerHandler("getData"+bb[1]+"!",[bb[0]]);if(a9===E&&this.length){a9=a.data(this[0],a8);a9=aK(this[0],a8,a9)}return a9===E&&bb[1]?this.data(bb[0]):a9}else{return this.each(function(){var bd=a(this),bc=[bb[0],ba];bd.triggerHandler("setData"+bb[1]+"!",bc);a.data(this,a8,ba);bd.triggerHandler("changeData"+bb[1]+"!",bc)})}},removeData:function(a4){return this.each(function(){a.removeData(this,a4)})}});function aK(a5,a4,a6){if(a6===E&&a5.nodeType===1){a6=a5.getAttribute("data-"+a4);if(typeof a6==="string"){try{a6=a6==="true"?true:a6==="false"?false:a6==="null"?null:!a.isNaN(a6)?parseFloat(a6):at.test(a6)?a.parseJSON(a6):a6}catch(a7){}a.data(a5,a4,a6)}else{a6=E}}return a6}a.extend({queue:function(a5,a4,a7){if(!a5){return}a4=(a4||"fx")+"queue";var a6=a._data(a5,a4);if(!a7){return a6||[]}if(!a6||a.isArray(a7)){a6=a._data(a5,a4,a.makeArray(a7))}else{a6.push(a7)}return a6},dequeue:function(a7,a6){a6=a6||"fx";var a4=a.queue(a7,a6),a5=a4.shift();if(a5==="inprogress"){a5=a4.shift()}if(a5){if(a6==="fx"){a4.unshift("inprogress")}a5.call(a7,function(){a.dequeue(a7,a6)})}if(!a4.length){a.removeData(a7,a6+"queue",true)}}});a.fn.extend({queue:function(a4,a5){if(typeof a4!=="string"){a5=a4;a4="fx"}if(a5===E){return a.queue(this[0],a4)}return this.each(function(a7){var a6=a.queue(this,a4,a5);if(a4==="fx"&&a6[0]!=="inprogress"){a.dequeue(this,a4)}})},dequeue:function(a4){return this.each(function(){a.dequeue(this,a4)})},delay:function(a5,a4){a5=a.fx?a.fx.speeds[a5]||a5:a5;a4=a4||"fx";return this.queue(a4,function(){var a6=this;setTimeout(function(){a.dequeue(a6,a4)},a5)})},clearQueue:function(a4){return this.queue(a4||"fx",[])}});var aq=/[\n\t\r]/g,aT=/\s+/,av=/\r/g,aS=/^(?:href|src|style)$/,e=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,j=/^a(?:rea)?$/i,L=/^(?:radio|checkbox)$/i;a.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};a.fn.extend({attr:function(a4,a5){return a.access(this,a4,a5,true,a.attr)},removeAttr:function(a4,a5){return this.each(function(){a.attr(this,a4,"");if(this.nodeType===1){this.removeAttribute(a4)}})},addClass:function(bb){if(a.isFunction(bb)){return this.each(function(be){var bd=a(this);bd.addClass(bb.call(this,be,bd.attr("class")))})}if(bb&&typeof bb==="string"){var a4=(bb||"").split(aT);for(var a7=0,a6=this.length;a7<a6;a7++){var a5=this[a7];if(a5.nodeType===1){if(!a5.className){a5.className=bb}else{var a8=" "+a5.className+" ",ba=a5.className;for(var a9=0,bc=a4.length;a9<bc;a9++){if(a8.indexOf(" "+a4[a9]+" ")<0){ba+=" "+a4[a9]}}a5.className=a.trim(ba)}}}}return this},removeClass:function(a9){if(a.isFunction(a9)){return this.each(function(bd){var bc=a(this);bc.removeClass(a9.call(this,bd,bc.attr("class")))})}if((a9&&typeof a9==="string")||a9===E){var ba=(a9||"").split(aT);for(var a6=0,a5=this.length;a6<a5;a6++){var a8=this[a6];if(a8.nodeType===1&&a8.className){if(a9){var a7=(" "+a8.className+" ").replace(aq," ");for(var bb=0,a4=ba.length;bb<a4;bb++){a7=a7.replace(" "+ba[bb]+" "," ")}a8.className=a.trim(a7)}else{a8.className=""}}}}return this},toggleClass:function(a7,a5){var a6=typeof a7,a4=typeof a5==="boolean";if(a.isFunction(a7)){return this.each(function(a9){var a8=a(this);a8.toggleClass(a7.call(this,a9,a8.attr("class"),a5),a5)})}return this.each(function(){if(a6==="string"){var ba,a9=0,a8=a(this),bb=a5,bc=a7.split(aT);while((ba=bc[a9++])){bb=a4?bb:!a8.hasClass(ba);a8[bb?"addClass":"removeClass"](ba)}}else{if(a6==="undefined"||a6==="boolean"){if(this.className){a._data(this,"__className__",this.className)}this.className=this.className||a7===false?"":a._data(this,"__className__")||""}}})},hasClass:function(a4){var a7=" "+a4+" ";for(var a6=0,a5=this.length;a6<a5;a6++){if((" "+this[a6].className+" ").replace(aq," ").indexOf(a7)>-1){return true}}return false},val:function(bc){if(!arguments.length){var a6=this[0];if(a6){if(a.nodeName(a6,"option")){var a5=a6.attributes.value;return !a5||a5.specified?a6.value:a6.text}if(a.nodeName(a6,"select")){var ba=a6.selectedIndex,bd=[],be=a6.options,a9=a6.type==="select-one";if(ba<0){return null}for(var a7=a9?ba:0,bb=a9?ba+1:be.length;a7<bb;a7++){var a8=be[a7];if(a8.selected&&(a.support.optDisabled?!a8.disabled:a8.getAttribute("disabled")===null)&&(!a8.parentNode.disabled||!a.nodeName(a8.parentNode,"optgroup"))){bc=a(a8).val();if(a9){return bc}bd.push(bc)}}return bd}if(L.test(a6.type)&&!a.support.checkOn){return a6.getAttribute("value")===null?"on":a6.value}return(a6.value||"").replace(av,"")}return E}var a4=a.isFunction(bc);return this.each(function(bh){var bg=a(this),bi=bc;if(this.nodeType!==1){return}if(a4){bi=bc.call(this,bh,bg.val())}if(bi==null){bi=""}else{if(typeof bi==="number"){bi+=""}else{if(a.isArray(bi)){bi=a.map(bi,function(bj){return bj==null?"":bj+""})}}}if(a.isArray(bi)&&L.test(this.type)){this.checked=a.inArray(bg.val(),bi)>=0}else{if(a.nodeName(this,"select")){var bf=a.makeArray(bi);a("option",this).each(function(){this.selected=a.inArray(a(this).val(),bf)>=0});if(!bf.length){this.selectedIndex=-1}}else{this.value=bi}}})}});a.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a5,a4,ba,bd){if(!a5||a5.nodeType===3||a5.nodeType===8||a5.nodeType===2){return E}if(bd&&a4 in a.attrFn){return a(a5)[a4](ba)}var a6=a5.nodeType!==1||!a.isXMLDoc(a5),a9=ba!==E;a4=a6&&a.props[a4]||a4;if(a5.nodeType===1){var a8=aS.test(a4);if(a4==="selected"&&!a.support.optSelected){var bb=a5.parentNode;if(bb){bb.selectedIndex;if(bb.parentNode){bb.parentNode.selectedIndex}}}if((a4 in a5||a5[a4]!==E)&&a6&&!a8){if(a9){if(a4==="type"&&e.test(a5.nodeName)&&a5.parentNode){a.error("type property can't be changed")}if(ba===null){if(a5.nodeType===1){a5.removeAttribute(a4)}}else{a5[a4]=ba}}if(a.nodeName(a5,"form")&&a5.getAttributeNode(a4)){return a5.getAttributeNode(a4).nodeValue}if(a4==="tabIndex"){var bc=a5.getAttributeNode("tabIndex");return bc&&bc.specified?bc.value:z.test(a5.nodeName)||j.test(a5.nodeName)&&a5.href?0:E}return a5[a4]}if(!a.support.style&&a6&&a4==="style"){if(a9){a5.style.cssText=""+ba}return a5.style.cssText}if(a9){a5.setAttribute(a4,""+ba)}if(!a5.attributes[a4]&&(a5.hasAttribute&&!a5.hasAttribute(a4))){return E}var a7=!a.support.hrefNormalized&&a6&&a8?a5.getAttribute(a4,2):a5.getAttribute(a4);return a7===null?E:a7}if(a9){a5[a4]=ba}return a5[a4]}});var aG=/\.(.*)$/,aR=/^(?:textarea|input|select)$/i,G=/\./g,U=/ /g,am=/[^\w\s.|`]/g,B=function(a4){return a4.replace(am,"\\$&")},ay="events";a.event={add:function(a7,bb,bg,a9){if(a7.nodeType===3||a7.nodeType===8){return}if(a.isWindow(a7)&&(a7!==aP&&!a7.frameElement)){a7=aP}if(bg===false){bg=aV}else{if(!bg){return}}var a5,bf;if(bg.handler){a5=bg;bg=a5.handler}if(!bg.guid){bg.guid=a.guid++}var bc=a._data(a7);if(!bc){return}var bh=bc[ay],ba=bc.handle;if(typeof bh==="function"){ba=bh.handle;bh=bh.events}else{if(!bh){if(!a7.nodeType){bc[ay]=bc=function(){}}bc.events=bh={}}}if(!ba){bc.handle=ba=function(){return typeof a!=="undefined"&&!a.event.triggered?a.event.handle.apply(ba.elem,arguments):E}}ba.elem=a7;bb=bb.split(" ");var be,a8=0,a4;while((be=bb[a8++])){bf=a5?a.extend({},a5):{handler:bg,data:a9};if(be.indexOf(".")>-1){a4=be.split(".");be=a4.shift();bf.namespace=a4.slice(0).sort().join(".")}else{a4=[];bf.namespace=""}bf.type=be;if(!bf.guid){bf.guid=bg.guid}var a6=bh[be],bd=a.event.special[be]||{};if(!a6){a6=bh[be]=[];if(!bd.setup||bd.setup.call(a7,a9,a4,ba)===false){if(a7.addEventListener){a7.addEventListener(be,ba,false)}else{if(a7.attachEvent){a7.attachEvent("on"+be,ba)}}}}if(bd.add){bd.add.call(a7,bf);if(!bf.handler.guid){bf.handler.guid=bg.guid}}a6.push(bf);a.event.global[be]=true}a7=null},global:{},remove:function(bj,be,a6,ba){if(bj.nodeType===3||bj.nodeType===8){return}if(a6===false){a6=aV}var bm,a9,bb,bg,bh=0,a7,bc,bf,a8,bd,a4,bl,bi=a.hasData(bj)&&a._data(bj),a5=bi&&bi[ay];if(!bi||!a5){return}if(typeof a5==="function"){bi=a5;a5=a5.events}if(be&&be.type){a6=be.handler;be=be.type}if(!be||typeof be==="string"&&be.charAt(0)==="."){be=be||"";for(a9 in a5){a.event.remove(bj,a9+be)}return}be=be.split(" ");while((a9=be[bh++])){bl=a9;a4=null;a7=a9.indexOf(".")<0;bc=[];if(!a7){bc=a9.split(".");a9=bc.shift();bf=new RegExp("(^|\\.)"+a.map(bc.slice(0).sort(),B).join("\\.(?:.*\\.)?")+"(\\.|$)")}bd=a5[a9];if(!bd){continue}if(!a6){for(bg=0;bg<bd.length;bg++){a4=bd[bg];if(a7||bf.test(a4.namespace)){a.event.remove(bj,bl,a4.handler,bg);bd.splice(bg--,1)}}continue}a8=a.event.special[a9]||{};for(bg=ba||0;bg<bd.length;bg++){a4=bd[bg];if(a6.guid===a4.guid){if(a7||bf.test(a4.namespace)){if(ba==null){bd.splice(bg--,1)}if(a8.remove){a8.remove.call(bj,a4)}}if(ba!=null){break}}}if(bd.length===0||ba!=null&&bd.length===1){if(!a8.teardown||a8.teardown.call(bj,bc)===false){a.removeEvent(bj,a9,bi.handle)}bm=null;delete a5[a9]}}if(a.isEmptyObject(a5)){var bk=bi.handle;if(bk){bk.elem=null}delete bi.events;delete bi.handle;if(typeof bi==="function"){a.removeData(bj,ay,true)}else{if(a.isEmptyObject(bi)){a.removeData(bj,E,true)}}}},trigger:function(a5,ba,a7){var be=a5.type||a5,a9=arguments[3];if(!a9){a5=typeof a5==="object"?a5[a.expando]?a5:a.extend(a.Event(be),a5):a.Event(be);if(be.indexOf("!")>=0){a5.type=be=be.slice(0,-1);a5.exclusive=true}if(!a7){a5.stopPropagation();if(a.event.global[be]){a.each(a.cache,function(){var bj=a.expando,bi=this[bj];if(bi&&bi.events&&bi.events[be]){a.event.trigger(a5,ba,bi.handle.elem)}})}}if(!a7||a7.nodeType===3||a7.nodeType===8){return E}a5.result=E;a5.target=a7;ba=a.makeArray(ba);ba.unshift(a5)}a5.currentTarget=a7;var bb=a7.nodeType?a._data(a7,"handle"):(a._data(a7,ay)||{}).handle;if(bb){bb.apply(a7,ba)}var bg=a7.parentNode||a7.ownerDocument;try{if(!(a7&&a7.nodeName&&a.noData[a7.nodeName.toLowerCase()])){if(a7["on"+be]&&a7["on"+be].apply(a7,ba)===false){a5.result=false;a5.preventDefault()}}}catch(bf){}if(!a5.isPropagationStopped()&&bg){a.event.trigger(a5,ba,bg,true)}else{if(!a5.isDefaultPrevented()){var a6,bc=a5.target,a4=be.replace(aG,""),bh=a.nodeName(bc,"a")&&a4==="click",bd=a.event.special[a4]||{};if((!bd._default||bd._default.call(a7,a5)===false)&&!bh&&!(bc&&bc.nodeName&&a.noData[bc.nodeName.toLowerCase()])){try{if(bc[a4]){a6=bc["on"+a4];if(a6){bc["on"+a4]=null}a.event.triggered=true;bc[a4]()}}catch(a8){}if(a6){bc["on"+a4]=a6}a.event.triggered=false}}}},handle:function(a4){var bd,a6,a5,bf,be,a9=[],bb=a.makeArray(arguments);a4=bb[0]=a.event.fix(a4||aP.event);a4.currentTarget=this;bd=a4.type.indexOf(".")<0&&!a4.exclusive;if(!bd){a5=a4.type.split(".");a4.type=a5.shift();a9=a5.slice(0).sort();bf=new RegExp("(^|\\.)"+a9.join("\\.(?:.*\\.)?")+"(\\.|$)")}a4.namespace=a4.namespace||a9.join(".");be=a._data(this,ay);if(typeof be==="function"){be=be.events}a6=(be||{})[a4.type];if(be&&a6){a6=a6.slice(0);for(var a8=0,a7=a6.length;a8<a7;a8++){var bc=a6[a8];if(bd||bf.test(bc.namespace)){a4.handler=bc.handler;a4.data=bc.data;a4.handleObj=bc;var ba=bc.handler.apply(this,bb);if(ba!==E){a4.result=ba;if(ba===false){a4.preventDefault();a4.stopPropagation()}}if(a4.isImmediatePropagationStopped()){break}}}}return a4.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 pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a7){if(a7[a.expando]){return a7}var a5=a7;a7=a.Event(a5);for(var a6=this.props.length,a9;a6;){a9=this.props[--a6];a7[a9]=a5[a9]}if(!a7.target){a7.target=a7.srcElement||ae}if(a7.target.nodeType===3){a7.target=a7.target.parentNode}if(!a7.relatedTarget&&a7.fromElement){a7.relatedTarget=a7.fromElement===a7.target?a7.toElement:a7.fromElement}if(a7.pageX==null&&a7.clientX!=null){var a8=ae.documentElement,a4=ae.body;a7.pageX=a7.clientX+(a8&&a8.scrollLeft||a4&&a4.scrollLeft||0)-(a8&&a8.clientLeft||a4&&a4.clientLeft||0);a7.pageY=a7.clientY+(a8&&a8.scrollTop||a4&&a4.scrollTop||0)-(a8&&a8.clientTop||a4&&a4.clientTop||0)}if(a7.which==null&&(a7.charCode!=null||a7.keyCode!=null)){a7.which=a7.charCode!=null?a7.charCode:a7.keyCode}if(!a7.metaKey&&a7.ctrlKey){a7.metaKey=a7.ctrlKey}if(!a7.which&&a7.button!==E){a7.which=(a7.button&1?1:(a7.button&2?3:(a7.button&4?2:0)))}return a7},guid:100000000,proxy:a.proxy,special:{ready:{setup:a.bindReady,teardown:a.noop},live:{add:function(a4){a.event.add(this,m(a4.origType,a4.selector),a.extend({},a4,{handler:Y,guid:a4.handler.guid}))},remove:function(a4){a.event.remove(this,m(a4.origType,a4.selector),a4)}},beforeunload:{setup:function(a6,a5,a4){if(a.isWindow(this)){this.onbeforeunload=a4}},teardown:function(a5,a4){if(this.onbeforeunload===a4){this.onbeforeunload=null}}}}};a.removeEvent=ae.removeEventListener?function(a5,a4,a6){if(a5.removeEventListener){a5.removeEventListener(a4,a6,false)}}:function(a5,a4,a6){if(a5.detachEvent){a5.detachEvent("on"+a4,a6)}};a.Event=function(a4){if(!this.preventDefault){return new a.Event(a4)}if(a4&&a4.type){this.originalEvent=a4;this.type=a4.type;this.isDefaultPrevented=(a4.defaultPrevented||a4.returnValue===false||a4.getPreventDefault&&a4.getPreventDefault())?g:aV}else{this.type=a4}this.timeStamp=a.now();this[a.expando]=true};function aV(){return false}function g(){return true}a.Event.prototype={preventDefault:function(){this.isDefaultPrevented=g;var a4=this.originalEvent;if(!a4){return}if(a4.preventDefault){a4.preventDefault()}else{a4.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=g;var a4=this.originalEvent;if(!a4){return}if(a4.stopPropagation){a4.stopPropagation()}a4.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=g;this.stopPropagation()},isDefaultPrevented:aV,isPropagationStopped:aV,isImmediatePropagationStopped:aV};var T=function(a5){var a4=a5.relatedTarget;try{while(a4&&a4!==this){a4=a4.parentNode}if(a4!==this){a5.type=a5.data;a.event.handle.apply(this,arguments)}}catch(a6){}},az=function(a4){a4.type=a4.data;a.event.handle.apply(this,arguments)};a.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a5,a4){a.event.special[a5]={setup:function(a6){a.event.add(this,a4,a6&&a6.selector?az:T,a5)},teardown:function(a6){a.event.remove(this,a4,a6&&a6.selector?az:T)}}});if(!a.support.submitBubbles){a.event.special.submit={setup:function(a5,a4){if(this.nodeName&&this.nodeName.toLowerCase()!=="form"){a.event.add(this,"click.specialSubmit",function(a8){var a7=a8.target,a6=a7.type;if((a6==="submit"||a6==="image")&&a(a7).closest("form").length){a8.liveFired=E;return aD("submit",this,arguments)}});a.event.add(this,"keypress.specialSubmit",function(a8){var a7=a8.target,a6=a7.type;if((a6==="text"||a6==="password")&&a(a7).closest("form").length&&a8.keyCode===13){a8.liveFired=E;return aD("submit",this,arguments)}})}else{return false}},teardown:function(a4){a.event.remove(this,".specialSubmit")}}}if(!a.support.changeBubbles){var aW,i=function(a5){var a4=a5.type,a6=a5.value;if(a4==="radio"||a4==="checkbox"){a6=a5.checked}else{if(a4==="select-multiple"){a6=a5.selectedIndex>-1?a.map(a5.options,function(a7){return a7.selected}).join("-"):""}else{if(a5.nodeName.toLowerCase()==="select"){a6=a5.selectedIndex}}}return a6},R=function R(a6){var a4=a6.target,a5,a7;if(!aR.test(a4.nodeName)||a4.readOnly){return}a5=a._data(a4,"_change_data");a7=i(a4);if(a6.type!=="focusout"||a4.type!=="radio"){a._data(a4,"_change_data",a7)}if(a5===E||a7===a5){return}if(a5!=null||a7){a6.type="change";a6.liveFired=E;return a.event.trigger(a6,arguments[1],a4)}};a.event.special.change={filters:{focusout:R,beforedeactivate:R,click:function(a6){var a5=a6.target,a4=a5.type;if(a4==="radio"||a4==="checkbox"||a5.nodeName.toLowerCase()==="select"){return R.call(this,a6)}},keydown:function(a6){var a5=a6.target,a4=a5.type;if((a6.keyCode===13&&a5.nodeName.toLowerCase()!=="textarea")||(a6.keyCode===32&&(a4==="checkbox"||a4==="radio"))||a4==="select-multiple"){return R.call(this,a6)}},beforeactivate:function(a5){var a4=a5.target;a._data(a4,"_change_data",i(a4))}},setup:function(a6,a5){if(this.type==="file"){return false}for(var a4 in aW){a.event.add(this,a4+".specialChange",aW[a4])}return aR.test(this.nodeName)},teardown:function(a4){a.event.remove(this,".specialChange");return aR.test(this.nodeName)}};aW=a.event.special.change.filters;aW.focus=aW.beforeactivate}function aD(a5,a6,a4){a4[0].type=a5;return a.event.handle.apply(a6,a4)}if(ae.addEventListener){a.each({focus:"focusin",blur:"focusout"},function(a6,a4){a.event.special[a4]={setup:function(){this.addEventListener(a6,a5,true)},teardown:function(){this.removeEventListener(a6,a5,true)}};function a5(a7){a7=a.event.fix(a7);a7.type=a4;return a.event.handle.call(this,a7)}})}a.each(["bind","one"],function(a5,a4){a.fn[a4]=function(bb,bc,ba){if(typeof bb==="object"){for(var a8 in bb){this[a4](a8,bc,bb[a8],ba)}return this}if(a.isFunction(bc)||bc===false){ba=bc;bc=E}var a9=a4==="one"?a.proxy(ba,function(bd){a(this).unbind(bd,a9);return ba.apply(this,arguments)}):ba;if(bb==="unload"&&a4!=="one"){this.one(bb,bc,ba)}else{for(var a7=0,a6=this.length;a7<a6;a7++){a.event.add(this[a7],bb,a9,bc)}}return this}});a.fn.extend({unbind:function(a8,a7){if(typeof a8==="object"&&!a8.preventDefault){for(var a6 in a8){this.unbind(a6,a8[a6])}}else{for(var a5=0,a4=this.length;a5<a4;a5++){a.event.remove(this[a5],a8,a7)}}return this},delegate:function(a4,a5,a7,a6){return this.live(a5,a7,a6,a4)},undelegate:function(a4,a5,a6){if(arguments.length===0){return this.unbind("live")}else{return this.die(a5,null,a6,a4)}},trigger:function(a4,a5){return this.each(function(){a.event.trigger(a4,a5,this)})},triggerHandler:function(a4,a6){if(this[0]){var a5=a.Event(a4);a5.preventDefault();a5.stopPropagation();a.event.trigger(a5,a6,this[0]);return a5.result}},toggle:function(a6){var a4=arguments,a5=1;while(a5<a4.length){a.proxy(a6,a4[a5++])}return this.click(a.proxy(a6,function(a7){var a8=(a._data(this,"lastToggle"+a6.guid)||0)%a5;a._data(this,"lastToggle"+a6.guid,a8+1);a7.preventDefault();return a4[a8].apply(this,arguments)||false}))},hover:function(a4,a5){return this.mouseenter(a4).mouseleave(a5||a4)}});var aw={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};a.each(["live","die"],function(a5,a4){a.fn[a4]=function(bf,bc,bh,a8){var bg,bd=0,be,a7,bj,ba=a8||this.selector,a6=a8?this:a(this.context);if(typeof bf==="object"&&!bf.preventDefault){for(var bi in bf){a6[a4](bi,bc,bf[bi],ba)}return this}if(a.isFunction(bc)){bh=bc;bc=E}bf=(bf||"").split(" ");while((bg=bf[bd++])!=null){be=aG.exec(bg);a7="";if(be){a7=be[0];bg=bg.replace(aG,"")}if(bg==="hover"){bf.push("mouseenter"+a7,"mouseleave"+a7);continue}bj=bg;if(bg==="focus"||bg==="blur"){bf.push(aw[bg]+a7);bg=bg+a7}else{bg=(aw[bg]||bg)+a7}if(a4==="live"){for(var bb=0,a9=a6.length;bb<a9;bb++){a.event.add(a6[bb],"live."+m(bg,ba),{data:bc,selector:ba,handler:bh,origType:bg,origHandler:bh,preType:bj})}}else{a6.unbind("live."+m(bg,ba),bh)}}return this}});function Y(bf){var bc,a7,bl,a9,a4,bh,be,bg,bd,bk,bb,ba,bj,bi=[],a8=[],a5=a._data(this,ay);if(typeof a5==="function"){a5=a5.events}if(bf.liveFired===this||!a5||!a5.live||bf.target.disabled||bf.button&&bf.type==="click"){return}if(bf.namespace){ba=new RegExp("(^|\\.)"+bf.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")}bf.liveFired=this;var a6=a5.live.slice(0);for(be=0;be<a6.length;be++){a4=a6[be];if(a4.origType.replace(aG,"")===bf.type){a8.push(a4.selector)}else{a6.splice(be--,1)}}a9=a(bf.target).closest(a8,bf.currentTarget);for(bg=0,bd=a9.length;bg<bd;bg++){bb=a9[bg];for(be=0;be<a6.length;be++){a4=a6[be];if(bb.selector===a4.selector&&(!ba||ba.test(a4.namespace))){bh=bb.elem;bl=null;if(a4.preType==="mouseenter"||a4.preType==="mouseleave"){bf.type=a4.preType;bl=a(bf.relatedTarget).closest(a4.selector)[0]}if(!bl||bl!==bh){bi.push({elem:bh,handleObj:a4,level:bb.level})}}}}for(bg=0,bd=bi.length;bg<bd;bg++){a9=bi[bg];if(a7&&a9.level>a7){break}bf.currentTarget=a9.elem;bf.data=a9.handleObj.data;bf.handleObj=a9.handleObj;bj=a9.handleObj.origHandler.apply(a9.elem,arguments);if(bj===false||bf.isPropagationStopped()){a7=a9.level;if(bj===false){bc=false}if(bf.isImmediatePropagationStopped()){break}}}return bc}function m(a5,a4){return(a5&&a5!=="*"?a5+".":"")+a4.replace(G,"`").replace(U,"&")}a.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(" "),function(a5,a4){a.fn[a4]=function(a7,a6){if(a6==null){a6=a7;a7=null}return arguments.length>0?this.bind(a4,a7,a6):this.trigger(a4)};if(a.attrFn){a.attrFn[a4]=true}});
+/*
+ * jQuery JavaScript Library v1.5.1
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Wed Feb 23 13:55:29 2011 -0500
+ */
+(function(aY,H){var al=aY.document;var a=(function(){var bn=function(bI,bJ){return new bn.fn.init(bI,bJ,bl)},bD=aY.jQuery,bp=aY.$,bl,bH=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,bv=/\S/,br=/^\s+/,bm=/\s+$/,bq=/\d/,bj=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bw=/^[\],:{}\s]*$/,bF=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,by=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bs=/(?:^|:|,)(?:\s*\[)+/g,bh=/(webkit)[ \/]([\w.]+)/,bA=/(opera)(?:.*version)?[ \/]([\w.]+)/,bz=/(msie) ([\w.]+)/,bB=/(mozilla)(?:.*? rv:([\w.]+))?/,bG=navigator.userAgent,bE,bC=false,bk,e="then done fail isResolved isRejected promise".split(" "),bd,bu=Object.prototype.toString,bo=Object.prototype.hasOwnProperty,bi=Array.prototype.push,bt=Array.prototype.slice,bx=String.prototype.trim,be=Array.prototype.indexOf,bg={};bn.fn=bn.prototype={constructor:bn,init:function(bI,bM,bL){var bK,bN,bJ,bO;if(!bI){return this}if(bI.nodeType){this.context=this[0]=bI;this.length=1;return this}if(bI==="body"&&!bM&&al.body){this.context=al;this[0]=al.body;this.selector="body";this.length=1;return this}if(typeof bI==="string"){bK=bH.exec(bI);if(bK&&(bK[1]||!bM)){if(bK[1]){bM=bM instanceof bn?bM[0]:bM;bO=(bM?bM.ownerDocument||bM:al);bJ=bj.exec(bI);if(bJ){if(bn.isPlainObject(bM)){bI=[al.createElement(bJ[1])];bn.fn.attr.call(bI,bM,true)}else{bI=[bO.createElement(bJ[1])]}}else{bJ=bn.buildFragment([bK[1]],[bO]);bI=(bJ.cacheable?bn.clone(bJ.fragment):bJ.fragment).childNodes}return bn.merge(this,bI)}else{bN=al.getElementById(bK[2]);if(bN&&bN.parentNode){if(bN.id!==bK[2]){return bL.find(bI)}this.length=1;this[0]=bN}this.context=al;this.selector=bI;return this}}else{if(!bM||bM.jquery){return(bM||bL).find(bI)}else{return this.constructor(bM).find(bI)}}}else{if(bn.isFunction(bI)){return bL.ready(bI)}}if(bI.selector!==H){this.selector=bI.selector;this.context=bI.context}return bn.makeArray(bI,this)},selector:"",jquery:"1.5.1",length:0,size:function(){return this.length},toArray:function(){return bt.call(this,0)},get:function(bI){return bI==null?this.toArray():(bI<0?this[this.length+bI]:this[bI])},pushStack:function(bJ,bL,bI){var bK=this.constructor();if(bn.isArray(bJ)){bi.apply(bK,bJ)}else{bn.merge(bK,bJ)}bK.prevObject=this;bK.context=this.context;if(bL==="find"){bK.selector=this.selector+(this.selector?" ":"")+bI}else{if(bL){bK.selector=this.selector+"."+bL+"("+bI+")"}}return bK},each:function(bJ,bI){return bn.each(this,bJ,bI)},ready:function(bI){bn.bindReady();bk.done(bI);return this},eq:function(bI){return bI===-1?this.slice(bI):this.slice(bI,+bI+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bt.apply(this,arguments),"slice",bt.call(arguments).join(","))},map:function(bI){return this.pushStack(bn.map(this,function(bK,bJ){return bI.call(bK,bJ,bK)}))},end:function(){return this.prevObject||this.constructor(null)},push:bi,sort:[].sort,splice:[].splice};bn.fn.init.prototype=bn.fn;bn.extend=bn.fn.extend=function(){var bR,bK,bI,bJ,bO,bP,bN=arguments[0]||{},bM=1,bL=arguments.length,bQ=false;if(typeof bN==="boolean"){bQ=bN;bN=arguments[1]||{};bM=2}if(typeof bN!=="object"&&!bn.isFunction(bN)){bN={}}if(bL===bM){bN=this;--bM}for(;bM<bL;bM++){if((bR=arguments[bM])!=null){for(bK in bR){bI=bN[bK];bJ=bR[bK];if(bN===bJ){continue}if(bQ&&bJ&&(bn.isPlainObject(bJ)||(bO=bn.isArray(bJ)))){if(bO){bO=false;bP=bI&&bn.isArray(bI)?bI:[]}else{bP=bI&&bn.isPlainObject(bI)?bI:{}}bN[bK]=bn.extend(bQ,bP,bJ)}else{if(bJ!==H){bN[bK]=bJ}}}}}return bN};bn.extend({noConflict:function(bI){aY.$=bp;if(bI){aY.jQuery=bD}return bn},isReady:false,readyWait:1,ready:function(bI){if(bI===true){bn.readyWait--}if(!bn.readyWait||(bI!==true&&!bn.isReady)){if(!al.body){return setTimeout(bn.ready,1)}bn.isReady=true;if(bI!==true&&--bn.readyWait>0){return}bk.resolveWith(al,[bn]);if(bn.fn.trigger){bn(al).trigger("ready").unbind("ready")}}},bindReady:function(){if(bC){return}bC=true;if(al.readyState==="complete"){return setTimeout(bn.ready,1)}if(al.addEventListener){al.addEventListener("DOMContentLoaded",bd,false);aY.addEventListener("load",bn.ready,false)}else{if(al.attachEvent){al.attachEvent("onreadystatechange",bd);aY.attachEvent("onload",bn.ready);var bI=false;try{bI=aY.frameElement==null}catch(bJ){}if(al.documentElement.doScroll&&bI){bf()}}}},isFunction:function(bI){return bn.type(bI)==="function"},isArray:Array.isArray||function(bI){return bn.type(bI)==="array"},isWindow:function(bI){return bI&&typeof bI==="object"&&"setInterval" in bI},isNaN:function(bI){return bI==null||!bq.test(bI)||isNaN(bI)},type:function(bI){return bI==null?String(bI):bg[bu.call(bI)]||"object"},isPlainObject:function(bJ){if(!bJ||bn.type(bJ)!=="object"||bJ.nodeType||bn.isWindow(bJ)){return false}if(bJ.constructor&&!bo.call(bJ,"constructor")&&!bo.call(bJ.constructor.prototype,"isPrototypeOf")){return false}var bI;for(bI in bJ){}return bI===H||bo.call(bJ,bI)},isEmptyObject:function(bJ){for(var bI in bJ){return false}return true},error:function(bI){throw bI},parseJSON:function(bI){if(typeof bI!=="string"||!bI){return null}bI=bn.trim(bI);if(bw.test(bI.replace(bF,"@").replace(by,"]").replace(bs,""))){return aY.JSON&&aY.JSON.parse?aY.JSON.parse(bI):(new Function("return "+bI))()}else{bn.error("Invalid JSON: "+bI)}},parseXML:function(bK,bI,bJ){if(aY.DOMParser){bJ=new DOMParser();bI=bJ.parseFromString(bK,"text/xml")}else{bI=new ActiveXObject("Microsoft.XMLDOM");bI.async="false";bI.loadXML(bK)}bJ=bI.documentElement;if(!bJ||!bJ.nodeName||bJ.nodeName==="parsererror"){bn.error("Invalid XML: "+bK)}return bI},noop:function(){},globalEval:function(bK){if(bK&&bv.test(bK)){var bJ=al.head||al.getElementsByTagName("head")[0]||al.documentElement,bI=al.createElement("script");if(bn.support.scriptEval()){bI.appendChild(al.createTextNode(bK))}else{bI.text=bK}bJ.insertBefore(bI,bJ.firstChild);bJ.removeChild(bI)}},nodeName:function(bJ,bI){return bJ.nodeName&&bJ.nodeName.toUpperCase()===bI.toUpperCase()},each:function(bL,bP,bK){var bJ,bM=0,bN=bL.length,bI=bN===H||bn.isFunction(bL);if(bK){if(bI){for(bJ in bL){if(bP.apply(bL[bJ],bK)===false){break}}}else{for(;bM<bN;){if(bP.apply(bL[bM++],bK)===false){break}}}}else{if(bI){for(bJ in bL){if(bP.call(bL[bJ],bJ,bL[bJ])===false){break}}}else{for(var bO=bL[0];bM<bN&&bP.call(bO,bM,bO)!==false;bO=bL[++bM]){}}}return bL},trim:bx?function(bI){return bI==null?"":bx.call(bI)}:function(bI){return bI==null?"":bI.toString().replace(br,"").replace(bm,"")},makeArray:function(bL,bJ){var bI=bJ||[];if(bL!=null){var bK=bn.type(bL);if(bL.length==null||bK==="string"||bK==="function"||bK==="regexp"||bn.isWindow(bL)){bi.call(bI,bL)}else{bn.merge(bI,bL)}}return bI},inArray:function(bK,bL){if(bL.indexOf){return bL.indexOf(bK)}for(var bI=0,bJ=bL.length;bI<bJ;bI++){if(bL[bI]===bK){return bI}}return -1},merge:function(bM,bK){var bL=bM.length,bJ=0;if(typeof bK.length==="number"){for(var bI=bK.length;bJ<bI;bJ++){bM[bL++]=bK[bJ]}}else{while(bK[bJ]!==H){bM[bL++]=bK[bJ++]}}bM.length=bL;return bM},grep:function(bJ,bO,bI){var bK=[],bN;bI=!!bI;for(var bL=0,bM=bJ.length;bL<bM;bL++){bN=!!bO(bJ[bL],bL);if(bI!==bN){bK.push(bJ[bL])}}return bK},map:function(bJ,bO,bI){var bK=[],bN;for(var bL=0,bM=bJ.length;bL<bM;bL++){bN=bO(bJ[bL],bL,bI);if(bN!=null){bK[bK.length]=bN}}return bK.concat.apply([],bK)},guid:1,proxy:function(bK,bJ,bI){if(arguments.length===2){if(typeof bJ==="string"){bI=bK;bK=bI[bJ];bJ=H}else{if(bJ&&!bn.isFunction(bJ)){bI=bJ;bJ=H}}}if(!bJ&&bK){bJ=function(){return bK.apply(bI||this,arguments)}}if(bK){bJ.guid=bK.guid=bK.guid||bJ.guid||bn.guid++}return bJ},access:function(bI,bQ,bO,bK,bN,bP){var bJ=bI.length;if(typeof bQ==="object"){for(var bL in bQ){bn.access(bI,bL,bQ[bL],bK,bN,bO)}return bI}if(bO!==H){bK=!bP&&bK&&bn.isFunction(bO);for(var bM=0;bM<bJ;bM++){bN(bI[bM],bQ,bK?bO.call(bI[bM],bM,bN(bI[bM],bQ)):bO,bP)}return bI}return bJ?bN(bI[0],bQ):H},now:function(){return(new Date()).getTime()},_Deferred:function(){var bL=[],bM,bJ,bK,bI={done:function(){if(!bK){var bO=arguments,bP,bS,bR,bQ,bN;if(bM){bN=bM;bM=0}for(bP=0,bS=bO.length;bP<bS;bP++){bR=bO[bP];bQ=bn.type(bR);if(bQ==="array"){bI.done.apply(bI,bR)}else{if(bQ==="function"){bL.push(bR)}}}if(bN){bI.resolveWith(bN[0],bN[1])}}return this},resolveWith:function(bO,bN){if(!bK&&!bM&&!bJ){bJ=1;try{while(bL[0]){bL.shift().apply(bO,bN)}}catch(bP){throw bP}finally{bM=[bO,bN];bJ=0}}return this},resolve:function(){bI.resolveWith(bn.isFunction(this.promise)?this.promise():this,arguments);return this},isResolved:function(){return !!(bJ||bM)},cancel:function(){bK=1;bL=[];return this}};return bI},Deferred:function(bJ){var bI=bn._Deferred(),bL=bn._Deferred(),bK;bn.extend(bI,{then:function(bN,bM){bI.done(bN).fail(bM);return this},fail:bL.done,rejectWith:bL.resolveWith,reject:bL.resolve,isRejected:bL.isResolved,promise:function(bN){if(bN==null){if(bK){return bK}bK=bN={}}var bM=e.length;while(bM--){bN[e[bM]]=bI[e[bM]]}return bN}});bI.done(bL.cancel).fail(bI.cancel);delete bI.cancel;if(bJ){bJ.call(bI,bI)}return bI},when:function(bJ){var bO=arguments.length,bI=bO<=1&&bJ&&bn.isFunction(bJ.promise)?bJ:bn.Deferred(),bM=bI.promise();if(bO>1){var bN=bt.call(arguments,0),bL=bO,bK=function(bP){return function(bQ){bN[bP]=arguments.length>1?bt.call(arguments,0):bQ;if(!(--bL)){bI.resolveWith(bM,bN)}}};while((bO--)){bJ=bN[bO];if(bJ&&bn.isFunction(bJ.promise)){bJ.promise().then(bK(bO),bI.reject)}else{--bL}}if(!bL){bI.resolveWith(bM,bN)}}else{if(bI!==bJ){bI.resolve(bJ)}}return bM},uaMatch:function(bJ){bJ=bJ.toLowerCase();var bI=bh.exec(bJ)||bA.exec(bJ)||bz.exec(bJ)||bJ.indexOf("compatible")<0&&bB.exec(bJ)||[];return{browser:bI[1]||"",version:bI[2]||"0"}},sub:function(){function bJ(bL,bM){return new bJ.fn.init(bL,bM)}bn.extend(true,bJ,this);bJ.superclass=this;bJ.fn=bJ.prototype=this();bJ.fn.constructor=bJ;bJ.subclass=this.subclass;bJ.fn.init=function bK(bL,bM){if(bM&&bM instanceof bn&&!(bM instanceof bJ)){bM=bJ(bM)}return bn.fn.init.call(this,bL,bM,bI)};bJ.fn.init.prototype=bJ.fn;var bI=bJ(al);return bJ},browser:{}});bk=bn._Deferred();bn.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(bJ,bI){bg["[object "+bI+"]"]=bI.toLowerCase()});bE=bn.uaMatch(bG);if(bE.browser){bn.browser[bE.browser]=true;bn.browser.version=bE.version}if(bn.browser.webkit){bn.browser.safari=true}if(be){bn.inArray=function(bI,bJ){return be.call(bJ,bI)}}if(bv.test("\xA0")){br=/^[\s\xA0]+/;bm=/[\s\xA0]+$/}bl=bn(al);if(al.addEventListener){bd=function(){al.removeEventListener("DOMContentLoaded",bd,false);bn.ready()}}else{if(al.attachEvent){bd=function(){if(al.readyState==="complete"){al.detachEvent("onreadystatechange",bd);bn.ready()}}}}function bf(){if(bn.isReady){return}try{al.documentElement.doScroll("left")}catch(bI){setTimeout(bf,1);return}bn.ready()}return bn})();(function(){a.support={};var bd=al.createElement("div");bd.style.display="none";bd.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var bm=bd.getElementsByTagName("*"),bk=bd.getElementsByTagName("a")[0],bl=al.createElement("select"),be=bl.appendChild(al.createElement("option")),bj=bd.getElementsByTagName("input")[0];if(!bm||!bm.length||!bk){return}a.support={leadingWhitespace:bd.firstChild.nodeType===3,tbody:!bd.getElementsByTagName("tbody").length,htmlSerialize:!!bd.getElementsByTagName("link").length,style:/red/.test(bk.getAttribute("style")),hrefNormalized:bk.getAttribute("href")==="/a",opacity:/^0.55$/.test(bk.style.opacity),cssFloat:!!bk.style.cssFloat,checkOn:bj.value==="on",optSelected:be.selected,deleteExpando:true,optDisabled:false,checkClone:false,noCloneEvent:true,noCloneChecked:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};bj.checked=true;a.support.noCloneChecked=bj.cloneNode(true).checked;bl.disabled=true;a.support.optDisabled=!be.disabled;var bf=null;a.support.scriptEval=function(){if(bf===null){var bo=al.documentElement,bp=al.createElement("script"),br="script"+a.now();try{bp.appendChild(al.createTextNode("window."+br+"=1;"))}catch(bq){}bo.insertBefore(bp,bo.firstChild);if(aY[br]){bf=true;delete aY[br]}else{bf=false}bo.removeChild(bp);bo=bp=br=null}return bf};try{delete bd.test}catch(bh){a.support.deleteExpando=false}if(!bd.addEventListener&&bd.attachEvent&&bd.fireEvent){bd.attachEvent("onclick",function bn(){a.support.noCloneEvent=false;bd.detachEvent("onclick",bn)});bd.cloneNode(true).fireEvent("onclick")}bd=al.createElement("div");bd.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var bg=al.createDocumentFragment();bg.appendChild(bd.firstChild);a.support.checkClone=bg.cloneNode(true).cloneNode(true).lastChild.checked;a(function(){var bp=al.createElement("div"),e=al.getElementsByTagName("body")[0];if(!e){return}bp.style.width=bp.style.paddingLeft="1px";e.appendChild(bp);a.boxModel=a.support.boxModel=bp.offsetWidth===2;if("zoom" in bp.style){bp.style.display="inline";bp.style.zoom=1;a.support.inlineBlockNeedsLayout=bp.offsetWidth===2;bp.style.display="";bp.innerHTML="<div style='width:4px;'></div>";a.support.shrinkWrapBlocks=bp.offsetWidth!==2}bp.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var bo=bp.getElementsByTagName("td");a.support.reliableHiddenOffsets=bo[0].offsetHeight===0;bo[0].style.display="";bo[1].style.display="none";a.support.reliableHiddenOffsets=a.support.reliableHiddenOffsets&&bo[0].offsetHeight===0;bp.innerHTML="";e.removeChild(bp).style.display="none";bp=bo=null});var bi=function(e){var bp=al.createElement("div");e="on"+e;if(!bp.attachEvent){return true}var bo=(e in bp);if(!bo){bp.setAttribute(e,"return;");bo=typeof bp[e]==="function"}bp=null;return bo};a.support.submitBubbles=bi("submit");a.support.changeBubbles=bi("change");bd=bm=bk=null})();var aE=/^(?:\{.*\}|\[.*\])$/;a.extend({cache:{},uuid:0,expando:"jQuery"+(a.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?a.cache[e[a.expando]]:e[a.expando];return !!e&&!P(e)},data:function(bf,bd,bh,bg){if(!a.acceptData(bf)){return}var bk=a.expando,bj=typeof bd==="string",bi,bl=bf.nodeType,e=bl?a.cache:bf,be=bl?bf[a.expando]:bf[a.expando]&&a.expando;if((!be||(bg&&be&&!e[be][bk]))&&bj&&bh===H){return}if(!be){if(bl){bf[a.expando]=be=++a.uuid}else{be=a.expando}}if(!e[be]){e[be]={};if(!bl){e[be].toJSON=a.noop}}if(typeof bd==="object"||typeof bd==="function"){if(bg){e[be][bk]=a.extend(e[be][bk],bd)}else{e[be]=a.extend(e[be],bd)}}bi=e[be];if(bg){if(!bi[bk]){bi[bk]={}}bi=bi[bk]}if(bh!==H){bi[bd]=bh}if(bd==="events"&&!bi[bd]){return bi[bk]&&bi[bk].events}return bj?bi[bd]:bi},removeData:function(bg,be,bh){if(!a.acceptData(bg)){return}var bj=a.expando,bk=bg.nodeType,bd=bk?a.cache:bg,bf=bk?bg[a.expando]:a.expando;if(!bd[bf]){return}if(be){var bi=bh?bd[bf][bj]:bd[bf];if(bi){delete bi[be];if(!P(bi)){return}}}if(bh){delete bd[bf][bj];if(!P(bd[bf])){return}}var e=bd[bf][bj];if(a.support.deleteExpando||bd!=aY){delete bd[bf]}else{bd[bf]=null}if(e){bd[bf]={};if(!bk){bd[bf].toJSON=a.noop}bd[bf][bj]=e}else{if(bk){if(a.support.deleteExpando){delete bg[a.expando]}else{if(bg.removeAttribute){bg.removeAttribute(a.expando)}else{bg[a.expando]=null}}}}},_data:function(bd,e,be){return a.data(bd,e,be,true)},acceptData:function(bd){if(bd.nodeName){var e=a.noData[bd.nodeName.toLowerCase()];if(e){return !(e===true||bd.getAttribute("classid")!==e)}}return true}});a.fn.extend({data:function(bg,bi){var bh=null;if(typeof bg==="undefined"){if(this.length){bh=a.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,be;for(var bf=0,bd=e.length;bf<bd;bf++){be=e[bf].name;if(be.indexOf("data-")===0){be=be.substr(5);aT(this[0],be,bh[be])}}}}return bh}else{if(typeof bg==="object"){return this.each(function(){a.data(this,bg)})}}var bj=bg.split(".");bj[1]=bj[1]?"."+bj[1]:"";if(bi===H){bh=this.triggerHandler("getData"+bj[1]+"!",[bj[0]]);if(bh===H&&this.length){bh=a.data(this[0],bg);bh=aT(this[0],bg,bh)}return bh===H&&bj[1]?this.data(bj[0]):bh}else{return this.each(function(){var bl=a(this),bk=[bj[0],bi];bl.triggerHandler("setData"+bj[1]+"!",bk);a.data(this,bg,bi);bl.triggerHandler("changeData"+bj[1]+"!",bk)})}},removeData:function(e){return this.each(function(){a.removeData(this,e)})}});function aT(be,bd,bf){if(bf===H&&be.nodeType===1){bf=be.getAttribute("data-"+bd);if(typeof bf==="string"){try{bf=bf==="true"?true:bf==="false"?false:bf==="null"?null:!a.isNaN(bf)?parseFloat(bf):aE.test(bf)?a.parseJSON(bf):bf}catch(bg){}a.data(be,bd,bf)}else{bf=H}}return bf}function P(bd){for(var e in bd){if(e!=="toJSON"){return false}}return true}a.extend({queue:function(bd,e,bf){if(!bd){return}e=(e||"fx")+"queue";var be=a._data(bd,e);if(!bf){return be||[]}if(!be||a.isArray(bf)){be=a._data(bd,e,a.makeArray(bf))}else{be.push(bf)}return be},dequeue:function(bf,be){be=be||"fx";var e=a.queue(bf,be),bd=e.shift();if(bd==="inprogress"){bd=e.shift()}if(bd){if(be==="fx"){e.unshift("inprogress")}bd.call(bf,function(){a.dequeue(bf,be)})}if(!e.length){a.removeData(bf,be+"queue",true)}}});a.fn.extend({queue:function(e,bd){if(typeof e!=="string"){bd=e;e="fx"}if(bd===H){return a.queue(this[0],e)}return this.each(function(bf){var be=a.queue(this,e,bd);if(e==="fx"&&be[0]!=="inprogress"){a.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){a.dequeue(this,e)})},delay:function(bd,e){bd=a.fx?a.fx.speeds[bd]||bd:bd;e=e||"fx";return this.queue(e,function(){var be=this;setTimeout(function(){a.dequeue(be,e)},bd)})},clearQueue:function(e){return this.queue(e||"fx",[])}});var aC=/[\n\t\r]/g,a3=/\s+/,aG=/\r/g,a2=/^(?:href|src|style)$/,f=/^(?:button|input)$/i,C=/^(?:button|input|object|select|textarea)$/i,k=/^a(?:rea)?$/i,Q=/^(?:radio|checkbox)$/i;a.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};a.fn.extend({attr:function(e,bd){return a.access(this,e,bd,true,a.attr)},removeAttr:function(e,bd){return this.each(function(){a.attr(this,e,"");if(this.nodeType===1){this.removeAttribute(e)}})},addClass:function(bj){if(a.isFunction(bj)){return this.each(function(bm){var bl=a(this);bl.addClass(bj.call(this,bm,bl.attr("class")))})}if(bj&&typeof bj==="string"){var e=(bj||"").split(a3);for(var bf=0,be=this.length;bf<be;bf++){var bd=this[bf];if(bd.nodeType===1){if(!bd.className){bd.className=bj}else{var bg=" "+bd.className+" ",bi=bd.className;for(var bh=0,bk=e.length;bh<bk;bh++){if(bg.indexOf(" "+e[bh]+" ")<0){bi+=" "+e[bh]}}bd.className=a.trim(bi)}}}}return this},removeClass:function(bh){if(a.isFunction(bh)){return this.each(function(bl){var bk=a(this);bk.removeClass(bh.call(this,bl,bk.attr("class")))})}if((bh&&typeof bh==="string")||bh===H){var bi=(bh||"").split(a3);for(var be=0,bd=this.length;be<bd;be++){var bg=this[be];if(bg.nodeType===1&&bg.className){if(bh){var bf=(" "+bg.className+" ").replace(aC," ");for(var bj=0,e=bi.length;bj<e;bj++){bf=bf.replace(" "+bi[bj]+" "," ")}bg.className=a.trim(bf)}else{bg.className=""}}}}return this},toggleClass:function(bf,bd){var be=typeof bf,e=typeof bd==="boolean";if(a.isFunction(bf)){return this.each(function(bh){var bg=a(this);bg.toggleClass(bf.call(this,bh,bg.attr("class"),bd),bd)})}return this.each(function(){if(be==="string"){var bi,bh=0,bg=a(this),bj=bd,bk=bf.split(a3);while((bi=bk[bh++])){bj=e?bj:!bg.hasClass(bi);bg[bj?"addClass":"removeClass"](bi)}}else{if(be==="undefined"||be==="boolean"){if(this.className){a._data(this,"__className__",this.className)}this.className=this.className||bf===false?"":a._data(this,"__className__")||""}}})},hasClass:function(e){var bf=" "+e+" ";for(var be=0,bd=this.length;be<bd;be++){if((" "+this[be].className+" ").replace(aC," ").indexOf(bf)>-1){return true}}return false},val:function(bk){if(!arguments.length){var be=this[0];if(be){if(a.nodeName(be,"option")){var bd=be.attributes.value;return !bd||bd.specified?be.value:be.text}if(a.nodeName(be,"select")){var bi=be.selectedIndex,bl=[],bm=be.options,bh=be.type==="select-one";if(bi<0){return null}for(var bf=bh?bi:0,bj=bh?bi+1:bm.length;bf<bj;bf++){var bg=bm[bf];if(bg.selected&&(a.support.optDisabled?!bg.disabled:bg.getAttribute("disabled")===null)&&(!bg.parentNode.disabled||!a.nodeName(bg.parentNode,"optgroup"))){bk=a(bg).val();if(bh){return bk}bl.push(bk)}}if(bh&&!bl.length&&bm.length){return a(bm[bi]).val()}return bl}if(Q.test(be.type)&&!a.support.checkOn){return be.getAttribute("value")===null?"on":be.value}return(be.value||"").replace(aG,"")}return H}var e=a.isFunction(bk);return this.each(function(bp){var bo=a(this),bq=bk;if(this.nodeType!==1){return}if(e){bq=bk.call(this,bp,bo.val())}if(bq==null){bq=""}else{if(typeof bq==="number"){bq+=""}else{if(a.isArray(bq)){bq=a.map(bq,function(br){return br==null?"":br+""})}}}if(a.isArray(bq)&&Q.test(this.type)){this.checked=a.inArray(bo.val(),bq)>=0}else{if(a.nodeName(this,"select")){var bn=a.makeArray(bq);a("option",this).each(function(){this.selected=a.inArray(a(this).val(),bn)>=0});if(!bn.length){this.selectedIndex=-1}}else{this.value=bq}}})}});a.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bd,e,bi,bl){if(!bd||bd.nodeType===3||bd.nodeType===8||bd.nodeType===2){return H}if(bl&&e in a.attrFn){return a(bd)[e](bi)}var be=bd.nodeType!==1||!a.isXMLDoc(bd),bh=bi!==H;e=be&&a.props[e]||e;if(bd.nodeType===1){var bg=a2.test(e);if(e==="selected"&&!a.support.optSelected){var bj=bd.parentNode;if(bj){bj.selectedIndex;if(bj.parentNode){bj.parentNode.selectedIndex}}}if((e in bd||bd[e]!==H)&&be&&!bg){if(bh){if(e==="type"&&f.test(bd.nodeName)&&bd.parentNode){a.error("type property can't be changed")}if(bi===null){if(bd.nodeType===1){bd.removeAttribute(e)}}else{bd[e]=bi}}if(a.nodeName(bd,"form")&&bd.getAttributeNode(e)){return bd.getAttributeNode(e).nodeValue}if(e==="tabIndex"){var bk=bd.getAttributeNode("tabIndex");return bk&&bk.specified?bk.value:C.test(bd.nodeName)||k.test(bd.nodeName)&&bd.href?0:H}return bd[e]}if(!a.support.style&&be&&e==="style"){if(bh){bd.style.cssText=""+bi}return bd.style.cssText}if(bh){bd.setAttribute(e,""+bi)}if(!bd.attributes[e]&&(bd.hasAttribute&&!bd.hasAttribute(e))){return H}var bf=!a.support.hrefNormalized&&be&&bg?bd.getAttribute(e,2):bd.getAttribute(e);return bf===null?H:bf}if(bh){bd[e]=bi}return bd[e]}});var aP=/\.(.*)$/,a0=/^(?:textarea|input|select)$/i,K=/\./g,aa=/ /g,aw=/[^\w\s.|`]/g,E=function(e){return e.replace(aw,"\\$&")};a.event={add:function(bg,bk,br,bi){if(bg.nodeType===3||bg.nodeType===8){return}try{if(a.isWindow(bg)&&(bg!==aY&&!bg.frameElement)){bg=aY}}catch(bl){}if(br===false){br=a5}else{if(!br){return}}var be,bp;if(br.handler){be=br;br=be.handler}if(!br.guid){br.guid=a.guid++}var bm=a._data(bg);if(!bm){return}var bq=bm.events,bj=bm.handle;if(!bq){bm.events=bq={}}if(!bj){bm.handle=bj=function(){return typeof a!=="undefined"&&!a.event.triggered?a.event.handle.apply(bj.elem,arguments):H}}bj.elem=bg;bk=bk.split(" ");var bo,bh=0,bd;while((bo=bk[bh++])){bp=be?a.extend({},be):{handler:br,data:bi};if(bo.indexOf(".")>-1){bd=bo.split(".");bo=bd.shift();bp.namespace=bd.slice(0).sort().join(".")}else{bd=[];bp.namespace=""}bp.type=bo;if(!bp.guid){bp.guid=br.guid}var bf=bq[bo],bn=a.event.special[bo]||{};if(!bf){bf=bq[bo]=[];if(!bn.setup||bn.setup.call(bg,bi,bd,bj)===false){if(bg.addEventListener){bg.addEventListener(bo,bj,false)}else{if(bg.attachEvent){bg.attachEvent("on"+bo,bj)}}}}if(bn.add){bn.add.call(bg,bp);if(!bp.handler.guid){bp.handler.guid=br.guid}}bf.push(bp);a.event.global[bo]=true}bg=null},global:{},remove:function(br,bm,be,bi){if(br.nodeType===3||br.nodeType===8){return}if(be===false){be=a5}var bu,bh,bj,bo,bp=0,bf,bk,bn,bg,bl,e,bt,bq=a.hasData(br)&&a._data(br),bd=bq&&bq.events;if(!bq||!bd){return}if(bm&&bm.type){be=bm.handler;bm=bm.type}if(!bm||typeof bm==="string"&&bm.charAt(0)==="."){bm=bm||"";for(bh in bd){a.event.remove(br,bh+bm)}return}bm=bm.split(" ");while((bh=bm[bp++])){bt=bh;e=null;bf=bh.indexOf(".")<0;bk=[];if(!bf){bk=bh.split(".");bh=bk.shift();bn=new RegExp("(^|\\.)"+a.map(bk.slice(0).sort(),E).join("\\.(?:.*\\.)?")+"(\\.|$)")}bl=bd[bh];if(!bl){continue}if(!be){for(bo=0;bo<bl.length;bo++){e=bl[bo];if(bf||bn.test(e.namespace)){a.event.remove(br,bt,e.handler,bo);bl.splice(bo--,1)}}continue}bg=a.event.special[bh]||{};for(bo=bi||0;bo<bl.length;bo++){e=bl[bo];if(be.guid===e.guid){if(bf||bn.test(e.namespace)){if(bi==null){bl.splice(bo--,1)}if(bg.remove){bg.remove.call(br,e)}}if(bi!=null){break}}}if(bl.length===0||bi!=null&&bl.length===1){if(!bg.teardown||bg.teardown.call(br,bk)===false){a.removeEvent(br,bh,bq.handle)}bu=null;delete bd[bh]}}if(a.isEmptyObject(bd)){var bs=bq.handle;if(bs){bs.elem=null}delete bq.events;delete bq.handle;if(a.isEmptyObject(bq)){a.removeData(br,H,true)}}},trigger:function(bd,bi,bf){var bm=bd.type||bd,bh=arguments[3];if(!bh){bd=typeof bd==="object"?bd[a.expando]?bd:a.extend(a.Event(bm),bd):a.Event(bm);if(bm.indexOf("!")>=0){bd.type=bm=bm.slice(0,-1);bd.exclusive=true}if(!bf){bd.stopPropagation();if(a.event.global[bm]){a.each(a.cache,function(){var br=a.expando,bq=this[br];if(bq&&bq.events&&bq.events[bm]){a.event.trigger(bd,bi,bq.handle.elem)}})}}if(!bf||bf.nodeType===3||bf.nodeType===8){return H}bd.result=H;bd.target=bf;bi=a.makeArray(bi);bi.unshift(bd)}bd.currentTarget=bf;var bj=a._data(bf,"handle");if(bj){bj.apply(bf,bi)}var bo=bf.parentNode||bf.ownerDocument;try{if(!(bf&&bf.nodeName&&a.noData[bf.nodeName.toLowerCase()])){if(bf["on"+bm]&&bf["on"+bm].apply(bf,bi)===false){bd.result=false;bd.preventDefault()}}}catch(bn){}if(!bd.isPropagationStopped()&&bo){a.event.trigger(bd,bi,bo,true)}else{if(!bd.isDefaultPrevented()){var be,bk=bd.target,e=bm.replace(aP,""),bp=a.nodeName(bk,"a")&&e==="click",bl=a.event.special[e]||{};if((!bl._default||bl._default.call(bf,bd)===false)&&!bp&&!(bk&&bk.nodeName&&a.noData[bk.nodeName.toLowerCase()])){try{if(bk[e]){be=bk["on"+e];if(be){bk["on"+e]=null}a.event.triggered=true;bk[e]()}}catch(bg){}if(be){bk["on"+e]=be}a.event.triggered=false}}}},handle:function(e){var bl,be,bd,bn,bm,bh=[],bj=a.makeArray(arguments);e=bj[0]=a.event.fix(e||aY.event);e.currentTarget=this;bl=e.type.indexOf(".")<0&&!e.exclusive;if(!bl){bd=e.type.split(".");e.type=bd.shift();bh=bd.slice(0).sort();bn=new RegExp("(^|\\.)"+bh.join("\\.(?:.*\\.)?")+"(\\.|$)")}e.namespace=e.namespace||bh.join(".");bm=a._data(this,"events");be=(bm||{})[e.type];if(bm&&be){be=be.slice(0);for(var bg=0,bf=be.length;bg<bf;bg++){var bk=be[bg];if(bl||bn.test(bk.namespace)){e.handler=bk.handler;e.data=bk.data;e.handleObj=bk;var bi=bk.handler.apply(this,bj);if(bi!==H){e.result=bi;if(bi===false){e.preventDefault();e.stopPropagation()}}if(e.isImmediatePropagationStopped()){break}}}}return e.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 pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(bf){if(bf[a.expando]){return bf}var bd=bf;bf=a.Event(bd);for(var be=this.props.length,bh;be;){bh=this.props[--be];bf[bh]=bd[bh]}if(!bf.target){bf.target=bf.srcElement||al}if(bf.target.nodeType===3){bf.target=bf.target.parentNode}if(!bf.relatedTarget&&bf.fromElement){bf.relatedTarget=bf.fromElement===bf.target?bf.toElement:bf.fromElement}if(bf.pageX==null&&bf.clientX!=null){var bg=al.documentElement,e=al.body;bf.pageX=bf.clientX+(bg&&bg.scrollLeft||e&&e.scrollLeft||0)-(bg&&bg.clientLeft||e&&e.clientLeft||0);bf.pageY=bf.clientY+(bg&&bg.scrollTop||e&&e.scrollTop||0)-(bg&&bg.clientTop||e&&e.clientTop||0)}if(bf.which==null&&(bf.charCode!=null||bf.keyCode!=null)){bf.which=bf.charCode!=null?bf.charCode:bf.keyCode}if(!bf.metaKey&&bf.ctrlKey){bf.metaKey=bf.ctrlKey}if(!bf.which&&bf.button!==H){bf.which=(bf.button&1?1:(bf.button&2?3:(bf.button&4?2:0)))}return bf},guid:100000000,proxy:a.proxy,special:{ready:{setup:a.bindReady,teardown:a.noop},live:{add:function(e){a.event.add(this,n(e.origType,e.selector),a.extend({},e,{handler:af,guid:e.handler.guid}))},remove:function(e){a.event.remove(this,n(e.origType,e.selector),e)}},beforeunload:{setup:function(be,bd,e){if(a.isWindow(this)){this.onbeforeunload=e}},teardown:function(bd,e){if(this.onbeforeunload===e){this.onbeforeunload=null}}}}};a.removeEvent=al.removeEventListener?function(bd,e,be){if(bd.removeEventListener){bd.removeEventListener(e,be,false)}}:function(bd,e,be){if(bd.detachEvent){bd.detachEvent("on"+e,be)}};a.Event=function(e){if(!this.preventDefault){return new a.Event(e)}if(e&&e.type){this.originalEvent=e;this.type=e.type;this.isDefaultPrevented=(e.defaultPrevented||e.returnValue===false||e.getPreventDefault&&e.getPreventDefault())?h:a5}else{this.type=e}this.timeStamp=a.now();this[a.expando]=true};function a5(){return false}function h(){return true}a.Event.prototype={preventDefault:function(){this.isDefaultPrevented=h;var bd=this.originalEvent;if(!bd){return}if(bd.preventDefault){bd.preventDefault()}else{bd.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=h;var bd=this.originalEvent;if(!bd){return}if(bd.stopPropagation){bd.stopPropagation()}bd.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=h;this.stopPropagation()},isDefaultPrevented:a5,isPropagationStopped:a5,isImmediatePropagationStopped:a5};var Z=function(be){var bd=be.relatedTarget;try{if(bd!==al&&!bd.parentNode){return}while(bd&&bd!==this){bd=bd.parentNode}if(bd!==this){be.type=be.data;a.event.handle.apply(this,arguments)}}catch(bf){}},aK=function(e){e.type=e.data;a.event.handle.apply(this,arguments)};a.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bd,e){a.event.special[bd]={setup:function(be){a.event.add(this,e,be&&be.selector?aK:Z,bd)},teardown:function(be){a.event.remove(this,e,be&&be.selector?aK:Z)}}});if(!a.support.submitBubbles){a.event.special.submit={setup:function(bd,e){if(this.nodeName&&this.nodeName.toLowerCase()!=="form"){a.event.add(this,"click.specialSubmit",function(bg){var bf=bg.target,be=bf.type;if((be==="submit"||be==="image")&&a(bf).closest("form").length){aN("submit",this,arguments)}});a.event.add(this,"keypress.specialSubmit",function(bg){var bf=bg.target,be=bf.type;if((be==="text"||be==="password")&&a(bf).closest("form").length&&bg.keyCode===13){aN("submit",this,arguments)}})}else{return false}},teardown:function(e){a.event.remove(this,".specialSubmit")}}}if(!a.support.changeBubbles){var a6,j=function(bd){var e=bd.type,be=bd.value;if(e==="radio"||e==="checkbox"){be=bd.checked}else{if(e==="select-multiple"){be=bd.selectedIndex>-1?a.map(bd.options,function(bf){return bf.selected}).join("-"):""}else{if(bd.nodeName.toLowerCase()==="select"){be=bd.selectedIndex}}}return be},X=function X(bf){var bd=bf.target,be,bg;if(!a0.test(bd.nodeName)||bd.readOnly){return}be=a._data(bd,"_change_data");bg=j(bd);if(bf.type!=="focusout"||bd.type!=="radio"){a._data(bd,"_change_data",bg)}if(be===H||bg===be){return}if(be!=null||bg){bf.type="change";bf.liveFired=H;a.event.trigger(bf,arguments[1],bd)}};a.event.special.change={filters:{focusout:X,beforedeactivate:X,click:function(bf){var be=bf.target,bd=be.type;if(bd==="radio"||bd==="checkbox"||be.nodeName.toLowerCase()==="select"){X.call(this,bf)}},keydown:function(bf){var be=bf.target,bd=be.type;if((bf.keyCode===13&&be.nodeName.toLowerCase()!=="textarea")||(bf.keyCode===32&&(bd==="checkbox"||bd==="radio"))||bd==="select-multiple"){X.call(this,bf)}},beforeactivate:function(be){var bd=be.target;a._data(bd,"_change_data",j(bd))}},setup:function(be,bd){if(this.type==="file"){return false}for(var e in a6){a.event.add(this,e+".specialChange",a6[e])}return a0.test(this.nodeName)},teardown:function(e){a.event.remove(this,".specialChange");return a0.test(this.nodeName)}};a6=a.event.special.change.filters;a6.focus=a6.beforeactivate}function aN(bd,bf,e){var be=a.extend({},e[0]);be.type=bd;be.originalEvent={};be.liveFired=H;a.event.handle.call(bf,be);if(be.isDefaultPrevented()){e[0].preventDefault()}}if(al.addEventListener){a.each({focus:"focusin",blur:"focusout"},function(be,e){a.event.special[e]={setup:function(){this.addEventListener(be,bd,true)},teardown:function(){this.removeEventListener(be,bd,true)}};function bd(bf){bf=a.event.fix(bf);bf.type=e;return a.event.handle.call(this,bf)}})}a.each(["bind","one"],function(bd,e){a.fn[e]=function(bj,bk,bi){if(typeof bj==="object"){for(var bg in bj){this[e](bg,bk,bj[bg],bi)}return this}if(a.isFunction(bk)||bk===false){bi=bk;bk=H}var bh=e==="one"?a.proxy(bi,function(bl){a(this).unbind(bl,bh);return bi.apply(this,arguments)}):bi;if(bj==="unload"&&e!=="one"){this.one(bj,bk,bi)}else{for(var bf=0,be=this.length;bf<be;bf++){a.event.add(this[bf],bj,bh,bk)}}return this}});a.fn.extend({unbind:function(bg,bf){if(typeof bg==="object"&&!bg.preventDefault){for(var be in bg){this.unbind(be,bg[be])}}else{for(var bd=0,e=this.length;bd<e;bd++){a.event.remove(this[bd],bg,bf)}}return this},delegate:function(e,bd,bf,be){return this.live(bd,bf,be,e)},undelegate:function(e,bd,be){if(arguments.length===0){return this.unbind("live")}else{return this.die(bd,null,be,e)}},trigger:function(e,bd){return this.each(function(){a.event.trigger(e,bd,this)})},triggerHandler:function(e,be){if(this[0]){var bd=a.Event(e);bd.preventDefault();bd.stopPropagation();a.event.trigger(bd,be,this[0]);return bd.result}},toggle:function(be){var e=arguments,bd=1;while(bd<e.length){a.proxy(be,e[bd++])}return this.click(a.proxy(be,function(bf){var bg=(a._data(this,"lastToggle"+be.guid)||0)%bd;a._data(this,"lastToggle"+be.guid,bg+1);bf.preventDefault();return e[bg].apply(this,arguments)||false}))},hover:function(e,bd){return this.mouseenter(e).mouseleave(bd||e)}});var aH={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};a.each(["live","die"],function(bd,e){a.fn[e]=function(bn,bk,bp,bg){var bo,bl=0,bm,bf,br,bi=bg||this.selector,be=bg?this:a(this.context);if(typeof bn==="object"&&!bn.preventDefault){for(var bq in bn){be[e](bq,bk,bn[bq],bi)}return this}if(a.isFunction(bk)){bp=bk;bk=H}bn=(bn||"").split(" ");while((bo=bn[bl++])!=null){bm=aP.exec(bo);bf="";if(bm){bf=bm[0];bo=bo.replace(aP,"")}if(bo==="hover"){bn.push("mouseenter"+bf,"mouseleave"+bf);continue}br=bo;if(bo==="focus"||bo==="blur"){bn.push(aH[bo]+bf);bo=bo+bf}else{bo=(aH[bo]||bo)+bf}if(e==="live"){for(var bj=0,bh=be.length;bj<bh;bj++){a.event.add(be[bj],"live."+n(bo,bi),{data:bk,selector:bi,handler:bp,origType:bo,origHandler:bp,preType:br})}}else{be.unbind("live."+n(bo,bi),bp)}}return this}});function af(bn){var bk,bf,bt,bh,e,bp,bm,bo,bl,bs,bj,bi,br,bq=[],bg=[],bd=a._data(this,"events");if(bn.liveFired===this||!bd||!bd.live||bn.target.disabled||bn.button&&bn.type==="click"){return}if(bn.namespace){bi=new RegExp("(^|\\.)"+bn.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")}bn.liveFired=this;var be=bd.live.slice(0);for(bm=0;bm<be.length;bm++){e=be[bm];if(e.origType.replace(aP,"")===bn.type){bg.push(e.selector)}else{be.splice(bm--,1)}}bh=a(bn.target).closest(bg,bn.currentTarget);for(bo=0,bl=bh.length;bo<bl;bo++){bj=bh[bo];for(bm=0;bm<be.length;bm++){e=be[bm];if(bj.selector===e.selector&&(!bi||bi.test(e.namespace))&&!bj.elem.disabled){bp=bj.elem;bt=null;if(e.preType==="mouseenter"||e.preType==="mouseleave"){bn.type=e.preType;bt=a(bn.relatedTarget).closest(e.selector)[0]}if(!bt||bt!==bp){bq.push({elem:bp,handleObj:e,level:bj.level})}}}}for(bo=0,bl=bq.length;bo<bl;bo++){bh=bq[bo];if(bf&&bh.level>bf){break}bn.currentTarget=bh.elem;bn.data=bh.handleObj.data;bn.handleObj=bh.handleObj;br=bh.handleObj.origHandler.apply(bh.elem,arguments);if(br===false||bn.isPropagationStopped()){bf=bh.level;if(br===false){bk=false}if(bn.isImmediatePropagationStopped()){break}}}return bk}function n(bd,e){return(bd&&bd!=="*"?bd+".":"")+e.replace(K,"`").replace(aa,"&")}a.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(" "),function(bd,e){a.fn[e]=function(bf,be){if(be==null){be=bf;bf=null}return arguments.length>0?this.bind(e,bf,be):this.trigger(e)};if(a.attrFn){a.attrFn[e]=true}});
/*
* Sizzle CSS Selector Engine
* Copyright 2011, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses.
* More information: http://sizzlejs.com/
*/
-(function(){var bj=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bc=0,a7=Object.prototype.toString,bi=false,bb=true;[0,0].sort(function(){bb=false;return 0});var a5=function(bq,bl,bt,bu){bt=bt||[];bl=bl||ae;var bw=bl;if(bl.nodeType!==1&&bl.nodeType!==9){return[]}if(!bq||typeof bq!=="string"){return bt}var bn,by,bB,bm,bx,bA,bz,bs,bp=true,bo=a5.isXML(bl),br=[],bv=bq;do{bj.exec("");bn=bj.exec(bv);if(bn){bv=bn[3];br.push(bn[1]);if(bn[2]){bm=bn[3];break}}}while(bn);if(br.length>1&&bd.exec(bq)){if(br.length===2&&a8.relative[br[0]]){by=ba(br[0]+br[1],bl)}else{by=a8.relative[br[0]]?[bl]:a5(br.shift(),bl);while(br.length){bq=br.shift();if(a8.relative[bq]){bq+=br.shift()}by=ba(bq,by)}}}else{if(!bu&&br.length>1&&bl.nodeType===9&&!bo&&a8.match.ID.test(br[0])&&!a8.match.ID.test(br[br.length-1])){bx=a5.find(br.shift(),bl,bo);bl=bx.expr?a5.filter(bx.expr,bx.set)[0]:bx.set[0]}if(bl){bx=bu?{expr:br.pop(),set:a4(bu)}:a5.find(br.pop(),br.length===1&&(br[0]==="~"||br[0]==="+")&&bl.parentNode?bl.parentNode:bl,bo);by=bx.expr?a5.filter(bx.expr,bx.set):bx.set;if(br.length>0){bB=a4(by)}else{bp=false}while(br.length){bA=br.pop();bz=bA;if(!a8.relative[bA]){bA=""}else{bz=br.pop()}if(bz==null){bz=bl}a8.relative[bA](bB,bz,bo)}}else{bB=br=[]}}if(!bB){bB=by}if(!bB){a5.error(bA||bq)}if(a7.call(bB)==="[object Array]"){if(!bp){bt.push.apply(bt,bB)}else{if(bl&&bl.nodeType===1){for(bs=0;bB[bs]!=null;bs++){if(bB[bs]&&(bB[bs]===true||bB[bs].nodeType===1&&a5.contains(bl,bB[bs]))){bt.push(by[bs])}}}else{for(bs=0;bB[bs]!=null;bs++){if(bB[bs]&&bB[bs].nodeType===1){bt.push(by[bs])}}}}}else{a4(bB,bt)}if(bm){a5(bm,bw,bt,bu);a5.uniqueSort(bt)}return bt};a5.uniqueSort=function(bm){if(a6){bi=bb;bm.sort(a6);if(bi){for(var bl=1;bl<bm.length;bl++){if(bm[bl]===bm[bl-1]){bm.splice(bl--,1)}}}}return bm};a5.matches=function(bl,bm){return a5(bl,null,null,bm)};a5.matchesSelector=function(bl,bm){return a5(bm,null,null,[bl]).length>0};a5.find=function(bs,bl,bt){var br;if(!bs){return[]}for(var bo=0,bn=a8.order.length;bo<bn;bo++){var bp,bq=a8.order[bo];if((bp=a8.leftMatch[bq].exec(bs))){var bm=bp[1];bp.splice(1,1);if(bm.substr(bm.length-1)!=="\\"){bp[1]=(bp[1]||"").replace(/\\/g,"");br=a8.find[bq](bp,bl,bt);if(br!=null){bs=bs.replace(a8.match[bq],"");break}}}}if(!br){br=typeof bl.getElementsByTagName!=="undefined"?bl.getElementsByTagName("*"):[]}return{set:br,expr:bs}};a5.filter=function(bw,bv,bz,bp){var br,bl,bn=bw,bB=[],bt=bv,bs=bv&&bv[0]&&a5.isXML(bv[0]);while(bw&&bv.length){for(var bu in a8.filter){if((br=a8.leftMatch[bu].exec(bw))!=null&&br[2]){var bA,by,bm=a8.filter[bu],bo=br[1];bl=false;br.splice(1,1);if(bo.substr(bo.length-1)==="\\"){continue}if(bt===bB){bB=[]}if(a8.preFilter[bu]){br=a8.preFilter[bu](br,bt,bz,bB,bp,bs);if(!br){bl=bA=true}else{if(br===true){continue}}}if(br){for(var bq=0;(by=bt[bq])!=null;bq++){if(by){bA=bm(by,br,bq,bt);var bx=bp^!!bA;if(bz&&bA!=null){if(bx){bl=true}else{bt[bq]=false}}else{if(bx){bB.push(by);bl=true}}}}}if(bA!==E){if(!bz){bt=bB}bw=bw.replace(a8.match[bu],"");if(!bl){return[]}break}}}if(bw===bn){if(bl==null){a5.error(bw)}else{break}}bn=bw}return bt};a5.error=function(bl){throw"Syntax error, unrecognized expression: "+bl};var a8=a5.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(bl){return bl.getAttribute("href")}},relative:{"+":function(br,bm){var bo=typeof bm==="string",bq=bo&&!/\W/.test(bm),bs=bo&&!bq;if(bq){bm=bm.toLowerCase()}for(var bn=0,bl=br.length,bp;bn<bl;bn++){if((bp=br[bn])){while((bp=bp.previousSibling)&&bp.nodeType!==1){}br[bn]=bs||bp&&bp.nodeName.toLowerCase()===bm?bp||false:bp===bm}}if(bs){a5.filter(bm,br,true)}},">":function(br,bm){var bq,bp=typeof bm==="string",bn=0,bl=br.length;if(bp&&!/\W/.test(bm)){bm=bm.toLowerCase();for(;bn<bl;bn++){bq=br[bn];if(bq){var bo=bq.parentNode;br[bn]=bo.nodeName.toLowerCase()===bm?bo:false}}}else{for(;bn<bl;bn++){bq=br[bn];if(bq){br[bn]=bp?bq.parentNode:bq.parentNode===bm}}if(bp){a5.filter(bm,br,true)}}},"":function(bo,bm,bq){var bp,bn=bc++,bl=bk;if(typeof bm==="string"&&!/\W/.test(bm)){bm=bm.toLowerCase();bp=bm;bl=bh}bl("parentNode",bm,bn,bo,bp,bq)},"~":function(bo,bm,bq){var bp,bn=bc++,bl=bk;if(typeof bm==="string"&&!/\W/.test(bm)){bm=bm.toLowerCase();bp=bm;bl=bh}bl("previousSibling",bm,bn,bo,bp,bq)}},find:{ID:function(bm,bn,bo){if(typeof bn.getElementById!=="undefined"&&!bo){var bl=bn.getElementById(bm[1]);return bl&&bl.parentNode?[bl]:[]}},NAME:function(bn,bq){if(typeof bq.getElementsByName!=="undefined"){var bm=[],bp=bq.getElementsByName(bn[1]);for(var bo=0,bl=bp.length;bo<bl;bo++){if(bp[bo].getAttribute("name")===bn[1]){bm.push(bp[bo])}}return bm.length===0?null:bm}},TAG:function(bl,bm){if(typeof bm.getElementsByTagName!=="undefined"){return bm.getElementsByTagName(bl[1])}}},preFilter:{CLASS:function(bo,bm,bn,bl,br,bs){bo=" "+bo[1].replace(/\\/g,"")+" ";if(bs){return bo}for(var bp=0,bq;(bq=bm[bp])!=null;bp++){if(bq){if(br^(bq.className&&(" "+bq.className+" ").replace(/[\t\n\r]/g," ").indexOf(bo)>=0)){if(!bn){bl.push(bq)}}else{if(bn){bm[bp]=false}}}}return false},ID:function(bl){return bl[1].replace(/\\/g,"")},TAG:function(bm,bl){return bm[1].toLowerCase()},CHILD:function(bl){if(bl[1]==="nth"){if(!bl[2]){a5.error(bl[0])}bl[2]=bl[2].replace(/^\+|\s*/g,"");var bm=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(bl[2]==="even"&&"2n"||bl[2]==="odd"&&"2n+1"||!/\D/.test(bl[2])&&"0n+"+bl[2]||bl[2]);bl[2]=(bm[1]+(bm[2]||1))-0;bl[3]=bm[3]-0}else{if(bl[2]){a5.error(bl[0])}}bl[0]=bc++;return bl},ATTR:function(bp,bm,bn,bl,bq,br){var bo=bp[1]=bp[1].replace(/\\/g,"");if(!br&&a8.attrMap[bo]){bp[1]=a8.attrMap[bo]}bp[4]=(bp[4]||bp[5]||"").replace(/\\/g,"");if(bp[2]==="~="){bp[4]=" "+bp[4]+" "}return bp},PSEUDO:function(bp,bm,bn,bl,bq){if(bp[1]==="not"){if((bj.exec(bp[3])||"").length>1||/^\w/.test(bp[3])){bp[3]=a5(bp[3],null,null,bm)}else{var bo=a5.filter(bp[3],bm,bn,true^bq);if(!bn){bl.push.apply(bl,bo)}return false}}else{if(a8.match.POS.test(bp[0])||a8.match.CHILD.test(bp[0])){return true}}return bp},POS:function(bl){bl.unshift(true);return bl}},filters:{enabled:function(bl){return bl.disabled===false&&bl.type!=="hidden"},disabled:function(bl){return bl.disabled===true},checked:function(bl){return bl.checked===true},selected:function(bl){bl.parentNode.selectedIndex;return bl.selected===true},parent:function(bl){return !!bl.firstChild},empty:function(bl){return !bl.firstChild},has:function(bn,bm,bl){return !!a5(bl[3],bn).length},header:function(bl){return(/h\d/i).test(bl.nodeName)},text:function(bl){return"text"===bl.type},radio:function(bl){return"radio"===bl.type},checkbox:function(bl){return"checkbox"===bl.type},file:function(bl){return"file"===bl.type},password:function(bl){return"password"===bl.type},submit:function(bl){return"submit"===bl.type},image:function(bl){return"image"===bl.type},reset:function(bl){return"reset"===bl.type},button:function(bl){return"button"===bl.type||bl.nodeName.toLowerCase()==="button"},input:function(bl){return(/input|select|textarea|button/i).test(bl.nodeName)}},setFilters:{first:function(bm,bl){return bl===0},last:function(bn,bm,bl,bo){return bm===bo.length-1},even:function(bm,bl){return bl%2===0},odd:function(bm,bl){return bl%2===1},lt:function(bn,bm,bl){return bm<bl[3]-0},gt:function(bn,bm,bl){return bm>bl[3]-0},nth:function(bn,bm,bl){return bl[3]-0===bm},eq:function(bn,bm,bl){return bl[3]-0===bm}},filter:{PSEUDO:function(bn,bs,br,bt){var bl=bs[1],bm=a8.filters[bl];if(bm){return bm(bn,br,bs,bt)}else{if(bl==="contains"){return(bn.textContent||bn.innerText||a5.getText([bn])||"").indexOf(bs[3])>=0}else{if(bl==="not"){var bo=bs[3];for(var bq=0,bp=bo.length;bq<bp;bq++){if(bo[bq]===bn){return false}}return true}else{a5.error(bl)}}}},CHILD:function(bl,bo){var br=bo[1],bm=bl;switch(br){case"only":case"first":while((bm=bm.previousSibling)){if(bm.nodeType===1){return false}}if(br==="first"){return true}bm=bl;case"last":while((bm=bm.nextSibling)){if(bm.nodeType===1){return false}}return true;case"nth":var bn=bo[2],bu=bo[3];if(bn===1&&bu===0){return true}var bq=bo[0],bt=bl.parentNode;if(bt&&(bt.sizcache!==bq||!bl.nodeIndex)){var bp=0;for(bm=bt.firstChild;bm;bm=bm.nextSibling){if(bm.nodeType===1){bm.nodeIndex=++bp}}bt.sizcache=bq}var bs=bl.nodeIndex-bu;if(bn===0){return bs===0}else{return(bs%bn===0&&bs/bn>=0)}}},ID:function(bm,bl){return bm.nodeType===1&&bm.getAttribute("id")===bl},TAG:function(bm,bl){return(bl==="*"&&bm.nodeType===1)||bm.nodeName.toLowerCase()===bl},CLASS:function(bm,bl){return(" "+(bm.className||bm.getAttribute("class"))+" ").indexOf(bl)>-1},ATTR:function(bq,bo){var bn=bo[1],bl=a8.attrHandle[bn]?a8.attrHandle[bn](bq):bq[bn]!=null?bq[bn]:bq.getAttribute(bn),br=bl+"",bp=bo[2],bm=bo[4];return bl==null?bp==="!=":bp==="="?br===bm:bp==="*="?br.indexOf(bm)>=0:bp==="~="?(" "+br+" ").indexOf(bm)>=0:!bm?br&&bl!==false:bp==="!="?br!==bm:bp==="^="?br.indexOf(bm)===0:bp==="$="?br.substr(br.length-bm.length)===bm:bp==="|="?br===bm||br.substr(0,bm.length+1)===bm+"-":false},POS:function(bp,bm,bn,bq){var bl=bm[2],bo=a8.setFilters[bl];if(bo){return bo(bp,bn,bm,bq)}}}};var bd=a8.match.POS,a9=function(bm,bl){return"\\"+(bl-0+1)};for(var bg in a8.match){a8.match[bg]=new RegExp(a8.match[bg].source+(/(?![^\[]*\])(?![^\(]*\))/.source));a8.leftMatch[bg]=new RegExp(/(^(?:.|\r|\n)*?)/.source+a8.match[bg].source.replace(/\\(\d+)/g,a9))}var a4=function(bm,bl){bm=Array.prototype.slice.call(bm,0);if(bl){bl.push.apply(bl,bm);return bl}return bm};try{Array.prototype.slice.call(ae.documentElement.childNodes,0)[0].nodeType}catch(be){a4=function(bp,bo){var bn=0,bm=bo||[];if(a7.call(bp)==="[object Array]"){Array.prototype.push.apply(bm,bp)}else{if(typeof bp.length==="number"){for(var bl=bp.length;bn<bl;bn++){bm.push(bp[bn])}}else{for(;bp[bn];bn++){bm.push(bp[bn])}}}return bm}}var a6,bf;if(ae.documentElement.compareDocumentPosition){a6=function(bm,bl){if(bm===bl){bi=true;return 0}if(!bm.compareDocumentPosition||!bl.compareDocumentPosition){return bm.compareDocumentPosition?-1:1}return bm.compareDocumentPosition(bl)&4?-1:1}}else{a6=function(bv,bu){var bs,bn,bo=[],bm=[],br=bv.parentNode,bt=bu.parentNode,bw=br;if(bv===bu){bi=true;return 0}else{if(br===bt){return bf(bv,bu)}else{if(!br){return -1}else{if(!bt){return 1}}}}while(bw){bo.unshift(bw);bw=bw.parentNode}bw=bt;while(bw){bm.unshift(bw);bw=bw.parentNode}bs=bo.length;bn=bm.length;for(var bq=0;bq<bs&&bq<bn;bq++){if(bo[bq]!==bm[bq]){return bf(bo[bq],bm[bq])}}return bq===bs?bf(bv,bm[bq],-1):bf(bo[bq],bu,1)};bf=function(bm,bl,bn){if(bm===bl){return bn}var bo=bm.nextSibling;while(bo){if(bo===bl){return -1}bo=bo.nextSibling}return 1}}a5.getText=function(bl){var bm="",bo;for(var bn=0;bl[bn];bn++){bo=bl[bn];if(bo.nodeType===3||bo.nodeType===4){bm+=bo.nodeValue}else{if(bo.nodeType!==8){bm+=a5.getText(bo.childNodes)}}}return bm};(function(){var bm=ae.createElement("div"),bn="script"+(new Date()).getTime(),bl=ae.documentElement;bm.innerHTML="<a name='"+bn+"'/>";bl.insertBefore(bm,bl.firstChild);if(ae.getElementById(bn)){a8.find.ID=function(bp,bq,br){if(typeof bq.getElementById!=="undefined"&&!br){var bo=bq.getElementById(bp[1]);return bo?bo.id===bp[1]||typeof bo.getAttributeNode!=="undefined"&&bo.getAttributeNode("id").nodeValue===bp[1]?[bo]:E:[]}};a8.filter.ID=function(bq,bo){var bp=typeof bq.getAttributeNode!=="undefined"&&bq.getAttributeNode("id");return bq.nodeType===1&&bp&&bp.nodeValue===bo}}bl.removeChild(bm);bl=bm=null})();(function(){var bl=ae.createElement("div");bl.appendChild(ae.createComment(""));if(bl.getElementsByTagName("*").length>0){a8.find.TAG=function(bm,bq){var bp=bq.getElementsByTagName(bm[1]);if(bm[1]==="*"){var bo=[];for(var bn=0;bp[bn];bn++){if(bp[bn].nodeType===1){bo.push(bp[bn])}}bp=bo}return bp}}bl.innerHTML="<a href='#'></a>";if(bl.firstChild&&typeof bl.firstChild.getAttribute!=="undefined"&&bl.firstChild.getAttribute("href")!=="#"){a8.attrHandle.href=function(bm){return bm.getAttribute("href",2)}}bl=null})();if(ae.querySelectorAll){(function(){var bl=a5,bo=ae.createElement("div"),bn="__sizzle__";bo.innerHTML="<p class='TEST'></p>";if(bo.querySelectorAll&&bo.querySelectorAll(".TEST").length===0){return}a5=function(by,bq,bt,bx){bq=bq||ae;if(!bx&&!a5.isXML(bq)){var bw=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(by);if(bw&&(bq.nodeType===1||bq.nodeType===9)){if(bw[1]){return a4(bq.getElementsByTagName(by),bt)}else{if(bw[2]&&a8.find.CLASS&&bq.getElementsByClassName){return a4(bq.getElementsByClassName(bw[2]),bt)}}}if(bq.nodeType===9){if(by==="body"&&bq.body){return a4([bq.body],bt)}else{if(bw&&bw[3]){var bs=bq.getElementById(bw[3]);if(bs&&bs.parentNode){if(bs.id===bw[3]){return a4([bs],bt)}}else{return a4([],bt)}}}try{return a4(bq.querySelectorAll(by),bt)}catch(bu){}}else{if(bq.nodeType===1&&bq.nodeName.toLowerCase()!=="object"){var br=bq.getAttribute("id"),bp=br||bn,bA=bq.parentNode,bz=/^\s*[+~]/.test(by);if(!br){bq.setAttribute("id",bp)}else{bp=bp.replace(/'/g,"\\$&")}if(bz&&bA){bq=bq.parentNode}try{if(!bz||bA){return a4(bq.querySelectorAll("[id='"+bp+"'] "+by),bt)}}catch(bv){}finally{if(!br){bq.removeAttribute("id")}}}}}return bl(by,bq,bt,bx)};for(var bm in bl){a5[bm]=bl[bm]}bo=null})()}(function(){var bl=ae.documentElement,bn=bl.matchesSelector||bl.mozMatchesSelector||bl.webkitMatchesSelector||bl.msMatchesSelector,bm=false;try{bn.call(ae.documentElement,"[test!='']:sizzle")}catch(bo){bm=true}if(bn){a5.matchesSelector=function(bp,br){br=br.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!a5.isXML(bp)){try{if(bm||!a8.match.PSEUDO.test(br)&&!/!=/.test(br)){return bn.call(bp,br)}}catch(bq){}}return a5(br,null,null,[bp]).length>0}}})();(function(){var bl=ae.createElement("div");bl.innerHTML="<div class='test e'></div><div class='test'></div>";if(!bl.getElementsByClassName||bl.getElementsByClassName("e").length===0){return}bl.lastChild.className="e";if(bl.getElementsByClassName("e").length===1){return}a8.order.splice(1,0,"CLASS");a8.find.CLASS=function(bm,bn,bo){if(typeof bn.getElementsByClassName!=="undefined"&&!bo){return bn.getElementsByClassName(bm[1])}};bl=null})();function bh(bm,br,bq,bu,bs,bt){for(var bo=0,bn=bu.length;bo<bn;bo++){var bl=bu[bo];if(bl){var bp=false;bl=bl[bm];while(bl){if(bl.sizcache===bq){bp=bu[bl.sizset];break}if(bl.nodeType===1&&!bt){bl.sizcache=bq;bl.sizset=bo}if(bl.nodeName.toLowerCase()===br){bp=bl;break}bl=bl[bm]}bu[bo]=bp}}}function bk(bm,br,bq,bu,bs,bt){for(var bo=0,bn=bu.length;bo<bn;bo++){var bl=bu[bo];if(bl){var bp=false;bl=bl[bm];while(bl){if(bl.sizcache===bq){bp=bu[bl.sizset];break}if(bl.nodeType===1){if(!bt){bl.sizcache=bq;bl.sizset=bo}if(typeof br!=="string"){if(bl===br){bp=true;break}}else{if(a5.filter(br,[bl]).length>0){bp=bl;break}}}bl=bl[bm]}bu[bo]=bp}}}if(ae.documentElement.contains){a5.contains=function(bm,bl){return bm!==bl&&(bm.contains?bm.contains(bl):true)}}else{if(ae.documentElement.compareDocumentPosition){a5.contains=function(bm,bl){return !!(bm.compareDocumentPosition(bl)&16)}}else{a5.contains=function(){return false}}}a5.isXML=function(bl){var bm=(bl?bl.ownerDocument||bl:0).documentElement;return bm?bm.nodeName!=="HTML":false};var ba=function(bl,bs){var bq,bo=[],bp="",bn=bs.nodeType?[bs]:bs;while((bq=a8.match.PSEUDO.exec(bl))){bp+=bq[0];bl=bl.replace(a8.match.PSEUDO,"")}bl=a8.relative[bl]?bl+"*":bl;for(var br=0,bm=bn.length;br<bm;br++){a5(bl,bn[br],bo)}return a5.filter(bp,bo)};a.find=a5;a.expr=a5.selectors;a.expr[":"]=a.expr.filters;a.unique=a5.uniqueSort;a.text=a5.getText;a.isXMLDoc=a5.isXML;a.contains=a5.contains})();var Q=/Until$/,ab=/^(?:parents|prevUntil|prevAll)/,aN=/,/,aZ=/^.[^:#\[\.,]*$/,I=Array.prototype.slice,C=a.expr.match.POS,ag={children:true,contents:true,next:true,prev:true};a.fn.extend({find:function(a4){var a6=this.pushStack("","find",a4),a9=0;for(var a7=0,a5=this.length;a7<a5;a7++){a9=a6.length;a.find(a4,this[a7],a6);if(a7>0){for(var ba=a9;ba<a6.length;ba++){for(var a8=0;a8<a9;a8++){if(a6[a8]===a6[ba]){a6.splice(ba--,1);break}}}}}return a6},has:function(a5){var a4=a(a5);return this.filter(function(){for(var a7=0,a6=a4.length;a7<a6;a7++){if(a.contains(this,a4[a7])){return true}}})},not:function(a4){return this.pushStack(al(this,a4,false),"not",a4)},filter:function(a4){return this.pushStack(al(this,a4,true),"filter",a4)},is:function(a4){return !!a4&&a.filter(a4,this).length>0},closest:function(be,a5){var bb=[],a8,a6,bd=this[0];if(a.isArray(be)){var ba,a7,a9={},a4=1;if(bd&&be.length){for(a8=0,a6=be.length;a8<a6;a8++){a7=be[a8];if(!a9[a7]){a9[a7]=a.expr.match.POS.test(a7)?a(a7,a5||this.context):a7}}while(bd&&bd.ownerDocument&&bd!==a5){for(a7 in a9){ba=a9[a7];if(ba.jquery?ba.index(bd)>-1:a(bd).is(ba)){bb.push({selector:a7,elem:bd,level:a4})}}bd=bd.parentNode;a4++}}return bb}var bc=C.test(be)?a(be,a5||this.context):null;for(a8=0,a6=this.length;a8<a6;a8++){bd=this[a8];while(bd){if(bc?bc.index(bd)>-1:a.find.matchesSelector(bd,be)){bb.push(bd);break}else{bd=bd.parentNode;if(!bd||!bd.ownerDocument||bd===a5){break}}}}bb=bb.length>1?a.unique(bb):bb;return this.pushStack(bb,"closest",be)},index:function(a4){if(!a4||typeof a4==="string"){return a.inArray(this[0],a4?a(a4):this.parent().children())}return a.inArray(a4.jquery?a4[0]:a4,this)},add:function(a4,a5){var a7=typeof a4==="string"?a(a4,a5):a.makeArray(a4),a6=a.merge(this.get(),a7);return this.pushStack(y(a7[0])||y(a6[0])?a6:a.unique(a6))},andSelf:function(){return this.add(this.prevObject)}});function y(a4){return !a4||!a4.parentNode||a4.parentNode.nodeType===11}a.each({parent:function(a5){var a4=a5.parentNode;return a4&&a4.nodeType!==11?a4:null},parents:function(a4){return a.dir(a4,"parentNode")},parentsUntil:function(a5,a4,a6){return a.dir(a5,"parentNode",a6)},next:function(a4){return a.nth(a4,2,"nextSibling")},prev:function(a4){return a.nth(a4,2,"previousSibling")},nextAll:function(a4){return a.dir(a4,"nextSibling")},prevAll:function(a4){return a.dir(a4,"previousSibling")},nextUntil:function(a5,a4,a6){return a.dir(a5,"nextSibling",a6)},prevUntil:function(a5,a4,a6){return a.dir(a5,"previousSibling",a6)},siblings:function(a4){return a.sibling(a4.parentNode.firstChild,a4)},children:function(a4){return a.sibling(a4.firstChild)},contents:function(a4){return a.nodeName(a4,"iframe")?a4.contentDocument||a4.contentWindow.document:a.makeArray(a4.childNodes)}},function(a4,a5){a.fn[a4]=function(a9,a6){var a8=a.map(this,a5,a9),a7=I.call(arguments);if(!Q.test(a4)){a6=a9}if(a6&&typeof a6==="string"){a8=a.filter(a6,a8)}a8=this.length>1&&!ag[a4]?a.unique(a8):a8;if((this.length>1||aN.test(a6))&&ab.test(a4)){a8=a8.reverse()}return this.pushStack(a8,a4,a7.join(","))}});a.extend({filter:function(a6,a4,a5){if(a5){a6=":not("+a6+")"}return a4.length===1?a.find.matchesSelector(a4[0],a6)?[a4[0]]:[]:a.find.matches(a6,a4)},dir:function(a6,a5,a8){var a4=[],a7=a6[a5];while(a7&&a7.nodeType!==9&&(a8===E||a7.nodeType!==1||!a(a7).is(a8))){if(a7.nodeType===1){a4.push(a7)}a7=a7[a5]}return a4},nth:function(a8,a4,a6,a7){a4=a4||1;var a5=0;for(;a8;a8=a8[a6]){if(a8.nodeType===1&&++a5===a4){break}}return a8},sibling:function(a6,a5){var a4=[];for(;a6;a6=a6.nextSibling){if(a6.nodeType===1&&a6!==a5){a4.push(a6)}}return a4}});function al(a7,a6,a4){if(a.isFunction(a6)){return a.grep(a7,function(a9,a8){var ba=!!a6.call(a9,a8,a9);return ba===a4})}else{if(a6.nodeType){return a.grep(a7,function(a9,a8){return(a9===a6)===a4})}else{if(typeof a6==="string"){var a5=a.grep(a7,function(a8){return a8.nodeType===1});if(aZ.test(a6)){return a.filter(a6,a5,!a4)}else{a6=a.filter(a6,a5)}}}}return a.grep(a7,function(a9,a8){return(a.inArray(a9,a6)>=0)===a4})}var V=/ jQuery\d+="(?:\d+|null)"/g,ac=/^\s+/,K=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,c=/<([\w:]+)/,t=/<tbody/i,N=/<|&#?\w+;/,H=/<(?:script|object|embed|option|style)/i,l=/checked\s*(?:[^=]|=\s*.checked.)/i,af={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,"",""]};af.optgroup=af.option;af.tbody=af.tfoot=af.colgroup=af.caption=af.thead;af.th=af.td;if(!a.support.htmlSerialize){af._default=[1,"div<div>","</div>"]}a.fn.extend({text:function(a4){if(a.isFunction(a4)){return this.each(function(a6){var a5=a(this);a5.text(a4.call(this,a6,a5.text()))})}if(typeof a4!=="object"&&a4!==E){return this.empty().append((this[0]&&this[0].ownerDocument||ae).createTextNode(a4))}return a.text(this)},wrapAll:function(a4){if(a.isFunction(a4)){return this.each(function(a6){a(this).wrapAll(a4.call(this,a6))})}if(this[0]){var a5=a(a4,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){a5.insertBefore(this[0])}a5.map(function(){var a6=this;while(a6.firstChild&&a6.firstChild.nodeType===1){a6=a6.firstChild}return a6}).append(this)}return this},wrapInner:function(a4){if(a.isFunction(a4)){return this.each(function(a5){a(this).wrapInner(a4.call(this,a5))})}return this.each(function(){var a5=a(this),a6=a5.contents();if(a6.length){a6.wrapAll(a4)}else{a5.append(a4)}})},wrap:function(a4){return this.each(function(){a(this).wrapAll(a4)})},unwrap:function(){return this.parent().each(function(){if(!a.nodeName(this,"body")){a(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(a4){if(this.nodeType===1){this.appendChild(a4)}})},prepend:function(){return this.domManip(arguments,true,function(a4){if(this.nodeType===1){this.insertBefore(a4,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(a5){this.parentNode.insertBefore(a5,this)})}else{if(arguments.length){var a4=a(arguments[0]);a4.push.apply(a4,this.toArray());return this.pushStack(a4,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(a5){this.parentNode.insertBefore(a5,this.nextSibling)})}else{if(arguments.length){var a4=this.pushStack(this,"after",arguments);a4.push.apply(a4,a(arguments[0]).toArray());return a4}}},remove:function(a4,a7){for(var a5=0,a6;(a6=this[a5])!=null;a5++){if(!a4||a.filter(a4,[a6]).length){if(!a7&&a6.nodeType===1){a.cleanData(a6.getElementsByTagName("*"));a.cleanData([a6])}if(a6.parentNode){a6.parentNode.removeChild(a6)}}}return this},empty:function(){for(var a4=0,a5;(a5=this[a4])!=null;a4++){if(a5.nodeType===1){a.cleanData(a5.getElementsByTagName("*"))}while(a5.firstChild){a5.removeChild(a5.firstChild)}}return this},clone:function(a5,a4){a5=a5==null?true:a5;a4=a4==null?a5:a4;return this.map(function(){return a.clone(this,a5,a4)})},html:function(a6){if(a6===E){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(V,""):null}else{if(typeof a6==="string"&&!H.test(a6)&&(a.support.leadingWhitespace||!ac.test(a6))&&!af[(c.exec(a6)||["",""])[1].toLowerCase()]){a6=a6.replace(K,"<$1></$2>");try{for(var a5=0,a4=this.length;a5<a4;a5++){if(this[a5].nodeType===1){a.cleanData(this[a5].getElementsByTagName("*"));this[a5].innerHTML=a6}}}catch(a7){this.empty().append(a6)}}else{if(a.isFunction(a6)){this.each(function(a9){var a8=a(this);a8.html(a6.call(this,a9,a8.html()))})}else{this.empty().append(a6)}}}return this},replaceWith:function(a4){if(this[0]&&this[0].parentNode){if(a.isFunction(a4)){return this.each(function(a7){var a6=a(this),a5=a6.html();a6.replaceWith(a4.call(this,a7,a5))})}if(typeof a4!=="string"){a4=a(a4).detach()}return this.each(function(){var a6=this.nextSibling,a5=this.parentNode;a(this).remove();if(a6){a(a6).before(a4)}else{a(a5).append(a4)}})}else{return this.pushStack(a(a.isFunction(a4)?a4():a4),"replaceWith",a4)}},detach:function(a4){return this.remove(a4,true)},domManip:function(bb,bf,be){var a7,a8,ba,bd,bc=bb[0],a5=[];if(!a.support.checkClone&&arguments.length===3&&typeof bc==="string"&&l.test(bc)){return this.each(function(){a(this).domManip(bb,bf,be,true)})}if(a.isFunction(bc)){return this.each(function(bh){var bg=a(this);bb[0]=bc.call(this,bh,bf?bg.html():E);bg.domManip(bb,bf,be)})}if(this[0]){bd=bc&&bc.parentNode;if(a.support.parentNode&&bd&&bd.nodeType===11&&bd.childNodes.length===this.length){a7={fragment:bd}}else{a7=a.buildFragment(bb,this,a5)}ba=a7.fragment;if(ba.childNodes.length===1){a8=ba=ba.firstChild}else{a8=ba.firstChild}if(a8){bf=bf&&a.nodeName(a8,"tr");for(var a6=0,a4=this.length,a9=a4-1;a6<a4;a6++){be.call(bf?aO(this[a6],a8):this[a6],a7.cacheable||(a4>1&&a6<a9)?a.clone(ba,true,true):ba)}}if(a5.length){a.each(a5,aY)}}return this}});function aO(a4,a5){return a.nodeName(a4,"table")?(a4.getElementsByTagName("tbody")[0]||a4.appendChild(a4.ownerDocument.createElement("tbody"))):a4}function q(a4,bb){if(bb.nodeType!==1||!a.hasData(a4)){return}var ba=a.expando,a7=a.data(a4),a8=a.data(bb,a7);if((a7=a7[ba])){var bc=a7.events;a8=a8[ba]=a.extend({},a7);if(bc){delete a8.handle;a8.events={};for(var a9 in bc){for(var a6=0,a5=bc[a9].length;a6<a5;a6++){a.event.add(bb,a9,bc[a9][a6],bc[a9][a6].data)}}}}}function W(a5,a4){if(a4.nodeType!==1){return}var a6=a4.nodeName.toLowerCase();a4.clearAttributes();a4.mergeAttributes(a5);if(a6==="object"){a4.outerHTML=a5.outerHTML}else{if(a6==="input"&&(a5.type==="checkbox"||a5.type==="radio")){if(a5.checked){a4.defaultChecked=a4.checked=a5.checked}if(a4.value!==a5.value){a4.value=a5.value}}else{if(a6==="option"){a4.selected=a5.defaultSelected}else{if(a6==="input"||a6==="textarea"){a4.defaultValue=a5.defaultValue}}}}a4.removeAttribute(a.expando)}a.buildFragment=function(a9,a7,a5){var a8,a4,a6,ba=(a7&&a7[0]?a7[0].ownerDocument||a7[0]:ae);if(a9.length===1&&typeof a9[0]==="string"&&a9[0].length<512&&ba===ae&&a9[0].charAt(0)==="<"&&!H.test(a9[0])&&(a.support.checkClone||!l.test(a9[0]))){a4=true;a6=a.fragments[a9[0]];if(a6){if(a6!==1){a8=a6}}}if(!a8){a8=ba.createDocumentFragment();a.clean(a9,ba,a8,a5)}if(a4){a.fragments[a9[0]]=a6?a8:1}return{fragment:a8,cacheable:a4}};a.fragments={};a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a4,a5){a.fn[a4]=function(a6){var a9=[],bc=a(a6),bb=this.length===1&&this[0].parentNode;if(bb&&bb.nodeType===11&&bb.childNodes.length===1&&bc.length===1){bc[a5](this[0]);return this}else{for(var ba=0,a7=bc.length;ba<a7;ba++){var a8=(ba>0?this.clone(true):this).get();a(bc[ba])[a5](a8);a9=a9.concat(a8)}return this.pushStack(a9,a4,bc.selector)}}});a.extend({clone:function(a8,ba,a6){var a9=a8.cloneNode(true),a4,a5,a7;if(!a.support.noCloneEvent&&(a8.nodeType===1||a8.nodeType===11)&&!a.isXMLDoc(a8)){a4=a8.getElementsByTagName("*");a5=a9.getElementsByTagName("*");for(a7=0;a4[a7];++a7){W(a4[a7],a5[a7])}W(a8,a9)}if(ba){q(a8,a9);if(a6&&"getElementsByTagName" in a8){a4=a8.getElementsByTagName("*");a5=a9.getElementsByTagName("*");if(a4.length){for(a7=0;a4[a7];++a7){q(a4[a7],a5[a7])}}}}return a9},clean:function(a6,a8,bf,ba){a8=a8||ae;if(typeof a8.createElement==="undefined"){a8=a8.ownerDocument||a8[0]&&a8[0].ownerDocument||ae}var bg=[];for(var be=0,a9;(a9=a6[be])!=null;be++){if(typeof a9==="number"){a9+=""}if(!a9){continue}if(typeof a9==="string"&&!N.test(a9)){a9=a8.createTextNode(a9)}else{if(typeof a9==="string"){a9=a9.replace(K,"<$1></$2>");var bh=(c.exec(a9)||["",""])[1].toLowerCase(),a7=af[bh]||af._default,bd=a7[0],a5=a8.createElement("div");a5.innerHTML=a7[1]+a9+a7[2];while(bd--){a5=a5.lastChild}if(!a.support.tbody){var a4=t.test(a9),bc=bh==="table"&&!a4?a5.firstChild&&a5.firstChild.childNodes:a7[1]==="<table>"&&!a4?a5.childNodes:[];for(var bb=bc.length-1;bb>=0;--bb){if(a.nodeName(bc[bb],"tbody")&&!bc[bb].childNodes.length){bc[bb].parentNode.removeChild(bc[bb])}}}if(!a.support.leadingWhitespace&&ac.test(a9)){a5.insertBefore(a8.createTextNode(ac.exec(a9)[0]),a5.firstChild)}a9=a5.childNodes}}if(a9.nodeType){bg.push(a9)}else{bg=a.merge(bg,a9)}}if(bf){for(be=0;bg[be];be++){if(ba&&a.nodeName(bg[be],"script")&&(!bg[be].type||bg[be].type.toLowerCase()==="text/javascript")){ba.push(bg[be].parentNode?bg[be].parentNode.removeChild(bg[be]):bg[be])}else{if(bg[be].nodeType===1){bg.splice.apply(bg,[be+1,0].concat(a.makeArray(bg[be].getElementsByTagName("script"))))}bf.appendChild(bg[be])}}}return bg},cleanData:function(a5){var a8,a6,a4=a.cache,bd=a.expando,bb=a.event.special,ba=a.support.deleteExpando;for(var a9=0,a7;(a7=a5[a9])!=null;a9++){if(a7.nodeName&&a.noData[a7.nodeName.toLowerCase()]){continue}a6=a7[a.expando];if(a6){a8=a4[a6]&&a4[a6][bd];if(a8&&a8.events){for(var bc in a8.events){if(bb[bc]){a.event.remove(a7,bc)}else{a.removeEvent(a7,bc,a8.handle)}}if(a8.handle){a8.handle.elem=null}}if(ba){delete a7[a.expando]}else{if(a7.removeAttribute){a7.removeAttribute(a.expando)}}delete a4[a6]}}}});function aY(a4,a5){if(a5.src){a.ajax({url:a5.src,async:false,dataType:"script"})}else{a.globalEval(a5.text||a5.textContent||a5.innerHTML||"")}if(a5.parentNode){a5.parentNode.removeChild(a5)}}var X=/alpha\([^)]*\)/i,ad=/opacity=([^)]*)/,aB=/-([a-z])/ig,w=/([A-Z])/g,aQ=/^-?\d+(?:px)?$/i,aX=/^-?\d/,aM={position:"absolute",visibility:"hidden",display:"block"},Z=["Left","Right"],aI=["Top","Bottom"],O,ao,aA,k=function(a4,a5){return a5.toUpperCase()};a.fn.css=function(a4,a5){if(arguments.length===2&&a5===E){return this}return a.access(this,a4,a5,true,function(a7,a6,a8){return a8!==E?a.style(a7,a6,a8):a.css(a7,a6)})};a.extend({cssHooks:{opacity:{get:function(a6,a5){if(a5){var a4=O(a6,"opacity","opacity");return a4===""?"1":a4}else{return a6.style.opacity}}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,zoom:true,lineHeight:true},cssProps:{"float":a.support.cssFloat?"cssFloat":"styleFloat"},style:function(a6,a5,bb,a7){if(!a6||a6.nodeType===3||a6.nodeType===8||!a6.style){return}var ba,a8=a.camelCase(a5),a4=a6.style,bc=a.cssHooks[a8];a5=a.cssProps[a8]||a8;if(bb!==E){if(typeof bb==="number"&&isNaN(bb)||bb==null){return}if(typeof bb==="number"&&!a.cssNumber[a8]){bb+="px"}if(!bc||!("set" in bc)||(bb=bc.set(a6,bb))!==E){try{a4[a5]=bb}catch(a9){}}}else{if(bc&&"get" in bc&&(ba=bc.get(a6,false,a7))!==E){return ba}return a4[a5]}},css:function(a9,a8,a5){var a7,a6=a.camelCase(a8),a4=a.cssHooks[a6];a8=a.cssProps[a6]||a6;if(a4&&"get" in a4&&(a7=a4.get(a9,true,a5))!==E){return a7}else{if(O){return O(a9,a8,a6)}}},swap:function(a7,a6,a8){var a4={};for(var a5 in a6){a4[a5]=a7.style[a5];a7.style[a5]=a6[a5]}a8.call(a7);for(a5 in a6){a7.style[a5]=a4[a5]}},camelCase:function(a4){return a4.replace(aB,k)}});a.curCSS=a.css;a.each(["height","width"],function(a5,a4){a.cssHooks[a4]={get:function(a8,a7,a6){var a9;if(a7){if(a8.offsetWidth!==0){a9=n(a8,a4,a6)}else{a.swap(a8,aM,function(){a9=n(a8,a4,a6)})}if(a9<=0){a9=O(a8,a4,a4);if(a9==="0px"&&aA){a9=aA(a8,a4,a4)}if(a9!=null){return a9===""||a9==="auto"?"0px":a9}}if(a9<0||a9==null){a9=a8.style[a4];return a9===""||a9==="auto"?"0px":a9}return typeof a9==="string"?a9:a9+"px"}},set:function(a6,a7){if(aQ.test(a7)){a7=parseFloat(a7);if(a7>=0){return a7+"px"}}else{return a7}}}});if(!a.support.opacity){a.cssHooks.opacity={get:function(a5,a4){return ad.test((a4&&a5.currentStyle?a5.currentStyle.filter:a5.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":a4?"1":""},set:function(a7,a8){var a6=a7.style;a6.zoom=1;var a4=a.isNaN(a8)?"":"alpha(opacity="+a8*100+")",a5=a6.filter||"";a6.filter=X.test(a5)?a5.replace(X,a4):a6.filter+" "+a4}}}if(ae.defaultView&&ae.defaultView.getComputedStyle){ao=function(a9,a4,a7){var a6,a8,a5;a7=a7.replace(w,"-$1").toLowerCase();if(!(a8=a9.ownerDocument.defaultView)){return E}if((a5=a8.getComputedStyle(a9,null))){a6=a5.getPropertyValue(a7);if(a6===""&&!a.contains(a9.ownerDocument.documentElement,a9)){a6=a.style(a9,a7)}}return a6}}if(ae.documentElement.currentStyle){aA=function(a8,a6){var a9,a5=a8.currentStyle&&a8.currentStyle[a6],a4=a8.runtimeStyle&&a8.runtimeStyle[a6],a7=a8.style;if(!aQ.test(a5)&&aX.test(a5)){a9=a7.left;if(a4){a8.runtimeStyle.left=a8.currentStyle.left}a7.left=a6==="fontSize"?"1em":(a5||0);a5=a7.pixelLeft+"px";a7.left=a9;if(a4){a8.runtimeStyle.left=a4}}return a5===""?"auto":a5}}O=ao||aA;function n(a6,a5,a4){var a8=a5==="width"?Z:aI,a7=a5==="width"?a6.offsetWidth:a6.offsetHeight;if(a4==="border"){return a7}a.each(a8,function(){if(!a4){a7-=parseFloat(a.css(a6,"padding"+this))||0}if(a4==="margin"){a7+=parseFloat(a.css(a6,"margin"+this))||0}else{a7-=parseFloat(a.css(a6,"border"+this+"Width"))||0}});return a7}if(a.expr&&a.expr.filters){a.expr.filters.hidden=function(a6){var a5=a6.offsetWidth,a4=a6.offsetHeight;return(a5===0&&a4===0)||(!a.support.reliableHiddenOffsets&&(a6.style.display||a.css(a6,"display"))==="none")};a.expr.filters.visible=function(a4){return !a.expr.filters.hidden(a4)}}var h=/%20/g,aa=/\[\]$/,a3=/\r?\n/g,a0=/#.*$/,aj=/^(.*?):\s*(.*?)\r?$/mg,aE=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ar=/^(?:GET|HEAD)$/,b=/^\/\//,F=/\?/,aL=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,o=/^(?:select|textarea)/i,f=/\s+/,a2=/([?&])_=[^&]*/,D=/^(\w+:)\/\/([^\/?#:]+)(?::(\d+))?/,x=a.fn.load,P={},p={};function d(a4){return function(a8,ba){if(typeof a8!=="string"){ba=a8;a8="*"}if(a.isFunction(ba)){var a7=a8.toLowerCase().split(f),a6=0,a9=a7.length,a5,bb,bc;for(;a6<a9;a6++){a5=a7[a6];bc=/^\+/.test(a5);if(bc){a5=a5.substr(1)||"*"}bb=a4[a5]=a4[a5]||[];bb[bc?"unshift":"push"](ba)}}}}function ax(a5,be,a9,bd,bb,a7){bb=bb||be.dataTypes[0];a7=a7||{};a7[bb]=true;var ba=a5[bb],a6=0,a4=ba?ba.length:0,a8=(a5===P),bc;for(;a6<a4&&(a8||!bc);a6++){bc=ba[a6](be,a9,bd);if(typeof bc==="string"){if(a7[bc]){bc=E}else{be.dataTypes.unshift(bc);bc=ax(a5,be,a9,bd,bc,a7)}}}if((a8||!bc)&&!a7["*"]){bc=ax(a5,be,a9,bd,"*",a7)}return bc}a.fn.extend({load:function(a6,a9,ba){if(typeof a6!=="string"&&x){return x.apply(this,arguments)}else{if(!this.length){return this}}var a8=a6.indexOf(" ");if(a8>=0){var a4=a6.slice(a8,a6.length);a6=a6.slice(0,a8)}var a7="GET";if(a9){if(a.isFunction(a9)){ba=a9;a9=null}else{if(typeof a9==="object"){a9=a.param(a9,a.ajaxSettings.traditional);a7="POST"}}}var a5=this;a.ajax({url:a6,type:a7,dataType:"html",data:a9,complete:function(bd,bb,bc){bc=bd.responseText;if(bd.isResolved()){bd.done(function(be){bc=be});a5.html(a4?a("<div>").append(bc.replace(aL,"")).find(a4):bc)}if(ba){a5.each(ba,[bc,bb,bd])}}});return this},serialize:function(){return a.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?a.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||o.test(this.nodeName)||aE.test(this.type))}).map(function(a4,a5){var a6=a(this).val();return a6==null?null:a.isArray(a6)?a.map(a6,function(a8,a7){return{name:a5.name,value:a8.replace(a3,"\r\n")}}):{name:a5.name,value:a6.replace(a3,"\r\n")}}).get()}});a.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a4,a5){a.fn[a5]=function(a6){return this.bind(a5,a6)}});a.each(["get","post"],function(a4,a5){a[a5]=function(a6,a8,a9,a7){if(a.isFunction(a8)){a7=a7||a9;a9=a8;a8=null}return a.ajax({type:a5,url:a6,data:a8,success:a9,dataType:a7})}});a.extend({getScript:function(a4,a5){return a.get(a4,null,a5,"script")},getJSON:function(a4,a5,a6){return a.get(a4,a5,a6,"json")},ajaxSetup:function(a4){a.extend(true,a.ajaxSettings,a4);if(a4.context){a.ajaxSettings.context=a4.context}},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":aP.String,"text html":true,"text json":a.parseJSON,"text xml":a.parseXML}},ajaxPrefilter:d(P),ajaxTransport:d(p),ajax:function(a8,a5){if(typeof a5!=="object"){a5=a8;a8=E}a5=a5||{};var bc=a.extend(true,{},a.ajaxSettings,a5),bq=(bc.context=("context" in a5?a5:a.ajaxSettings).context)||bc,bg=bq===bc?a.event:a(bq),bp=a.Deferred(),bm=a._Deferred(),ba=bc.statusCode||{},bh={},bo,a6,bk,be,bb=ae.location,bd=bb.protocol||"http:",bi,a9=0,bj,a7={readyState:0,setRequestHeader:function(br,bs){if(a9===0){bh[br.toLowerCase()]=bs}return this},getAllResponseHeaders:function(){return a9===2?bo:null},getResponseHeader:function(bs){var br;if(a9===2){if(!a6){a6={};while((br=aj.exec(bo))){a6[br[1].toLowerCase()]=br[2]}}br=a6[bs.toLowerCase()]}return br||null},abort:function(br){br=br||"abort";if(bk){bk.abort(br)}bf(0,br);return this}};function bf(bw,bu,bx,bt){if(a9===2){return}a9=2;if(be){clearTimeout(be)}bk=E;bo=bt||"";a7.readyState=bw?4:0;var br,bB,bA,bv=bx?aU(bc,a7,bx):E,bs,bz;if(bw>=200&&bw<300||bw===304){if(bc.ifModified){if((bs=a7.getResponseHeader("Last-Modified"))){a.lastModified[bc.url]=bs}if((bz=a7.getResponseHeader("Etag"))){a.etag[bc.url]=bz}}if(bw===304){bu="notmodified";br=true}else{try{bB=A(bc,bv);bu="success";br=true}catch(by){bu="parsererror";bA=by}}}else{bA=bu;if(bw){bu="error";if(bw<0){bw=0}}}a7.status=bw;a7.statusText=bu;if(br){bp.resolveWith(bq,[bB,bu,a7])}else{bp.rejectWith(bq,[a7,bu,bA])}a7.statusCode(ba);ba=E;if(bc.global){bg.trigger("ajax"+(br?"Success":"Error"),[a7,bc,br?bB:bA])}bm.resolveWith(bq,[a7,bu]);if(bc.global){bg.trigger("ajaxComplete",[a7,bc]);if(!(--a.active)){a.event.trigger("ajaxStop")}}}bp.promise(a7);a7.success=a7.done;a7.error=a7.fail;a7.complete=bm.done;a7.statusCode=function(bs){if(bs){var br;if(a9<2){for(br in bs){ba[br]=[ba[br],bs[br]]}}else{br=bs[a7.status];a7.then(br,br)}}return this};bc.url=(""+(a8||bc.url)).replace(a0,"").replace(b,bd+"//");bc.dataTypes=a.trim(bc.dataType||"*").toLowerCase().split(f);if(!bc.crossDomain){bi=D.exec(bc.url.toLowerCase());bc.crossDomain=!!(bi&&(bi[1]!=bd||bi[2]!=bb.hostname||(bi[3]||(bi[1]==="http:"?80:443))!=(bb.port||(bd==="http:"?80:443))))}if(bc.data&&bc.processData&&typeof bc.data!=="string"){bc.data=a.param(bc.data,bc.traditional)}ax(P,bc,a5,a7);bc.type=bc.type.toUpperCase();bc.hasContent=!ar.test(bc.type);if(bc.global&&a.active++===0){a.event.trigger("ajaxStart")}if(!bc.hasContent){if(bc.data){bc.url+=(F.test(bc.url)?"&":"?")+bc.data}if(bc.cache===false){var a4=a.now(),bn=bc.url.replace(a2,"$1_="+a4);bc.url=bn+((bn===bc.url)?(F.test(bc.url)?"&":"?")+"_="+a4:"")}}if(bc.data&&bc.hasContent&&bc.contentType!==false||a5.contentType){bh["content-type"]=bc.contentType}if(bc.ifModified){if(a.lastModified[bc.url]){bh["if-modified-since"]=a.lastModified[bc.url]}if(a.etag[bc.url]){bh["if-none-match"]=a.etag[bc.url]}}bh.accept=bc.dataTypes[0]&&bc.accepts[bc.dataTypes[0]]?bc.accepts[bc.dataTypes[0]]+(bc.dataTypes[0]!=="*"?", */*; q=0.01":""):bc.accepts["*"];for(bj in bc.headers){bh[bj.toLowerCase()]=bc.headers[bj]}if(bc.beforeSend&&(bc.beforeSend.call(bq,a7,bc)===false||a9===2)){bf(0,"abort");a7=false}else{for(bj in {success:1,error:1,complete:1}){a7[bj](bc[bj])}bk=ax(p,bc,a5,a7);if(!bk){bf(-1,"No Transport")}else{a9=a7.readyState=1;if(bc.global){bg.trigger("ajaxSend",[a7,bc])}if(bc.async&&bc.timeout>0){be=setTimeout(function(){a7.abort("timeout")},bc.timeout)}try{bk.send(bh,bf)}catch(bl){if(status<2){bf(-1,bl)}else{a.error(bl)}}}}return a7},param:function(a4,a6){var a5=[],a8=function(a9,ba){ba=a.isFunction(ba)?ba():ba;a5[a5.length]=encodeURIComponent(a9)+"="+encodeURIComponent(ba)};if(a6===E){a6=a.ajaxSettings.traditional}if(a.isArray(a4)||a4.jquery){a.each(a4,function(){a8(this.name,this.value)})}else{for(var a7 in a4){s(a7,a4[a7],a6,a8)}}return a5.join("&").replace(h,"+")}});function s(a5,a7,a4,a6){if(a.isArray(a7)&&a7.length){a.each(a7,function(a9,a8){if(a4||aa.test(a5)){a6(a5,a8)}else{s(a5+"["+(typeof a8==="object"||a.isArray(a8)?a9:"")+"]",a8,a4,a6)}})}else{if(!a4&&a7!=null&&typeof a7==="object"){if(a.isArray(a7)||a.isEmptyObject(a7)){a6(a5,"")}else{a.each(a7,function(a9,a8){s(a5+"["+a9+"]",a8,a4,a6)})}}else{a6(a5,a7)}}}a.extend({active:0,lastModified:{},etag:{}});function aU(bd,bc,a9){var a5=bd.contents,bb=bd.dataTypes,a6=bd.responseFields,a8,ba,a7,a4;for(ba in a6){if(ba in a9){bc[a6[ba]]=a9[ba]}}while(bb[0]==="*"){bb.shift();if(a8===E){a8=bc.getResponseHeader("content-type")}}if(a8){for(ba in a5){if(a5[ba]&&a5[ba].test(a8)){bb.unshift(ba);break}}}if(bb[0] in a9){a7=bb[0]}else{for(ba in a9){if(!bb[0]||bd.converters[ba+" "+bb[0]]){a7=ba;break}if(!a4){a4=ba}}a7=a7||a4}if(a7){if(a7!==bb[0]){bb.unshift(a7)}return a9[a7]}}function A(bg,a9){if(bg.dataFilter){a9=bg.dataFilter(a9,bg.dataType)}var bd=bg.dataTypes,bf=bg.converters,ba,a6=bd.length,bb,bc=bd[0],a7,a8,be,a5,a4;for(ba=1;ba<a6;ba++){a7=bc;bc=bd[ba];if(bc==="*"){bc=a7}else{if(a7!=="*"&&a7!==bc){a8=a7+" "+bc;be=bf[a8]||bf["* "+bc];if(!be){a4=E;for(a5 in bf){bb=a5.split(" ");if(bb[0]===a7||bb[0]==="*"){a4=bf[bb[1]+" "+bc];if(a4){a5=bf[a5];if(a5===true){be=a4}else{if(a4===true){be=a5}}break}}}}if(!(be||a4)){a.error("No conversion from "+a8.replace(" "," to "))}if(be!==true){a9=be?be(a9):a4(a5(a9))}}}}return a9}var ai=a.now(),r=/(\=)\?(&|$)|()\?\?()/i;a.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return a.expando+"_"+(ai++)}});a.ajaxPrefilter("json jsonp",function(bc,a9,bb){bb=(typeof bc.data==="string");if(bc.dataTypes[0]==="jsonp"||a9.jsonpCallback||a9.jsonp!=null||bc.jsonp!==false&&(r.test(bc.url)||bb&&r.test(bc.data))){var ba,a6=bc.jsonpCallback=a.isFunction(bc.jsonpCallback)?bc.jsonpCallback():bc.jsonpCallback,a8=aP[a6],a4=bc.url,a7=bc.data,a5="$1"+a6+"$2";if(bc.jsonp!==false){a4=a4.replace(r,a5);if(bc.url===a4){if(bb){a7=a7.replace(r,a5)}if(bc.data===a7){a4+=(/\?/.test(a4)?"&":"?")+bc.jsonp+"="+a6}}}bc.url=a4;bc.data=a7;aP[a6]=function(bd){ba=[bd]};bc.complete=[function(){aP[a6]=a8;if(a8){if(ba&&a.isFunction(a8)){aP[a6](ba[0])}}else{try{delete aP[a6]}catch(bd){}}},bc.complete];bc.converters["script json"]=function(){if(!ba){a.error(a6+" was not called")}return ba[0]};bc.dataTypes[0]="json";return"script"}});a.ajaxSetup({accepts:{script:"text/javascript, application/javascript"},contents:{script:/javascript/},converters:{"text script":function(a4){a.globalEval(a4);return a4}}});a.ajaxPrefilter("script",function(a4){if(a4.cache===E){a4.cache=false}if(a4.crossDomain){a4.type="GET";a4.global=false}});a.ajaxTransport("script",function(a6){if(a6.crossDomain){var a4,a5=ae.getElementsByTagName("head")[0]||ae.documentElement;return{send:function(a7,a8){a4=ae.createElement("script");a4.async="async";if(a6.scriptCharset){a4.charset=a6.scriptCharset}a4.src=a6.url;a4.onload=a4.onreadystatechange=function(ba,a9){if(!a4.readyState||/loaded|complete/.test(a4.readyState)){a4.onload=a4.onreadystatechange=null;if(a5&&a4.parentNode){a5.removeChild(a4)}a4=E;if(!a9){a8(200,"success")}}};a5.insertBefore(a4,a5.firstChild)},abort:function(){if(a4){a4.onload(0,1)}}}}});var v=a.now(),aF={},aC,ak;a.ajaxSettings.xhr=aP.ActiveXObject?function(){if(aP.location.protocol!=="file:"){try{return new aP.XMLHttpRequest()}catch(a5){}}try{return new aP.ActiveXObject("Microsoft.XMLHTTP")}catch(a4){}}:function(){return new aP.XMLHttpRequest()};try{ak=a.ajaxSettings.xhr()}catch(a1){}a.support.ajax=!!ak;a.support.cors=ak&&("withCredentials" in ak);ak=E;if(a.support.ajax){a.ajaxTransport(function(a4){if(!a4.crossDomain||a.support.cors){var a5;return{send:function(ba,a6){if(!aC){aC=1;a(aP).bind("unload",function(){a.each(aF,function(bb,bc){if(bc.onreadystatechange){bc.onreadystatechange(1)}})})}var a9=a4.xhr(),a8;if(a4.username){a9.open(a4.type,a4.url,a4.async,a4.username,a4.password)}else{a9.open(a4.type,a4.url,a4.async)}if(!(a4.crossDomain&&!a4.hasContent)&&!ba["x-requested-with"]){ba["x-requested-with"]="XMLHttpRequest"}try{a.each(ba,function(bb,bc){a9.setRequestHeader(bb,bc)})}catch(a7){}a9.send((a4.hasContent&&a4.data)||null);a5=function(be,bc){if(a5&&(bc||a9.readyState===4)){a5=0;if(a8){a9.onreadystatechange=a.noop;delete aF[a8]}if(bc){if(a9.readyState!==4){a9.abort()}}else{var bb=a9.status,bi,bf=a9.getAllResponseHeaders(),bg={},bd=a9.responseXML;if(bd&&bd.documentElement){bg.xml=bd}bg.text=a9.responseText;try{bi=a9.statusText}catch(bh){bi=""}bb=bb===0?(!a4.crossDomain||bi?(bf?304:0):302):(bb==1223?204:bb);a6(bb,bi,bg,bf)}}};if(!a4.async||a9.readyState===4){a5()}else{a8=v++;aF[a8]=a9;a9.onreadystatechange=a5}},abort:function(){if(a5){a5(0,1)}}}}})}var J={},ah=/^(?:toggle|show|hide)$/,au=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,aJ,an=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];a.fn.extend({show:function(a7,ba,a9){var a6,a8;if(a7||a7===0){return this.animate(aH("show",3),a7,ba,a9)}else{for(var a5=0,a4=this.length;a5<a4;a5++){a6=this[a5];a8=a6.style.display;if(!a._data(a6,"olddisplay")&&a8==="none"){a8=a6.style.display=""}if(a8===""&&a.css(a6,"display")==="none"){a._data(a6,"olddisplay",u(a6.nodeName))}}for(a5=0;a5<a4;a5++){a6=this[a5];a8=a6.style.display;if(a8===""||a8==="none"){a6.style.display=a._data(a6,"olddisplay")||""}}return this}},hide:function(a6,a9,a8){if(a6||a6===0){return this.animate(aH("hide",3),a6,a9,a8)}else{for(var a5=0,a4=this.length;a5<a4;a5++){var a7=a.css(this[a5],"display");if(a7!=="none"&&!a._data(this[a5],"olddisplay")){a._data(this[a5],"olddisplay",a7)}}for(a5=0;a5<a4;a5++){this[a5].style.display="none"}return this}},_toggle:a.fn.toggle,toggle:function(a6,a5,a7){var a4=typeof a6==="boolean";if(a.isFunction(a6)&&a.isFunction(a5)){this._toggle.apply(this,arguments)}else{if(a6==null||a4){this.each(function(){var a8=a4?a6:a(this).is(":hidden");a(this)[a8?"show":"hide"]()})}else{this.animate(aH("toggle",3),a6,a5,a7)}}return this},fadeTo:function(a4,a7,a6,a5){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:a7},a4,a6,a5)},animate:function(a8,a5,a7,a6){var a4=a.speed(a5,a7,a6);if(a.isEmptyObject(a8)){return this.each(a4.complete)}return this[a4.queue===false?"each":"queue"](function(){var bb=a.extend({},a4),bf,bc=this.nodeType===1,bd=bc&&a(this).is(":hidden"),a9=this;for(bf in a8){var ba=a.camelCase(bf);if(bf!==ba){a8[ba]=a8[bf];delete a8[bf];bf=ba}if(a8[bf]==="hide"&&bd||a8[bf]==="show"&&!bd){return bb.complete.call(this)}if(bc&&(bf==="height"||bf==="width")){bb.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(a.css(this,"display")==="inline"&&a.css(this,"float")==="none"){if(!a.support.inlineBlockNeedsLayout){this.style.display="inline-block"}else{var be=u(this.nodeName);if(be==="inline"){this.style.display="inline-block"}else{this.style.display="inline";this.style.zoom=1}}}}if(a.isArray(a8[bf])){(bb.specialEasing=bb.specialEasing||{})[bf]=a8[bf][1];a8[bf]=a8[bf][0]}}if(bb.overflow!=null){this.style.overflow="hidden"}bb.curAnim=a.extend({},a8);a.each(a8,function(bh,bl){var bk=new a.fx(a9,bb,bh);if(ah.test(bl)){bk[bl==="toggle"?bd?"show":"hide":bl](a8)}else{var bj=au.exec(bl),bm=bk.cur()||0;if(bj){var bg=parseFloat(bj[2]),bi=bj[3]||"px";if(bi!=="px"){a.style(a9,bh,(bg||1)+bi);bm=((bg||1)/bk.cur())*bm;a.style(a9,bh,bm+bi)}if(bj[1]){bg=((bj[1]==="-="?-1:1)*bg)+bm}bk.custom(bm,bg,bi)}else{bk.custom(bm,bl,"")}}});return true})},stop:function(a5,a4){var a6=a.timers;if(a5){this.queue([])}this.each(function(){for(var a7=a6.length-1;a7>=0;a7--){if(a6[a7].elem===this){if(a4){a6[a7](true)}a6.splice(a7,1)}}});if(!a4){this.dequeue()}return this}});function aH(a5,a4){var a6={};a.each(an.concat.apply([],an.slice(0,a4)),function(){a6[this]=a5});return a6}a.each({slideDown:aH("show",1),slideUp:aH("hide",1),slideToggle:aH("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a4,a5){a.fn[a4]=function(a6,a8,a7){return this.animate(a5,a6,a8,a7)}});a.extend({speed:function(a6,a7,a5){var a4=a6&&typeof a6==="object"?a.extend({},a6):{complete:a5||!a5&&a7||a.isFunction(a6)&&a6,duration:a6,easing:a5&&a7||a7&&!a.isFunction(a7)&&a7};a4.duration=a.fx.off?0:typeof a4.duration==="number"?a4.duration:a4.duration in a.fx.speeds?a.fx.speeds[a4.duration]:a.fx.speeds._default;a4.old=a4.complete;a4.complete=function(){if(a4.queue!==false){a(this).dequeue()}if(a.isFunction(a4.old)){a4.old.call(this)}};return a4},easing:{linear:function(a6,a7,a4,a5){return a4+a5*a6},swing:function(a6,a7,a4,a5){return((-Math.cos(a6*Math.PI)/2)+0.5)*a5+a4}},timers:[],fx:function(a5,a4,a6){this.options=a4;this.elem=a5;this.prop=a6;if(!a4.orig){a4.orig={}}}});a.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(a.fx.step[this.prop]||a.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var a4=parseFloat(a.css(this.elem,this.prop));return a4||0},custom:function(a9,a8,a7){var a4=this,a6=a.fx;this.startTime=a.now();this.start=a9;this.end=a8;this.unit=a7||this.unit||"px";this.now=this.start;this.pos=this.state=0;function a5(ba){return a4.step(ba)}a5.elem=this.elem;if(a5()&&a.timers.push(a5)&&!aJ){aJ=setInterval(a6.tick,a6.interval)}},show:function(){this.options.orig[this.prop]=a.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());a(this.elem).show()},hide:function(){this.options.orig[this.prop]=a.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a7){var bc=a.now(),a8=true;if(a7||bc>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var a9 in this.options.curAnim){if(this.options.curAnim[a9]!==true){a8=false}}if(a8){if(this.options.overflow!=null&&!a.support.shrinkWrapBlocks){var a6=this.elem,bd=this.options;a.each(["","X","Y"],function(be,bf){a6.style["overflow"+bf]=bd.overflow[be]})}if(this.options.hide){a(this.elem).hide()}if(this.options.hide||this.options.show){for(var a4 in this.options.curAnim){a.style(this.elem,a4,this.options.orig[a4])}}this.options.complete.call(this.elem)}return false}else{var a5=bc-this.startTime;this.state=a5/this.options.duration;var ba=this.options.specialEasing&&this.options.specialEasing[this.prop];var bb=this.options.easing||(a.easing.swing?"swing":"linear");this.pos=a.easing[ba||bb](this.state,a5,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};a.extend(a.fx,{tick:function(){var a5=a.timers;for(var a4=0;a4<a5.length;a4++){if(!a5[a4]()){a5.splice(a4--,1)}}if(!a5.length){a.fx.stop()}},interval:13,stop:function(){clearInterval(aJ);aJ=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a4){a.style(a4.elem,"opacity",a4.now)},_default:function(a4){if(a4.elem.style&&a4.elem.style[a4.prop]!=null){a4.elem.style[a4.prop]=(a4.prop==="width"||a4.prop==="height"?Math.max(0,a4.now):a4.now)+a4.unit}else{a4.elem[a4.prop]=a4.now}}}});if(a.expr&&a.expr.filters){a.expr.filters.animated=function(a4){return a.grep(a.timers,function(a5){return a4===a5.elem}).length}}function u(a6){if(!J[a6]){var a4=a("<"+a6+">").appendTo("body"),a5=a4.css("display");a4.remove();if(a5==="none"||a5===""){a5="block"}J[a6]=a5}return J[a6]}var M=/^t(?:able|d|h)$/i,S=/^(?:body|html)$/i;if("getBoundingClientRect" in ae.documentElement){a.fn.offset=function(bh){var a7=this[0],ba;if(bh){return this.each(function(bi){a.offset.setOffset(this,bh,bi)})}if(!a7||!a7.ownerDocument){return null}if(a7===a7.ownerDocument.body){return a.offset.bodyOffset(a7)}try{ba=a7.getBoundingClientRect()}catch(be){}var bg=a7.ownerDocument,a5=bg.documentElement;if(!ba||!a.contains(a5,a7)){return ba?{top:ba.top,left:ba.left}:{top:0,left:0}}var bb=bg.body,bc=ap(bg),a9=a5.clientTop||bb.clientTop||0,bd=a5.clientLeft||bb.clientLeft||0,a4=(bc.pageYOffset||a.support.boxModel&&a5.scrollTop||bb.scrollTop),a8=(bc.pageXOffset||a.support.boxModel&&a5.scrollLeft||bb.scrollLeft),bf=ba.top+a4-a9,a6=ba.left+a8-bd;return{top:bf,left:a6}}}else{a.fn.offset=function(bf){var a9=this[0];if(bf){return this.each(function(bg){a.offset.setOffset(this,bf,bg)})}if(!a9||!a9.ownerDocument){return null}if(a9===a9.ownerDocument.body){return a.offset.bodyOffset(a9)}a.offset.initialize();var bc,a6=a9.offsetParent,a5=a9,be=a9.ownerDocument,a7=be.documentElement,ba=be.body,bb=be.defaultView,a4=bb?bb.getComputedStyle(a9,null):a9.currentStyle,bd=a9.offsetTop,a8=a9.offsetLeft;while((a9=a9.parentNode)&&a9!==ba&&a9!==a7){if(a.offset.supportsFixedPosition&&a4.position==="fixed"){break}bc=bb?bb.getComputedStyle(a9,null):a9.currentStyle;bd-=a9.scrollTop;a8-=a9.scrollLeft;if(a9===a6){bd+=a9.offsetTop;a8+=a9.offsetLeft;if(a.offset.doesNotAddBorder&&!(a.offset.doesAddBorderForTableAndCells&&M.test(a9.nodeName))){bd+=parseFloat(bc.borderTopWidth)||0;a8+=parseFloat(bc.borderLeftWidth)||0}a5=a6;a6=a9.offsetParent}if(a.offset.subtractsBorderForOverflowNotVisible&&bc.overflow!=="visible"){bd+=parseFloat(bc.borderTopWidth)||0;a8+=parseFloat(bc.borderLeftWidth)||0}a4=bc}if(a4.position==="relative"||a4.position==="static"){bd+=ba.offsetTop;a8+=ba.offsetLeft}if(a.offset.supportsFixedPosition&&a4.position==="fixed"){bd+=Math.max(a7.scrollTop,ba.scrollTop);a8+=Math.max(a7.scrollLeft,ba.scrollLeft)}return{top:bd,left:a8}}}a.offset={initialize:function(){var a4=ae.body,a5=ae.createElement("div"),a8,ba,a9,bb,a6=parseFloat(a.css(a4,"marginTop"))||0,a7="<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>";a.extend(a5.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});a5.innerHTML=a7;a4.insertBefore(a5,a4.firstChild);a8=a5.firstChild;ba=a8.firstChild;bb=a8.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(ba.offsetTop!==5);this.doesAddBorderForTableAndCells=(bb.offsetTop===5);ba.style.position="fixed";ba.style.top="20px";this.supportsFixedPosition=(ba.offsetTop===20||ba.offsetTop===15);ba.style.position=ba.style.top="";a8.style.overflow="hidden";a8.style.position="relative";this.subtractsBorderForOverflowNotVisible=(ba.offsetTop===-5);this.doesNotIncludeMarginInBodyOffset=(a4.offsetTop!==a6);a4.removeChild(a5);a4=a5=a8=ba=a9=bb=null;a.offset.initialize=a.noop},bodyOffset:function(a4){var a6=a4.offsetTop,a5=a4.offsetLeft;a.offset.initialize();if(a.offset.doesNotIncludeMarginInBodyOffset){a6+=parseFloat(a.css(a4,"marginTop"))||0;a5+=parseFloat(a.css(a4,"marginLeft"))||0}return{top:a6,left:a5}},setOffset:function(a7,bg,ba){var bb=a.css(a7,"position");if(bb==="static"){a7.style.position="relative"}var a9=a(a7),a5=a9.offset(),a4=a.css(a7,"top"),be=a.css(a7,"left"),bf=(bb==="absolute"&&a.inArray("auto",[a4,be])>-1),bd={},bc={},a6,a8;if(bf){bc=a9.position()}a6=bf?bc.top:parseInt(a4,10)||0;a8=bf?bc.left:parseInt(be,10)||0;if(a.isFunction(bg)){bg=bg.call(a7,ba,a5)}if(bg.top!=null){bd.top=(bg.top-a5.top)+a6}if(bg.left!=null){bd.left=(bg.left-a5.left)+a8}if("using" in bg){bg.using.call(a7,bd)}else{a9.css(bd)}}};a.fn.extend({position:function(){if(!this[0]){return null}var a6=this[0],a5=this.offsetParent(),a7=this.offset(),a4=S.test(a5[0].nodeName)?{top:0,left:0}:a5.offset();a7.top-=parseFloat(a.css(a6,"marginTop"))||0;a7.left-=parseFloat(a.css(a6,"marginLeft"))||0;a4.top+=parseFloat(a.css(a5[0],"borderTopWidth"))||0;a4.left+=parseFloat(a.css(a5[0],"borderLeftWidth"))||0;return{top:a7.top-a4.top,left:a7.left-a4.left}},offsetParent:function(){return this.map(function(){var a4=this.offsetParent||ae.body;while(a4&&(!S.test(a4.nodeName)&&a.css(a4,"position")==="static")){a4=a4.offsetParent}return a4})}});a.each(["Left","Top"],function(a5,a4){var a6="scroll"+a4;a.fn[a6]=function(a9){var a7=this[0],a8;if(!a7){return null}if(a9!==E){return this.each(function(){a8=ap(this);if(a8){a8.scrollTo(!a5?a9:a(a8).scrollLeft(),a5?a9:a(a8).scrollTop())}else{this[a6]=a9}})}else{a8=ap(a7);return a8?("pageXOffset" in a8)?a8[a5?"pageYOffset":"pageXOffset"]:a.support.boxModel&&a8.document.documentElement[a6]||a8.document.body[a6]:a7[a6]}}});function ap(a4){return a.isWindow(a4)?a4:a4.nodeType===9?a4.defaultView||a4.parentWindow:false}a.each(["Height","Width"],function(a5,a4){var a6=a4.toLowerCase();a.fn["inner"+a4]=function(){return this[0]?parseFloat(a.css(this[0],a6,"padding")):null};a.fn["outer"+a4]=function(a7){return this[0]?parseFloat(a.css(this[0],a6,a7?"margin":"border")):null};a.fn[a6]=function(a8){var a9=this[0];if(!a9){return a8==null?null:this}if(a.isFunction(a8)){return this.each(function(bd){var bc=a(this);bc[a6](a8.call(this,bd,bc[a6]()))})}if(a.isWindow(a9)){var ba=a9.document.documentElement["client"+a4];return a9.document.compatMode==="CSS1Compat"&&ba||a9.document.body["client"+a4]||ba}else{if(a9.nodeType===9){return Math.max(a9.documentElement["client"+a4],a9.body["scroll"+a4],a9.documentElement["scroll"+a4],a9.body["offset"+a4],a9.documentElement["offset"+a4])}else{if(a8===E){var bb=a.css(a9,a6),a7=parseFloat(bb);return a.isNaN(a7)?bb:a7}else{return this.css(a6,typeof a8==="string"?a8:a8+"px")}}}}})})(window);
\ No newline at end of file
+(function(){var bn=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bo=0,br=Object.prototype.toString,bi=false,bh=true,bp=/\\/g,bv=/\W/;[0,0].sort(function(){bh=false;return 0});var bf=function(bA,e,bD,bE){bD=bD||[];e=e||al;var bG=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bA||typeof bA!=="string"){return bD}var bx,bI,bL,bw,bH,bK,bJ,bC,bz=true,by=bf.isXML(e),bB=[],bF=bA;do{bn.exec("");bx=bn.exec(bF);if(bx){bF=bx[3];bB.push(bx[1]);if(bx[2]){bw=bx[3];break}}}while(bx);if(bB.length>1&&bj.exec(bA)){if(bB.length===2&&bk.relative[bB[0]]){bI=bs(bB[0]+bB[1],e)}else{bI=bk.relative[bB[0]]?[e]:bf(bB.shift(),e);while(bB.length){bA=bB.shift();if(bk.relative[bA]){bA+=bB.shift()}bI=bs(bA,bI)}}}else{if(!bE&&bB.length>1&&e.nodeType===9&&!by&&bk.match.ID.test(bB[0])&&!bk.match.ID.test(bB[bB.length-1])){bH=bf.find(bB.shift(),e,by);e=bH.expr?bf.filter(bH.expr,bH.set)[0]:bH.set[0]}if(e){bH=bE?{expr:bB.pop(),set:bl(bE)}:bf.find(bB.pop(),bB.length===1&&(bB[0]==="~"||bB[0]==="+")&&e.parentNode?e.parentNode:e,by);bI=bH.expr?bf.filter(bH.expr,bH.set):bH.set;if(bB.length>0){bL=bl(bI)}else{bz=false}while(bB.length){bK=bB.pop();bJ=bK;if(!bk.relative[bK]){bK=""}else{bJ=bB.pop()}if(bJ==null){bJ=e}bk.relative[bK](bL,bJ,by)}}else{bL=bB=[]}}if(!bL){bL=bI}if(!bL){bf.error(bK||bA)}if(br.call(bL)==="[object Array]"){if(!bz){bD.push.apply(bD,bL)}else{if(e&&e.nodeType===1){for(bC=0;bL[bC]!=null;bC++){if(bL[bC]&&(bL[bC]===true||bL[bC].nodeType===1&&bf.contains(e,bL[bC]))){bD.push(bI[bC])}}}else{for(bC=0;bL[bC]!=null;bC++){if(bL[bC]&&bL[bC].nodeType===1){bD.push(bI[bC])}}}}}else{bl(bL,bD)}if(bw){bf(bw,bG,bD,bE);bf.uniqueSort(bD)}return bD};bf.uniqueSort=function(bw){if(bq){bi=bh;bw.sort(bq);if(bi){for(var e=1;e<bw.length;e++){if(bw[e]===bw[e-1]){bw.splice(e--,1)}}}}return bw};bf.matches=function(e,bw){return bf(e,null,null,bw)};bf.matchesSelector=function(e,bw){return bf(bw,null,null,[e]).length>0};bf.find=function(bC,e,bD){var bB;if(!bC){return[]}for(var by=0,bx=bk.order.length;by<bx;by++){var bz,bA=bk.order[by];if((bz=bk.leftMatch[bA].exec(bC))){var bw=bz[1];bz.splice(1,1);if(bw.substr(bw.length-1)!=="\\"){bz[1]=(bz[1]||"").replace(bp,"");bB=bk.find[bA](bz,e,bD);if(bB!=null){bC=bC.replace(bk.match[bA],"");break}}}}if(!bB){bB=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:bB,expr:bC}};bf.filter=function(bG,bF,bJ,bz){var bB,e,bx=bG,bL=[],bD=bF,bC=bF&&bF[0]&&bf.isXML(bF[0]);while(bG&&bF.length){for(var bE in bk.filter){if((bB=bk.leftMatch[bE].exec(bG))!=null&&bB[2]){var bK,bI,bw=bk.filter[bE],by=bB[1];e=false;bB.splice(1,1);if(by.substr(by.length-1)==="\\"){continue}if(bD===bL){bL=[]}if(bk.preFilter[bE]){bB=bk.preFilter[bE](bB,bD,bJ,bL,bz,bC);if(!bB){e=bK=true}else{if(bB===true){continue}}}if(bB){for(var bA=0;(bI=bD[bA])!=null;bA++){if(bI){bK=bw(bI,bB,bA,bD);var bH=bz^!!bK;if(bJ&&bK!=null){if(bH){e=true}else{bD[bA]=false}}else{if(bH){bL.push(bI);e=true}}}}}if(bK!==H){if(!bJ){bD=bL}bG=bG.replace(bk.match[bE],"");if(!e){return[]}break}}}if(bG===bx){if(e==null){bf.error(bG)}else{break}}bx=bG}return bD};bf.error=function(e){throw"Syntax error, unrecognized expression: "+e};var bk=bf.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(bB,bw){var by=typeof bw==="string",bA=by&&!bv.test(bw),bC=by&&!bA;if(bA){bw=bw.toLowerCase()}for(var bx=0,e=bB.length,bz;bx<e;bx++){if((bz=bB[bx])){while((bz=bz.previousSibling)&&bz.nodeType!==1){}bB[bx]=bC||bz&&bz.nodeName.toLowerCase()===bw?bz||false:bz===bw}}if(bC){bf.filter(bw,bB,true)}},">":function(bB,bw){var bA,bz=typeof bw==="string",bx=0,e=bB.length;if(bz&&!bv.test(bw)){bw=bw.toLowerCase();for(;bx<e;bx++){bA=bB[bx];if(bA){var by=bA.parentNode;bB[bx]=by.nodeName.toLowerCase()===bw?by:false}}}else{for(;bx<e;bx++){bA=bB[bx];if(bA){bB[bx]=bz?bA.parentNode:bA.parentNode===bw}}if(bz){bf.filter(bw,bB,true)}}},"":function(by,bw,bA){var bz,bx=bo++,e=bt;if(typeof bw==="string"&&!bv.test(bw)){bw=bw.toLowerCase();bz=bw;e=bd}e("parentNode",bw,bx,by,bz,bA)},"~":function(by,bw,bA){var bz,bx=bo++,e=bt;if(typeof bw==="string"&&!bv.test(bw)){bw=bw.toLowerCase();bz=bw;e=bd}e("previousSibling",bw,bx,by,bz,bA)}},find:{ID:function(bw,bx,by){if(typeof bx.getElementById!=="undefined"&&!by){var e=bx.getElementById(bw[1]);return e&&e.parentNode?[e]:[]}},NAME:function(bx,bA){if(typeof bA.getElementsByName!=="undefined"){var bw=[],bz=bA.getElementsByName(bx[1]);for(var by=0,e=bz.length;by<e;by++){if(bz[by].getAttribute("name")===bx[1]){bw.push(bz[by])}}return bw.length===0?null:bw}},TAG:function(e,bw){if(typeof bw.getElementsByTagName!=="undefined"){return bw.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(by,bw,bx,e,bB,bC){by=" "+by[1].replace(bp,"")+" ";if(bC){return by}for(var bz=0,bA;(bA=bw[bz])!=null;bz++){if(bA){if(bB^(bA.className&&(" "+bA.className+" ").replace(/[\t\n\r]/g," ").indexOf(by)>=0)){if(!bx){e.push(bA)}}else{if(bx){bw[bz]=false}}}}return false},ID:function(e){return e[1].replace(bp,"")},TAG:function(bw,e){return bw[1].replace(bp,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){bf.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bw=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bw[1]+(bw[2]||1))-0;e[3]=bw[3]-0}else{if(e[2]){bf.error(e[0])}}e[0]=bo++;return e},ATTR:function(bz,bw,bx,e,bA,bB){var by=bz[1]=bz[1].replace(bp,"");if(!bB&&bk.attrMap[by]){bz[1]=bk.attrMap[by]}bz[4]=(bz[4]||bz[5]||"").replace(bp,"");if(bz[2]==="~="){bz[4]=" "+bz[4]+" "}return bz},PSEUDO:function(bz,bw,bx,e,bA){if(bz[1]==="not"){if((bn.exec(bz[3])||"").length>1||/^\w/.test(bz[3])){bz[3]=bf(bz[3],null,null,bw)}else{var by=bf.filter(bz[3],bw,bx,true^bA);if(!bx){e.push.apply(e,by)}return false}}else{if(bk.match.POS.test(bz[0])||bk.match.CHILD.test(bz[0])){return true}}return bz},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bx,bw,e){return !!bf(e[3],bx).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(e){return"text"===e.getAttribute("type")},radio:function(e){return"radio"===e.type},checkbox:function(e){return"checkbox"===e.type},file:function(e){return"file"===e.type},password:function(e){return"password"===e.type},submit:function(e){return"submit"===e.type},image:function(e){return"image"===e.type},reset:function(e){return"reset"===e.type},button:function(e){return"button"===e.type||e.nodeName.toLowerCase()==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)}},setFilters:{first:function(bw,e){return e===0},last:function(bx,bw,e,by){return bw===by.length-1},even:function(bw,e){return e%2===0},odd:function(bw,e){return e%2===1},lt:function(bx,bw,e){return bw<e[3]-0},gt:function(bx,bw,e){return bw>e[3]-0},nth:function(bx,bw,e){return e[3]-0===bw},eq:function(bx,bw,e){return e[3]-0===bw}},filter:{PSEUDO:function(bx,bC,bB,bD){var e=bC[1],bw=bk.filters[e];if(bw){return bw(bx,bB,bC,bD)}else{if(e==="contains"){return(bx.textContent||bx.innerText||bf.getText([bx])||"").indexOf(bC[3])>=0}else{if(e==="not"){var by=bC[3];for(var bA=0,bz=by.length;bA<bz;bA++){if(by[bA]===bx){return false}}return true}else{bf.error(e)}}}},CHILD:function(e,by){var bB=by[1],bw=e;switch(bB){case"only":case"first":while((bw=bw.previousSibling)){if(bw.nodeType===1){return false}}if(bB==="first"){return true}bw=e;case"last":while((bw=bw.nextSibling)){if(bw.nodeType===1){return false}}return true;case"nth":var bx=by[2],bE=by[3];if(bx===1&&bE===0){return true}var bA=by[0],bD=e.parentNode;if(bD&&(bD.sizcache!==bA||!e.nodeIndex)){var bz=0;for(bw=bD.firstChild;bw;bw=bw.nextSibling){if(bw.nodeType===1){bw.nodeIndex=++bz}}bD.sizcache=bA}var bC=e.nodeIndex-bE;if(bx===0){return bC===0}else{return(bC%bx===0&&bC/bx>=0)}}},ID:function(bw,e){return bw.nodeType===1&&bw.getAttribute("id")===e},TAG:function(bw,e){return(e==="*"&&bw.nodeType===1)||bw.nodeName.toLowerCase()===e},CLASS:function(bw,e){return(" "+(bw.className||bw.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bA,by){var bx=by[1],e=bk.attrHandle[bx]?bk.attrHandle[bx](bA):bA[bx]!=null?bA[bx]:bA.getAttribute(bx),bB=e+"",bz=by[2],bw=by[4];return e==null?bz==="!=":bz==="="?bB===bw:bz==="*="?bB.indexOf(bw)>=0:bz==="~="?(" "+bB+" ").indexOf(bw)>=0:!bw?bB&&e!==false:bz==="!="?bB!==bw:bz==="^="?bB.indexOf(bw)===0:bz==="$="?bB.substr(bB.length-bw.length)===bw:bz==="|="?bB===bw||bB.substr(0,bw.length+1)===bw+"-":false},POS:function(bz,bw,bx,bA){var e=bw[2],by=bk.setFilters[e];if(by){return by(bz,bx,bw,bA)}}}};var bj=bk.match.POS,be=function(bw,e){return"\\"+(e-0+1)};for(var bg in bk.match){bk.match[bg]=new RegExp(bk.match[bg].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bk.leftMatch[bg]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bk.match[bg].source.replace(/\\(\d+)/g,be))}var bl=function(bw,e){bw=Array.prototype.slice.call(bw,0);if(e){e.push.apply(e,bw);return e}return bw};try{Array.prototype.slice.call(al.documentElement.childNodes,0)[0].nodeType}catch(bu){bl=function(bz,by){var bx=0,bw=by||[];if(br.call(bz)==="[object Array]"){Array.prototype.push.apply(bw,bz)}else{if(typeof bz.length==="number"){for(var e=bz.length;bx<e;bx++){bw.push(bz[bx])}}else{for(;bz[bx];bx++){bw.push(bz[bx])}}}return bw}}var bq,bm;if(al.documentElement.compareDocumentPosition){bq=function(bw,e){if(bw===e){bi=true;return 0}if(!bw.compareDocumentPosition||!e.compareDocumentPosition){return bw.compareDocumentPosition?-1:1}return bw.compareDocumentPosition(e)&4?-1:1}}else{bq=function(bD,bC){var bA,bw,bx=[],e=[],bz=bD.parentNode,bB=bC.parentNode,bE=bz;if(bD===bC){bi=true;return 0}else{if(bz===bB){return bm(bD,bC)}else{if(!bz){return -1}else{if(!bB){return 1}}}}while(bE){bx.unshift(bE);bE=bE.parentNode}bE=bB;while(bE){e.unshift(bE);bE=bE.parentNode}bA=bx.length;bw=e.length;for(var by=0;by<bA&&by<bw;by++){if(bx[by]!==e[by]){return bm(bx[by],e[by])}}return by===bA?bm(bD,e[by],-1):bm(bx[by],bC,1)};bm=function(bw,e,bx){if(bw===e){return bx}var by=bw.nextSibling;while(by){if(by===e){return -1}by=by.nextSibling}return 1}}bf.getText=function(e){var bw="",by;for(var bx=0;e[bx];bx++){by=e[bx];if(by.nodeType===3||by.nodeType===4){bw+=by.nodeValue}else{if(by.nodeType!==8){bw+=bf.getText(by.childNodes)}}}return bw};(function(){var bw=al.createElement("div"),bx="script"+(new Date()).getTime(),e=al.documentElement;bw.innerHTML="<a name='"+bx+"'/>";e.insertBefore(bw,e.firstChild);if(al.getElementById(bx)){bk.find.ID=function(bz,bA,bB){if(typeof bA.getElementById!=="undefined"&&!bB){var by=bA.getElementById(bz[1]);return by?by.id===bz[1]||typeof by.getAttributeNode!=="undefined"&&by.getAttributeNode("id").nodeValue===bz[1]?[by]:H:[]}};bk.filter.ID=function(bA,by){var bz=typeof bA.getAttributeNode!=="undefined"&&bA.getAttributeNode("id");return bA.nodeType===1&&bz&&bz.nodeValue===by}}e.removeChild(bw);e=bw=null})();(function(){var e=al.createElement("div");e.appendChild(al.createComment(""));if(e.getElementsByTagName("*").length>0){bk.find.TAG=function(bw,bA){var bz=bA.getElementsByTagName(bw[1]);if(bw[1]==="*"){var by=[];for(var bx=0;bz[bx];bx++){if(bz[bx].nodeType===1){by.push(bz[bx])}}bz=by}return bz}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bk.attrHandle.href=function(bw){return bw.getAttribute("href",2)}}e=null})();if(al.querySelectorAll){(function(){var e=bf,by=al.createElement("div"),bx="__sizzle__";by.innerHTML="<p class='TEST'></p>";if(by.querySelectorAll&&by.querySelectorAll(".TEST").length===0){return}bf=function(bJ,bA,bE,bI){bA=bA||al;if(!bI&&!bf.isXML(bA)){var bH=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(bJ);if(bH&&(bA.nodeType===1||bA.nodeType===9)){if(bH[1]){return bl(bA.getElementsByTagName(bJ),bE)}else{if(bH[2]&&bk.find.CLASS&&bA.getElementsByClassName){return bl(bA.getElementsByClassName(bH[2]),bE)}}}if(bA.nodeType===9){if(bJ==="body"&&bA.body){return bl([bA.body],bE)}else{if(bH&&bH[3]){var bD=bA.getElementById(bH[3]);if(bD&&bD.parentNode){if(bD.id===bH[3]){return bl([bD],bE)}}else{return bl([],bE)}}}try{return bl(bA.querySelectorAll(bJ),bE)}catch(bF){}}else{if(bA.nodeType===1&&bA.nodeName.toLowerCase()!=="object"){var bB=bA,bC=bA.getAttribute("id"),bz=bC||bx,bL=bA.parentNode,bK=/^\s*[+~]/.test(bJ);if(!bC){bA.setAttribute("id",bz)}else{bz=bz.replace(/'/g,"\\$&")}if(bK&&bL){bA=bA.parentNode}try{if(!bK||bL){return bl(bA.querySelectorAll("[id='"+bz+"'] "+bJ),bE)}}catch(bG){}finally{if(!bC){bB.removeAttribute("id")}}}}}return e(bJ,bA,bE,bI)};for(var bw in e){bf[bw]=e[bw]}by=null})()}(function(){var e=al.documentElement,bx=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector,bw=false;try{bx.call(al.documentElement,"[test!='']:sizzle")}catch(by){bw=true}if(bx){bf.matchesSelector=function(bz,bB){bB=bB.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!bf.isXML(bz)){try{if(bw||!bk.match.PSEUDO.test(bB)&&!/!=/.test(bB)){return bx.call(bz,bB)}}catch(bA){}}return bf(bB,null,null,[bz]).length>0}}})();(function(){var e=al.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bk.order.splice(1,0,"CLASS");bk.find.CLASS=function(bw,bx,by){if(typeof bx.getElementsByClassName!=="undefined"&&!by){return bx.getElementsByClassName(bw[1])}};e=null})();function bd(bw,bB,bA,bE,bC,bD){for(var by=0,bx=bE.length;by<bx;by++){var e=bE[by];if(e){var bz=false;e=e[bw];while(e){if(e.sizcache===bA){bz=bE[e.sizset];break}if(e.nodeType===1&&!bD){e.sizcache=bA;e.sizset=by}if(e.nodeName.toLowerCase()===bB){bz=e;break}e=e[bw]}bE[by]=bz}}}function bt(bw,bB,bA,bE,bC,bD){for(var by=0,bx=bE.length;by<bx;by++){var e=bE[by];if(e){var bz=false;e=e[bw];while(e){if(e.sizcache===bA){bz=bE[e.sizset];break}if(e.nodeType===1){if(!bD){e.sizcache=bA;e.sizset=by}if(typeof bB!=="string"){if(e===bB){bz=true;break}}else{if(bf.filter(bB,[e]).length>0){bz=e;break}}}e=e[bw]}bE[by]=bz}}}if(al.documentElement.contains){bf.contains=function(bw,e){return bw!==e&&(bw.contains?bw.contains(e):true)}}else{if(al.documentElement.compareDocumentPosition){bf.contains=function(bw,e){return !!(bw.compareDocumentPosition(e)&16)}}else{bf.contains=function(){return false}}}bf.isXML=function(e){var bw=(e?e.ownerDocument||e:0).documentElement;return bw?bw.nodeName!=="HTML":false};var bs=function(e,bC){var bA,by=[],bz="",bx=bC.nodeType?[bC]:bC;while((bA=bk.match.PSEUDO.exec(e))){bz+=bA[0];e=e.replace(bk.match.PSEUDO,"")}e=bk.relative[e]?e+"*":e;for(var bB=0,bw=bx.length;bB<bw;bB++){bf(e,bx[bB],by)}return bf.filter(bz,by)};a.find=bf;a.expr=bf.selectors;a.expr[":"]=a.expr.filters;a.unique=bf.uniqueSort;a.text=bf.getText;a.isXMLDoc=bf.isXML;a.contains=bf.contains})();var W=/Until$/,ai=/^(?:parents|prevUntil|prevAll)/,aW=/,/,a9=/^.[^:#\[\.,]*$/,M=Array.prototype.slice,F=a.expr.match.POS,ao={children:true,contents:true,next:true,prev:true};a.fn.extend({find:function(e){var be=this.pushStack("","find",e),bh=0;for(var bf=0,bd=this.length;bf<bd;bf++){bh=be.length;a.find(e,this[bf],be);if(bf>0){for(var bi=bh;bi<be.length;bi++){for(var bg=0;bg<bh;bg++){if(be[bg]===be[bi]){be.splice(bi--,1);break}}}}}return be},has:function(bd){var e=a(bd);return this.filter(function(){for(var bf=0,be=e.length;bf<be;bf++){if(a.contains(this,e[bf])){return true}}})},not:function(e){return this.pushStack(av(this,e,false),"not",e)},filter:function(e){return this.pushStack(av(this,e,true),"filter",e)},is:function(e){return !!e&&a.filter(e,this).length>0},closest:function(bm,bd){var bj=[],bg,be,bl=this[0];if(a.isArray(bm)){var bi,bf,bh={},e=1;if(bl&&bm.length){for(bg=0,be=bm.length;bg<be;bg++){bf=bm[bg];if(!bh[bf]){bh[bf]=a.expr.match.POS.test(bf)?a(bf,bd||this.context):bf}}while(bl&&bl.ownerDocument&&bl!==bd){for(bf in bh){bi=bh[bf];if(bi.jquery?bi.index(bl)>-1:a(bl).is(bi)){bj.push({selector:bf,elem:bl,level:e})}}bl=bl.parentNode;e++}}return bj}var bk=F.test(bm)?a(bm,bd||this.context):null;for(bg=0,be=this.length;bg<be;bg++){bl=this[bg];while(bl){if(bk?bk.index(bl)>-1:a.find.matchesSelector(bl,bm)){bj.push(bl);break}else{bl=bl.parentNode;if(!bl||!bl.ownerDocument||bl===bd){break}}}}bj=bj.length>1?a.unique(bj):bj;return this.pushStack(bj,"closest",bm)},index:function(e){if(!e||typeof e==="string"){return a.inArray(this[0],e?a(e):this.parent().children())}return a.inArray(e.jquery?e[0]:e,this)},add:function(e,bd){var bf=typeof e==="string"?a(e,bd):a.makeArray(e),be=a.merge(this.get(),bf);return this.pushStack(B(bf[0])||B(be[0])?be:a.unique(be))},andSelf:function(){return this.add(this.prevObject)}});function B(e){return !e||!e.parentNode||e.parentNode.nodeType===11}a.each({parent:function(bd){var e=bd.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return a.dir(e,"parentNode")},parentsUntil:function(bd,e,be){return a.dir(bd,"parentNode",be)},next:function(e){return a.nth(e,2,"nextSibling")},prev:function(e){return a.nth(e,2,"previousSibling")},nextAll:function(e){return a.dir(e,"nextSibling")},prevAll:function(e){return a.dir(e,"previousSibling")},nextUntil:function(bd,e,be){return a.dir(bd,"nextSibling",be)},prevUntil:function(bd,e,be){return a.dir(bd,"previousSibling",be)},siblings:function(e){return a.sibling(e.parentNode.firstChild,e)},children:function(e){return a.sibling(e.firstChild)},contents:function(e){return a.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:a.makeArray(e.childNodes)}},function(e,bd){a.fn[e]=function(bh,be){var bg=a.map(this,bd,bh),bf=M.call(arguments);if(!W.test(e)){be=bh}if(be&&typeof be==="string"){bg=a.filter(be,bg)}bg=this.length>1&&!ao[e]?a.unique(bg):bg;if((this.length>1||aW.test(be))&&ai.test(e)){bg=bg.reverse()}return this.pushStack(bg,e,bf.join(","))}});a.extend({filter:function(be,e,bd){if(bd){be=":not("+be+")"}return e.length===1?a.find.matchesSelector(e[0],be)?[e[0]]:[]:a.find.matches(be,e)},dir:function(be,bd,bg){var e=[],bf=be[bd];while(bf&&bf.nodeType!==9&&(bg===H||bf.nodeType!==1||!a(bf).is(bg))){if(bf.nodeType===1){e.push(bf)}bf=bf[bd]}return e},nth:function(bg,e,be,bf){e=e||1;var bd=0;for(;bg;bg=bg[be]){if(bg.nodeType===1&&++bd===e){break}}return bg},sibling:function(be,bd){var e=[];for(;be;be=be.nextSibling){if(be.nodeType===1&&be!==bd){e.push(be)}}return e}});function av(bf,be,e){if(a.isFunction(be)){return a.grep(bf,function(bh,bg){var bi=!!be.call(bh,bg,bh);return bi===e})}else{if(be.nodeType){return a.grep(bf,function(bh,bg){return(bh===be)===e})}else{if(typeof be==="string"){var bd=a.grep(bf,function(bg){return bg.nodeType===1});if(a9.test(be)){return a.filter(be,bd,!e)}else{be=a.filter(be,bd)}}}}return a.grep(bf,function(bh,bg){return(a.inArray(bh,be)>=0)===e})}var ab=/ jQuery\d+="(?:\d+|null)"/g,aj=/^\s+/,O=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,c=/<([\w:]+)/,v=/<tbody/i,T=/<|&#?\w+;/,L=/<(?:script|object|embed|option|style)/i,m=/checked\s*(?:[^=]|=\s*.checked.)/i,an={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,"",""]};an.optgroup=an.option;an.tbody=an.tfoot=an.colgroup=an.caption=an.thead;an.th=an.td;if(!a.support.htmlSerialize){an._default=[1,"div<div>","</div>"]}a.fn.extend({text:function(e){if(a.isFunction(e)){return this.each(function(be){var bd=a(this);bd.text(e.call(this,be,bd.text()))})}if(typeof e!=="object"&&e!==H){return this.empty().append((this[0]&&this[0].ownerDocument||al).createTextNode(e))}return a.text(this)},wrapAll:function(e){if(a.isFunction(e)){return this.each(function(be){a(this).wrapAll(e.call(this,be))})}if(this[0]){var bd=a(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bd.insertBefore(this[0])}bd.map(function(){var be=this;while(be.firstChild&&be.firstChild.nodeType===1){be=be.firstChild}return be}).append(this)}return this},wrapInner:function(e){if(a.isFunction(e)){return this.each(function(bd){a(this).wrapInner(e.call(this,bd))})}return this.each(function(){var bd=a(this),be=bd.contents();if(be.length){be.wrapAll(e)}else{bd.append(e)}})},wrap:function(e){return this.each(function(){a(this).wrapAll(e)})},unwrap:function(){return this.parent().each(function(){if(!a.nodeName(this,"body")){a(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bd){this.parentNode.insertBefore(bd,this)})}else{if(arguments.length){var e=a(arguments[0]);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bd){this.parentNode.insertBefore(bd,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,a(arguments[0]).toArray());return e}}},remove:function(e,bf){for(var bd=0,be;(be=this[bd])!=null;bd++){if(!e||a.filter(e,[be]).length){if(!bf&&be.nodeType===1){a.cleanData(be.getElementsByTagName("*"));a.cleanData([be])}if(be.parentNode){be.parentNode.removeChild(be)}}}return this},empty:function(){for(var e=0,bd;(bd=this[e])!=null;e++){if(bd.nodeType===1){a.cleanData(bd.getElementsByTagName("*"))}while(bd.firstChild){bd.removeChild(bd.firstChild)}}return this},clone:function(bd,e){bd=bd==null?false:bd;e=e==null?bd:e;return this.map(function(){return a.clone(this,bd,e)})},html:function(bf){if(bf===H){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ab,""):null}else{if(typeof bf==="string"&&!L.test(bf)&&(a.support.leadingWhitespace||!aj.test(bf))&&!an[(c.exec(bf)||["",""])[1].toLowerCase()]){bf=bf.replace(O,"<$1></$2>");try{for(var be=0,bd=this.length;be<bd;be++){if(this[be].nodeType===1){a.cleanData(this[be].getElementsByTagName("*"));this[be].innerHTML=bf}}}catch(bg){this.empty().append(bf)}}else{if(a.isFunction(bf)){this.each(function(bh){var e=a(this);e.html(bf.call(this,bh,e.html()))})}else{this.empty().append(bf)}}}return this},replaceWith:function(e){if(this[0]&&this[0].parentNode){if(a.isFunction(e)){return this.each(function(bf){var be=a(this),bd=be.html();be.replaceWith(e.call(this,bf,bd))})}if(typeof e!=="string"){e=a(e).detach()}return this.each(function(){var be=this.nextSibling,bd=this.parentNode;a(this).remove();if(be){a(be).before(e)}else{a(bd).append(e)}})}else{return this.pushStack(a(a.isFunction(e)?e():e),"replaceWith",e)}},detach:function(e){return this.remove(e,true)},domManip:function(bj,bn,bm){var bf,bg,bi,bl,bk=bj[0],bd=[];if(!a.support.checkClone&&arguments.length===3&&typeof bk==="string"&&m.test(bk)){return this.each(function(){a(this).domManip(bj,bn,bm,true)})}if(a.isFunction(bk)){return this.each(function(bp){var bo=a(this);bj[0]=bk.call(this,bp,bn?bo.html():H);bo.domManip(bj,bn,bm)})}if(this[0]){bl=bk&&bk.parentNode;if(a.support.parentNode&&bl&&bl.nodeType===11&&bl.childNodes.length===this.length){bf={fragment:bl}}else{bf=a.buildFragment(bj,this,bd)}bi=bf.fragment;if(bi.childNodes.length===1){bg=bi=bi.firstChild}else{bg=bi.firstChild}if(bg){bn=bn&&a.nodeName(bg,"tr");for(var be=0,e=this.length,bh=e-1;be<e;be++){bm.call(bn?aX(this[be],bg):this[be],bf.cacheable||(e>1&&be<bh)?a.clone(bi,true,true):bi)}}if(bd.length){a.each(bd,a8)}}return this}});function aX(e,bd){return a.nodeName(e,"table")?(e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody"))):e}function s(e,bj){if(bj.nodeType!==1||!a.hasData(e)){return}var bi=a.expando,bf=a.data(e),bg=a.data(bj,bf);if((bf=bf[bi])){var bk=bf.events;bg=bg[bi]=a.extend({},bf);if(bk){delete bg.handle;bg.events={};for(var bh in bk){for(var be=0,bd=bk[bh].length;be<bd;be++){a.event.add(bj,bh+(bk[bh][be].namespace?".":"")+bk[bh][be].namespace,bk[bh][be],bk[bh][be].data)}}}}}function ac(bd,e){if(e.nodeType!==1){return}var be=e.nodeName.toLowerCase();e.clearAttributes();e.mergeAttributes(bd);if(be==="object"){e.outerHTML=bd.outerHTML}else{if(be==="input"&&(bd.type==="checkbox"||bd.type==="radio")){if(bd.checked){e.defaultChecked=e.checked=bd.checked}if(e.value!==bd.value){e.value=bd.value}}else{if(be==="option"){e.selected=bd.defaultSelected}else{if(be==="input"||be==="textarea"){e.defaultValue=bd.defaultValue}}}}e.removeAttribute(a.expando)}a.buildFragment=function(bh,bf,bd){var bg,e,be,bi=(bf&&bf[0]?bf[0].ownerDocument||bf[0]:al);if(bh.length===1&&typeof bh[0]==="string"&&bh[0].length<512&&bi===al&&bh[0].charAt(0)==="<"&&!L.test(bh[0])&&(a.support.checkClone||!m.test(bh[0]))){e=true;be=a.fragments[bh[0]];if(be){if(be!==1){bg=be}}}if(!bg){bg=bi.createDocumentFragment();a.clean(bh,bi,bg,bd)}if(e){a.fragments[bh[0]]=be?bg:1}return{fragment:bg,cacheable:e}};a.fragments={};a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,bd){a.fn[e]=function(be){var bh=[],bk=a(be),bj=this.length===1&&this[0].parentNode;if(bj&&bj.nodeType===11&&bj.childNodes.length===1&&bk.length===1){bk[bd](this[0]);return this}else{for(var bi=0,bf=bk.length;bi<bf;bi++){var bg=(bi>0?this.clone(true):this).get();a(bk[bi])[bd](bg);bh=bh.concat(bg)}return this.pushStack(bh,e,bk.selector)}}});function a1(e){if("getElementsByTagName" in e){return e.getElementsByTagName("*")}else{if("querySelectorAll" in e){return e.querySelectorAll("*")}else{return[]}}}a.extend({clone:function(bg,bi,be){var bh=bg.cloneNode(true),e,bd,bf;if((!a.support.noCloneEvent||!a.support.noCloneChecked)&&(bg.nodeType===1||bg.nodeType===11)&&!a.isXMLDoc(bg)){ac(bg,bh);e=a1(bg);bd=a1(bh);for(bf=0;e[bf];++bf){ac(e[bf],bd[bf])}}if(bi){s(bg,bh);if(be){e=a1(bg);bd=a1(bh);for(bf=0;e[bf];++bf){s(e[bf],bd[bf])}}}return bh},clean:function(be,bg,bn,bi){bg=bg||al;if(typeof bg.createElement==="undefined"){bg=bg.ownerDocument||bg[0]&&bg[0].ownerDocument||al}var bo=[];for(var bm=0,bh;(bh=be[bm])!=null;bm++){if(typeof bh==="number"){bh+=""}if(!bh){continue}if(typeof bh==="string"&&!T.test(bh)){bh=bg.createTextNode(bh)}else{if(typeof bh==="string"){bh=bh.replace(O,"<$1></$2>");var bp=(c.exec(bh)||["",""])[1].toLowerCase(),bf=an[bp]||an._default,bl=bf[0],bd=bg.createElement("div");bd.innerHTML=bf[1]+bh+bf[2];while(bl--){bd=bd.lastChild}if(!a.support.tbody){var e=v.test(bh),bk=bp==="table"&&!e?bd.firstChild&&bd.firstChild.childNodes:bf[1]==="<table>"&&!e?bd.childNodes:[];for(var bj=bk.length-1;bj>=0;--bj){if(a.nodeName(bk[bj],"tbody")&&!bk[bj].childNodes.length){bk[bj].parentNode.removeChild(bk[bj])}}}if(!a.support.leadingWhitespace&&aj.test(bh)){bd.insertBefore(bg.createTextNode(aj.exec(bh)[0]),bd.firstChild)}bh=bd.childNodes}}if(bh.nodeType){bo.push(bh)}else{bo=a.merge(bo,bh)}}if(bn){for(bm=0;bo[bm];bm++){if(bi&&a.nodeName(bo[bm],"script")&&(!bo[bm].type||bo[bm].type.toLowerCase()==="text/javascript")){bi.push(bo[bm].parentNode?bo[bm].parentNode.removeChild(bo[bm]):bo[bm])}else{if(bo[bm].nodeType===1){bo.splice.apply(bo,[bm+1,0].concat(a.makeArray(bo[bm].getElementsByTagName("script"))))}bn.appendChild(bo[bm])}}}return bo},cleanData:function(bd){var bg,be,e=a.cache,bl=a.expando,bj=a.event.special,bi=a.support.deleteExpando;for(var bh=0,bf;(bf=bd[bh])!=null;bh++){if(bf.nodeName&&a.noData[bf.nodeName.toLowerCase()]){continue}be=bf[a.expando];if(be){bg=e[be]&&e[be][bl];if(bg&&bg.events){for(var bk in bg.events){if(bj[bk]){a.event.remove(bf,bk)}else{a.removeEvent(bf,bk,bg.handle)}}if(bg.handle){bg.handle.elem=null}}if(bi){delete bf[a.expando]}else{if(bf.removeAttribute){bf.removeAttribute(a.expando)}}delete e[be]}}}});function a8(e,bd){if(bd.src){a.ajax({url:bd.src,async:false,dataType:"script"})}else{a.globalEval(bd.text||bd.textContent||bd.innerHTML||"")}if(bd.parentNode){bd.parentNode.removeChild(bd)}}var ae=/alpha\([^)]*\)/i,ak=/opacity=([^)]*)/,aM=/-([a-z])/ig,y=/([A-Z])/g,aZ=/^-?\d+(?:px)?$/i,a7=/^-?\d/,aV={position:"absolute",visibility:"hidden",display:"block"},ag=["Left","Right"],aR=["Top","Bottom"],U,ay,aL,l=function(e,bd){return bd.toUpperCase()};a.fn.css=function(e,bd){if(arguments.length===2&&bd===H){return this}return a.access(this,e,bd,true,function(bf,be,bg){return bg!==H?a.style(bf,be,bg):a.css(bf,be)})};a.extend({cssHooks:{opacity:{get:function(be,bd){if(bd){var e=U(be,"opacity","opacity");return e===""?"1":e}else{return be.style.opacity}}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,zoom:true,lineHeight:true},cssProps:{"float":a.support.cssFloat?"cssFloat":"styleFloat"},style:function(bf,be,bk,bg){if(!bf||bf.nodeType===3||bf.nodeType===8||!bf.style){return}var bj,bh=a.camelCase(be),bd=bf.style,bl=a.cssHooks[bh];be=a.cssProps[bh]||bh;if(bk!==H){if(typeof bk==="number"&&isNaN(bk)||bk==null){return}if(typeof bk==="number"&&!a.cssNumber[bh]){bk+="px"}if(!bl||!("set" in bl)||(bk=bl.set(bf,bk))!==H){try{bd[be]=bk}catch(bi){}}}else{if(bl&&"get" in bl&&(bj=bl.get(bf,false,bg))!==H){return bj}return bd[be]}},css:function(bh,bg,bd){var bf,be=a.camelCase(bg),e=a.cssHooks[be];bg=a.cssProps[be]||be;if(e&&"get" in e&&(bf=e.get(bh,true,bd))!==H){return bf}else{if(U){return U(bh,bg,be)}}},swap:function(bf,be,bg){var e={};for(var bd in be){e[bd]=bf.style[bd];bf.style[bd]=be[bd]}bg.call(bf);for(bd in be){bf.style[bd]=e[bd]}},camelCase:function(e){return e.replace(aM,l)}});a.curCSS=a.css;a.each(["height","width"],function(bd,e){a.cssHooks[e]={get:function(bg,bf,be){var bh;if(bf){if(bg.offsetWidth!==0){bh=o(bg,e,be)}else{a.swap(bg,aV,function(){bh=o(bg,e,be)})}if(bh<=0){bh=U(bg,e,e);if(bh==="0px"&&aL){bh=aL(bg,e,e)}if(bh!=null){return bh===""||bh==="auto"?"0px":bh}}if(bh<0||bh==null){bh=bg.style[e];return bh===""||bh==="auto"?"0px":bh}return typeof bh==="string"?bh:bh+"px"}},set:function(be,bf){if(aZ.test(bf)){bf=parseFloat(bf);if(bf>=0){return bf+"px"}}else{return bf}}}});if(!a.support.opacity){a.cssHooks.opacity={get:function(bd,e){return ak.test((e&&bd.currentStyle?bd.currentStyle.filter:bd.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(bf,bg){var be=bf.style;be.zoom=1;var e=a.isNaN(bg)?"":"alpha(opacity="+bg*100+")",bd=be.filter||"";be.filter=ae.test(bd)?bd.replace(ae,e):be.filter+" "+e}}}if(al.defaultView&&al.defaultView.getComputedStyle){ay=function(bh,e,bf){var be,bg,bd;bf=bf.replace(y,"-$1").toLowerCase();if(!(bg=bh.ownerDocument.defaultView)){return H}if((bd=bg.getComputedStyle(bh,null))){be=bd.getPropertyValue(bf);if(be===""&&!a.contains(bh.ownerDocument.documentElement,bh)){be=a.style(bh,bf)}}return be}}if(al.documentElement.currentStyle){aL=function(bg,be){var bh,bd=bg.currentStyle&&bg.currentStyle[be],e=bg.runtimeStyle&&bg.runtimeStyle[be],bf=bg.style;if(!aZ.test(bd)&&a7.test(bd)){bh=bf.left;if(e){bg.runtimeStyle.left=bg.currentStyle.left}bf.left=be==="fontSize"?"1em":(bd||0);bd=bf.pixelLeft+"px";bf.left=bh;if(e){bg.runtimeStyle.left=e}}return bd===""?"auto":bd}}U=ay||aL;function o(be,bd,e){var bg=bd==="width"?ag:aR,bf=bd==="width"?be.offsetWidth:be.offsetHeight;if(e==="border"){return bf}a.each(bg,function(){if(!e){bf-=parseFloat(a.css(be,"padding"+this))||0}if(e==="margin"){bf+=parseFloat(a.css(be,"margin"+this))||0}else{bf-=parseFloat(a.css(be,"border"+this+"Width"))||0}});return bf}if(a.expr&&a.expr.filters){a.expr.filters.hidden=function(be){var bd=be.offsetWidth,e=be.offsetHeight;return(bd===0&&e===0)||(!a.support.reliableHiddenOffsets&&(be.style.display||a.css(be,"display"))==="none")};a.expr.filters.visible=function(e){return !a.expr.filters.hidden(e)}}var i=/%20/g,ah=/\[\]$/,bc=/\r?\n/g,ba=/#.*$/,ar=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,aO=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aB=/(?:^file|^widget|\-extension):$/,aD=/^(?:GET|HEAD)$/,b=/^\/\//,I=/\?/,aU=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,p=/^(?:select|textarea)/i,g=/\s+/,bb=/([?&])_=[^&]*/,R=/(^|\-)([a-z])/g,aJ=function(bd,e,be){return e+be.toUpperCase()},G=/^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,z=a.fn.load,V={},q={},au,r;try{au=al.location.href}catch(am){au=al.createElement("a");au.href="";au=au.href}r=G.exec(au.toLowerCase());function d(e){return function(bg,bi){if(typeof bg!=="string"){bi=bg;bg="*"}if(a.isFunction(bi)){var bf=bg.toLowerCase().split(g),be=0,bh=bf.length,bd,bj,bk;for(;be<bh;be++){bd=bf[be];bk=/^\+/.test(bd);if(bk){bd=bd.substr(1)||"*"}bj=e[bd]=e[bd]||[];bj[bk?"unshift":"push"](bi)}}}}function aI(bd,bm,bh,bl,bj,bf){bj=bj||bm.dataTypes[0];bf=bf||{};bf[bj]=true;var bi=bd[bj],be=0,e=bi?bi.length:0,bg=(bd===V),bk;for(;be<e&&(bg||!bk);be++){bk=bi[be](bm,bh,bl);if(typeof bk==="string"){if(!bg||bf[bk]){bk=H}else{bm.dataTypes.unshift(bk);bk=aI(bd,bm,bh,bl,bk,bf)}}}if((bg||!bk)&&!bf["*"]){bk=aI(bd,bm,bh,bl,"*",bf)}return bk}a.fn.extend({load:function(be,bh,bi){if(typeof be!=="string"&&z){return z.apply(this,arguments)}else{if(!this.length){return this}}var bg=be.indexOf(" ");if(bg>=0){var e=be.slice(bg,be.length);be=be.slice(0,bg)}var bf="GET";if(bh){if(a.isFunction(bh)){bi=bh;bh=H}else{if(typeof bh==="object"){bh=a.param(bh,a.ajaxSettings.traditional);bf="POST"}}}var bd=this;a.ajax({url:be,type:bf,dataType:"html",data:bh,complete:function(bk,bj,bl){bl=bk.responseText;if(bk.isResolved()){bk.done(function(bm){bl=bm});bd.html(e?a("<div>").append(bl.replace(aU,"")).find(e):bl)}if(bi){bd.each(bi,[bl,bj,bk])}}});return this},serialize:function(){return a.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?a.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||p.test(this.nodeName)||aO.test(this.type))}).map(function(e,bd){var be=a(this).val();return be==null?null:a.isArray(be)?a.map(be,function(bg,bf){return{name:bd.name,value:bg.replace(bc,"\r\n")}}):{name:bd.name,value:be.replace(bc,"\r\n")}}).get()}});a.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bd){a.fn[bd]=function(be){return this.bind(bd,be)}});a.each(["get","post"],function(e,bd){a[bd]=function(be,bg,bh,bf){if(a.isFunction(bg)){bf=bf||bh;bh=bg;bg=H}return a.ajax({type:bd,url:be,data:bg,success:bh,dataType:bf})}});a.extend({getScript:function(e,bd){return a.get(e,H,bd,"script")},getJSON:function(e,bd,be){return a.get(e,bd,be,"json")},ajaxSetup:function(be,e){if(!e){e=be;be=a.extend(true,a.ajaxSettings,e)}else{a.extend(true,be,a.ajaxSettings,e)}for(var bd in {context:1,url:1}){if(bd in e){be[bd]=e[bd]}else{if(bd in a.ajaxSettings){be[bd]=a.ajaxSettings[bd]}}}return be},ajaxSettings:{url:au,isLocal:aB.test(r[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":aY.String,"text html":true,"text json":a.parseJSON,"text xml":a.parseXML}},ajaxPrefilter:d(V),ajaxTransport:d(q),ajax:function(bh,bf){if(typeof bh==="object"){bf=bh;bh=H}bf=bf||{};var bl=a.ajaxSetup({},bf),bz=bl.context||bl,bo=bz!==bl&&(bz.nodeType||bz instanceof a)?a(bz):a.event,by=a.Deferred(),bv=a._Deferred(),bj=bl.statusCode||{},bk,bp={},bx,bg,bt,bm,bq,bi=0,be,bs,br={readyState:0,setRequestHeader:function(e,bA){if(!bi){bp[e.toLowerCase().replace(R,aJ)]=bA}return this},getAllResponseHeaders:function(){return bi===2?bx:null},getResponseHeader:function(bA){var e;if(bi===2){if(!bg){bg={};while((e=ar.exec(bx))){bg[e[1].toLowerCase()]=e[2]}}e=bg[bA.toLowerCase()]}return e===H?null:e},overrideMimeType:function(e){if(!bi){bl.mimeType=e}return this},abort:function(e){e=e||"abort";if(bt){bt.abort(e)}bn(0,e);return this}};function bn(bF,bD,bG,bC){if(bi===2){return}bi=2;if(bm){clearTimeout(bm)}bt=H;bx=bC||"";br.readyState=bF?4:0;var bA,bK,bJ,bE=bG?a4(bl,br,bG):H,bB,bI;if(bF>=200&&bF<300||bF===304){if(bl.ifModified){if((bB=br.getResponseHeader("Last-Modified"))){a.lastModified[bk]=bB}if((bI=br.getResponseHeader("Etag"))){a.etag[bk]=bI}}if(bF===304){bD="notmodified";bA=true}else{try{bK=D(bl,bE);bD="success";bA=true}catch(bH){bD="parsererror";bJ=bH}}}else{bJ=bD;if(!bD||bF){bD="error";if(bF<0){bF=0}}}br.status=bF;br.statusText=bD;if(bA){by.resolveWith(bz,[bK,bD,br])}else{by.rejectWith(bz,[br,bD,bJ])}br.statusCode(bj);bj=H;if(be){bo.trigger("ajax"+(bA?"Success":"Error"),[br,bl,bA?bK:bJ])}bv.resolveWith(bz,[br,bD]);if(be){bo.trigger("ajaxComplete",[br,bl]);if(!(--a.active)){a.event.trigger("ajaxStop")}}}by.promise(br);br.success=br.done;br.error=br.fail;br.complete=bv.done;br.statusCode=function(bA){if(bA){var e;if(bi<2){for(e in bA){bj[e]=[bj[e],bA[e]]}}else{e=bA[br.status];br.then(e,e)}}return this};bl.url=((bh||bl.url)+"").replace(ba,"").replace(b,r[1]+"//");bl.dataTypes=a.trim(bl.dataType||"*").toLowerCase().split(g);if(!bl.crossDomain){bq=G.exec(bl.url.toLowerCase());bl.crossDomain=!!(bq&&(bq[1]!=r[1]||bq[2]!=r[2]||(bq[3]||(bq[1]==="http:"?80:443))!=(r[3]||(r[1]==="http:"?80:443))))}if(bl.data&&bl.processData&&typeof bl.data!=="string"){bl.data=a.param(bl.data,bl.traditional)}aI(V,bl,bf,br);if(bi===2){return false}be=bl.global;bl.type=bl.type.toUpperCase();bl.hasContent=!aD.test(bl.type);if(be&&a.active++===0){a.event.trigger("ajaxStart")}if(!bl.hasContent){if(bl.data){bl.url+=(I.test(bl.url)?"&":"?")+bl.data}bk=bl.url;if(bl.cache===false){var bd=a.now(),bw=bl.url.replace(bb,"$1_="+bd);bl.url=bw+((bw===bl.url)?(I.test(bl.url)?"&":"?")+"_="+bd:"")}}if(bl.data&&bl.hasContent&&bl.contentType!==false||bf.contentType){bp["Content-Type"]=bl.contentType}if(bl.ifModified){bk=bk||bl.url;if(a.lastModified[bk]){bp["If-Modified-Since"]=a.lastModified[bk]}if(a.etag[bk]){bp["If-None-Match"]=a.etag[bk]}}bp.Accept=bl.dataTypes[0]&&bl.accepts[bl.dataTypes[0]]?bl.accepts[bl.dataTypes[0]]+(bl.dataTypes[0]!=="*"?", */*; q=0.01":""):bl.accepts["*"];for(bs in bl.headers){br.setRequestHeader(bs,bl.headers[bs])}if(bl.beforeSend&&(bl.beforeSend.call(bz,br,bl)===false||bi===2)){br.abort();return false}for(bs in {success:1,error:1,complete:1}){br[bs](bl[bs])}bt=aI(q,bl,bf,br);if(!bt){bn(-1,"No Transport")}else{br.readyState=1;if(be){bo.trigger("ajaxSend",[br,bl])}if(bl.async&&bl.timeout>0){bm=setTimeout(function(){br.abort("timeout")},bl.timeout)}try{bi=1;bt.send(bp,bn)}catch(bu){if(status<2){bn(-1,bu)}else{a.error(bu)}}}return br},param:function(e,be){var bd=[],bg=function(bh,bi){bi=a.isFunction(bi)?bi():bi;bd[bd.length]=encodeURIComponent(bh)+"="+encodeURIComponent(bi)};if(be===H){be=a.ajaxSettings.traditional}if(a.isArray(e)||(e.jquery&&!a.isPlainObject(e))){a.each(e,function(){bg(this.name,this.value)})}else{for(var bf in e){u(bf,e[bf],be,bg)}}return bd.join("&").replace(i,"+")}});function u(be,bg,bd,bf){if(a.isArray(bg)&&bg.length){a.each(bg,function(bi,bh){if(bd||ah.test(be)){bf(be,bh)}else{u(be+"["+(typeof bh==="object"||a.isArray(bh)?bi:"")+"]",bh,bd,bf)}})}else{if(!bd&&bg!=null&&typeof bg==="object"){if(a.isArray(bg)||a.isEmptyObject(bg)){bf(be,"")}else{for(var e in bg){u(be+"["+e+"]",bg[e],bd,bf)}}}else{bf(be,bg)}}}a.extend({active:0,lastModified:{},etag:{}});function a4(bl,bk,bh){var bd=bl.contents,bj=bl.dataTypes,be=bl.responseFields,bg,bi,bf,e;for(bi in be){if(bi in bh){bk[be[bi]]=bh[bi]}}while(bj[0]==="*"){bj.shift();if(bg===H){bg=bl.mimeType||bk.getResponseHeader("content-type")}}if(bg){for(bi in bd){if(bd[bi]&&bd[bi].test(bg)){bj.unshift(bi);break}}}if(bj[0] in bh){bf=bj[0]}else{for(bi in bh){if(!bj[0]||bl.converters[bi+" "+bj[0]]){bf=bi;break}if(!e){e=bi}}bf=bf||e}if(bf){if(bf!==bj[0]){bj.unshift(bf)}return bh[bf]}}function D(bp,bh){if(bp.dataFilter){bh=bp.dataFilter(bh,bp.dataType)}var bl=bp.dataTypes,bo={},bi,bm,be=bl.length,bj,bk=bl[0],bf,bg,bn,bd,e;for(bi=1;bi<be;bi++){if(bi===1){for(bm in bp.converters){if(typeof bm==="string"){bo[bm.toLowerCase()]=bp.converters[bm]}}}bf=bk;bk=bl[bi];if(bk==="*"){bk=bf}else{if(bf!=="*"&&bf!==bk){bg=bf+" "+bk;bn=bo[bg]||bo["* "+bk];if(!bn){e=H;for(bd in bo){bj=bd.split(" ");if(bj[0]===bf||bj[0]==="*"){e=bo[bj[1]+" "+bk];if(e){bd=bo[bd];if(bd===true){bn=e}else{if(e===true){bn=bd}}break}}}}if(!(bn||e)){a.error("No conversion from "+bg.replace(" "," to "))}if(bn!==true){bh=bn?bn(bh):e(bd(bh))}}}}return bh}var aq=a.now(),t=/(\=)\?(&|$)|()\?\?()/i;a.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return a.expando+"_"+(aq++)}});a.ajaxPrefilter("json jsonp",function(bm,bi,bl){var bk=(typeof bm.data==="string");if(bm.dataTypes[0]==="jsonp"||bi.jsonpCallback||bi.jsonp!=null||bm.jsonp!==false&&(t.test(bm.url)||bk&&t.test(bm.data))){var bj,be=bm.jsonpCallback=a.isFunction(bm.jsonpCallback)?bm.jsonpCallback():bm.jsonpCallback,bh=aY[be],e=bm.url,bg=bm.data,bd="$1"+be+"$2",bf=function(){aY[be]=bh;if(bj&&a.isFunction(bh)){aY[be](bj[0])}};if(bm.jsonp!==false){e=e.replace(t,bd);if(bm.url===e){if(bk){bg=bg.replace(t,bd)}if(bm.data===bg){e+=(/\?/.test(e)?"&":"?")+bm.jsonp+"="+be}}}bm.url=e;bm.data=bg;aY[be]=function(bn){bj=[bn]};bl.then(bf,bf);bm.converters["script json"]=function(){if(!bj){a.error(be+" was not called")}return bj[0]};bm.dataTypes[0]="json";return"script"}});a.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){a.globalEval(e);return e}}});a.ajaxPrefilter("script",function(e){if(e.cache===H){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});a.ajaxTransport("script",function(be){if(be.crossDomain){var e,bd=al.head||al.getElementsByTagName("head")[0]||al.documentElement;return{send:function(bf,bg){e=al.createElement("script");e.async="async";if(be.scriptCharset){e.charset=be.scriptCharset}e.src=be.url;e.onload=e.onreadystatechange=function(bi,bh){if(!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bd&&e.parentNode){bd.removeChild(e)}e=H;if(!bh){bg(200,"success")}}};bd.insertBefore(e,bd.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var x=a.now(),J,at;function A(){a(aY).unload(function(){for(var e in J){J[e](0,1)}})}function aA(){try{return new aY.XMLHttpRequest()}catch(bd){}}function ad(){try{return new aY.ActiveXObject("Microsoft.XMLHTTP")}catch(bd){}}a.ajaxSettings.xhr=aY.ActiveXObject?function(){return !this.isLocal&&aA()||ad()}:aA;at=a.ajaxSettings.xhr();a.support.ajax=!!at;a.support.cors=at&&("withCredentials" in at);at=H;if(a.support.ajax){a.ajaxTransport(function(e){if(!e.crossDomain||a.support.cors){var bd;return{send:function(bj,be){var bi=e.xhr(),bh,bg;if(e.username){bi.open(e.type,e.url,e.async,e.username,e.password)}else{bi.open(e.type,e.url,e.async)}if(e.xhrFields){for(bg in e.xhrFields){bi[bg]=e.xhrFields[bg]}}if(e.mimeType&&bi.overrideMimeType){bi.overrideMimeType(e.mimeType)}if(!(e.crossDomain&&!e.hasContent)&&!bj["X-Requested-With"]){bj["X-Requested-With"]="XMLHttpRequest"}try{for(bg in bj){bi.setRequestHeader(bg,bj[bg])}}catch(bf){}bi.send((e.hasContent&&e.data)||null);bd=function(bs,bm){var bn,bl,bk,bq,bp;try{if(bd&&(bm||bi.readyState===4)){bd=H;if(bh){bi.onreadystatechange=a.noop;delete J[bh]}if(bm){if(bi.readyState!==4){bi.abort()}}else{bn=bi.status;bk=bi.getAllResponseHeaders();bq={};bp=bi.responseXML;if(bp&&bp.documentElement){bq.xml=bp}bq.text=bi.responseText;try{bl=bi.statusText}catch(br){bl=""}if(!bn&&e.isLocal&&!e.crossDomain){bn=bq.text?200:404}else{if(bn===1223){bn=204}}}}}catch(bo){if(!bm){be(-1,bo)}}if(bq){be(bn,bl,bq,bk)}};if(!e.async||bi.readyState===4){bd()}else{if(!J){J={};A()}bh=x++;bi.onreadystatechange=J[bh]=bd}},abort:function(){if(bd){bd(0,1)}}}}})}var N={},ap=/^(?:toggle|show|hide)$/,aF=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,aS,ax=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];a.fn.extend({show:function(bf,bi,bh){var be,bg;if(bf||bf===0){return this.animate(aQ("show",3),bf,bi,bh)}else{for(var bd=0,e=this.length;bd<e;bd++){be=this[bd];bg=be.style.display;if(!a._data(be,"olddisplay")&&bg==="none"){bg=be.style.display=""}if(bg===""&&a.css(be,"display")==="none"){a._data(be,"olddisplay",w(be.nodeName))}}for(bd=0;bd<e;bd++){be=this[bd];bg=be.style.display;if(bg===""||bg==="none"){be.style.display=a._data(be,"olddisplay")||""}}return this}},hide:function(be,bh,bg){if(be||be===0){return this.animate(aQ("hide",3),be,bh,bg)}else{for(var bd=0,e=this.length;bd<e;bd++){var bf=a.css(this[bd],"display");if(bf!=="none"&&!a._data(this[bd],"olddisplay")){a._data(this[bd],"olddisplay",bf)}}for(bd=0;bd<e;bd++){this[bd].style.display="none"}return this}},_toggle:a.fn.toggle,toggle:function(be,bd,bf){var e=typeof be==="boolean";if(a.isFunction(be)&&a.isFunction(bd)){this._toggle.apply(this,arguments)}else{if(be==null||e){this.each(function(){var bg=e?be:a(this).is(":hidden");a(this)[bg?"show":"hide"]()})}else{this.animate(aQ("toggle",3),be,bd,bf)}}return this},fadeTo:function(e,bf,be,bd){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:bf},e,be,bd)},animate:function(bg,bd,bf,be){var e=a.speed(bd,bf,be);if(a.isEmptyObject(bg)){return this.each(e.complete)}return this[e.queue===false?"each":"queue"](function(){var bj=a.extend({},e),bn,bk=this.nodeType===1,bl=bk&&a(this).is(":hidden"),bh=this;for(bn in bg){var bi=a.camelCase(bn);if(bn!==bi){bg[bi]=bg[bn];delete bg[bn];bn=bi}if(bg[bn]==="hide"&&bl||bg[bn]==="show"&&!bl){return bj.complete.call(this)}if(bk&&(bn==="height"||bn==="width")){bj.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(a.css(this,"display")==="inline"&&a.css(this,"float")==="none"){if(!a.support.inlineBlockNeedsLayout){this.style.display="inline-block"}else{var bm=w(this.nodeName);if(bm==="inline"){this.style.display="inline-block"}else{this.style.display="inline";this.style.zoom=1}}}}if(a.isArray(bg[bn])){(bj.specialEasing=bj.specialEasing||{})[bn]=bg[bn][1];bg[bn]=bg[bn][0]}}if(bj.overflow!=null){this.style.overflow="hidden"}bj.curAnim=a.extend({},bg);a.each(bg,function(bp,bt){var bs=new a.fx(bh,bj,bp);if(ap.test(bt)){bs[bt==="toggle"?bl?"show":"hide":bt](bg)}else{var br=aF.exec(bt),bu=bs.cur();if(br){var bo=parseFloat(br[2]),bq=br[3]||(a.cssNumber[bp]?"":"px");if(bq!=="px"){a.style(bh,bp,(bo||1)+bq);bu=((bo||1)/bs.cur())*bu;a.style(bh,bp,bu+bq)}if(br[1]){bo=((br[1]==="-="?-1:1)*bo)+bu}bs.custom(bu,bo,bq)}else{bs.custom(bu,bt,"")}}});return true})},stop:function(bd,e){var be=a.timers;if(bd){this.queue([])}this.each(function(){for(var bf=be.length-1;bf>=0;bf--){if(be[bf].elem===this){if(e){be[bf](true)}be.splice(bf,1)}}});if(!e){this.dequeue()}return this}});function aQ(bd,e){var be={};a.each(ax.concat.apply([],ax.slice(0,e)),function(){be[this]=bd});return be}a.each({slideDown:aQ("show",1),slideUp:aQ("hide",1),slideToggle:aQ("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,bd){a.fn[e]=function(be,bg,bf){return this.animate(bd,be,bg,bf)}});a.extend({speed:function(be,bf,bd){var e=be&&typeof be==="object"?a.extend({},be):{complete:bd||!bd&&bf||a.isFunction(be)&&be,duration:be,easing:bd&&bf||bf&&!a.isFunction(bf)&&bf};e.duration=a.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in a.fx.speeds?a.fx.speeds[e.duration]:a.fx.speeds._default;e.old=e.complete;e.complete=function(){if(e.queue!==false){a(this).dequeue()}if(a.isFunction(e.old)){e.old.call(this)}};return e},easing:{linear:function(be,bf,e,bd){return e+bd*be},swing:function(be,bf,e,bd){return((-Math.cos(be*Math.PI)/2)+0.5)*bd+e}},timers:[],fx:function(bd,e,be){this.options=e;this.elem=bd;this.prop=be;if(!e.orig){e.orig={}}}});a.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(a.fx.step[this.prop]||a.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bd=a.css(this.elem,this.prop);return isNaN(e=parseFloat(bd))?!bd||bd==="auto"?0:bd:e},custom:function(bh,bg,bf){var e=this,be=a.fx;this.startTime=a.now();this.start=bh;this.end=bg;this.unit=bf||this.unit||(a.cssNumber[this.prop]?"":"px");this.now=this.start;this.pos=this.state=0;function bd(bi){return e.step(bi)}bd.elem=this.elem;if(bd()&&a.timers.push(bd)&&!aS){aS=setInterval(be.tick,be.interval)}},show:function(){this.options.orig[this.prop]=a.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());a(this.elem).show()},hide:function(){this.options.orig[this.prop]=a.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(bf){var bk=a.now(),bg=true;if(bf||bk>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var bh in this.options.curAnim){if(this.options.curAnim[bh]!==true){bg=false}}if(bg){if(this.options.overflow!=null&&!a.support.shrinkWrapBlocks){var be=this.elem,bl=this.options;a.each(["","X","Y"],function(bm,bn){be.style["overflow"+bn]=bl.overflow[bm]})}if(this.options.hide){a(this.elem).hide()}if(this.options.hide||this.options.show){for(var e in this.options.curAnim){a.style(this.elem,e,this.options.orig[e])}}this.options.complete.call(this.elem)}return false}else{var bd=bk-this.startTime;this.state=bd/this.options.duration;var bi=this.options.specialEasing&&this.options.specialEasing[this.prop];var bj=this.options.easing||(a.easing.swing?"swing":"linear");this.pos=a.easing[bi||bj](this.state,bd,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};a.extend(a.fx,{tick:function(){var bd=a.timers;for(var e=0;e<bd.length;e++){if(!bd[e]()){bd.splice(e--,1)}}if(!bd.length){a.fx.stop()}},interval:13,stop:function(){clearInterval(aS);aS=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){a.style(e.elem,"opacity",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=(e.prop==="width"||e.prop==="height"?Math.max(0,e.now):e.now)+e.unit}else{e.elem[e.prop]=e.now}}}});if(a.expr&&a.expr.filters){a.expr.filters.animated=function(e){return a.grep(a.timers,function(bd){return e===bd.elem}).length}}function w(be){if(!N[be]){var e=a("<"+be+">").appendTo("body"),bd=e.css("display");e.remove();if(bd==="none"||bd===""){bd="block"}N[be]=bd}return N[be]}var S=/^t(?:able|d|h)$/i,Y=/^(?:body|html)$/i;if("getBoundingClientRect" in al.documentElement){a.fn.offset=function(bq){var bg=this[0],bj;if(bq){return this.each(function(e){a.offset.setOffset(this,bq,e)})}if(!bg||!bg.ownerDocument){return null}if(bg===bg.ownerDocument.body){return a.offset.bodyOffset(bg)}try{bj=bg.getBoundingClientRect()}catch(bn){}var bp=bg.ownerDocument,be=bp.documentElement;if(!bj||!a.contains(be,bg)){return bj?{top:bj.top,left:bj.left}:{top:0,left:0}}var bk=bp.body,bl=az(bp),bi=be.clientTop||bk.clientTop||0,bm=be.clientLeft||bk.clientLeft||0,bd=(bl.pageYOffset||a.support.boxModel&&be.scrollTop||bk.scrollTop),bh=(bl.pageXOffset||a.support.boxModel&&be.scrollLeft||bk.scrollLeft),bo=bj.top+bd-bi,bf=bj.left+bh-bm;return{top:bo,left:bf}}}else{a.fn.offset=function(bn){var bh=this[0];if(bn){return this.each(function(bo){a.offset.setOffset(this,bn,bo)})}if(!bh||!bh.ownerDocument){return null}if(bh===bh.ownerDocument.body){return a.offset.bodyOffset(bh)}a.offset.initialize();var bk,be=bh.offsetParent,bd=bh,bm=bh.ownerDocument,bf=bm.documentElement,bi=bm.body,bj=bm.defaultView,e=bj?bj.getComputedStyle(bh,null):bh.currentStyle,bl=bh.offsetTop,bg=bh.offsetLeft;while((bh=bh.parentNode)&&bh!==bi&&bh!==bf){if(a.offset.supportsFixedPosition&&e.position==="fixed"){break}bk=bj?bj.getComputedStyle(bh,null):bh.currentStyle;bl-=bh.scrollTop;bg-=bh.scrollLeft;if(bh===be){bl+=bh.offsetTop;bg+=bh.offsetLeft;if(a.offset.doesNotAddBorder&&!(a.offset.doesAddBorderForTableAndCells&&S.test(bh.nodeName))){bl+=parseFloat(bk.borderTopWidth)||0;bg+=parseFloat(bk.borderLeftWidth)||0}bd=be;be=bh.offsetParent}if(a.offset.subtractsBorderForOverflowNotVisible&&bk.overflow!=="visible"){bl+=parseFloat(bk.borderTopWidth)||0;bg+=parseFloat(bk.borderLeftWidth)||0}e=bk}if(e.position==="relative"||e.position==="static"){bl+=bi.offsetTop;bg+=bi.offsetLeft}if(a.offset.supportsFixedPosition&&e.position==="fixed"){bl+=Math.max(bf.scrollTop,bi.scrollTop);bg+=Math.max(bf.scrollLeft,bi.scrollLeft)}return{top:bl,left:bg}}}a.offset={initialize:function(){var e=al.body,bd=al.createElement("div"),bg,bi,bh,bj,be=parseFloat(a.css(e,"marginTop"))||0,bf="<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>";a.extend(bd.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});bd.innerHTML=bf;e.insertBefore(bd,e.firstChild);bg=bd.firstChild;bi=bg.firstChild;bj=bg.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(bi.offsetTop!==5);this.doesAddBorderForTableAndCells=(bj.offsetTop===5);bi.style.position="fixed";bi.style.top="20px";this.supportsFixedPosition=(bi.offsetTop===20||bi.offsetTop===15);bi.style.position=bi.style.top="";bg.style.overflow="hidden";bg.style.position="relative";this.subtractsBorderForOverflowNotVisible=(bi.offsetTop===-5);this.doesNotIncludeMarginInBodyOffset=(e.offsetTop!==be);e.removeChild(bd);e=bd=bg=bi=bh=bj=null;a.offset.initialize=a.noop},bodyOffset:function(e){var be=e.offsetTop,bd=e.offsetLeft;a.offset.initialize();if(a.offset.doesNotIncludeMarginInBodyOffset){be+=parseFloat(a.css(e,"marginTop"))||0;bd+=parseFloat(a.css(e,"marginLeft"))||0}return{top:be,left:bd}},setOffset:function(bf,bo,bi){var bj=a.css(bf,"position");if(bj==="static"){bf.style.position="relative"}var bh=a(bf),bd=bh.offset(),e=a.css(bf,"top"),bm=a.css(bf,"left"),bn=(bj==="absolute"&&a.inArray("auto",[e,bm])>-1),bl={},bk={},be,bg;if(bn){bk=bh.position()}be=bn?bk.top:parseInt(e,10)||0;bg=bn?bk.left:parseInt(bm,10)||0;if(a.isFunction(bo)){bo=bo.call(bf,bi,bd)}if(bo.top!=null){bl.top=(bo.top-bd.top)+be}if(bo.left!=null){bl.left=(bo.left-bd.left)+bg}if("using" in bo){bo.using.call(bf,bl)}else{bh.css(bl)}}};a.fn.extend({position:function(){if(!this[0]){return null}var be=this[0],bd=this.offsetParent(),bf=this.offset(),e=Y.test(bd[0].nodeName)?{top:0,left:0}:bd.offset();bf.top-=parseFloat(a.css(be,"marginTop"))||0;bf.left-=parseFloat(a.css(be,"marginLeft"))||0;e.top+=parseFloat(a.css(bd[0],"borderTopWidth"))||0;e.left+=parseFloat(a.css(bd[0],"borderLeftWidth"))||0;return{top:bf.top-e.top,left:bf.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||al.body;while(e&&(!Y.test(e.nodeName)&&a.css(e,"position")==="static")){e=e.offsetParent}return e})}});a.each(["Left","Top"],function(bd,e){var be="scroll"+e;a.fn[be]=function(bh){var bf=this[0],bg;if(!bf){return null}if(bh!==H){return this.each(function(){bg=az(this);if(bg){bg.scrollTo(!bd?bh:a(bg).scrollLeft(),bd?bh:a(bg).scrollTop())}else{this[be]=bh}})}else{bg=az(bf);return bg?("pageXOffset" in bg)?bg[bd?"pageYOffset":"pageXOffset"]:a.support.boxModel&&bg.document.documentElement[be]||bg.document.body[be]:bf[be]}}});function az(e){return a.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}a.each(["Height","Width"],function(bd,e){var be=e.toLowerCase();a.fn["inner"+e]=function(){return this[0]?parseFloat(a.css(this[0],be,"padding")):null};a.fn["outer"+e]=function(bf){return this[0]?parseFloat(a.css(this[0],be,bf?"margin":"border")):null};a.fn[be]=function(bg){var bh=this[0];if(!bh){return bg==null?null:this}if(a.isFunction(bg)){return this.each(function(bl){var bk=a(this);bk[be](bg.call(this,bl,bk[be]()))})}if(a.isWindow(bh)){var bi=bh.document.documentElement["client"+e];return bh.document.compatMode==="CSS1Compat"&&bi||bh.document.body["client"+e]||bi}else{if(bh.nodeType===9){return Math.max(bh.documentElement["client"+e],bh.body["scroll"+e],bh.documentElement["scroll"+e],bh.body["offset"+e],bh.documentElement["offset"+e])}else{if(bg===H){var bj=a.css(bh,be),bf=parseFloat(bj);return a.isNaN(bf)?bj:bf}else{return this.css(be,typeof bg==="string"?bg:bg+"px")}}}}});aY.jQuery=aY.$=a})(window);
\ No newline at end of file
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/818f94014a76/
changeset: r5123:818f94014a76
user: kanwei
date: 2011-02-24 22:19:03
summary: Updated bigBed test file
affected #: 1 file (0 bytes)
Binary file test-data/7.bigbed has changed
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/c0d6d17fc7db/
changeset: r5122:c0d6d17fc7db
user: jgoecks
date: 2011-02-24 21:24:52
summary: Add options to Tophat wrapper to support v1.2.0 functionality: (a) allow indel search; (b) max insertion and max deletion lengths; and (c) library type. Update functional tests to tests new options. Also update function that checks from_work_dir output attribute to use real path to prevent mishandling of symbolic links.
affected #: 5 files (6.0 KB)
--- a/lib/galaxy/jobs/__init__.py Thu Feb 24 15:23:21 2011 -0500
+++ b/lib/galaxy/jobs/__init__.py Thu Feb 24 15:24:52 2011 -0500
@@ -505,10 +505,14 @@
return
job_context = ExpressionContext( dict( stdout = stdout, stderr = stderr ) )
job_tool = self.app.toolbox.tools_by_id.get( job.tool_id, None )
- def file_in_dir( file_path, a_dir ):
- """ Returns true if file is in directory. """
- abs_file_path = os.path.abspath( file_path )
- return os.path.split( abs_file_path )[0] == os.path.abspath( a_dir )
+ def in_directory( file, directory ):
+ # Make both absolute.
+ directory = os.path.realpath( directory )
+ file = os.path.realpath( file )
+
+ #Return true, if the common prefix of both is equal to directory
+ #e.g. /a/b/c/d.rst and directory is /a/b, the common prefix is /a/b
+ return os.path.commonprefix( [ file, directory ] ) == directory
for dataset_assoc in job.output_datasets + job.output_library_datasets:
context = self.get_dataset_finish_context( job_context, dataset_assoc.dataset.dataset )
#should this also be checking library associations? - can a library item be added from a history before the job has ended? - lets not allow this to occur
@@ -523,7 +527,7 @@
if hda_tool_output and hda_tool_output.from_work_dir:
# Copy from working dir to HDA.
source_file = os.path.join( os.path.abspath( self.working_directory ), hda_tool_output.from_work_dir )
- if file_in_dir( source_file, self.working_directory ):
+ if in_directory( source_file, self.working_directory ):
try:
shutil.move( source_file, dataset.file_name )
log.debug( "finish(): Moved %s to %s as directed by from_work_dir" % ( source_file, dataset.file_name ) )
--- a/tools/ngs_rna/tophat_wrapper.py Thu Feb 24 15:23:21 2011 -0500
+++ b/tools/ngs_rna/tophat_wrapper.py Thu Feb 24 15:24:52 2011 -0500
@@ -30,6 +30,10 @@
parser.add_option( '-g', '--max_multihits', dest='max_multihits', help='Maximum number of alignments to be allowed' )
parser.add_option( '', '--seg-mismatches', dest='seg_mismatches', help='Number of mismatches allowed in each segment alignment for reads mapped independently' )
parser.add_option( '', '--seg-length', dest='seg_length', help='Minimum length of read segments' )
+ parser.add_option( '', '--library-type', dest='library_type', help='TopHat will treat the reads as strand specific. Every read alignment will have an XS attribute tag. Consider supplying library type options below to select the correct RNA-seq protocol.' )
+ parser.add_option( '', '--allow-indels', action="store_true", help='Allow indel search. Indel search is disabled by default.' )
+ parser.add_option( '', '--max-insertion-length', dest='max_insertion_length', help='The maximum insertion length. The default is 3.' )
+ parser.add_option( '', '--max-deletion-length', dest='max_deletion_length', help='The maximum deletion length. The default is 3.' )
# Options for supplying own junctions
parser.add_option( '-G', '--GTF', dest='gene_model_annotations', help='Supply TopHat with a list of gene model annotations. \
@@ -115,8 +119,7 @@
index_path = options.index_path
# Build tophat command.
- tmp_output_dir = tempfile.mkdtemp()
- cmd = 'tophat -o %s %s %s %s'
+ cmd = 'tophat %s %s %s'
reads = options.input1
if options.input2:
reads += ' ' + options.input2
@@ -124,7 +127,7 @@
if options.single_paired == 'paired':
opts += ' -r %s' % options.mate_inner_dist
if options.settings == 'preSet':
- cmd = cmd % ( tmp_output_dir, opts, index_path, reads )
+ cmd = cmd % ( opts, index_path, reads )
else:
try:
if int( options.min_anchor_length ) >= 3:
@@ -144,6 +147,13 @@
opts += ' -j %s' % options.raw_juncs
if options.no_novel_juncs:
opts += ' --no-novel-juncs'
+ if options.library_type:
+ opts += ' --library-type %s' % options.library_type
+ if options.allow_indels:
+ # Max options do not work for Tophat v1.2.0, despite documentation to the contrary.
+ opts += ' --allow-indels'
+ #opts += ' --allow-indels --max-insertion-length %i --max-deletion-length %i' % ( int( options.max_insertion_length ), int( options.max_deletion_length ) )
+
# Search type options.
if options.coverage_search:
@@ -166,23 +176,21 @@
opts += ' --min-segment-intron %d' % int(options.min_segment_intron)
if options.max_segment_intron:
opts += ' --max-segment-intron %d' % int(options.max_segment_intron)
- cmd = cmd % ( tmp_output_dir, opts, index_path, reads )
+ cmd = cmd % ( opts, index_path, reads )
except Exception, e:
# Clean up temp dirs
if os.path.exists( tmp_index_dir ):
shutil.rmtree( tmp_index_dir )
- if os.path.exists( tmp_output_dir ):
- shutil.rmtree( tmp_output_dir )
stop_err( 'Something is wrong with the alignment parameters and the alignment could not be run\n' + str( e ) )
print cmd
# Run
try:
- tmp_out = tempfile.NamedTemporaryFile( dir=tmp_output_dir ).name
+ tmp_out = tempfile.NamedTemporaryFile().name
tmp_stdout = open( tmp_out, 'wb' )
- tmp_err = tempfile.NamedTemporaryFile( dir=tmp_output_dir ).name
+ tmp_err = tempfile.NamedTemporaryFile().name
tmp_stderr = open( tmp_err, 'wb' )
- proc = subprocess.Popen( args=cmd, shell=True, cwd=tmp_output_dir, stdout=tmp_stdout, stderr=tmp_stderr )
+ proc = subprocess.Popen( args=cmd, shell=True, cwd=".", stdout=tmp_stdout, stderr=tmp_stderr )
returncode = proc.wait()
tmp_stderr.close()
# get stderr, allowing for case where it's very large
@@ -202,17 +210,11 @@
raise Exception, stderr
# TODO: look for errors in program output.
-
- # Copy output files from tmp directory to specified files.
- shutil.copyfile( os.path.join( tmp_output_dir, "junctions.bed" ), options.junctions_output_file )
- shutil.copyfile( os.path.join( tmp_output_dir, "accepted_hits.bam" ), options.accepted_hits_output_file )
except Exception, e:
stop_err( 'Error in tophat:\n' + str( e ) )
# Clean up temp dirs
if os.path.exists( tmp_index_dir ):
shutil.rmtree( tmp_index_dir )
- if os.path.exists( tmp_output_dir ):
- shutil.rmtree( tmp_output_dir )
if __name__=="__main__": __main__()
--- a/tools/ngs_rna/tophat_wrapper.xml Thu Feb 24 15:23:21 2011 -0500
+++ b/tools/ngs_rna/tophat_wrapper.xml Thu Feb 24 15:24:52 2011 -0500
@@ -39,6 +39,14 @@
--max-segment-intron $singlePaired.sParams.max_segment_intron
--seg-mismatches=$singlePaired.sParams.seg_mismatches
--seg-length=$singlePaired.sParams.seg_length
+ --library-type=$singlePaired.sParams.library_type
+
+ ## Indel search.
+ #if $singlePaired.sParams.indel_search.allow_indel_search == "Yes":
+ --allow-indels
+ --max-insertion-length $singlePaired.sParams.indel_search.max_insertion_length
+ --max-deletion-length $singlePaired.sParams.indel_search.max_deletion_length
+ #end if
## Supplying junctions parameters.
#if $singlePaired.sParams.own_junctions.use_junctions == "Yes":
@@ -90,6 +98,14 @@
--max-segment-intron $singlePaired.pParams.max_segment_intron
--seg-mismatches=$singlePaired.pParams.seg_mismatches
--seg-length=$singlePaired.pParams.seg_length
+ --library-type=$singlePaired.pParams.library_type
+
+ ## Indel search.
+ #if $singlePaired.pParams.indel_search.allow_indel_search == "Yes":
+ --allow-indels
+ --max-insertion-length $singlePaired.pParams.indel_search.max_insertion_length
+ --max-deletion-length $singlePaired.pParams.indel_search.max_deletion_length
+ #end if
## Supplying junctions parameters.
#if $singlePaired.pParams.own_junctions.use_junctions == "Yes":
@@ -157,10 +173,26 @@
<when value="preSet" /><!-- Full/advanced parms. --><when value="full">
+ <param name="library_type" type="select" label="Library Type" help="TopHat will treat the reads as strand specific. Every read alignment will have an XS attribute tag. Consider supplying library type options below to select the correct RNA-seq protocol.">
+ <option value="fr-unstranded">FR Unstranded</option>
+ <option value="fr-firststrand">FR First Strand</option>
+ <option value="fr-secondstrand">FR Second Strand</option>
+ </param><param name="anchor_length" type="integer" value="8" label="Anchor length (at least 3)" help="Report junctions spanned by reads with at least this many bases on each side of the junction." /><param name="splice_mismatches" type="integer" value="0" label="Maximum number of mismatches that can appear in the anchor region of spliced alignment" /><param name="min_intron_length" type="integer" value="70" label="The minimum intron length" help="TopHat will ignore donor/acceptor pairs closer than this many bases apart." /><param name="max_intron_length" type="integer" value="500000" label="The maximum intron length" help="When searching for junctions ab initio, TopHat will ignore donor/acceptor pairs farther than this many bases apart, except when such a pair is supported by a split segment alignment of a long read." />
+ <conditional name="indel_search">
+ <param name="allow_indel_search" type="select" label="Allow indel search">
+ <option value="No">No</option>
+ <option value="Yes">Yes</option>
+ </param>
+ <when value="No"/>
+ <when value="Yes">
+ <param name="max_insertion_length" type="integer" value="3" label="Max insertion length." help="The maximum insertion length." />
+ <param name="max_deletion_length" type="integer" value="3" label="Max deletion length." help="The maximum deletion length." />
+ </when>
+ </conditional><param name="junction_filter" type="float" value="0.15" label="Minimum isoform fraction: filter out junctions supported by too few alignments (number of reads divided by average depth of coverage)" help="0.0 to 1.0 (0 to turn off)" /><param name="max_multihits" type="integer" value="40" label="Maximum number of alignments to be allowed" /><param name="min_segment_intron" type="integer" value="50" label="Minimum intron length that may be found during split-segment (default) search" />
@@ -247,11 +279,27 @@
<when value="preSet" /><!-- Full/advanced parms. --><when value="full">
+ <param name="library_type" type="select" label="Library Type" help="TopHat will treat the reads as strand specific. Every read alignment will have an XS attribute tag. Consider supplying library type options below to select the correct RNA-seq protocol.">
+ <option value="fr-unstranded">FR Unstranded</option>
+ <option value="fr-firststrand">FR First Strand</option>
+ <option value="fr-secondstrand">FR Second Strand</option>
+ </param><param name="mate_std_dev" type="integer" value="20" label="Std. Dev for Distance between Mate Pairs" help="The standard deviation for the distribution on inner distances between mate pairs."/><param name="anchor_length" type="integer" value="8" label="Anchor length (at least 3)" help="Report junctions spanned by reads with at least this many bases on each side of the junction." /><param name="splice_mismatches" type="integer" value="0" label="Maximum number of mismatches that can appear in the anchor region of spliced alignment" /><param name="min_intron_length" type="integer" value="70" label="The minimum intron length" help="TopHat will ignore donor/acceptor pairs closer than this many bases apart." /><param name="max_intron_length" type="integer" value="500000" label="The maximum intron length" help="When searching for junctions ab initio, TopHat will ignore donor/acceptor pairs farther than this many bases apart, except when such a pair is supported by a split segment alignment of a long read." />
+ <conditional name="indel_search">
+ <param name="allow_indel_search" type="select" label="Allow indel search">
+ <option value="No">No</option>
+ <option value="Yes">Yes</option>
+ </param>
+ <when value="No"/>
+ <when value="Yes">
+ <param name="max_insertion_length" type="integer" value="3" label="Max insertion length." help="The maximum insertion length." />
+ <param name="max_deletion_length" type="integer" value="3" label="Max deletion length." help="The maximum deletion length." />
+ </when>
+ </conditional><param name="junction_filter" type="float" value="0.15" label="Minimum isoform fraction: filter out junctions supported by too few alignments (number of reads divided by average depth of coverage)" help="0.0 to 1.0 (0 to turn off)" /><param name="max_multihits" type="integer" value="40" label="Maximum number of alignments to be allowed" /><param name="min_segment_intron" type="integer" value="50" label="Minimum intron length that may be found during split-segment (default) search" />
@@ -329,8 +377,28 @@
</inputs><outputs>
- <data format="bed" name="junctions" label="${tool.name} on ${on_string}: splice junctions"/>
- <data format="bam" name="accepted_hits" label="${tool.name} on ${on_string}: accepted_hits"/>
+ <data format="bed" name="insertions" label="${tool.name} on ${on_string}: insertions" from_work_dir="tophat_out/insertions.bed">
+ <filter>
+ (
+ ( ( 'sParams' in singlePaired ) and ( 'indel_search' in singlePaired['sParams'] ) and
+ ( singlePaired['sParams']['indel_search']['allow_indel_search'] == 'Yes' ) ) or
+ ( ( 'pParams' in singlePaired ) and ( 'indel_search' in singlePaired['pParams'] ) and
+ ( singlePaired['pParams']['indel_search']['allow_indel_search'] == 'Yes' ) )
+ )
+ </filter>
+ </data>
+ <data format="bed" name="deletions" label="${tool.name} on ${on_string}: deletions" from_work_dir="tophat_out/deletions.bed">
+ <filter>
+ (
+ ( ( 'sParams' in singlePaired ) and ( 'indel_search' in singlePaired['sParams'] ) and
+ ( singlePaired['sParams']['indel_search']['allow_indel_search'] == 'Yes' ) ) or
+ ( ( 'pParams' in singlePaired ) and ( 'indel_search' in singlePaired['pParams'] ) and
+ ( singlePaired['pParams']['indel_search']['allow_indel_search'] == 'Yes' ) )
+ )
+ </filter>
+ </data>
+ <data format="bed" name="junctions" label="${tool.name} on ${on_string}: splice junctions" from_work_dir="tophat_out/junctions.bed"/>
+ <data format="bam" name="accepted_hits" label="${tool.name} on ${on_string}: accepted_hits" from_work_dir="tophat_out/accepted_hits.bam"/></outputs><tests>
@@ -367,7 +435,7 @@
<test><!-- Tophat commands:
bowtie-build -f test-data/tophat_in1.fasta tophat_in1
- tophat -o tmp_dir -p 1 -a 8 -m 0 -i 70 -I 500000 -F 0.15 -g 40 +coverage-search +min-coverage-intron 50 +max-coverage-intro 20000 +segment-mismatches 2 +segment-length 25 +closure-search +min-closure-exon 50 +min-closure-intron 50 +max-closure-intro 5000 +microexon-search tophat_in1 test-data/tophat_in2.fastqsanger
+ tophat -o tmp_dir -p 1 -a 8 -m 0 -i 70 -I 500000 -F 0.15 -g 40 ++allow-indels +coverage-search +min-coverage-intron 50 +max-coverage-intro 20000 +segment-mismatches 2 +segment-length 25 +closure-search +min-closure-exon 50 +min-closure-intron 50 +max-closure-intro 5000 +microexon-search tophat_in1 test-data/tophat_in2.fastqsanger
Replace the + with double-dash
--><param name="genomeSource" value="history"/>
@@ -375,6 +443,7 @@
<param name="sPaired" value="single"/><param name="input1" ftype="fastqsanger" value="tophat_in2.fastqsanger"/><param name="sSettingsType" value="full"/>
+ <param name="library_type" value="FR Unstranded"/><param name="anchor_length" value="8"/><param name="splice_mismatches" value="0"/><param name="min_intron_length" value="70"/>
@@ -386,6 +455,9 @@
<param name="max_segment_intron" value="500000" /><param name="seg_mismatches" value="2"/><param name="seg_length" value="25"/>
+ <param name="allow_indel_search" value="Yes"/>
+ <param name="max_insertion_length" value="3"/>
+ <param name="max_deletion_length" value="3"/><param name="use_junctions" value="Yes" /><param name="use_annotations" value="No" /><param name="use_juncs" value="No" />
@@ -398,6 +470,8 @@
<param name="min_coverage_intron" value="50" /><param name="max_coverage_intron" value="20000" /><param name="microexon_search" value="Yes" />
+ <output name="insertions" file="tophat_out3i.bed" ftype="bed"/>
+ <output name="deletions" file="tophat_out3d.bed" ftype="bed"/><output name="junctions" file="tophat_out3j.bed" ftype="bed" /><output name="accepted_hits" file="tophat_out3h.bam" compare="sim_size" ftype="bam" /></test>
@@ -414,6 +488,7 @@
<param name="input2" ftype="fastqsanger" value="tophat_in3.fastqsanger"/><param name="mate_inner_distance" value="20"/><param name="pSettingsType" value="full"/>
+ <param name="library_type" value="FR Unstranded"/><param name="mate_std_dev" value="20"/><param name="anchor_length" value="8"/><param name="splice_mismatches" value="0"/>
@@ -426,6 +501,7 @@
<param name="max_segment_intron" value="500000" /><param name="seg_mismatches" value="2"/><param name="seg_length" value="25"/>
+ <param name="allow_indel_search" value="No"/><param name="use_junctions" value="Yes" /><param name="use_annotations" value="No" /><param name="use_juncs" value="No" />
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/1a544e327b3d/
changeset: r5121:1a544e327b3d
user: kanwei
date: 2011-02-24 21:23:21
summary: Fix bed_to_bigBed test
affected #: 2 files (18 bytes)
--- a/buildbot_setup.sh Thu Feb 24 15:07:46 2011 -0500
+++ b/buildbot_setup.sh Thu Feb 24 15:23:21 2011 -0500
@@ -109,7 +109,7 @@
fi
done
-# for wig_to_bigWig
+# for wig_to_bigWig and bed_to_bigBed
if [ ! -f "tool-data/shared/ucsc/chrom/hg17.len" -a -f "test-data/wig_to_bigwig_hg17.len" ]; then
mkdir -p tool-data/shared/ucsc/chrom
cp test-data/wig_to_bigwig_hg17.len tool-data/shared/ucsc/chrom/hg17.len
--- a/tools/filters/bed_to_bigbed.xml Thu Feb 24 15:07:46 2011 -0500
+++ b/tools/filters/bed_to_bigbed.xml Thu Feb 24 15:23:21 2011 -0500
@@ -31,7 +31,7 @@
</outputs><tests><test>
- <param name="input1" value="7.bed" dbkey="hg18" />
+ <param name="input1" value="7.bed" dbkey="hg17" /><param name="settingsType" value="full" /><param name="blockSize" value="256" /><param name="itemsPerSlot" value="512" />
@@ -39,7 +39,7 @@
<output name="out_file1" file="7.bigbed"/></test><test>
- <param name="input1" value="7.bed" dbkey="hg18" />
+ <param name="input1" value="7.bed" dbkey="hg17" /><param name="settingsType" value="preset" /><output name="out_file1" file="7.bigbed"/></test>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/fb51941391ed/
changeset: r5120:fb51941391ed
user: kanwei
date: 2011-02-24 21:07:46
summary: Fix BLAST+ test
affected #: 1 file (1 byte)
--- a/tools/ncbi_blast_plus/ncbi_tblastn_wrapper.xml Thu Feb 24 12:27:37 2011 -0500
+++ b/tools/ncbi_blast_plus/ncbi_tblastn_wrapper.xml Thu Feb 24 15:07:46 2011 -0500
@@ -1,7 +1,7 @@
<tool id="ncbi_tblastn_wrapper" name="NCBI BLAST+ tblastn" version="0.0.8"><description>Search translated nucleotide database with protein query sequence(s)</description><command interpreter="python">hide_stderr.py
-# The command is a Cheetah template which allows some Python based syntax.
+## The command is a Cheetah template which allows some Python based syntax.
## Lines starting hash hash are comments. Galaxy will turn newlines into spaces
tblastn
-query "$query"
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

24 Feb '11
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/dd3c21ebfa4a/
changeset: r5119:dd3c21ebfa4a
user: kanwei
date: 2011-02-24 18:27:37
summary: Fix debugging output on BLASTX+ failure
affected #: 1 file (164 bytes)
--- a/tools/ncbi_blast_plus/hide_stderr.py Thu Feb 24 12:16:33 2011 -0500
+++ b/tools/ncbi_blast_plus/hide_stderr.py Thu Feb 24 12:27:37 2011 -0500
@@ -23,6 +23,13 @@
#Avoid using shell=True when we call subprocess to ensure if the Python
#script is killed, so too is the BLAST process.
try:
+ words = []
+ for w in sys.argv[1:]:
+ if " " in w:
+ words.append('"%s"' % w)
+ else:
+ words.append(w)
+ cmd = " ".join(words)
child = subprocess.Popen(sys.argv[1:],
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
except Exception, err:
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

24 Feb '11
1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/07275d9052af/
changeset: r5118:07275d9052af
user: rc
date: 2011-02-24 18:16:33
summary: Adding ftype attribute to vcf tool tests
affected #: 3 files (142 bytes)
--- a/lib/galaxy/tools/parameters/basic.py Thu Feb 24 09:17:50 2011 -0500
+++ b/lib/galaxy/tools/parameters/basic.py Thu Feb 24 12:16:33 2011 -0500
@@ -202,7 +202,7 @@
except:
raise ValueError( "An integer is required" )
elif self.value is None:
- raise ValueError( "The settings for this field require a 'value' setting and optionally a default value which must be an integer" )
+ raise ValueError( "The settings for the field named '%s' require a 'value' setting and optionally a default value which must be an integer" % self.name )
self.min = elem.get( 'min' )
self.max = elem.get( 'max' )
if self.min:
--- a/tools/vcf_tools/annotate.xml Thu Feb 24 09:17:50 2011 -0500
+++ b/tools/vcf_tools/annotate.xml Thu Feb 24 12:16:33 2011 -0500
@@ -31,15 +31,15 @@
</outputs><tests><test>
- <param name="input1" value="test.small.vcf" />
+ <param name="input1" value="test.small.vcf" ftype="vcf" /><param name="annotate" value="dbsnp" />
- <param name="input2" value="dbsnp.small.vcf" />
+ <param name="input2" value="dbsnp.small.vcf" ftype="vcf" /><output name="output" file="test_annotated_dbsnp.vcf" lines_diff="6" ftype="vcf" /></test><test>
- <param name="input1" value="test.small.vcf" />
+ <param name="input1" value="test.small.vcf" ftype="vcf" /><param name="annotate" value="hapmap" />
- <param name="input2" value="hapmap.small.vcf" />
+ <param name="input2" value="hapmap.small.vcf" ftype="vcf" /><output name="output" file="test_annotated_hapmap.vcf" lines_diff="6" ftype="vcf" /></test></tests>
--- a/tools/vcf_tools/intersect.xml Thu Feb 24 09:17:50 2011 -0500
+++ b/tools/vcf_tools/intersect.xml Thu Feb 24 12:16:33 2011 -0500
@@ -41,23 +41,23 @@
</outputs><tests><test>
- <param name="input1" value="1.vcf" />
+ <param name="input1" value="1.vcf" ftype="vcf" /><param name="format" value="vcf" />
- <param name="input2" value="2.vcf" />
+ <param name="input2" value="2.vcf" ftype="vcf" /><param name="priority_file" value="none" /><output name="output" file="1_2_intersect_priority_0.vcf" lines_diff="2" ftype="vcf" /></test><test>
- <param name="input1" value="1.vcf" />
+ <param name="input1" value="1.vcf" ftype="vcf" /><param name="format" value="vcf" />
- <param name="input2" value="2.vcf" />
+ <param name="input2" value="2.vcf" ftype="vcf" /><param name="priority_file" value="first_file" /><output name="output" file="1_2_intersect_priority_1.vcf" lines_diff="2" ftype="vcf" /></test><test>
- <param name="input1" value="1.vcf" />
+ <param name="input1" value="1.vcf" ftype="vcf" /><param name="format" value="vcf" />
- <param name="input2" value="2.vcf" />
+ <param name="input2" value="2.vcf" ftype="vcf" /><param name="priority_file" value="second_file" /><output name="output" file="1_2_intersect_priority_2.vcf" lines_diff="2" ftype="vcf" /></test>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0