From 6eb63547ae49267038f63cb340bc0470a1236cbe Mon Sep 17 00:00:00 2001 From: Andy Beverley Date: Sat, 3 May 2014 10:33:55 +0100 Subject: [PATCH] Initial commit --- MANIFEST | 22 ++++ MANIFEST.SKIP | 17 +++ Makefile.PL | 26 +++++ bin/app.pl | 7 ++ config.yml | 29 +++++ environments/development.yml | 21 ++++ environments/production.yml | 17 +++ lib/SDS.pm | 10 ++ public/404.html | 18 +++ public/500.html | 18 +++ public/css/error.css | 70 ++++++++++++ public/css/style.css | 189 ++++++++++++++++++++++++++++++++ public/dispatch.cgi | 15 +++ public/dispatch.fcgi | 17 +++ public/favicon.ico | Bin 0 -> 1406 bytes public/images/perldancer-bg.jpg | Bin 0 -> 7125 bytes public/images/perldancer.jpg | Bin 0 -> 2240 bytes public/javascripts/jquery.js | 154 ++++++++++++++++++++++++++ sql/sds-schema.mwb | Bin 0 -> 9926 bytes sql/sds-schema.mwb.bak | Bin 0 -> 9924 bytes t/001_base.t | 5 + t/002_index_route.t | 10 ++ views/index.tt | 147 +++++++++++++++++++++++++ views/layouts/main.tt | 22 ++++ 24 files changed, 814 insertions(+) create mode 100644 MANIFEST create mode 100644 MANIFEST.SKIP create mode 100644 Makefile.PL create mode 100755 bin/app.pl create mode 100644 config.yml create mode 100644 environments/development.yml create mode 100644 environments/production.yml create mode 100644 lib/SDS.pm create mode 100644 public/404.html create mode 100644 public/500.html create mode 100644 public/css/error.css create mode 100644 public/css/style.css create mode 100755 public/dispatch.cgi create mode 100755 public/dispatch.fcgi create mode 100644 public/favicon.ico create mode 100644 public/images/perldancer-bg.jpg create mode 100644 public/images/perldancer.jpg create mode 100644 public/javascripts/jquery.js create mode 100644 sql/sds-schema.mwb create mode 100644 sql/sds-schema.mwb.bak create mode 100644 t/001_base.t create mode 100644 t/002_index_route.t create mode 100644 views/index.tt create mode 100644 views/layouts/main.tt diff --git a/MANIFEST b/MANIFEST new file mode 100644 index 0000000..23e236d --- /dev/null +++ b/MANIFEST @@ -0,0 +1,22 @@ +MANIFEST +MANIFEST.SKIP +Makefile.PL +config.yml +bin/app.pl +public/dispatch.cgi +public/favicon.ico +public/500.html +public/404.html +public/dispatch.fcgi +public/javascripts/jquery.js +public/images/perldancer-bg.jpg +public/images/perldancer.jpg +public/css/style.css +public/css/error.css +t/002_index_route.t +t/001_base.t +environments/production.yml +environments/development.yml +lib/SDS.pm +views/index.tt +views/layouts/main.tt diff --git a/MANIFEST.SKIP b/MANIFEST.SKIP new file mode 100644 index 0000000..b18d30f --- /dev/null +++ b/MANIFEST.SKIP @@ -0,0 +1,17 @@ +^\.git\/ +maint +^tags$ +.last_cover_stats +Makefile$ +^blib +^pm_to_blib +^.*.bak +^.*.old +^t.*sessions +^cover_db +^.*\.log +^.*\.swp$ +MYMETA.* +^.gitignore +^.svn\/ +^SDS- diff --git a/Makefile.PL b/Makefile.PL new file mode 100644 index 0000000..7b3b85d --- /dev/null +++ b/Makefile.PL @@ -0,0 +1,26 @@ +use strict; +use warnings; +use ExtUtils::MakeMaker; + +# Normalize version strings like 6.30_02 to 6.3002, +# so that we can do numerical comparisons on it. +my $eumm_version = $ExtUtils::MakeMaker::VERSION; +$eumm_version =~ s/_//; + +WriteMakefile( + NAME => 'SDS', + AUTHOR => q{YOUR NAME }, + VERSION_FROM => 'lib/SDS.pm', + ABSTRACT => 'YOUR APPLICATION ABSTRACT', + ($eumm_version >= 6.3001 + ? ('LICENSE'=> 'perl') + : ()), + PL_FILES => {}, + PREREQ_PM => { + 'Test::More' => 0, + 'YAML' => 0, + 'Dancer2' => 0.11, + }, + dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', }, + clean => { FILES => 'SDS-*' }, +); diff --git a/bin/app.pl b/bin/app.pl new file mode 100755 index 0000000..b15f795 --- /dev/null +++ b/bin/app.pl @@ -0,0 +1,7 @@ +#!/usr/bin/env perl + +use FindBin; +use lib "$FindBin::Bin/../lib"; + +use SDS; +SDS->dance; diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..d63ef78 --- /dev/null +++ b/config.yml @@ -0,0 +1,29 @@ +# This is the main configuration file of your Dancer2 app +# env-related settings should go to environments/$env.yml +# all the settings in this file will be loaded at Dancer's startup. + +# Your application's name +appname: "SDS" + +# The default layout to use for your application (located in +# views/layouts/main.tt) +layout: "main" + +# when the charset is set to UTF-8 Dancer2 will handle for you +# all the magic of encoding and decoding. You should not care +# about unicode within your app when this setting is set (recommended). +charset: "UTF-8" + +# template engine +# simple: default and very basic template engine +# template_toolkit: TT + +template: "simple" + +# template: "template_toolkit" +# engines: +# template: +# template_toolkit: +# start_tag: '<%' +# end_tag: '%>' + diff --git a/environments/development.yml b/environments/development.yml new file mode 100644 index 0000000..efa9010 --- /dev/null +++ b/environments/development.yml @@ -0,0 +1,21 @@ +# configuration file for development environment + +# the logger engine to use +# console: log messages to STDOUT (your console where you started the +# application server) +# file: log message to a file in log/ +logger: "console" + +# the log level for this environment +# core is the lowest, it shows Dancer2's core log messages as well as yours +# (debug, info, warning and error) +log: "core" + +# should Dancer2 consider warnings as critical errors? +warnings: 1 + +# should Dancer2 show a stacktrace when an error is caught? +show_errors: 1 + +# print the banner +startup_info: 1 diff --git a/environments/production.yml b/environments/production.yml new file mode 100644 index 0000000..3aeb722 --- /dev/null +++ b/environments/production.yml @@ -0,0 +1,17 @@ +# configuration file for production environment + +# only log warning and error messsages +log: "warning" + +# log message to a file in logs/ +logger: "file" + +# don't consider warnings critical +warnings: 0 + +# hide errors +show_errors: 0 + +# cache route resolution for maximum performance +route_cache: 1 + diff --git a/lib/SDS.pm b/lib/SDS.pm new file mode 100644 index 0000000..135d6ea --- /dev/null +++ b/lib/SDS.pm @@ -0,0 +1,10 @@ +package SDS; +use Dancer2; + +our $VERSION = '0.1'; + +get '/' => sub { + template 'index'; +}; + +true; diff --git a/public/404.html b/public/404.html new file mode 100644 index 0000000..c214958 --- /dev/null +++ b/public/404.html @@ -0,0 +1,18 @@ + + + +Error 404 + + + + +

Error 404

+
+

Page Not Found

Sorry, this is the void.

+
+ + + diff --git a/public/500.html b/public/500.html new file mode 100644 index 0000000..2878db6 --- /dev/null +++ b/public/500.html @@ -0,0 +1,18 @@ + + + +Error 500 + + + + +

Error 500

+
+

Internal Server Error

Wooops, something went wrong

+
+ + + diff --git a/public/css/error.css b/public/css/error.css new file mode 100644 index 0000000..003ee2a --- /dev/null +++ b/public/css/error.css @@ -0,0 +1,70 @@ +body { + font-family: Lucida,sans-serif; +} + +h1 { + color: #AA0000; + border-bottom: 1px solid #444; +} + +h2 { color: #444; } + +pre { + font-family: "lucida console","monaco","andale mono","bitstream vera sans mono","consolas",monospace; + font-size: 12px; + border-left: 2px solid #777; + padding-left: 1em; +} + +footer { + font-size: 10px; +} + +span.key { + color: #449; + font-weight: bold; + width: 120px; + display: inline; +} + +span.value { + color: #494; +} + +/* these are for the message boxes */ + +pre.content { + background-color: #eee; + color: #000; + padding: 1em; + margin: 0; + border: 1px solid #aaa; + border-top: 0; + margin-bottom: 1em; +} + +div.title { + font-family: "lucida console","monaco","andale mono","bitstream vera sans mono","consolas",monospace; + font-size: 12px; + background-color: #aaa; + color: #444; + font-weight: bold; + padding: 3px; + padding-left: 10px; +} + +pre.content span.nu { + color: #889; + margin-right: 10px; +} + +pre.error { + background: #334; + color: #ccd; + padding: 1em; + border-top: 1px solid #000; + border-left: 1px solid #000; + border-right: 1px solid #eee; + border-bottom: 1px solid #eee; +} + diff --git a/public/css/style.css b/public/css/style.css new file mode 100644 index 0000000..706c3e5 --- /dev/null +++ b/public/css/style.css @@ -0,0 +1,189 @@ + +body { +margin: 0; +margin-bottom: 25px; +padding: 0; +background-color: #ddd; +background-image: url("/images/perldancer-bg.jpg"); +background-repeat: no-repeat; +background-position: top left; + +font-family: "Lucida Grande", "Bitstream Vera Sans", "Verdana"; +font-size: 13px; +color: #333; +} + +h1 { +font-size: 28px; +color: #000; +} + +a {color: #03c} +a:hover { +background-color: #03c; +color: white; +text-decoration: none; +} + +#page { +background-color: #ddd; +width: 750px; +margin: auto; +margin-left: auto; +padding-left: 0px; +margin-right: auto; +} + +#content { +background-color: white; +border: 3px solid #aaa; +border-top: none; +padding: 25px; +width: 500px; +} + +#sidebar { +float: right; +width: 175px; +} + +#header, #about, #getting-started { +padding-left: 75px; +padding-right: 30px; +} + + +#header { +background-image: url("/images/perldancer.jpg"); +background-repeat: no-repeat; +background-position: top left; +height: 64px; +} +#header h1, #header h2 {margin: 0} +#header h2 { +color: #888; +font-weight: normal; +font-size: 16px; +} + +#about h3 { +margin: 0; +margin-bottom: 10px; +font-size: 14px; +} + +#about-content { +background-color: #ffd; +border: 1px solid #fc0; +margin-left: -11px; +} +#about-content table { +margin-top: 10px; +margin-bottom: 10px; +font-size: 11px; +border-collapse: collapse; +} +#about-content td { +padding: 10px; +padding-top: 3px; +padding-bottom: 3px; +} +#about-content td.name {color: #555} +#about-content td.value {color: #000} + +#about-content.failure { +background-color: #fcc; +border: 1px solid #f00; +} +#about-content.failure p { +margin: 0; +padding: 10px; +} + +#getting-started { +border-top: 1px solid #ccc; +margin-top: 25px; +padding-top: 15px; +} +#getting-started h1 { +margin: 0; +font-size: 20px; +} +#getting-started h2 { +margin: 0; +font-size: 14px; +font-weight: normal; +color: #333; +margin-bottom: 25px; +} +#getting-started ol { +margin-left: 0; +padding-left: 0; +} +#getting-started li { +font-size: 18px; +color: #888; +margin-bottom: 25px; +} +#getting-started li h2 { +margin: 0; +font-weight: normal; +font-size: 18px; +color: #333; +} +#getting-started li p { +color: #555; +font-size: 13px; +} + +#search { +margin: 0; +padding-top: 10px; +padding-bottom: 10px; +font-size: 11px; +} +#search input { +font-size: 11px; +margin: 2px; +} +#search-text {width: 170px} + +#sidebar ul { +margin-left: 0; +padding-left: 0; +} +#sidebar ul h3 { +margin-top: 25px; +font-size: 16px; +padding-bottom: 10px; +border-bottom: 1px solid #ccc; +} +#sidebar li { +list-style-type: none; +} +#sidebar ul.links li { +margin-bottom: 5px; +} + +h1, h2, h3, h4, h5 { +font-family: sans-serif; +margin: 1.2em 0 0.6em 0; +} + +p { +line-height: 1.5em; +margin: 1.6em 0; +} + +code, tt { + font-family: 'Andale Mono', Monaco, 'Liberation Mono', 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', monospace; +} + +#footer { +clear: both; +padding-top: 2em; +text-align: center; +padding-right: 160px; +font-family: sans-serif; +font-size: 10px; +} diff --git a/public/dispatch.cgi b/public/dispatch.cgi new file mode 100755 index 0000000..9d921e5 --- /dev/null +++ b/public/dispatch.cgi @@ -0,0 +1,15 @@ +#!/usr/bin/env perl +use Dancer2; +use FindBin '$RealBin'; +use Plack::Runner; + +# For some reason Apache SetEnv directives dont propagate +# correctly to the dispatchers, so forcing PSGI and env here +# is safer. +set apphandler => 'PSGI'; +set environment => 'production'; + +my $psgi = path($RealBin, '..', 'bin', 'app.pl'); +die "Unable to read startup script: $psgi" unless -r $psgi; + +Plack::Runner->run($psgi); diff --git a/public/dispatch.fcgi b/public/dispatch.fcgi new file mode 100755 index 0000000..eb66140 --- /dev/null +++ b/public/dispatch.fcgi @@ -0,0 +1,17 @@ +#!/usr/bin/env perl +use Dancer2; +use FindBin '$RealBin'; +use Plack::Handler::FCGI; + +# For some reason Apache SetEnv directives dont propagate +# correctly to the dispatchers, so forcing PSGI and env here +# is safer. +set apphandler => 'PSGI'; +set environment => 'production'; + +my $psgi = path($RealBin, '..', 'bin', 'app.pl'); +my $app = do($psgi); +die "Unable to read startup script: $@" if $@; +my $server = Plack::Handler::FCGI->new(nproc => 5, detach => 1); + +$server->run($app); diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..96c746534efbc258304d25171912ebf5493bc5ed GIT binary patch literal 1406 zcmdVZ_g9lw7zgmLZEevms-gmFt;np(3`4-k3QJtHT191V$`B-g2!af$0wP*y!9tNG z2!uU?U;?DPs310s$Sf(tf`S}RwbmrP`2+mPpZebOx!?DB?oZFT=K?Fpl9dJ7W#F?C zSPwvrAT4Yqr2V&jGBT?mw{9)uH^@OzVIwvx%45qW1t@Rd1{Fe8SxO0NDoRjSRfYzk zuBMEg8miFJ+5uf{P3TGK>>@NlBlLB(K%?ovh^7q#eO(wy8R){;P!Dty1MD#|BxwY? zsnl**(2ZebZVHA49oCj~*bvs1dtu8k$37cNIM`Vc3^>>`aL~aPhxgmT@qm;)jvqaQ zlgAw4>~sX4u1@fBJpnIwXZU)Yg13hYd_A4v-~ zNBAQm)E~^y07QlbfEgA7=9wUzWdXJ#LKKn{;*gRQkMxu{q+d=(W@-YFh%2cVaXmc=8EKc0otc8%tTYtlWTNOsCW`a2 zP*RYMQlhLd7v;sds4UJwRcRhrxAMU%%SY|)n`o#iLL;k~C_!^|3F>Pqz^*L?yRHmP zbroo>FGpKL1)3YG!D+4_D#2~3MhBY(F1s3?tt^7ntu^4bHG$V&hwi%#=;1Vi;xyqN zm;84$qmS2u{%$rNQg^`bX~p2ZHazI*0{=b-0}t8>E{1xEJ}!p)I!JaBT@dsW1HG6S zx{p!8?+`xj#h8GP*|CS1938^+*dvm|m>uuO?8GC?5mV#C5Kaj2WRj1+{@_D6IfD7A z0n7^rut3ZU2T2a%>7PTG5sqU{IDu!=LwGtpOj3ZwnPDu=N(u0sSekuIjN_W#eV<41I8=(2vC+PtC=QRJC|>vV4cccD5`)y0n>xv9cZk9zR`QwS z7pvk|XLj;9d5SfK#VyrQ&S|%^KWXDqo6>d79Nz!-vsEgVcHufy*3JeC>(!c{nx5FI z^N!1jCW zE%iS3jqfehh+spu%-YtC^(FRUH#Hj7zNUY8W2OAn^_3N0bWz(fl+;Z&UwBV0>GRst zdK9O8O-%I9uCd|$TiI7T0y3_+Z`pN6T1w~5 RaWvTN)J&1_sCT`<{{RlP*^2-G literal 0 HcmV?d00001 diff --git a/public/images/perldancer-bg.jpg b/public/images/perldancer-bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6ee6b77394657a70de11dbda4f0c8ceffb07bd92 GIT binary patch literal 7125 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 literal 0 HcmV?d00001 diff --git a/public/images/perldancer.jpg b/public/images/perldancer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3f9e718c1cde297047ece800fdd8252f9a26e2c7 GIT binary patch literal 2240 zcmb7^XHe7W7RLV}2?=F^5Q;<+x^%o01tCCyg-|roq=YCUgt7?IF+eOxQ(3?emMTR< z1f;i6br%#|T+kp*nv|s%r7Ec8#(QV>e!kC{IWuQ|=RD86UtZ1_X9f_lwX(4SKp+rc z%`Jd)1RyQK$X*d-AKB=D2!C0;%{hC{1YiL`!4L=p4COW`6v_(|gu}QJ77*YQLNc>x>;03PsG6eje7486m zA^={Ps2m(AuWcso;1zmXOhQq|-0^{eZdi%M74LZNp(F_S@BTloKT^0r8u0^g1OEp= zJP1)at`%n-5aco*1Q-FB0`FrgCt1VC!%Dsew!=Tk{fqVlL-A6zK6n`0y1CZ80GVia zho|!&SBqSd2ocTDiG09#o!MizaP5*T@swrVqYk7yztipJm?Kx|H zmXWthKloGo+kDl8`I_Swdel_Tb>=t)o!JT~HtIFGW4gCDB<{TbYa8ewf9<`kacoQ0 zR`>NU(P`o7v<#t~i7;Qb-!+@;W~~b2Y*C$~!5v{GGe8;pIz*ZQ@U89az8#oqyC3vR zig<@vSp#j$>=%t#Of*(yYX+RTP!KmzRw_@*hrJMD@2Y;ByLMue5>t*0%vI@aKNQfC zdF{41Tm|jT#>;3j}OuGHU^Z69so)Js3pUBF19*dq} zC4s9_>+3zCyF@E25{&WBzuwTKjO{sgXTGO?{Wk zOG?fKc!rYt6MdS=FDY_CZG&C3;QS?T&7><}q3H(Z} zw~wh}sPK++fQ{=iCZ0FSj68>}O4nEKy(%;JxDt1nVg+)&uY53csIc*DG`219NP(ze zi8CSH&PH z7F{aST|h9J1CU*C{CkTFJyc2^Q`q}NizoS_$NJ&Oz`@g0)}pnhrjm+NK`#FrRRbbE zyE^Z9%{6DoPsoT~#*_Py=gs6SmQ+SsWKP8{rgiX5{fWbI_S*8kVbs*n#h!VB+(BP_ z0-k7o?-OZhaT~mQuxuyw>ncKD*|&m~61q-w%5Qo-qY74Wh~NMhNM96~CKyVO-r8JX zRM3`g!@Fp*ZKFkolU~{1+1;tpxnFktY}bsdbbR~gPJMF|mLDjJXj0QH$(#-oZ^`Tn z9r9s(=gpOlnF_^xD3G0IVxP>Jh2Gs6Pi2RWV9$1VI8r71@Ch?}D9=BN-r+wIkF{q9 z*_F||Fhb1~(UQYjE0a$ADDGhz3)1qS=6ZntcEQcyXM*AydnA3B?#*6@ZB_P7A^j@C zw~5t`(kp+Y{7F44*6-aKo+~R#35&U&Oj-$Q#@88asOX9hoY~j|eVP>kMxr=FlbgGm=GWLl~dQ##X#= zL%qpvyAXvCV(=xDS$zwoT-R}DYm)xXi!XD^kO9M?v1YQnE5-dS)TRkdmRlG5qVwT& z?~3tEfN7tH&EaZqLUh>#7D(93o<*10eX5;1!{VTdTf7+eyTk`xc?C=EmwqD&wOZ}oTGs1qwhz5 zgHAn<(D#pW8KW(#Rf!)+q+5-|(dO`H3!tF%(2?iEgtdu?d}i)p?BUqHh$lhf-79_> z?M+j(Z6N>9vfOz;o{?i&7nNA!vdGtq1z&q}Mx|Us+*JceeNL6-FO=!=#URBjO3umU>Lf9?@S?}jRr)(B; zfD}-Z_hP9`T4j}v7K(3{{po0xM6YX}@6HrwIkN0u4WMlTEQf1nn!zep^n3>=&M_`4$zJ{`&fe+5+hJ|j^UxIg YF`UKK`df5{a0sfXY&amGz?Ad;-=8MrLjV8( literal 0 HcmV?d00001 diff --git a/public/javascripts/jquery.js b/public/javascripts/jquery.js new file mode 100644 index 0000000..7c24308 --- /dev/null +++ b/public/javascripts/jquery.js @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
a"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="
";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
","
"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
"; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); diff --git a/sql/sds-schema.mwb b/sql/sds-schema.mwb new file mode 100644 index 0000000000000000000000000000000000000000..93501a0ca68d4976d2428b07ef9a4cd32847d2c5 GIT binary patch literal 9926 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 literal 0 HcmV?d00001 diff --git a/sql/sds-schema.mwb.bak b/sql/sds-schema.mwb.bak new file mode 100644 index 0000000000000000000000000000000000000000..cdfda30e3a7cbf1399e16251b160b2e2870072f2 GIT binary patch literal 9924 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 bjE#jA!S 1; +use strict; +use warnings; + +use_ok 'SDS'; diff --git a/t/002_index_route.t b/t/002_index_route.t new file mode 100644 index 0000000..61e9f85 --- /dev/null +++ b/t/002_index_route.t @@ -0,0 +1,10 @@ +use Test::More tests => 2; +use strict; +use warnings; + +# the order is important +use SDS; +use Dancer2::Test apps => ['SDS']; + +route_exists [GET => '/'], 'a route handler is defined for /'; +response_status_is ['GET' => '/'], 200, 'response status is 200 for /'; diff --git a/views/index.tt b/views/index.tt new file mode 100644 index 0000000..c73c583 --- /dev/null +++ b/views/index.tt @@ -0,0 +1,147 @@ + + + +
+ + +
+ + +
+

Getting started

+

Here’s how to get dancing:

+ +

About your application's environment

+ + + + + + +
    +
  1. +

    Tune your application

    + +

    + Your application is configured via a global configuration file, + config.yml and an "environment" configuration file, + environments/development.yml. Edit those files if you + want to change the settings of your application. +

    +
  2. + +
  3. +

    Add your own routes

    + +

    + The default route that displays this page can be removed, + it's just here to help you get started. The template used to + generate this content is located in + views/index.tt. + You can add some routes to lib/SDS.pm. +

    +
  4. + +
  5. +

    Enjoy web development again

    + +

    + Once you've made your changes, restart your standalone server + (bin/app.pl) and you're ready to test your web application. +

    +
  6. + +
+
+
+
diff --git a/views/layouts/main.tt b/views/layouts/main.tt new file mode 100644 index 0000000..c1f4873 --- /dev/null +++ b/views/layouts/main.tt @@ -0,0 +1,22 @@ + + + + +SDS + + + + + + + + +<% content %> + + +