From f4633b1ac057b369bfbad7c9ef5afe3dc2575e9d Mon Sep 17 00:00:00 2001 From: liang Date: Thu, 18 Oct 2012 00:01:22 +0800 Subject: [PATCH 01/15] add css and static files --- postu/static/css/default.css | 337 +++++++++++---------------------- postu/static/css/main.css | 36 ---- postu/static/images/bg.jpg | Bin 0 -> 442 bytes postu/static/images/ftr_bg.jpg | Bin 0 -> 327 bytes postu/static/images/hdr_bg.jpg | Bin 0 -> 424 bytes postu/templates/home/main.html | 13 +- 6 files changed, 122 insertions(+), 264 deletions(-) create mode 100644 postu/static/images/bg.jpg create mode 100644 postu/static/images/ftr_bg.jpg create mode 100644 postu/static/images/hdr_bg.jpg diff --git a/postu/static/css/default.css b/postu/static/css/default.css index 083452c..71fc1f2 100644 --- a/postu/static/css/default.css +++ b/postu/static/css/default.css @@ -1,22 +1,5 @@ -/* ----------------------------------------------- - www.swfupload.org - Description: Common Screen Stylesheet for SWFUpload Demos - Updated on: May 1, 2008 ------------------------------------------------ */ - - -/* ----------------------------------------------- - GLOBAL RESET - ----------------------------------------------- */ - -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, font, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td { +html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td + { margin: 0; padding: 0; border: 0; @@ -29,306 +12,208 @@ table, caption, tbody, tfoot, thead, tr, th, td { } /* remember to define focus styles! */ -:focus { outline: 0; } +:focus { + outline: 0; +} + body { line-height: 1; color: black; background: white; } -ol, ul { - list-style: none; + +ol,ul { + list-style: none; } + /* tables still need 'cellspacing="0"' in the markup */ table { border-collapse: separate; border-spacing: 0; } -caption, th, td { + +caption,th,td { text-align: left; font-weight: normal; } -blockquote:before, blockquote:after, -q:before, q:after { + +blockquote:before,blockquote:after,q:before,q:after { content: ""; } -blockquote, q { + +blockquote,q { quotes: "" ""; } - /* ----------------------------------------------- BASIC ELEMENTS ----------------------------------------------- */ - - -/* -- Text Styles ------------------------------- */ -html, -body { + /* -- Text Styles ------------------------------- */ +html,body { margin: 0; padding: 0; width: 100%; - font: 12px/1.4em Helvetica, Arial, sans-serif; + font: 12px/ 1.4em Helvetica, Arial, sans-serif; } -a { - color: #385ea2; - text-decoration: none; +a { + color: #71bd28; + text-decoration: none; +} + +a:hover { + text-decoration: underline; } -a:hover { text-decoration: underline; } -strong { font-weight: 700; } +strong { + font-weight: 700; +} h1 { - font: 28px/1em Arial, Helvetica, sans-serif; + font: 28px/ 1em Arial, Helvetica, sans-serif; padding: 60px 20px 20px; margin-bottom: 15px; color: #333; text-decoration: none; } -h1 a{ +h1 a { color: #fff; text-decoration: none; } -h2 { - font-size: 22px; +h2 { + font-size: 22px; font-weight: 300; padding-top: 1em; padding-bottom: .25em; } - -p { +p { margin-top: .25em; margin-bottom: .5em; } -ul { padding: 4px 5px; } -ul li { - padding: 4px 5px; +ul { + padding: 4px 5px; +} + +ul li { + padding: 4px 5px; margin: 0 20px; - list-style:square; + list-style: square; } code { display: block; - background:#edffb8 none repeat scroll 0%; - border-color:#b2da3a; - border-style:solid; - border-width:1px 0; + background: #edffb8 none repeat scroll 0%; + border-color: #b2da3a; + border-style: solid; + border-width: 1px 0; font-size: 1em; margin: 1em 0pt; - overflow:auto; + overflow: auto; padding: 0.3em 0.4em; - white-space:pre; + white-space: pre; } /* -- Layout ------------------------------- */ - - #header { background: #313131 url(../images/header-bg.jpg) repeat-x top left; height: 125px; position: relative; } - #logo { - padding: 0; - margin: 0; - background: url(../images/logo.gif) no-repeat 20px 20px; - height: 106px; - width: 272px; - text-indent: -5000px; - overflow: hidden; - } - /* hide link text */ - #logo a { - display: block; - color: #fff; - text-indent: -5000px; - overflow: hidden; - height: 106px; - width: 272px; - } - - #version { - color: #fff; - position: absolute; - right: 20px; - top: 85px; - } - - -#content { width: 680px;} -#content { margin: 20px 90px; } +#logo { + padding: 0; + margin: 0; + background: url(../images/logo.gif) no-repeat 20px 20px; + height: 106px; + width: 272px; + text-indent: -5000px; + overflow: hidden; +} +/* hide link text */ +#logo a { + display: block; + color: #fff; + text-indent: -5000px; + overflow: hidden; + height: 106px; + width: 272px; +} +#version { + color: #fff; + position: absolute; + right: 20px; + top: 85px; +} + +#content { + width: 680px; + min-height: 483px; + margin: 0px 90px; +} /* -- Form Styles ------------------------------- */ -form { +form { margin: 0; padding: 0; } - - -div.fieldset { - border: 1px solid #afe14c; - margin: 10px 0; - padding: 20px 10px; -} -div.fieldset span.legend { - position: relative; - background-color: #FFF; - padding: 3px; - top: -30px; - font: 700 14px Arial, Helvetica, sans-serif; - color: #73b304; -} - -div.flash { - width: 375px; - margin: 10px 5px; - border-color: #D9E4FF; - - -moz-border-radius-topleft : 5px; - -webkit-border-top-left-radius : 5px; - -moz-border-radius-topright : 5px; - -webkit-border-top-right-radius : 5px; - -moz-border-radius-bottomleft : 5px; - -webkit-border-bottom-left-radius : 5px; - -moz-border-radius-bottomright : 5px; - -webkit-border-bottom-right-radius : 5px; - -} - -button, -input, -select, -textarea { - border-width: 1px; +button,input,select,textarea { + border-width: 1px; margin-bottom: 10px; padding: 2px 3px; } - - -input[disabled]{ border: 1px solid #ccc } /* FF 2 Fix */ - - -label { - width: 150px; - text-align: right; - display:block; +input [disabled] { + border: 1px solid #ccc +} /* FF 2 Fix */ +label { + width: 150px; + text-align: right; + display: block; margin-right: 5px; } -#btnSubmit { margin: 0 0 0 155px ; } - /* -- Table Styles ------------------------------- */ td { font: 10pt Helvetica, Arial, sans-serif; vertical-align: top; } -.progressWrapper { - width: 357px; - overflow: hidden; -} - -.progressContainer { - margin: 5px; - padding: 4px; - border: solid 1px #E8E8E8; - background-color: #F7F7F7; - overflow: hidden; -} -/* Message */ -.message { - margin: 1em 0; - padding: 10px 20px; - border: solid 1px #FFDD99; - background-color: #FFFFCC; - overflow: hidden; -} -/* Error */ -.red { - border: solid 1px #B50000; - background-color: #FFEBEB; -} - -/* Current */ -.green { - border: solid 1px #DDF0DD; - background-color: #EBFFEB; -} - -/* Complete */ -.blue { - border: solid 1px #CEE2F2; - background-color: #F0F5FF; -} - -.progressName { - font-size: 8pt; - font-weight: 700; - color: #555; - width: 323px; - height: 14px; - text-align: left; - white-space: nowrap; - overflow: hidden; +#hdr_wrp { + height: 407px;; + width: 100%;; + background: #ffffff url(../images/hdr_bg.jpg) repeat-x 0 0; } -.progressBarInProgress, -.progressBarComplete, -.progressBarError { - font-size: 0; - width: 0%; - height: 2px; - background-color: blue; - margin-top: 2px; +#img_list { + width: 100%;; + background: #242424 url(../images/bg.jpg) repeat-x left top;; + min-height: 483px; } -.progressBarComplete { - width: 100%; - background-color: green; - visibility: hidden; +#main { + width: 900px;; + overflow: hidden;; + margin: 0 auto; } -.progressBarError { - width: 100%; - background-color: red; - visibility: hidden; +#ftr_wrp { + height: 35px;; + width: 100%;; + background: #242424 url(../images/ftr_bg.jpg) repeat-x left top;; + padding-top: 24px; } -.progressBarStatus { - margin-top: 2px; - width: 337px; - font-size: 7pt; - font-family: Arial; - text-align: left; - white-space: nowrap; -} - -a.progressCancel { - font-size: 0; - display: block; - height: 14px; - width: 14px; - background-image: url(../images/cancelbutton.gif); - background-repeat: no-repeat; - background-position: -14px 0px; - float: right; -} - -a.progressCancel:hover { - background-position: 0px 0px; -} - - -/* -- SWFUpload Object Styles ------------------------------- */ -.swfupload { - vertical-align: top; -} +#ftr { + height: 35px;; + line-height: 35px;; + margin: 0 auto;; + width: 900px;; + text-align: right; +} \ No newline at end of file diff --git a/postu/static/css/main.css b/postu/static/css/main.css index f67b75e..e69de29 100644 --- a/postu/static/css/main.css +++ b/postu/static/css/main.css @@ -1,36 +0,0 @@ -body -{ - margin: 0; - padding: 0; - background: #eee; - font-family: Calibri, sans-serif; -} - -.article h1 -{ - color: #333; - font-size: 2.2em; - margin-top: .2em; -} - -.jcropper-holder { border: 1px black solid; } - -#outer { text-align: center; } - -.jcExample -{ - text-align: left; - background: white; - width: 900px; - font-size: 80%; - margin: 1.5em auto 2em auto; - border: 1px #999 solid; - padding: 1em 2em 2em; -} - -.jcExample .article { width: 565px; } - -form { margin: 1.5em 0; } -form.coords label { margin-right: 1em; font-weight: bold; color: #900; } -form.coords input { width: 3em; } - diff --git a/postu/static/images/bg.jpg b/postu/static/images/bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0482840d9c780e7eda9a03edbc3ccb4315326a55 GIT binary patch literal 442 zcmex=C5UDGKfoZ!!T6Ygg_%*1fk}{&S&;Gn5r!y` z!x)%>&V&P?0wyk?AQ}*0WME`rVnz~YOk8+TNHB2XLndKCBw>iY|F;-;fQp#}nFSf_ z89v9MnTFt6JhSdM;9;Eh+53sad(mx<{f2ic8~o3d%OwbZmOVa$<@TTNnFrMGKi}=g zX!bEWMYwLt{ssQOg8ns{0d)w!H`(WC2V=Cq^!~+W4N`B&X8pH3C5UDGKfoZ!!63oF!ptbhz$D1XEXer(2tz0X z12fQ#NPv}%i;)qD4`vE5FtDp zE(r&WY;0^?oLs`ZyuxCFe1c+d31S)l4=@OFFivOSVrCR%U=n0x7G(T?gdqy(Y-UEF zD-nQ+m5qZDRR}04z{tSJ$cZe>$P##wNhoL%bFhf0AhHD5sQZ*fYFJ xK$uSfi&5qSTLo+WDqZHQV$FtM76-_CnKH|on#RWLE{tJcwtDsSJnhE+HvuI9G_L>v literal 0 HcmV?d00001 diff --git a/postu/templates/home/main.html b/postu/templates/home/main.html index 54a6f33..e93d6e8 100644 --- a/postu/templates/home/main.html +++ b/postu/templates/home/main.html @@ -3,17 +3,26 @@ Post U + +

Application Demo

This demo shows how SWFUpload can behave like an AJAX application. Images are uploaded by SWFUpload and converted to thumbnails by the server. Then some JavaScript is used to download and display the thumbnails without reloading the page.

- +
+ +
+
+
+
© 2012 PostU Inc. All Rights Reserved. | contact us
+
+ From d74b43fbf9e1504a022cf758724ec03b6e9e2507 Mon Sep 17 00:00:00 2001 From: liang Date: Fri, 19 Oct 2012 00:54:33 +0800 Subject: [PATCH 02/15] modify home page --- postu/home/views.py | 2 +- postu/static/css/default.css | 34 ++++----- postu/static/css/main.css | 134 +++++++++++++++++++++++++++++++++ postu/static/images/img.jpg | Bin 0 -> 35097 bytes postu/static/images/shared.png | Bin 0 -> 4595 bytes postu/templates/home/home.html | 53 +++++++++++++ 6 files changed, 201 insertions(+), 22 deletions(-) create mode 100644 postu/static/images/img.jpg create mode 100644 postu/static/images/shared.png create mode 100644 postu/templates/home/home.html diff --git a/postu/home/views.py b/postu/home/views.py index b90f017..bc369d2 100644 --- a/postu/home/views.py +++ b/postu/home/views.py @@ -5,5 +5,5 @@ def main(request): - return render_to_response("home/main.html") + return render_to_response("home/home.html") # return HttpResponse(settings.STATICFILES_ROOT) \ No newline at end of file diff --git a/postu/static/css/default.css b/postu/static/css/default.css index 71fc1f2..badf8a8 100644 --- a/postu/static/css/default.css +++ b/postu/static/css/default.css @@ -37,14 +37,6 @@ caption,th,td { font-weight: normal; } -blockquote:before,blockquote:after,q:before,q:after { - content: ""; -} - -blockquote,q { - quotes: "" ""; -} - /* ----------------------------------------------- BASIC ELEMENTS ----------------------------------------------- */ @@ -186,34 +178,34 @@ td { } #hdr_wrp { - height: 407px;; - width: 100%;; + height: 407px; + width: 100%; background: #ffffff url(../images/hdr_bg.jpg) repeat-x 0 0; } #img_list { - width: 100%;; - background: #242424 url(../images/bg.jpg) repeat-x left top;; + width: 100%; + background: #242424 url(../images/bg.jpg) repeat-x left top; min-height: 483px; } #main { - width: 900px;; - overflow: hidden;; + width: 900px; + overflow: hidden; margin: 0 auto; } #ftr_wrp { - height: 35px;; - width: 100%;; - background: #242424 url(../images/ftr_bg.jpg) repeat-x left top;; + height: 35px; + width: 100%; + background: #242424 url(../images/ftr_bg.jpg) repeat-x left top; padding-top: 24px; } #ftr { - height: 35px;; - line-height: 35px;; - margin: 0 auto;; - width: 900px;; + height: 35px; + line-height: 35px; + margin: 0 auto; + width: 900px; text-align: right; } \ No newline at end of file diff --git a/postu/static/css/main.css b/postu/static/css/main.css index e69de29..941474f 100644 --- a/postu/static/css/main.css +++ b/postu/static/css/main.css @@ -0,0 +1,134 @@ +html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td + { + margin: 0; + padding: 0; + border: 0; + outline: 0; + font-weight: inherit; + font-style: inherit; + font-size: 100%; + font-family: inherit; + vertical-align: baseline; +} + +body { + line-height: 1; + color: black; + background: white; +} + +html,body { + margin: 0; + padding: 0; + width: 100%; + font: 12px/ 1.4em Helvetica, Arial, sans-serif; +} + +a { + color: #71bd28; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +#body_feature{ + background: black;/*#0873B4*/ + text-align: center; + width: 100%; +} + +#header{ + width: 800px; + margin: auto; + margin-top:20px; + color :white; +} +#header h1{ + font: 40px/ 1.4em Helvetica, Arial, sans-serif; + margin-top:20px; +} + +#header span{ + margin-left:20px; + font: 30px/ 1.4em Helvetica, Arial, sans-serif; +} + +#header h2{ + font: 20px/ 1.4em Helvetica, Arial, sans-serif; + margin-top:20px; +} + +#shared{ + width: 800px; + margin: auto; + margin-top:80px; +} + +#main{ + width: 1000px; + margin: auto; + margin-top:10px; +} + +#postcard{ + background: white; + margin: auto; + width: 600px; + height:360px; +} + +#postcard_img{ + +} + +#explain{ + color :white; + float: right; + margin-top: -360px; + text-align: left; + width: 180px; + padding-top:20px; + margin-left: 20px; +} +#explain h1{ + color :white; + font: 20px/ 1.4em Helvetica, Arial, sans-serif; +} + +#content{ + width: 1000px; + margin: auto; + margin-top:40px; + color :white; + text-align: left; +} +#content h1{ + color :white; + font: 20px/ 1.4em Helvetica, Arial, sans-serif; +} + +#img_list{ + width: 920px; + margin: auto; + margin-top:20px; +} + +#img_item{ + margin:10px; + padding:5px; + float:left; + background: white; +} + +#footer{ + clear: both; + display: block; + height: 20px; + width: 800px; + margin: auto; + margin-top: 40px; + margin-bottom: 80px; + color :white; +} diff --git a/postu/static/images/img.jpg b/postu/static/images/img.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dd07ffd0abc470b716625084fa28a616b340ad1b GIT binary patch literal 35097 zcmeFZXIKhoTEt2IcHfiEMdulz!6bk$vK0Pvy!t&PAZbKC`lxU zl0<^sS@4|qoO|CdobP+?^V}cy&h&IwS65fn^z?L9_s+%4#Rm|9ih{BN2<;jgND26X zE(E_7Y~S!hlgK` zM?j31hmIE&iwOt==pgi`XjkoBT!27Nul-5)n%q9rE^AG6a7oTWM*Z!h?qw`~grvyO;-s zg79!~aBy+(aB=YnZ(P4YNOB7g?-mIe5fKRy5g8%gW%zZu%KXnU+RYm`ZsOl0z{e*b z#>dAeMn(97}qedv2ZZa@%Vv4LUaszFfXRGwiOWs z@sJOTIR06+3fI zL%YYlSN0W{lL{W!CHG9M9u(I1POcpq*!et3DQf7OT0at2G_>~(OD%5fpZ@fn5OnPt zz%9llPuN(Pf|o4N^MWw|4iFF`OumQl#3&9rbw>2}@$iHnPuP@|fyZjdm|JNKa|A&Q(IS?NDWt)T`DbUB8Fh6Y$164uonK}(&;RR<> zrWyTQb>X56MAdhS-iQYFJGluK>0f2%HJc_6#!sB43$pZ5>z;d;v9rnKRUngkS-Y=~ zr}mby>5#C?Bz`Djxr4iME2J9*VUsCD)X`${#ylYEBPphLL?Yu#%Ja#NSsTfYnWN|( z(}OSGt*K*o3O{{7+CRf3u2j_BwqrH3>-jQe%5m3&Gw}AECEf9!_VqaRYSSn0qypS& zXysk}#p0-PodVI^1JOTZzPoe7ew*~fZdCW2Zs*CHm^mt}<^DTDyYoLvtjPOG^>!+27aFmd-7+nP!ZIyp z-NG$KJFoo@S#*RN4DKT#sB_U?L#id_ZCbE58=C%y55joI5Mi8Su7~X$KR4O^jlZgV z5PPh>z2ALnP|Yg+qnB(U?V=ntP)4(gt*6&2bulU!Y_!K7t1;B+xX@jvs(D6P;ahvk zlE2kx?7C4Wa>ph+K|DZ8Ff!)wZ0s14iy%@BB~Hv3y2Mlucca(Tm_ zD`VDo{y`ypvm;~lM~Py2OHr=scAvGjx~os_x7Wc(Dd=XO0tqxr`g56R zmkY22_3rdO(P^#uJU_+9b>iw4TT_<4Mw?feGs)J{ez;50>QJi~?wX(7Quj=Ilsk;7 z{B!qBc<*zt<`=<=T>pAajSWcr)*&Tr+y=syq)sq8H!sk-WtdhffA%NLmkJ_85?Cic zkl^M9XrbqP^c!$EeJLk;p`XWEzXm5-9>e3R%M;5a1G^LL?U-oZvZHX;DdUY1^;%&>9 z4}qPY0o=}*G1l|O?{4!qu~_|jLUX0|4@ zD&8xwHxs*29%H_AF}8eeu1#qrh93Ybbpy9pmMt>u=+958YG`$Onp@nwv&Hd(dOL83 zX7lUTiO=>qXRDM#B~=pc_PZ$DIQ*}DJ-u%St*cp|k9E0BO_0&BR#!L=I~_{Sy9T76 z?Ur4D#@LLS(~UWV^goZ+J`r}NlG~~wtNT{tEaD>}+2AcP?EC4)!_tqhe#TN6-m8o) zH(xrYJr*?hnLeRj(1=?h)ovvAAW*p3Y_(*0IVsm^4<^%hro``>eIh*9ZgpzRedn=*wGywZD(#zR z^0C7C3)+0nVQLhnLH!$YJU@a@hIQFNaW~H=_^q>Zh}b@>ezkju9c3(Y%TOQ z<|fhgPnvD_n!ihtMzy>jd((^|TEVq;Y82S;RJC%cx>X0$1;w^hpS zLk>ZS*GHbtE-#n1%HF>>ZC0=}pOp`Y|%N>v*=xv6z}@Fw~QuCEoivZVf{iQw!&ndL9q>eKzC{!SAA|i<=G(4U3eb- z!O5s=vD>^O-?uquXS0tFjf9Q5@QhSxM$GcNS(%Hs+xOJ^9p7D-Yj;w9I8U|mdr-Db zC(z7N`pj{}j9MhOEWHojh%5a}E!IF3p9xU?JTZR{=Y*@eUVQ2F0+d#1I@Ut;c~QB# zQ9v~k{$4y_Zr|wV^JWb`1wFLouQwePb=@yO*R>B?1g58NV8&FY7*hDhf^vR#4IbtD z3z+I^$dl|!DOWe4U4Y2ec|B((Rk@2&KCYOZ%9dLXzL3rMbedOeuzpf8zw`Y9^!N}Q zRgv+id=ol*?{ven!S`%heEi@7v=u&iL|sBqJ1g9NUre;A9rDL1hoiNu#=HLRtP9ZV zs;9n=I&=+j|(bu@sCq3yZ4<|_oTyQQ_}4gRzKdR#rd?*QCPgucasZ{ zfu#K0+96l=c(nLtPMqvk;G@sH`z^&6AkI{{&jo1hbUOQ7Zi||~z}v0S-ppyHYpxD~ z(N-V3^f@f};UV=Gw{de#y_3;HVP?YP`uE>lAEztSocrExJaDs{c5z-vD&$-a)GsQ3 z3b`k@F*~Q8rSh`$5L@g5R5$lZd0scuS`Gcj_a?FEUAK47{kiVY${tdG9_zF$qTMpH z*rVF7Pd=g9)meOb0UE8}$||o4H16jN*liS>8o;j;sSmL~@b*``0F5BkPnO16n;WNH z`i4UJ9sC?Inws-Ebc*;r&3AqGNJ>0Kqi#`+kk4DH1-GBRQT9ml3&Q|~|EQm`T>Q~w z5leQEVlNqT_5eoXoHz5`;C;}1*_(fo|Z~>D}LO~BR)CBrRFZ) z6?6Uki;d%D9jjbeOI3m{0S<*p*V>syS;CD*m0krI|f8ix|lK7QGWXT*=WwVy6~t~1M>Zrq~frt zwT0xt!obnOuvC}mlC5!|U9PFnu;T*zfP2kUrsSL2jgGP4(b?J`?H8aowLftYZYQHt zJ3gOm3GU%Klg*+>%=Kz)ZvyubFux(_gJns*QIo__iGxaz@)Lg?k{;kp=21z3S|RVP z(XG;{q$SgF*f8Sj;LCywuE&vtGU7kxS*6o^$R-UfVwFvL6lbd>QXIkgG5BKkVu#S< zKjsBLU|xvGD63;YFK4*~zvjAsT~KA{JHN`V43%rYCjZwi>oHxH;r~?uB=raAisH>n z7|MvCxx^&@XC8h3GLL&10})JbYj>~CUs|LAprA`r>`Ffrs4TiH5M9ZG%7Rd4-ZeQOfeqpT34nNk*ac(- zTrVl2F#Zux#^$eps`ZzV_$Tl$b^iqb62I6(fn2@eaNvTnZ?Rx*-mW&DnlLA8Aoq)~ zjaw@+|AV|Q9n8xz01O6B?8}U@+}~(p+k3cqyZ-}(<>ujN@91jl>g@v5!IRfTQP;eL0r{I& z-d=8swyw4wR$jI?005+S-`(~X^7SiZ6a-bG>|##`T>f{<_1R*#Q78a4`f^iHxGYlxTF1_ zn!0r*ywaawpeDABt(}!O+zUwJ`q+AS{TFnDKf(V*zX7wCb%VQk{7t!pSM+5R|0)2g zfHd4(QM$(Ua&y=8_VTp-d&jvB2RhRK0>y*5c>x{je}UfsZn4AvjDGp-5uzFbq5T?t zQ0|(mj*E6#iigVH7z84evi<#w0_?eA)Cwq=`>&gZV&{K<_}$3A((!L~{Z`k%(!jq${@uHNtLtBB;9nvC?p?pt z^{+JWuaJNDuHWkVR~qf7=QIY*P6@V{d&Iu(uwq_L|(^_SW}+W`SKJ z=qRVyUjgkJ=yH?#)mHnz6#%>KfdbTC`fI=eoWJU!5ne+F0|oRDB04M{VqQK5S(3Zb zq}WG%fwVRl!bit**XkiU z;+c+z`ybUZTKD3+h&n^^`17y!yQ2Zy{89S}zOp+U9XrQjL}TJZjb0H97{S8jaPFaF z5)6QP30`4^bje3!0zWh|P#TVU2$+>`5KkGmknw5gSV{_x$~D^%ffqz93gHZ@#0jiS z1rB!jO*2n!kjeBRpB1n;lu^m_g>*xW-f4{*2#}J2dSsO1Uol8q6EgG|^~m(awN+aW zlk&|X z;E=-s#iNYkwZ4#FKZs&TUsCml$7>N(5mYmeqa&!o&1Q{##+t2E-T>4D_2BHfM!gDM z25>=LBUrvwL#>rc^pi4SnS85)lcd*so9CC*kwf7iYaF}@g{v{ax7Dfr*vD{Udzeo7xSmu z`xfgqW^E~zQyei)#%%Z?$JMK5S9JYhsalIZ({d7Jp^j?`s)1!KAR4#jbSBQ6$#Y1S zT?D7JB?+!RdoHBqC15W`H8hvW5nWPcFlNo~2(QUz;-}^$H&q_ym{M~o>65MKQ?5w2 zYv#_~_#iy{t~IUgaF_qM#cylT@$1q0NtGfvCvnDUucc|r#GUiNdVG8x%cKZ*}HCeZTr5W<2fx9XPs|b@Bbh^7}3bF&2Dx{$1g5>)0O4#lpYo&slt

ViSs4KEoDhgEEv#Q(EtGmQy%##ZVL0sT+3kb4>89c9B zk}(fIHMrf~f9*w?W1Y{VwnR$k=g&nFGHcc_tET!`XZWU8o#73r$1v2!FQGqzby@n2 z$M8)Xk0<>P%kDZ6$YRJCIIKa8oCU2)CaWPPPSCzYgAAmZqmY>cY(<(|0K6|^FzT?2jMPeY+{311{iErQj%vL`LP%sH%%{Dm4z3&$s z$vmVCcp(1m{`rHby(XG&=Hjr-(T(#)nhy5C0}hiMs>7P^pQ3jU5`HL5&86#Z++oNm zkrwxKycstTT3UouU{PRE6igU2E_O2JOzv&bzr{uTphGqZ`R(2}BMz>HqH!Bow(ont z;1XadiE_$;rpK zRf^nK(90da`Mqej(biH=vF^m|n#KM>X_us^FYoFSBK^C-G*ldBfmPM_+Txb@#M<~< zjZK$cNhi)ufl;R}mQHly(a0Mx+2O~u4DZ&U#$ZxGxaC1?hJVFT??QQMe^7by?4G6N zigR(cxV25uYp>QjW@iCgE`mT7B9u;d2`U zPkByci*2=!yU&Qk!|_PTK#Gw@)^R(77JJ+KmbvO~F+1NDiysPqI{5Tv_fyUb&Y_70 z$t7_qQ<^Ul*=@#$2n?DWJ0$_5m&SLG&u5+$vkdI&CmI4<{K*fRmj*r!&VQ`x4?PM} z-9GadYikeWU3itTv%Gd7@g?AsAjy46@v61OoNSTXu|CdwD;nfq^M;9(jt?F3E!jIH zt#9iV5uP(k3CD=xwt+flJj{=ORR=iJn5hq<J@9)izmvg?ZcYBxW zKWH$x@oAoFAt%azS9Nb!xm)q!##w4{j(cU5^mKW}hwL|}`#*FKZttB0x#x7>GDo!B z?<@BEA!+Qxi?DQ!mZgS|$kA|A=XD|}{2tTb+`ot2b0lGGo1$AZqPcxP&?2aVD5y#^ zF<5i|y=m(~kdM=eId}1XTjibUtQ@EJ$M5fpbKi)GNl^d6*0{1V%T=%vFn^;e-n?eJ zZ+888EpE#;x6qe>smfxG74NAZy@wQyv1Bj1GwpA5jLh5T*A9Q$UouR5YufyNvOin& z@W&x@G3V5ZasT)ycJ}$?Y<%yj6W#8qDUByDm&89JPPn+$>=K-@a0IaWBX6;Tj)T_O z;Pxd&ONy(?yC+io0Ui0z!*}P$rpGo`iYcoMji1vxbtt~s^9wM#ll%75O;5j1;|q<{ z5{K{0pA8pBHBQ=S3I^wy^iK_o!gZ%=V@vt1xCs?b%0pfOh#!BDE(;N%oAvM*{tFEtYUT#Mk4CNUS&y1>r zt2rWXae$74rI(W&3aOse^p&Q!%n8tBZd&k9SLM zYm1OW?^`#^bnkEH!Ww?_RSy==Tyr#^f4^TkGkvz};i{1C;fHr<#~h0KShSaud@9o$gYaYaj}%Og1Df@r=Q)O9+af{2 z;(^|SjfU*?OE;RGPHA~tXk3?=gWl4l+)3}W*fAG%7x1cnuvGY{R^UV=D$~Q&v-QPr zBR5UVLQBI}(UXzVPxoKfZ~j;i*R>^{F7+7_r)s!7Lm>IHXd;Sj+;4g*p_P zu;L{|=vw!NrGg$vm3)Iq=tLP9?V8pGKihv<>vzKS690YBn?QV0lZ~^}>9zI!*2X(O zjB6t^J7}udJU4fP?nG@>TIP(5=fb}>zdkv8sm?IYoSEW(z3IuDh_o$XWMPV&5CJr_ zqL{^LzJ}tnVd(hdsA}VqchblqSWN~FuaSgoK1q15x`fevE9|b5Z3BiRmR|L!$)uNO zwlR&)1H7NB5o^9g(HvXce8!cYs@zFEZTf7lY83$Xt0`EELX6(2Q$1^j)oOKK(+iC# zQOSU+Kfw_IBog8^E>RM=_mG`+ISHx`F7SiiH^S~Z<b($GAUTeN}HidN*U3_`FDZ3Jk&CB zFXFUbdDCNcV-$s8JhEbg^HAb}yX5j2ae=rxuU-ZMuE}5p=zf*o+Z_IO=XC-`1yx1$ zP>M3RkDU-XOmpoCt~Cigz!)VSRySInbTf~N!_6n?R#%V#xjeZ%=^6qpfK?T!3OSSv z8V$5W&*spHPG9{rEZx8|`p70O;cha+T{u*QS7(sT5t*6t$1D#0A2TYMxP%nwB}yq^ zfS>}3q>>P-J}$TqP_l{xL;xHC?naZv$j6|-l`ECe8f8;Rpz$_%5L@+)?i;;L73ol+ zIco$WkLghcQ+|Szv&dQ|K1*f{uIb1f<9Dubjres{vBXp^|KddawpI1FJu5xi8WOd2 zehF_EmQ}?Q!|=C1s%vbyGx~nI<^-J7NBd(VG7q*jp_LTz<(xq z$u8kNJ=R1-0OqesSEW5Ya%5Hn009CyUS8gR6#b%27^Nl`-i`CfOCyS>8}F}!Hyp^s z^YT)D=*AOP*zCsRjR@~!VjwFG?_(fK140zf64u5N(`I)N7G*vj&*Go7JC>Qx?ktMq zKYErxPM<;kEUiJFXqGA%R?l2-reuzL!`q=$K>MBNi^y+?{*7}pPey)Oe*PKGkePs6 zR@;(cFJ326la`jrDl0p_F=#i_(PKZkjWJz4CL~arqn+mvjKD4GNzvafC9_P@HvO3| zm!Je;f6>Qs?^DGg>tdyb)1YCExpS8Z}h6Uqo*r zf8=qzGfUFwk|#baDajwG@qx&A@P{WN!%I4_se-DMsUhXKqaqxh;SJB&i5ou48?4Va62M7?@#JiT>6BCml74N*lJo&&Q#~Z1%ptp9j{&MXE6`XTJ36QgQMmuM zYz~(QgEWkp)J$7>DzAtkMqVolmZyj0Ah#ybm&+g+kiXr+h{JGuR)oW~TAxE-E<8?O zUmj^_K~4K%xfH%9$floQ$S7?Sx*kE!Ru(BB;{!R+h)?KwJdmftW~w)(Wei(2RxZ#o zPwTaIQZj}>dd&&(yO}@8yiU2J)Y2M(sea5#ou;Hp$Bl57hpIdajg=`qX`f1Z0P(-) zza_7%Phz?yr&`VoN2pfF9&yMBDcCwhdwEp%{3M}v$;zwtITk^Rl!-2vL`1E?dZI^V zNDZpr;;3v!xJ-rmFqLFpFN|d6ZpLLF@-A>zNgU5CW6$FW&%LW^Gj>~SL ziyZBz&5xZ@*@AKLREK}zu%=vt=VKy`szaq5El$BrBQPCx8)QMn;p`1UO|vc1j3QMF z1XzfkOkJC;SyMj5xzwEJp;&D~WA91c85I(|&6uo8SITHauUXTJ?8R&l=bxUgYW|}A zMN=(XeoRzG9d;}N2u_6njtda@L1I}j z?pKY{A5xd23h;piOwb#(q(RgX1|aeM6?7T?5$LZ-{F~U5zW=!C{Icc0RT~%p_#i?( zQ~x+FK-qso3Vwvg(?!?q<(3#b`u8ELrBQ!#1tl{U6A&1#1|%=HAz(Bb0tP3jhcHAYb28+t}FA zz?Lp|Bwy&I=f{d!N+hPNQe;fGvE{*L!tc>Q6QAj&x<5~+NgYcE@Ung9ujFI zm!;=*=FLtNquoNJ%*d#a>^Jq;8&X_Ji6PBEbS!?L%*If5J%$bZyyj`QoXM!+G*-42 zDT@z*qBImj=;vkC^2{ti9TBy2e<*NjOdNx$ECLq6Xh$M8r1Au&q%V!oQ6}EVPKI;n zJAJ5uYCxp%)byeVl4@?}BYAr0YQU_-i`8IunA9F4an*GTq!;-N zH;=JJ!>GVDaVnBe+g7P5{L#(HpVuFGRYF2C#dOj+Zx9AsxRWr3un|^kJ>Cd_Fm=(N zIt;#8HfETs{9>T2tevc8Q(WX!UQVJnUb$AvXvxTC@W-R4@$yi@m)9R%4`J&$DoK}Y7Qq}YdqPz%E3$P<1K{*AFg1>S@~ZT6HlAFdj$$<_(G z^&Zb?M6&IRBLyvF9wQ`DfOL>$8N%0}f0kuY2K4F@d77R?=4#9Ya6GW9uN>LuNS^m0 z{AHbFjbtK!+}5an8BW;~)k)y*;l&0dm?12Yj3hP^vGm%nwR*9nFCPWBNIc<>dSq5D zmv7^nqfbb%fVV5<>LQt2A|A^knQN4A?~^n3V=}9kDv!J@A3ZSqiSF(8s^qViH_xKc zpOXUsM|Ctvb>DKRP>1A#C#3JB|A`upcB6vyk7PnsfDsV@D zDTKl0{6GN}1CssiiAPOtfVobT+?DKB1Xd6TSrkt=Pj|4Z@~Y10H`l7-{$%?mC3#zHh`H&I7 zF+d9kMG$qsP!~Y5D*yzzz)*86Uf!<>_gOA6E+zbjet;%z0RVtRW)&(Or9j?Chy_ge zlzsbh+nbKe5Em=w5HM!0} z4^1X*Eubkq%G%3%UB#F89)QSQO;_bmx+6i6kgNvd!HSr$xBz+7%m7B7#XeAzi}gaL zk>O&1uiZtlcC0Ls2Gq3z?in!M1yTUR)`U@)Gyyt<3`?lHz^EqoFe2iQI9@OoljNA> z3u!voJyd|*gYiZ@{38yGg@uJ(8R!w4!o#A4 z0V3gI@bK{H5<(d9F#d=KV^Jq?z@7jkuHAj5ltvbTj*d=5NC!|a!om&dAB1se0Zeti zRs(|Bs~)3E>Y|&8us+~LCi#sAX#Cn;B{DLyG~mERN28xdqhrJ)e$`11xyPvY>Q$%Q z!-o$;BG55`HUVUa>`N@{3MI1Rp*w1*R~zgeN5JJ3h@LRe4e&$x6aa-8FalqCx`oQyVOOf%G6vxOXCxBUvcUXb z4G&;hODU~6ypN@bi3#VP^%4=y3@$nm8U$#phzX#o1gHWGxvRwb5Ktozk0i|C2@cf0 zLZ#>77Py*S(!LU-Qqy<~1;6J%0uZ+^In3!G2}{9Zxfdc0G#dhN3owcbDCtr6eH);I zB1wizgbA(&^oY`Oa!xfnxE76F5_b31VT5I{@unn9532aQMSp3+KeR*zn66t-Kov{n zDh}zltf#`t`&9P6_>wCC{hnq9Pz7s5L@Znl5ETz4)8$qC1Bx^r#>0n^Gyr9A?bIdX z0LK_%UKJ`RZea%gBRaUoTheTbhdKEZD5C&e4?v46EVNS7B&Xg6b+-X!u%i0qH3O*Y%Xl{L!w92zK%d}7fXglesEi&o zFyR?HxIj_~xP$(or9CAku>im3?J|1BC>^jQ(-eY>!OvJF1Iy|UvQi}T@6bkFZM+p{ZQ(8Q-8d@xi+l%T7Ut|@Y+^{6+aWt=N?neZ?Xxusz;`^|5 z$c=5ox+22nl6^)?!lh~*esVZEbMo>@fSH(Ky=(L#Ck18Z4b5>O+sfw$JM&;#l`6j4 zO>uVHC9|4L*X8F``dhZ5(-dO_#>}+OJDsPi`w{O74Ok$(29=`oczMXg3S|SvEwFxs ztrKw30&8n8hj7Rlg_q<(aKg*t75ZD`F_0|rJm713;r^p9czAZhyh2Jt(ju@mE!|YC z-2}-Mau94p+X1Y&`-w)(GvB9();MasJrCZ=?if6)KB8_Nw+z%sN*#?r8XMy^b@FHj=;7>Fw_oSRRzN zc$A~ls}YclyZ~+7Pl$0&DfAWo?n^4PEzRH^D_#hV=}psg+QNYwlWUy9%~k`FRAb#! zN_W7YB)iNuQ)yNf$|C&pin=0d8IJVS3yB=%=HfCvq&#F?l`-BY7Hx;V*A|vrl>H82 zTELk5BU3PbuJYDgrM3_q^sD5%UTX|JBU~1~Sv>>Oj18{MykXZtMq!RWTBimLoj%1J zbhgnxvZaeL%G!ps2V-v0l?H*dc{3g{G5JnnQLbteTor8ujCl3^9V{nFQDb7^xFp}8dTT{3!Q z5ziUM8QyKy=iOYwi3lGku3{;rc!%7g%QP9tZC9Xci*VdAP$ePc)RSwLYu5C&X>Dv$ zjrENxUQ17fM@MNPa>1CE*3uLp)36l4Ylqq02dU&jq7r?V!;*c53%N>*ZQL{`Gf z7?bx5m01$B87mW>Wu!+i@I%2)jIVpr)6){And}%}pRNPBv_vpWT`oO6p=Nl{rbxv` zECz^diWC$SWYfv#;Bfz2z~~B23{tc;%Y>~50vRpWT#;xMovz*k~???&=g$=jztj4A*kh~ zAw}08i%l(ZQEtqe-mt#_NlpvAj14TUJ$Ne=SB+5M%BHjI7sDq3Lle>G-xExi|HxhHINv4uW!DJ^G0y9xg0L zIMAnK(v;n-Xc#e7={u{#m%gAj6ZQVG5{Ue)@u-)`;#RQn!j+UzrUL(+5fUGkAa z3rDe|;|ljW`@7Y8pJV+h-R193gMd%6z4kl!a8y!>FEmtK|JH+deC2!Nr&jJYIRdLt z{jK@@?4F>i?vi!$1R15_KGn6j^F1ngs+~~`f?d=cF3QXn++0d+o*ut)w5r?rWlsOF z+$PywOkj|G*-3eLYop$C!2&t5mR*|^-T2u2Lq+rCv+m0u)+suA|nWmUUpKkK0QM6pJ|r>R!rou^I?o!Y{t=qY_g8fuej z7@IR;rf=ZNhH=#f0kvt3b9t2s4Ei;4)0ugOCKX?F(vI>~783&=t_gfr`3P_KncyTb zRNU4pJtd|~ah7+PpG*iS)e$GbZR$T&B_v92&?!!;HW1z>Y)3@bm$FXG8ZegYCv?_DHAYD)G|nvMM#&^o2+M$uv*V2bX0;O4WALoIYp$CvwJdFs@$eVg0IUzb?)~ za$a-XDp<#8)MM6?x~+C`rJ0&c*LGNZ#oRmSO|{C=cShOxnW+4sG2LqY(yjE+p32^` zo0~S-uo}9(Qlc9HR|=L<-HW8r%5b1(gukK!>Hs5^+Iy>j0>ggUW)Ti zR;hY8jvR{KIQRWIOf$?RLz2gJ#z48#;#6JZF){i~kYTe@a!hX@D$1BXE$CO|{SjF} z7*B!`S?o-}60na9tOs23(hj z%`4}pa5-(F>_yAeZej_7TS_MYMp+N?CuzJY&YakMa9LO^E2qVhKz5?Rfg6;rV=&fEOk3`Xr188@ zR6@B!t%1LP{Jc_NAYb|8i6~%T&})qzFJvoLzW}*F5^IKW`Upw&Q;j0X3JN7F7hSoC zs_m)(f89?$OJ=H|>`)J>e%zAQ2T?8)Riqq++@;#pcVyE-j8dJ3*td)-DGj9AUb2-2 zbiY%9k~4NbGX}Oas2<*XVFs(ONQTAVw<5_}j?XSB*MzoXwEWnH z9?gpO=^(!*j2Sy3&g7@|On9bR9vE!HM^`qhOeuheF0p|ywZlZ={oCZ0MWP>He5IMf z6;27Avs`mh-cZCBJI6FM>E^{Lm6496&;r`&4Pk@pAzSqaU1yUF0+JQPAJn^-!Vx{% z`pNy&fgV4rO7d_FN%T+bZ`7*q=VZZ=L#<{oL8;sD_$PB)oww z=i?yDEpIp5NKG1(JeMh8uPPZbc3Yf3C`2an&VoUVBvoK(YCZBu7RSy3B4^H{gcT^x8TN?8Do`eWq>SqNg8I%96^ z!~3R&&|%q-mCA zh2|Pg=`D=q# zHauga#zaU*^_hQ}lR5glx%Z&9P2P}N34{t8(~>3mTs*QQ75h1HZA1~~nZ{UI;R#>9 zwT11mWUVe#H)(F_qe!`3IY&}nUBjHfM^;_4g!X7QhQjuKe_hQj9~b=rgee8Tt$fgz zN8$Ov_xp|$egJcm5+`$t?Uf%*p3`m{fZx+9mh&*kGFo}O+GGpvrpp%8-|95|`r8rl zrt?D0*l37xpP~2C#?!rJd!@LU(DrEsi+-+#o2_Nl4f?E`iG^To!3u3b4jnN*otIpn ziI#mKn!0wixX*|gNOUMNJxu&8JO+xVUUow|iuM}_Pq=wTPq-P&ErB)RM3+ErMRTqX zA}7lk#PZ%k+@sN%^C=u(+6`G*%^Ujk_cQCe47LUt?B24AvK7qU89$|D>_{jvhMF9) zCO;^gEb3qYJ_>iV`PO;RN!B!BUcS{s|LvFd6Oqqbxrb76QXzcSranW=h2H}+R{8@+ z)NS3kEupwhn+igR22&Ad#){V1*1PYfL%wV~E$aBM;cRn^a?fXQW;Q(IY$XY{lP}Mx zRD#N}WF&9845X4bGUg=5nF#nKO-#Vr1N{_JYE39k9w@YQE2`==%|0icf4Mfj^8CAD zV=c8@`F*Zv{Uz4Gu&kVft+zhh^z9bftM$t%7MU3O)Gl&@_c;ZoMl|N(MYPpy_0RM@ zqA|U?{rRU_nw{Q97>XVaAFt}^nFnkg?5H#wR6VBTFVdMw7@lEh!53C3X!lS3|f9UO~r zrcP73mPK@O)XW%q zP!X&la!wugb0Kw*7;yptmd)~%<#fQhpHBn)&t7J-HnSAv&ZbPCaF0q%P}z)m z`Q-h#%C3HkJ4r}OGMQE@YZnjSt=aNwyB_%TK!=9DvxYNtI?pqj%BKd64DYaNP5R#RS9N9cB8~n%1*a%Dxq| z!eU}4GlSw$wT|9q1D(VIcW zm+v+^Y}8V>`5Zk@!9*F0$fcn#+e3zLRD8Be-R4#E67)zEWq)iSt7^3o+9X=~RERUi zmkv^zCqNe^j@`!;xVOI|K(9{=Yu43`@joh=4~2g!FZ;{}sWds7W%+vQ-9_r|zb3KW zp3*;WTNW49v{h2H)hK#>e3K`l+Hj*ksw=xnS2e9tfI|tsFZ6sz-)E`?L758Q+N^rp zvh!87TIAcQP6P0zTN(Ct`L7)lkp@4f>UI{AQtjj9Lyzh;kIrnhI&!LQ?b&N>D(170 z=P4>;;mPKO-hzP1r65~^Y(<&I7`qk6wTpq5G(Zj6j}HPUpIVZSK@jRqpMP zSu%vll&rP2wWY~R!=&Y=!>p>0f@5zDohj~95$Ph>X7W|aE6x2&Lw(tkvl@dt$vDk(&nMvcQ=$F3A?7(OMEA3Fz zN*OubvXYnXG1a!O^ddI!6pa9@$}8aoD)G}>{+5jchyaSE#`bc9*T*OIhqgWq1>?S& zhKp|0ji-o@jq`?^27}gzKN*y=O7cv7rfuq=m8bjpI&ZSy%g$4qpN?AwIK2rUt0@!u z$U58jypsJ+|8vaN?Ja2SP5?OR=lCGU?x`YwpvO{+N-MwaTv-6|>w$s6em<*HNPIm^ zW=ks!%2IiHzie=_UwULU=u6lhuz*O7ty{f_tqrJ|_SDmo`M3!QJQjKt9qOwG$3J!S zCmN=Qmh^Sjg>L+KGfTVMz!cdrXjW5UvYFICx?#u}?Vw^-l$3ZLMq*Yx;shDqmcS!j zsu|DvIVjO_n3ZJkMHMz_I$=tJvev_>1^_!cI5C~&iwLmPck-PIfvpjh9|Js!Z^cg5 zU%CQ@3Q|f=8^@?O;08Fx;KcR<)bXkPc3^)>t;WmX_)@E*9J|)UZL>0sx4v=J!3(>2 zsy?5~wg)x6l8y#|A6q)g)&WTO6a4_h$v+5+p<4+TSt;3Q*Ye$n9DUm*a!%M!KJpVZXXH0mP`d>VfQ8p8fLhQO$Wc)2_=`jj7^^$lv-7FeYPHWfgCCQ+17O{11=#UO`4F;a>f*@Qv2z5(6$cKHDipFm>A&vY#r z6Jn(Le`d)8_V6VTC<;#eRXZQ3C$h|~cr0Z|C}#*PXzw9TnD-M-iqB!}_#)X<(mlWf z-LtU*5U2gH60v~ziPNqneLL>~0JW%+GTi7AqaEq=m(tUoKrCEWwKb>1*6G)$mc?CZTmr^{=I}FM_2=UU);8r|i9lgDL zPMi0@vOGrWsQBFSHc^=uu+AOvO(RBX5c^oF^Y(h~SE``c$)B_|5;68a47&m1mAx@W-E-g_NX?v2@ zY?D@Pymmb=s$qvllRtG~ctTkrU^TxVb2WGdxt@U}@z9Rt-m~Sl>ngMihAmDGCv&x_ zw;KMW_L3cx*9@%d3o4 zMo;Sah?MLOca@hPK50&`T0!6-kA6!hL!d}ooxR{TJS1h0mfsTGY@=eLAWYRf z!c{z8k31DH5+*JP4hON=tapv}i)@$~5r?I~H$6h@pIL_~aCx>y|q|bWAj+ zAu*H9;BzOT`KP$ZTE|?)n#Ou?%0U$_$>rgV?< zNr8mEv2WjL4d;v+lELAsO%F@Q9*1T=O_TmagVr8grkz~9xNh(Ii9cFvGrhfS#8MFYwAo{~r^|LYmAkToIQVMq z8x6QEsmg~HqO60(l`sS5N|^r?5Ct7ZY_Stf89E#$UnUHgE2>8Sgv?3W!u*GN4wHd| zPprufO--xfWpUjl6sS-aboh6qD{K_}PXwYVfMSKFu~81HE|4(K{{{Ig0TfkBI$zb8 zV;=hpzxvPCe=)Xe1h5F4Mmf{fss$$(pu9WJVSq@$cjWtj*iUZje3lxeHT<87H zf+Ju{xM8jyFt%P5KP}14JPaUi(cI4xWk2G6eUg-E4A6mg?>Lo|g$^E{^^L@{s@7LA$TF2hkaqYFv^W4|U zeOe!Q!~Eq8Jp1%n|1`h+GrW#l4tdCB>UU4V>B|Qzn-glP1227I2J>SE^WwiV>=f^u zUefL>cQYykezwSbi@g_Hr9@?e8$1X-*?d2k6~JG$m@5DBffDD|_ub92++Zqqwp>2T z-G`OCE)zc=)4tAZ+I4QU4cVXk`-gkauT;?8%_+9wOOnsdjkx76xPxWXw%3lN1SzYs zGLDK6Sz0KBf8#huH6ymd(`(`yrUi7*j{^M49+W5NTl^=Hc`8&>D6T7TmM(v%zs4F{ z*0-9_2EG+&uG6NrWILuYgE2r^J<35EMWquP>cc+AMj^0Zz>{i+t$KZI!qY>rt-#3h zSe)-%HXu~E8%^Qu*Y~z3$iy2Ix%X~Fk<-KYMGCs9yv_8y_0S=Co-Bc9q)1(9gsph=Ux8uSJ zqv_t&g&OHQ3l-$Bj86tTy}-Cy@_R!h(>Jo&+k&-*K~U}F9OwEzhYn0STkJc$Sq3+d ze4yrzZ)tuFqQwE_sLO8qfmPYq!XIO70LWSR1CW%=qx(Uc-cA7j6>>RBJ^(CJm*|_* z8Lwc?ab-^B?k8DK7S5O?g?BFepuF&{@({xM4LqFC%xBpR^*>_GnyAyRjd6G|P@gR7 z4-uEA+$(4+yVC!ZPSYLuE=YsAPf5Wlci;~ohlez)Nla;8Gk&wd;T@Tagk3LA`!ExX ze10o;V<1Xq7E^)VBIsX)v0aa3k7$nD=bwcITm0}}X?4|=Jx7~IzodiHth;I1-ROy5 zJxCvR@O4ZC};EaQT+&4z~wC7jpYc3q*ctgZ z^!ZnI#t5V2U}V}qC?hPUeQ#0+D#t3)M3LAV@URJA`cZ>Ya^Y|aH;ikCzMGcJ(vzM`qKVT?NL{vH(No{ph>MmP*PRJ|~b0;Kl zQe=EO99VU>TNW|!F+t&b&?-XVZ$7NB=Al{$)5C zycIV!uU62Uxht*_S~citY*6SkL5Ld>Tk~|!$TC%=OW~*6o<>&K>2@jSp7`y!t>)HQ z-+NSITW2lIsA-jSC}J&Olb*ttmPq-Q;X%UwzS(*p-d~+xuky*YCB47W~;Heqm*xG5v#hM_MVL@ zKKPBoM6rC_&P>sJxAp`#@?!d3#^U8T46TJZoMx9#YZ=qTgc&vRQ6jg_B#r224ZOC3 zjks9m-9Zz^mzbMn4ygFHhSo7L*goC#{7SYO8i#x|5TUQ)qBK(Sfs`ZLZlpeJd%D}~ z!z~+Zt{Qh!7x}X%yqaOa7)svyNcW+-m+E*a80af*9Hxwo9PSNBTi&iPDE|Smt$UW# z@ZIDrUt#fwit3P9*4LYR5!ZKK4z!b(W%jz>_g^<^IM6BoebIR$_dQocLD5Q+{gr6- zxQBBn>qe)+SfkI*Nc*#Wo8TaG&a(ogXQNfBd{=$|-2~rA-Y|`wE{9erGPSzOPNL+Egs7 zy`57*h~pkI38JjtQi9A(Q= z8Qa@xR#Wg^rC+?|4CNG!6z+hL_?kvWenb2p!scT6Uv#;x1oQ5?e}jqV_x zc28imh}wKyjpLeoLDhBjdjvX1>m_XrR;&mORro=6r@KLdKEEfoJFbUDL*dXgNs@np z&)NSu#Xb(~|M`)8B!lbS-)0?xqZF(fbSQ2?3UWYv5uA&F^t15EXZf#T0^`h2iSO-J z%4dmOj}20l-!l&BL+SylQtAdb(}g4Fw-#qu8=Hfp4m@?w&9YaT+SP)XUR^fZ@h{JQ zz^%MGj4Xd-(vVYd(7q`+`UylP961w@9bCwl#@l~(NZRILiasZtMaIwF@X{GZ?{WSV z=l{WH052po*)j??tAzX@xbDaI@Fy{jpaYzW4F960`58NIe&v)6)IaQ!SVua4OK9u= zEM^b|b;6f8;zq}H?c(p6XK7uNpByZ=$~20fXG~(?ip3;N%v}nU&2HzXXv3M*>27U& zOiHLRNFVsiOzdQ)#V{kcpOhxysWOq?Pmrg20jbPoJM`>H!ApocFQE_C-YWpcj=%eOS!W z9%lQdzB}s>dVs6)NuKmSAUBq*A(^crknqpy_Qfc0oVv9lcKkEx-9?+Ma28NP)Rks` zEeIHC^%mnL90mfz{s6|i<+Zk4&Hn&|Q1y;d1V&C7UTn)r)Z9*10$R|JoU9lU!O0q+ z#=KK&ydW}{>Z_!y5T)*2CE6sw9ike!gqnzt;1@c^B314OL!(%lzN$^~7!__^{fOvk zGmt2Oy{F*P&zJ%Y1`J)<3rHf@0^PGA242>@k$)%&D(L-|_NZRFYPl;h8J3&eB82U5 zl;e>Ki9WNKflQ0K09sQRds*?J9Vj04gO>N*>6S-j5<+5D!)uA|BbtF@wXC#+0?lPy zrqMKH*;`@-d%^pXo%{)zEWVYoGv4e_`eC0JjJn=nVheFso>`sxr#3mdzO5!qEaq5z z>EPtIweZ}5Ijc#-0Wio$%>5;`H(0cX!}ph{$>wMsa8UGX(1h^%`T0BfSCLlO4#x;L z&&=BjJ#TrRu??D|@FrBfWifOce6NYnAsZ^1|+u5fimC|_ce;W^h%zJ^C-`C=vDg90yvBilqBs%2qO z>MTXcvS7O9o|(wt(uODO1_Y?dH}$)3eanX$x{|(VFIZcAHN18Sl}#b`kbHFGB$u_f z^EgK@m*P`{BE5JN2@SKqUDI%(?uc|bb+`t0d-9hto<~<;W)Q7q;PUhum(TPI3#Q>b z{E=@^NS9y=iT!LmI#|7Jp07ab?31Zvs#8)~PIW>9zkHNO#_R^b^!iO-`erB0wFg;2 zk5)L35HK^I_;M!r@TL9yt10sMO?Qfb2jHYFy%`$PmVoa^AW^on{t6(J34tw&-V#E> z#U($bc@};OwW2d9p$k5g2YM*gH4cYh}+X&*WPz5p%)RfbmP%|0%P6{YkR?+ zv$;rVst~QXD0&XnG`d@PGOD;1ku%21YqgB8?T&g?BLi3{%(weEo%n@R9vbv$yIuqT zQwQis@GKHXQ7N3lYurX(U|q7tRA5q(6Rhbh6lZvA z`6~lK!uJ$FXIPQ(m*+Ln8Z@bovqbNv2nDr-OkPi!LgcufiA}3?Vt##tYh_tf*yOdy z{mqXqTCH%K2c*02gSlI2K1~et249b#PkOHmEcm@d`{M!qpa)!ME(EMC-Xwib#&ICW zLed!EL%y8TuqtFTd$P1EE5fB-X2Ol#el8c_U=EUI=@RHwg+dmEn(Yfp021DB@TE}Y zo_Y*+MQYI%S-R7nWTmWLYII}^wX=#qdes?eKZBF8#D%hpN;Ok_r+9Vq^z`g8q-4~r zQ6Rvzm{>bi`o0Y#t-!byrIq~qc$D81mxi;HY;JA?&xAyVkMq_tsKP(2oS)`6fvUnM zwK+U?z=}d2LW}*jJUoxn_5A}NoRwt6keGH*%yzN)>q73u`RpnXrDkia2}qAF)BO0B zsmjCcTac-Qc{ClLpJRmFGC(PJPlALsrV^5+w&<~{({>(oTq(rbmN8+Kl6dHyf@?;o zB#;zCGXwJQ+`daEw-eZOHo8*jksUH$!=t0Y+r@|&Y5DFzlQV23pHHzZpZI|3!j(-i=0;7QKa zY?bSz&_n1v9P~b>*jf6A_Nc7qygU(ni<|CuEI(cu*GXvwNMMwNr|^z>!f+JVIZDRc zkVpexez>BMTzX%wt}Iquc80ka0uj@hWGq_bZAD1prCSo1FQeiv-PT`TX1->LN#6>{ z;9`LgJWR_2l1EG_j+uA^C*Q3ak);m#pK7Z^Cd!G_#%r>L3hoFYunylW32UF@`gHv? z?tnvcW-mLX~f^5ikGE<1hNC5c02u_>>8GzzP%|;JAF%)9XKgpvbgn;6Ggs zOrwbv$q&xzJ1$#}N_Cg@_-CswL>j+1Hypmqhi96wjZ;k8$*SJ4{>_*8;%%Vl?ug zgE1zCLltZX=sdk|9mypPR(UBi&__fLb97aVPMmsBi0KwlTf>hq$ z&b)0q8j$UP{!SkVYkU3XOYvSFk0SGeDX-B?T%l0^Hm~^Xu!fCL;2o*WU0!$1FtchH zrv^VnG28kM%GRX>g5f6`t}PKpQ7@6bRzKV76;ok!qwt46d01o5V<1?vm}{&?A!PGA z^Q#GKGv}izz?3?&TtHW)`r6c^vED?}p=$FFyL%%;F+HpXF zNhYKCUefuT^%JK7hI9>*PTcTBgLz`VBNOsNm`VG(g$CO+K9Glv!5qz_=|wX3x%H($ zLFjO%3o{oZJS*2xJaaaqedveuW2D`fd{z4|-ea`UXL7#;?E3t|(Lk^~neNlE?MMtv z>76GL>9Oo*e-g5oW2KNG|8=6@X5;Efp5GES+wSDiM-6FgP!n({rFL9oW~?Jj{0rC3 zNIYhd#->E-4?&u->(MrZMZuE9JXHtA{OH(pKZRB1PLk1qxlJuX1aGmM zTb!xk1%J7f-AP}^$YKl1UNmRdiAiN8?{N}c*W=UP&gHZmyn~$Ar_^w$`PJ88=`LS- z+8=Uo>1`piua>;-;aqsch$c6pbt*|kI6eBZ@a`?z+8juej^0umn5Uo&Va*7;fF*R1 z2Z5RIZB@DiL)wiG)cRq2<4bVc*t&fq0b-UMm|%?rriShQn>oqBEW$;xMau$>HJ_J) z4huW<)3ww#Tpo&1!KnsvWb+`4mCXj(7{_P9^)*y^X~z!JQ7eLRJ;Ivze_e=vU5GkG z{pxI*A^ihLGzs~I=X>S+%%^VSwl19%2}S$PSD_Ay=g%3<*|=nJp6)?zKYA3{jW?Ey z)Y2bj7QAbBBQ0eD8TzH}f`@6l`H@A>7kwici#YQG9EEfY&G^#l-Bb8kFi3Uw?Ed2) ze1SbMu#~AGebL6`h851oIjf1xk(fH#&J}Eg#~QI;F_UsZCQDUDYDm#)M-ex{e?RWR ziY4Z<%V&W}Iqmr0elOtlhtj2JMZ@kO+U;3?< zSoUCm-x0>H@4UmSFN;&|w>?~pmXT)~N|Yywdwj-w2Q+qbH;$;E zCqWRwF=~>4oJfSL@O#otzVK5$))4$)Dwq#}<(b=LG6^r9o6I4|5}7vmt?Y#;mu;*e z!#RhTLMIj1jT=<<{q^MohR0vzHn}l@;XVNgsjP(8A1u{@dL`*YZV2qKxQMmjG1M*@ zb)2_i6KY;?i?cp3`5STE3@08sajC$(6_X&_qNACD!Sl_!?7=CnyuxR!$&Gg%a{>1g z&g&aKEJk^Ps;@q7ASn%f1GCzJHKEYIhW zeC#tWnlbweFSvg*9d^-9*LbzR5Z%6ez5i_#yN@4DEw;EnMCwqyq=k7=YW#B`$S#!M zW3hR-d?vjYb2QFKGfjPiJKpnq73MO92pQTp7ea1=`sSZyg4DF$H$sW@C*U;V?A4@L zQcRk(7e}0S_%Edv4#!+5We;bVl;8UMrxacOz;GfxJ6@Pn)<=ozr&L9NK0meLT~C%~ zLfU*awVf$`Q|<>{I)dq7+7hL7Xf5|3G%Nw8^92}v?rup<>pemrn3OD)4%tV$Mga4n zOt^>Xb_U?C{W4)knXj;&C0bIa0UevXBSEN{ms-;uM>%@VdokSx?M6XIE9cp-#bfv! z`DvGkD+%L$*AGgoJ)3YtW>U>VA0i;Q65Nn$)#7cQ_snb1Bp&hFa6+VhIIr}v*~R0D z#E#_-)+#}Hs|o??^PM+|Sp@#OW@yR-#uqnMqaN*gz8%1d>*|}0;VFqO{~Qk?clN#a zTfZzYvC~e#H4rUBNcok(`0A5<{$6F1F-ALJArAs4E*XM!X>)Jl2A2!06p-?(+d_u2 zUZ96qGXiZq6Ny;fwjPqp^sC443)5G)b4Qury(Leipy}qE=&CZ)$`FZvOP;3x!*7&I z=x)Ny$Qy(|21C%JU#guL#7s6p9(2fjt0=h^5Mp9`$xd}Jk=Hecp1 zM;PE67>&_@|^7`AvAgAJHH@*`F8FyJJI}CnA5odd$y7{#(CGNh)ryk8Oa^ zKxY66a|B8WY;rZ9Od)HRd<%!N~sQ+}JctR9wV#T(#q2RyEl^U_JaouXoQk;b^6i8`J2 z`j`?L(35irGgy@IU}~9|FosgMUw?9?%SB=U2P0$orT^ahDqvM6eFDW9$Ci%>D=BAq zvdP+>D*M^&^l@^BD$^t37u2=gqYiE1SQ7H6Y0B5VQpqXpbEJ8k_7jg2w&cqI$JNRA zJj2UdI5^}$5-Cgc3sA>#{`k$#e3JbOER?H=E-N(ry8@>akpa1g2`n* zw_RfqJa)(=XfI(IsVBy>(>GrYW|5^Tb(OuX(eVc$Be>q9l$pbmbzNIoGsrw`p-)T4 zqEW^78m=+lWVQ4A`Y(;N6#t-2<2FEBmZNZBeGbX-isbd-JAemWZG@q&^w+wubRNRy zu|0fp4&Psc5lvv{6}t6|ki3&`nCjy&Lj(`YeV0kF>QANau_=}Z_C99W1EJzdNd=;I zEFlD^Priun289ge3p{&Rtr@pjHlQ{0$=Ln8oXLn~xTT&vtn>upJLIrc!o54L<`%io zSHJw}{I-~|S%Y0xUm|rFF1)!xE@>MR>yFN*gM%WKl5p}0Q?%WBY(o>CB4vVXU6`mW zRXf^c4M(rS3BJbe+$m1kZwHo!rH1fs^{5;|;b7FZ-~~*IMV$foG0#8J;X`yuK(xLT zaBzoT{ppUmcO+wLwzYBi^4TXlKaBp&E5i>|pbr~j+w-0Qfh9n+ zqJu#xAOY02Sk50DPHxT=OY%WslE53pzIA;)BAq`?n@ydF^ZrJ5U$kKTT5z~3w~v4!!-l)BhJ|f-%8r7@^+sW z%@FP&4UdEa3=L|mie9_*|vHr#E9=@&Y*}#d!Tf}`f=-n~DL6cM zNMuKvF#I-gn`pl;iS|6yqL>2=^U>BQbRT{%)g~2zX}YYNxmwsT-Zz?co2QjYyok2` z41;0eG`w!61oX=ZcbEgnpuwIdyi#(Psiwr{Svh>T=Ee)ZGxWaiIH6kXu6;4(+_J{b zT;^f(u&H!@ScrDSnbv_0`?RgNknGjI?mT_@)sXJ-6BEjTWsJQPefn?FUAwYj;Ajq{ z&3AK7bvB*&w5EHBDpEX7<{inLQu7m4idu{3w%yawLYyxpy|5X@&Wagg->e09%yWs^ z()rm*%oB20!cc?)P=q7f5Ok8YD2=Y73-)BWfQXCTRKj!UCRGj!SIQ$4(}_vf?VkqWj9KpwLHGu z1d(Nl#X5tSQKDES8^dIR7b*$6tJ!1jHu8_d;0gm;(&~z#b+ZV+kHWg~&$3!uHhS*H zIyP~=yb&Tuti#!J6-*hkjpI^CPKe*|1%gSf$LE}%xyuFSLuIW9K$;BG&B>$%oz5k}% zH=_bU%4VKwG~_DAM`y+Ne0zRhGRu{Uvdu+}M35RE9PX5)^kF!|l~Fh`hitj~5FXCF zbmX^X5%1|l)szo+$(i8t3v{xpX*tUipA8d6cT+lL*(Ya~tUo_mZ5hqPOH6?9ZyCWR z*G5o>{aCL=h-r5qtyhaZYE-HGtjto}5v3RcgG|S+brA3?M2r8FhlM&J)z-9TB_q?CwlN{3G79tvj;37!QOi`Vl0sZ&hpGaXmg5P>QPH(D&2AtDP})$Y${%BWp0 zNKGmv=P)#D;JY^}R5SH)tRb_u;D2C@KY*7X3s#Zu{#UJ_mLc2LDwU{J#fFn6FM7J>ii**N(-G692P(V$i*1uWX=` z=y@#4!CQvue#g7^KYOkJ= zvmnC`IN$*ryuya8xrQro{g5qwu!0M*@r78p&?*h&+6gpP15HF8TsehQcA>EnaJ(th zD1{oya7~p5Q~AL~``{u49JB$OI|d78A%Z!Oh53OGwB z1{6i4+oFI&Q6P0_xBcYNk?dlV_H6mZ)fP=jS_ueHEUZc;aCwG1G>?GS^E6!hPjQff z0}v-#AIvT_{9qE0=LN4L!FYhG0@!a6PzMm5K9ODQcV7$wc;>-o?F<_W;8I}Ap+B<7BQUx zua36;$lAA%D9@p38W3b1Equ3UCS%Vnw;rGN+Vbq>!_Hr>g@q22{cd9lfI1Ws*EtrC zX3LHp&-6COs!|95o)hsM_FhSw=SH)L z{qBps*a$Ddv|s2D$`C?8=fzcsS($?v*m5Y!B6i_Q&4>VgdlFhIElVp=2Zf@Xt0gZD z=)o#2#lyCA@YPI|F8_BeESYdk{Spwpw_{B4NAFzh?HMIRP22c5li0+wQZ%SOYz-Zx zN*K!N_w+(dugxL8Y7%&17O~&$nW4~~#YgR|>-qc!T92pnlkD?fKN$yp^v2lg!IKA+ zvD-i7tS6w@HAkJBTP2CA!l0fk=^PGAI9<31#dX9y0+D2EL@Cjm<)Y^&UQ&F$5gt7Z z)8aLyLfQz$Ls99fk1WtsLFe~Pm(9aZy={?F@L_&=;mFkyyJ8^|pM9V9xq-*{wq&Rf zD%wz+IQm6SluAeX?1`_Ex!4yEKZlnlXpEV)Uy$6CV$m20C=}@n5yOgNm7gA_09My# zeq*6)hf=SLT@p`GXri}by|(DLQaxBzx&|;C5=9)1c&%l6&*y-Uj`W>5a_ha-cH@y` z7wl4!_7nDbuG@GYKwF8JGTTG>uVKA9+u?ln>D}5r_{Dcm>h_y0v>yM>)BD?P9&Xsa zstz8-Kaj%@!1dggCuX@G)F+a@z0v+t;+U6l!;+;~wPVA}FP|;VXOx<@w0OE|wner+ z6<-e}j7u*m%V!WMfKe0*+P=EKvAmwqLS*AL9pnH~r|MF5+Gh2VjaEBnfj|O&m&~)R z=9HDD6BL1JAv&=wsO>Hu(PSa+$@1 zBK0t!9)gCKM@se2@i00Q?Hkd8p~YZp3}wpHhV9E~=IK_z35eOJrqZBkn$238EQEfI zlKKTrJgX}0XfMZbodUzRPnv=W{a`InG!n<#0yx zo7a1PdbI7c+QE+pWjX3tJdt2=y8q6c#Etov#`>S19<-AUIh@@z3Fyr^c9gjbipuEp z?E$--oH)J^)z6f-O~nIAyeQ)Nq6rSj6hGrSdVM;a8r)XV2mQ%*kU#zP>}%Ifb%N?V z13uR0D>}6zI4KEZB`JC`)zsM)U9^7PHmju|yc0)uV`&dyh4N1+znM~y#*jqU)OZA+ z4akB1l1tDAErpOg##BB0>x--;ilH)yjk(vPWw|ul=5LC~m03M7m?M^P%N&W|#DwdK)+9|DS2KOB_hNVQF7a9aM|Njxaf@6Ip$WK_JQ z|K3cRjdTDW@#Uy=2OTZ?CpLoefu{e0kJ-87Xk^m>fMxp#-qp z&@U#Loy9aGuN<2Y&0+C;(Az_8pInk+wWb?SXV%ug+)X^@}^>WJx9O_ai3Hbxv&agpA?_=A} zi(1s8;AuyPW`=^OrUwW4u*e5B2FkK41TZ2dl-(oE`XX1S**T~p55&Y94RY+}kw$aw z;?V`5e6-qbuAiF*2Hrl>o~73=@16RlDwz|b>a;y+>e0PV#bJJa0;l$aaaxL??)#*t z0HVv2(WfVaK1{jHE9dp{uzcHm@+l8ru$OY{9Y2I0&~tt&SdZ|JlhzaS={&nCb6+-Q zKl^;|zRIyfL-OJfJIf9;HWq9p+*6UCPa{QpPi3Ph?qNPZUA5`4 zSkD9B(9{0j3PNdOF4WjnIrHl?WABf(L+FKHoSHZ{!O>HCX_DJf};4$A^s%)#A`1g^>M(yXSQ0@!W>EgXb z^1dI6dQ9C-E4xhq@9i+ND|-H}4Lq?<)0F<_(`sKhw-PNSxl+5T4q5g5dzt0Be*!98 zi+Ckd-F5ABYwgh?Ef{%!GJR*l|DcEwRuWo~zdKAmxEPl!ejb;qtr^Xp%3Kpz;1Mzd zb5z@&Z63AO?YsI=MC9#LeATcQCUb~c4-TMteL8raaNmHuF@*_PX~xSM?kKHY_i^~X z>%-PddOfz=|5JY3p$@53)ls`}e!f1xaC2ewoza=AGZW_~aH?@4Eo>odznz)Irm7n3 z7BH0^TDxA3|E7V7%iC<}1%PHlqTdE`%NWU7{7B(BMz4+PxAwgQr(V81+*oPg2u-;3 z#{BrT$ul>`SA(?7qg5QU_h{Jo*tQ}te#;t<81-SWn2zl(s?)Q#)V3sh4gtWW=;{I; zaGj+jX-s30KoLQ{g6k=6iEOK*)~XB&m5{fF^qn)-T5-awhuPO}_g7P6Xld%@A)ZUy z&v$S~jO&mYsDC((C-{D8S81>>o@!M(_mx%b+86}1m6*3j*csw$p;EOGHGt}_L3KLw^>prW(s71kNLpNckd33dszG3@gLS+T0E7VXhCt3PbCA&$iT1>BVG~Y#J~ukPEQPs2y%GG%Xa&qs@CeY zeD9nCr$b@Ux@ayklLHKG3&5z;ndNA*p$pCS`fZgQ5os#GbKRwm2}AG8$&Y06x`OpV zTL>V^w?;Bc?Jj;szHY?795;VB&-RdJ(_H%tKO5%5$z*?ZEw!63C{BcjkuFfU#6sfC)`k8ESt}2dTq|0o1kFy%3t`|Na>@=<|~I&tG<^n zFW7;D-)wozV$#*m^^+;<=C@bLma$^|bmsc8XMJCuD{(2TeX&^n<5d3}Bja0(0Pl`2 zHf>TWHGY4waqx(!wzJBbeQBmsf##pn@Rers#(ea9;Z9)xo`i2=_EqqLVkNePCKiw! z%Mu+pJysbG`$AkA+Xz^tbY!EEfn#`nv=Y^B)N)KhH$DDxX<_>r@A8^QA2AtI_J-MSdkL2EwES)gxt&_8MV>zk>J{_f3qH)J{z1q z)x0oezL+uf`FQ_OdrBqOVDEPbP?Ds!7>wQ6YYP=q330qu4<_qN69*UjgN;e@Fiepk z#HqYkG4GD)t%iN;wT_G7)Ly8W&n}wZPjabd1_rq?pTk>gkK|WRT$XbN#fkPakolP*}VY4S!RK*kXb#ZaeJQR&5;;G&& zM#oSrSb?<-U6NHTiznLRN9U>=cWq$`CHw8h9RY1YLGV;$aV`$=h+D*uF8b|MTykii zawUxK6|D*m5oQ`ud3UTWOmE2x7Lp$-IY4ZMfaCNG9yJ24l zgF8|5=BYLPm`D4FkE)8(y&qQ>={I4y^ME|e&Pt7}Y(olfsX6xJ(t^u8ntkif6EbZ+w@^eP?uxUYa` za(@+Y;-iU;I{`5HW~O~bZ7g*&&l^CbzmQ{>oC)Tw-MCm{Ov%PM_DhzIjrpFQKQwjn z>Tv4T)h|9opXW$Se)p$GSlU~LW%c!vEwAPJTr*GRJNm;B$m^LTXDFL?3*{Tvj0e_thyWBszxzk7X6-D_z8 zh|9C3Y(>5;i^taf>ACu|$>&XM;$I$Zwm+P$lx`WW2R$m_+5A0&O>E*{0KG)*T_5Uo ze-r`f9<=)_-Nkr4#O + +Post U + + + + + +

+
+ +
+
+
+
+ +
+
+
+

1. choose me

+

2. choose me

+

3. choose me

+

4. choose me

+
+
+
+

Recent post...

+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + + From cbc4238558430655e974b6abf130c1c137cdf3d7 Mon Sep 17 00:00:00 2001 From: liang Date: Sun, 21 Oct 2012 22:28:31 +0800 Subject: [PATCH 03/15] add ddtcms --- ddtcms/__init__.py | 4 + ddtcms/backup_initial.cmd | 6 + ddtcms/blog/__init__.py | 0 ddtcms/blog/admin.py | 174 + ddtcms/blog/forms.py | 134 + ddtcms/blog/managers.py | 38 + ddtcms/blog/models.py | 113 + ddtcms/blog/sitemaps.py | 46 + ddtcms/blog/tests.py | 16 + ddtcms/blog/urls.py | 152 + ddtcms/blog/views.py | 69 + ddtcms/captcha/__init__.py | 0 ddtcms/captcha/arial.ttf | Bin 0 -> 367112 bytes ddtcms/captcha/examples.py | 9 + ddtcms/captcha/forms.py | 44 + ddtcms/captcha/models.py | 73 + ddtcms/captcha/settings.py | 4 + ddtcms/captcha/tests.py | 16 + ddtcms/captcha/urls.py | 5 + ddtcms/captcha/views.py | 37 + ddtcms/db.cmd | 1 + ddtcms/ddtcms_uwsgi.py | 10 + ddtcms/dos.cmd | 2 + ddtcms/faq/__init__.py | 0 ddtcms/faq/admin.py | 9 + ddtcms/faq/models.py | 18 + ddtcms/faq/tests.py | 16 + ddtcms/faq/urls.py | 11 + ddtcms/faq/views.py | 1 + ddtcms/grappelli/__init__.py | 1 + ddtcms/grappelli/dashboard/__init__.py | 2 + ddtcms/grappelli/dashboard/dashboards.py | 193 + .../dashboard/management/__init__.py | 0 .../dashboard/management/commands/__init__.py | 0 .../management/commands/customdashboard.py | 30 + ddtcms/grappelli/dashboard/modules.py | 392 + ddtcms/grappelli/dashboard/registry.py | 60 + .../dashboard/templates/admin/index.html | 30 + .../grappelli/dashboard/dashboard.html | 27 + .../grappelli/dashboard/dashboard.txt | 114 + .../templates/grappelli/dashboard/dummy.html | 1 + .../templates/grappelli/dashboard/module.html | 32 + .../grappelli/dashboard/modules/app_list.html | 34 + .../grappelli/dashboard/modules/feed.html | 14 + .../grappelli/dashboard/modules/group.html | 7 + .../dashboard/modules/link_list.html | 13 + .../dashboard/modules/model_list.html | 15 + .../dashboard/modules/recent_actions.html | 15 + .../dashboard/templatetags/__init__.py | 0 .../templatetags/grp_dashboard_tags.py | 65 + ddtcms/grappelli/dashboard/utils.py | 164 + ddtcms/grappelli/models.py | 0 ddtcms/grappelli/settings.py | 12 + .../static/grappelli/css/admin-tools.css | 85 + .../grappelli/static/grappelli/css/base.css | 35 + .../static/grappelli/css/buttons.css | 379 + .../static/grappelli/css/components.css | 878 + .../datepicker/grappelli-theme-extensions.css | 392 + .../grappelli/static/grappelli/css/forms.css | 1243 + .../grappelli/css/grappelli-skin-basic.css | 1301 + .../grappelli/css/grappelli-skin-default.css | 1884 ++ .../css/jquery-ui-grappelli-extensions.css | 611 + .../grappelli/static/grappelli/css/reset.css | 40 + .../static/grappelli/css/structures.css | 661 + .../grappelli/static/grappelli/css/tables.css | 138 + .../grappelli/static/grappelli/css/tools.css | 306 + .../static/grappelli/css/typography.css | 274 + .../static/grappelli/img/admin/icon-no.gif | Bin 0 -> 49 bytes .../grappelli/img/admin/icon-unknown.gif | Bin 0 -> 49 bytes .../static/grappelli/img/admin/icon-yes.gif | Bin 0 -> 49 bytes .../grappelli/img/admin/icon_addlink.gif | Bin 0 -> 49 bytes .../grappelli/img/admin/selector-add.gif | Bin 0 -> 55 bytes .../grappelli/img/admin/selector-search.gif | Bin 0 -> 55 bytes .../img/backgrounds/autocomplete.png | Bin 0 -> 381 bytes .../img/backgrounds/changelist-results.png | Bin 0 -> 244 bytes .../img/backgrounds/loading-small.gif | Bin 0 -> 3027 bytes .../img/backgrounds/tooltip-pointer.png | Bin 0 -> 302 bytes .../backgrounds/ui-sortable-placeholder.png | Bin 0 -> 259 bytes .../static/grappelli/img/grappelli-icon.png | Bin 0 -> 423 bytes .../icons/icon-actionlist_addlink-hover.png | Bin 0 -> 152 bytes .../img/icons/icon-actionlist_addlink.png | Bin 0 -> 152 bytes .../icon-actionlist_changelink-hover.png | Bin 0 -> 131 bytes .../img/icons/icon-actionlist_changelink.png | Bin 0 -> 132 bytes .../img/icons/icon-actionlist_deletelink.png | Bin 0 -> 137 bytes .../img/icons/icon-actions-add-link-hover.png | Bin 0 -> 152 bytes .../img/icons/icon-actions-add-link.png | Bin 0 -> 152 bytes .../icons/icon-actions-change-link-hover.png | Bin 0 -> 131 bytes .../img/icons/icon-actions-change-link.png | Bin 0 -> 132 bytes .../img/icons/icon-actions-delete-link.png | Bin 0 -> 137 bytes .../img/icons/icon-actions_changelist.png | Bin 0 -> 369 bytes .../img/icons/icon-add_another-hover.png | Bin 0 -> 165 bytes .../grappelli/img/icons/icon-add_another.png | Bin 0 -> 166 bytes .../img/icons/icon-addlink-hover.png | Bin 0 -> 165 bytes .../grappelli/img/icons/icon-addlink.png | Bin 0 -> 166 bytes ...icon-admin_tools-dropdown-active-hover.png | Bin 0 -> 152 bytes .../icon-admin_tools-dropdown-active.png | Bin 0 -> 150 bytes .../icons/icon-admin_tools-dropdown-hover.png | Bin 0 -> 150 bytes .../img/icons/icon-admin_tools-dropdown.png | Bin 0 -> 165 bytes .../icon-autocomplete-fk-remove-hover.png | Bin 0 -> 266 bytes .../img/icons/icon-autocomplete-fk-remove.png | Bin 0 -> 281 bytes .../icon-autocomplete-m2m-remove-hover.png | Bin 0 -> 266 bytes .../icons/icon-autocomplete-m2m-remove.png | Bin 0 -> 281 bytes .../img/icons/icon-bookmark_add-hover.png | Bin 0 -> 171 bytes .../img/icons/icon-bookmark_add-inactive.png | Bin 0 -> 171 bytes .../grappelli/img/icons/icon-bookmark_add.png | Bin 0 -> 171 bytes .../img/icons/icon-bookmark_manage-hover.png | Bin 0 -> 2925 bytes .../img/icons/icon-bookmark_manage.png | Bin 0 -> 2928 bytes .../img/icons/icon-bookmark_remove-hover.png | Bin 0 -> 146 bytes .../icons/icon-bookmark_remove-inactive.png | Bin 0 -> 214 bytes .../img/icons/icon-bookmark_remove.png | Bin 0 -> 143 bytes .../img/icons/icon-calendar-hover.png | Bin 0 -> 236 bytes .../grappelli/img/icons/icon-calendar.png | Bin 0 -> 237 bytes .../img/icons/icon-calendarnav_next.png | Bin 0 -> 186 bytes .../img/icons/icon-calendarnav_previous.png | Bin 0 -> 186 bytes .../img/icons/icon-changelink-hover.png | Bin 0 -> 2924 bytes .../grappelli/img/icons/icon-changelink.png | Bin 0 -> 2925 bytes .../img/icons/icon-changelist-actions.png | Bin 0 -> 369 bytes .../grappelli/img/icons/icon-clock-hover.png | Bin 0 -> 3214 bytes .../static/grappelli/img/icons/icon-clock.png | Bin 0 -> 3213 bytes .../icons/icon-date-hierarchy-back-hover.png | Bin 0 -> 170 bytes .../img/icons/icon-date-hierarchy-back.png | Bin 0 -> 170 bytes .../img/icons/icon-datepicker-hover.png | Bin 0 -> 236 bytes .../grappelli/img/icons/icon-datepicker.png | Bin 0 -> 237 bytes .../img/icons/icon-dropdown-hover.png | Bin 0 -> 215 bytes .../grappelli/img/icons/icon-dropdown.png | Bin 0 -> 215 bytes ...on-edit-dashboard-toggle-handler-hover.png | Bin 0 -> 336 bytes .../icon-edit-dashboard-toggle-handler.png | Bin 0 -> 337 bytes .../img/icons/icon-fb-show-hover.png | Bin 0 -> 3136 bytes .../grappelli/img/icons/icon-fb-show.png | Bin 0 -> 380 bytes .../img/icons/icon-fb_show-hover.png | Bin 0 -> 3312 bytes .../grappelli/img/icons/icon-fb_show.png | Bin 0 -> 3305 bytes .../grappelli/img/icons/icon-form-select.png | Bin 0 -> 289 bytes ...con-inline_item_tools-addhandler-hover.png | Bin 0 -> 159 bytes .../icon-inline_item_tools-addhandler.png | Bin 0 -> 163 bytes ...n-inline_item_tools-closehandler-hover.png | Bin 0 -> 220 bytes .../icon-inline_item_tools-closehandler.png | Bin 0 -> 219 bytes ...con-inline_item_tools-deletelink-hover.png | Bin 0 -> 266 bytes .../icon-inline_item_tools-deletelink.png | Bin 0 -> 237 bytes ...on-inline_item_tools-draghandler-hover.png | Bin 0 -> 246 bytes .../icon-inline_item_tools-draghandler.png | Bin 0 -> 246 bytes ...on-inline_item_tools-openhandler-hover.png | Bin 0 -> 233 bytes .../icon-inline_item_tools-openhandler.png | Bin 0 -> 234 bytes ...n-inline_item_tools-viewsitelink-hover.png | Bin 0 -> 199 bytes .../icon-inline_item_tools-viewsitelink.png | Bin 0 -> 200 bytes .../icons/icon-menulist_external-hover.png | Bin 0 -> 2989 bytes .../img/icons/icon-menulist_external.png | Bin 0 -> 2990 bytes .../icons/icon-menulist_internal-hover.png | Bin 0 -> 2980 bytes .../img/icons/icon-menulist_internal.png | Bin 0 -> 2957 bytes .../icons/icon-navigation-external-hover.png | Bin 0 -> 2989 bytes .../img/icons/icon-navigation-external.png | Bin 0 -> 2990 bytes .../icons/icon-navigation-internal-hover.png | Bin 0 -> 2980 bytes .../img/icons/icon-navigation-internal.png | Bin 0 -> 2957 bytes .../static/grappelli/img/icons/icon-no.png | Bin 0 -> 323 bytes .../icons/icon-object-tools-add-handler.png | Bin 0 -> 158 bytes .../img/icons/icon-related-lookup-hover.png | Bin 0 -> 3136 bytes .../icons/icon-related-lookup-m2m-hover.png | Bin 0 -> 3119 bytes .../img/icons/icon-related-lookup-m2m.png | Bin 0 -> 3132 bytes .../img/icons/icon-related-lookup.png | Bin 0 -> 3139 bytes .../img/icons/icon-related_lookup-hover.png | Bin 0 -> 3136 bytes .../img/icons/icon-related_lookup.png | Bin 0 -> 3139 bytes .../img/icons/icon-remove-related-hover.png | Bin 0 -> 229 bytes .../img/icons/icon-remove-related.png | Bin 0 -> 234 bytes .../grappelli/img/icons/icon-search-hover.png | Bin 0 -> 3136 bytes .../grappelli/img/icons/icon-search.png | Bin 0 -> 3139 bytes .../grappelli/img/icons/icon-searchbox.png | Bin 0 -> 3136 bytes ...icon-selector_add-m2m_horizontal-hover.png | Bin 0 -> 2995 bytes .../icon-selector_add-m2m_horizontal.png | Bin 0 -> 2991 bytes .../icon-selector_add-m2m_vertical-hover.png | Bin 0 -> 3023 bytes .../icons/icon-selector_add-m2m_vertical.png | Bin 0 -> 3023 bytes ...n-selector_remove-m2m_horizontal-hover.png | Bin 0 -> 3003 bytes .../icon-selector_remove-m2m_horizontal.png | Bin 0 -> 2998 bytes ...con-selector_remove-m2m_vertical-hover.png | Bin 0 -> 3009 bytes .../icon-selector_remove-m2m_vertical.png | Bin 0 -> 3009 bytes .../grappelli/img/icons/icon-th-ascending.png | Bin 0 -> 243 bytes .../img/icons/icon-th-descending.png | Bin 0 -> 240 bytes .../img/icons/icon-timepicker-hover.png | Bin 0 -> 3214 bytes .../grappelli/img/icons/icon-timepicker.png | Bin 0 -> 3213 bytes .../icons/icon-tools-add-handler-hover.png | Bin 0 -> 148 bytes .../img/icons/icon-tools-add-handler.png | Bin 0 -> 191 bytes .../icon-tools-arrow-down-handler-hover.png | Bin 0 -> 212 bytes .../icons/icon-tools-arrow-down-handler.png | Bin 0 -> 212 bytes .../icon-tools-arrow-up-handler-hover.png | Bin 0 -> 200 bytes .../img/icons/icon-tools-arrow-up-handler.png | Bin 0 -> 204 bytes .../icons/icon-tools-close-handler-hover.png | Bin 0 -> 241 bytes .../img/icons/icon-tools-close-handler.png | Bin 0 -> 248 bytes .../icons/icon-tools-delete-handler-hover.png | Bin 0 -> 199 bytes .../img/icons/icon-tools-delete-handler.png | Bin 0 -> 200 bytes .../icons/icon-tools-drag-handler-hover.png | Bin 0 -> 183 bytes .../img/icons/icon-tools-drag-handler.png | Bin 0 -> 229 bytes .../icons/icon-tools-open-handler-hover.png | Bin 0 -> 262 bytes .../img/icons/icon-tools-open-handler.png | Bin 0 -> 256 bytes .../icons/icon-tools-remove-handler-hover.png | Bin 0 -> 135 bytes .../img/icons/icon-tools-remove-handler.png | Bin 0 -> 152 bytes .../icons/icon-tools-trash-handler-hover.png | Bin 0 -> 210 bytes .../img/icons/icon-tools-trash-handler.png | Bin 0 -> 210 bytes .../icons/icon-tools-viewsite-link-hover.png | Bin 0 -> 190 bytes .../img/icons/icon-tools-viewsite-link.png | Bin 0 -> 228 bytes .../icon-trash-list-toggle-handler-hover.png | Bin 0 -> 187 bytes .../icons/icon-trash-list-toggle-handler.png | Bin 0 -> 234 bytes .../grappelli/img/icons/icon-unknown.png | Bin 0 -> 406 bytes .../static/grappelli/img/icons/icon-yes.png | Bin 0 -> 396 bytes .../icons/icon_fieldset_collapse-closed.png | Bin 0 -> 210 bytes .../img/icons/icon_fieldset_collapse-open.png | Bin 0 -> 192 bytes .../icon_inline-item-tools_addhandler.png | Bin 0 -> 2985 bytes .../icon_inline-item-tools_closehandler.png | Bin 0 -> 3046 bytes .../icon_inline-item-tools_openhandler.png | Bin 0 -> 3056 bytes .../img/icons/ui-datepicker-next-hover.png | Bin 0 -> 174 bytes .../img/icons/ui-datepicker-next.png | Bin 0 -> 173 bytes .../img/icons/ui-datepicker-prev-hover.png | Bin 0 -> 169 bytes .../img/icons/ui-datepicker-prev.png | Bin 0 -> 181 bytes .../static/grappelli/img/input-throbber.gif | Bin 0 -> 1737 bytes .../grappelli/jquery/i18n/ui.datepicker-de.js | 20 + .../grappelli/jquery/i18n/ui.datepicker-fr.js | 19 + .../grappelli/jquery/jquery-1.4.2.min.js | 154 + .../grappelli/jquery/jquery-1.6.2.min.js | 18 + .../grappelli/jquery/jquery.cookie.min.js | 7 + .../static/grappelli/jquery/jquery.form.js | 899 + .../images/ui-bg_flat_0_d6d6d6_40x100.png | Bin 0 -> 211 bytes .../images/ui-bg_flat_60_bdbdbd_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_75_eeeeee_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_glass_25_cee9f2_1x400.png | Bin 0 -> 120 bytes .../images/ui-bg_glass_25_e0e0e0_1x400.png | Bin 0 -> 103 bytes .../images/ui-bg_glass_60_fffccc_1x400.png | Bin 0 -> 148 bytes .../ui-bg_highlight-soft_25_d6d6d6_1x100.png | Bin 0 -> 132 bytes .../ui-bg_inset-soft_95_fef1ec_1x100.png | Bin 0 -> 123 bytes .../images/ui-icons_444444_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_454545_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes .../custom-theme/jquery-ui-1.8.15.custom.css | 461 + .../css/custom-theme/jquery-ui-1.8.custom.css | 286 + .../ui-bg_diagonals-thick_18_b81900_40x40.png | Bin 0 -> 260 bytes .../ui-bg_diagonals-thick_20_666666_40x40.png | Bin 0 -> 251 bytes .../images/ui-bg_flat_10_000000_40x100.png | Bin 0 -> 178 bytes .../images/ui-bg_glass_100_f6f6f6_1x400.png | Bin 0 -> 104 bytes .../images/ui-bg_glass_100_fdf5ce_1x400.png | Bin 0 -> 125 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 105 bytes .../ui-bg_gloss-wave_35_f6a828_500x100.png | Bin 0 -> 3762 bytes .../ui-bg_highlight-soft_100_eeeeee_1x100.png | Bin 0 -> 90 bytes .../ui-bg_highlight-soft_75_ffe45c_1x100.png | Bin 0 -> 167 bytes .../images/ui-icons_222222_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_228ef1_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_ef8c08_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_ffd27a_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_ffffff_256x240.png | Bin 0 -> 4369 bytes .../css/ui-lightness/jquery-ui-1.8.custom.css | 466 + .../ui/js/jquery-ui-1.8.15.custom.min.js | 347 + .../ui/js/jquery-ui-1.8.5.custom.min.js | 778 + .../static/grappelli/js/LICENSE-JQUERY.txt | 20 + .../static/grappelli/js/SelectBox.js | 111 + .../static/grappelli/js/SelectFilter2.js | 117 + .../grappelli/static/grappelli/js/actions.js | 5 + .../static/grappelli/js/actions.min.js | 135 + .../grappelli/js/admin/DateTimeShortcuts.js | 3 + .../js/admin/RelatedObjectLookups.js | 141 + .../static/grappelli/js/admin/ordering.js | 4 + .../grappelli/static/grappelli/js/calendar.js | 3 + .../grappelli/static/grappelli/js/collapse.js | 3 + .../static/grappelli/js/collapse.min.js | 3 + .../grappelli/static/grappelli/js/compress.py | 47 + ddtcms/grappelli/static/grappelli/js/core.js | 221 + .../static/grappelli/js/dateparse.js | 3 + .../grappelli/js/getElementsBySelector.js | 167 + .../grappelli/js/grappelli/grappelli.js | 135 + .../grappelli/jquery.grp_autocomplete_fk.js | 126 + .../jquery.grp_autocomplete_generic.js | 157 + .../grappelli/jquery.grp_autocomplete_m2m.js | 181 + .../js/grappelli/jquery.grp_collapsible.js | 34 + .../grappelli/jquery.grp_collapsible_group.js | 54 + .../js/grappelli/jquery.grp_inline.js | 179 + .../js/grappelli/jquery.grp_related_fk.js | 56 + .../grappelli/jquery.grp_related_generic.js | 77 + .../js/grappelli/jquery.grp_related_m2m.js | 54 + .../js/grappelli/jquery.grp_timepicker.js | 161 + .../grappelli/static/grappelli/js/inlines.js | 3 + .../static/grappelli/js/inlines.min.js | 3 + .../static/grappelli/js/jquery.init.js | 3 + .../grappelli/static/grappelli/js/jquery.js | 3 + .../static/grappelli/js/jquery.min.js | 3 + .../grappelli/static/grappelli/js/json.min.js | 29 + .../static/grappelli/js/prepopulate.min.js | 3 + .../static/grappelli/js/timeparse.js | 3 + .../grappelli/static/grappelli/js/urlify.js | 140 + .../static/grappelli/tinymce/changelog.txt | 1303 + .../tinymce/examples/accessibility.html | 101 + .../tinymce/examples/css/content.css | 105 + .../grappelli/tinymce/examples/css/word.css | 53 + .../tinymce/examples/custom_formats.html | 111 + .../grappelli/tinymce/examples/full.html | 101 + .../grappelli/tinymce/examples/index.html | 10 + .../tinymce/examples/lists/image_list.js | 9 + .../tinymce/examples/lists/link_list.js | 10 + .../tinymce/examples/lists/media_list.js | 14 + .../tinymce/examples/lists/template_list.js | 9 + .../grappelli/tinymce/examples/media/logo.jpg | Bin 0 -> 2729 bytes .../tinymce/examples/media/logo_over.jpg | Bin 0 -> 6473 bytes .../tinymce/examples/media/sample.avi | Bin 0 -> 82944 bytes .../tinymce/examples/media/sample.dcr | Bin 0 -> 6774 bytes .../tinymce/examples/media/sample.flv | Bin 0 -> 88722 bytes .../tinymce/examples/media/sample.mov | Bin 0 -> 55622 bytes .../tinymce/examples/media/sample.ram | 1 + .../tinymce/examples/media/sample.rm | Bin 0 -> 17846 bytes .../tinymce/examples/media/sample.swf | Bin 0 -> 6118 bytes .../grappelli/tinymce/examples/menu.html | 18 + .../grappelli/tinymce/examples/simple.html | 47 + .../grappelli/tinymce/examples/skins.html | 216 + .../tinymce/examples/templates/layout1.htm | 15 + .../tinymce/examples/templates/snippet1.htm | 1 + .../grappelli/tinymce/examples/word.html | 72 + .../tinymce/jscripts/tiny_mce/langs/de.js | 1 + .../tinymce/jscripts/tiny_mce/langs/en.js | 223 + .../tinymce/jscripts/tiny_mce/license.txt | 504 + .../tiny_mce/plugins/advhr/css/advhr.css | 5 + .../tiny_mce/plugins/advhr/editor_plugin.js | 1 + .../plugins/advhr/editor_plugin_src.js | 57 + .../tiny_mce/plugins/advhr/js/rule.js | 43 + .../tiny_mce/plugins/advhr/langs/de_dlg.js | 1 + .../tiny_mce/plugins/advhr/langs/en_dlg.js | 7 + .../jscripts/tiny_mce/plugins/advhr/rule.htm | 58 + .../plugins/advimage/css/advimage.css | 13 + .../plugins/advimage/editor_plugin.js | 1 + .../plugins/advimage/editor_plugin_src.js | 47 + .../tiny_mce/plugins/advimage/image.htm | 199 + .../tiny_mce/plugins/advimage/img/sample.gif | Bin 0 -> 1624 bytes .../tiny_mce/plugins/advimage/js/image.js | 443 + .../tiny_mce/plugins/advimage/langs/de_dlg.js | 1 + .../tiny_mce/plugins/advimage/langs/en_dlg.js | 43 + .../plugins/advimage_orig/css/advimage.css | 13 + .../plugins/advimage_orig/editor_plugin.js | 1 + .../advimage_orig/editor_plugin_src.js | 50 + .../tiny_mce/plugins/advimage_orig/image.htm | 235 + .../plugins/advimage_orig/img/sample.gif | Bin 0 -> 1624 bytes .../plugins/advimage_orig/js/image.js | 458 + .../plugins/advimage_orig/langs/en_dlg.js | 45 + .../tiny_mce/plugins/advlink/css/advlink.css | 8 + .../tiny_mce/plugins/advlink/editor_plugin.js | 1 + .../plugins/advlink/editor_plugin_src.js | 58 + .../tiny_mce/plugins/advlink/js/advlink.js | 527 + .../tiny_mce/plugins/advlink/langs/de_dlg.js | 1 + .../tiny_mce/plugins/advlink/langs/en_dlg.js | 52 + .../tiny_mce/plugins/advlink/link.htm | 311 + .../plugins/advlink_orig/css/advlink.css | 8 + .../plugins/advlink_orig/editor_plugin.js | 1 + .../plugins/advlink_orig/editor_plugin_src.js | 61 + .../plugins/advlink_orig/js/advlink.js | 532 + .../plugins/advlink_orig/langs/en_dlg.js | 54 + .../tiny_mce/plugins/advlink_orig/link.htm | 338 + .../tiny_mce/plugins/advlist/editor_plugin.js | 1 + .../plugins/advlist/editor_plugin_src.js | 161 + .../plugins/autolink/editor_plugin.js | 1 + .../plugins/autolink/editor_plugin_src.js | 169 + .../plugins/autoresize/editor_plugin.js | 1 + .../plugins/autoresize/editor_plugin_src.js | 128 + .../plugins/autosave/editor_plugin.js | 1 + .../plugins/autosave/editor_plugin_src.js | 431 + .../tiny_mce/plugins/autosave/langs/en.js | 4 + .../tiny_mce/plugins/bbcode/editor_plugin.js | 1 + .../plugins/bbcode/editor_plugin_src.js | 120 + .../plugins/contextmenu/editor_plugin.js | 1 + .../plugins/contextmenu/editor_plugin_src.js | 161 + .../plugins/directionality/editor_plugin.js | 1 + .../directionality/editor_plugin_src.js | 82 + .../plugins/emotions/editor_plugin.js | 1 + .../plugins/emotions/editor_plugin_src.js | 43 + .../tiny_mce/plugins/emotions/emotions.htm | 41 + .../plugins/emotions/img/smiley-cool.gif | Bin 0 -> 354 bytes .../plugins/emotions/img/smiley-cry.gif | Bin 0 -> 329 bytes .../emotions/img/smiley-embarassed.gif | Bin 0 -> 331 bytes .../emotions/img/smiley-foot-in-mouth.gif | Bin 0 -> 344 bytes .../plugins/emotions/img/smiley-frown.gif | Bin 0 -> 340 bytes .../plugins/emotions/img/smiley-innocent.gif | Bin 0 -> 336 bytes .../plugins/emotions/img/smiley-kiss.gif | Bin 0 -> 338 bytes .../plugins/emotions/img/smiley-laughing.gif | Bin 0 -> 344 bytes .../emotions/img/smiley-money-mouth.gif | Bin 0 -> 321 bytes .../plugins/emotions/img/smiley-sealed.gif | Bin 0 -> 325 bytes .../plugins/emotions/img/smiley-smile.gif | Bin 0 -> 345 bytes .../plugins/emotions/img/smiley-surprised.gif | Bin 0 -> 342 bytes .../emotions/img/smiley-tongue-out.gif | Bin 0 -> 328 bytes .../plugins/emotions/img/smiley-undecided.gif | Bin 0 -> 337 bytes .../plugins/emotions/img/smiley-wink.gif | Bin 0 -> 351 bytes .../plugins/emotions/img/smiley-yell.gif | Bin 0 -> 336 bytes .../tiny_mce/plugins/emotions/js/emotions.js | 22 + .../tiny_mce/plugins/emotions/langs/de_dlg.js | 1 + .../tiny_mce/plugins/emotions/langs/en_dlg.js | 20 + .../tiny_mce/plugins/example/dialog.htm | 22 + .../tiny_mce/plugins/example/editor_plugin.js | 1 + .../plugins/example/editor_plugin_src.js | 84 + .../tiny_mce/plugins/example/img/example.gif | Bin 0 -> 87 bytes .../tiny_mce/plugins/example/js/dialog.js | 19 + .../tiny_mce/plugins/example/langs/en.js | 3 + .../tiny_mce/plugins/example/langs/en_dlg.js | 3 + .../plugins/fullpage/css/fullpage.css | 143 + .../plugins/fullpage/editor_plugin.js | 1 + .../plugins/fullpage/editor_plugin_src.js | 399 + .../tiny_mce/plugins/fullpage/fullpage.htm | 259 + .../tiny_mce/plugins/fullpage/js/fullpage.js | 232 + .../tiny_mce/plugins/fullpage/langs/de_dlg.js | 1 + .../tiny_mce/plugins/fullpage/langs/en_dlg.js | 85 + .../plugins/fullscreen/editor_plugin.js | 1 + .../plugins/fullscreen/editor_plugin_src.js | 159 + .../plugins/fullscreen/fullscreen.htm | 109 + .../plugins/grappelli/editor_plugin.js | 1 + .../plugins/grappelli/editor_plugin_src.js | 202 + .../plugins/grappelli/img/show_advanced.png | Bin 0 -> 320 bytes .../plugins/grappelli/img/visualchars.png | Bin 0 -> 285 bytes .../tiny_mce/plugins/grappelli/langs/de.js | 4 + .../tiny_mce/plugins/grappelli/langs/en.js | 4 + .../tiny_mce/plugins/grappelli/langs/fr.js | 4 + .../tiny_mce/plugins/grappelli/langs/ru.js | 4 + .../grappelli_contextmenu/editor_plugin.js | 1 + .../editor_plugin_src.js | 250 + .../plugins/grappelli_contextmenu/langs/de.js | 20 + .../plugins/grappelli_contextmenu/langs/en.js | 20 + .../plugins/grappelli_contextmenu/langs/fr.js | 10 + .../plugins/grappelli_contextmenu/langs/ru.js | 20 + .../tiny_mce/plugins/iespell/editor_plugin.js | 1 + .../plugins/iespell/editor_plugin_src.js | 54 + .../plugins/inlinepopups/editor_plugin.js | 1 + .../plugins/inlinepopups/editor_plugin_src.js | 696 + .../skins/clearlooks2/img/alert.gif | Bin 0 -> 818 bytes .../skins/clearlooks2/img/button.gif | Bin 0 -> 280 bytes .../skins/clearlooks2/img/buttons.gif | Bin 0 -> 1195 bytes .../skins/clearlooks2/img/confirm.gif | Bin 0 -> 915 bytes .../skins/clearlooks2/img/corners.gif | Bin 0 -> 911 bytes .../skins/clearlooks2/img/horizontal.gif | Bin 0 -> 769 bytes .../skins/clearlooks2/img/vertical.gif | Bin 0 -> 92 bytes .../inlinepopups/skins/clearlooks2/window.css | 90 + .../plugins/inlinepopups/template.htm | 387 + .../plugins/insertdatetime/editor_plugin.js | 1 + .../insertdatetime/editor_plugin_src.js | 83 + .../tiny_mce/plugins/layer/editor_plugin.js | 1 + .../plugins/layer/editor_plugin_src.js | 214 + .../plugins/legacyoutput/editor_plugin.js | 1 + .../plugins/legacyoutput/editor_plugin_src.js | 139 + .../tiny_mce/plugins/lists/editor_plugin.js | 1 + .../plugins/lists/editor_plugin_src.js | 617 + .../tiny_mce/plugins/media/css/content.css | 6 + .../tiny_mce/plugins/media/css/media.css | 16 + .../tiny_mce/plugins/media/editor_plugin.js | 1 + .../plugins/media/editor_plugin_src.js | 374 + .../tiny_mce/plugins/media/img/flash.gif | Bin 0 -> 241 bytes .../tiny_mce/plugins/media/img/flv_player.swf | Bin 0 -> 11668 bytes .../tiny_mce/plugins/media/img/quicktime.gif | Bin 0 -> 303 bytes .../tiny_mce/plugins/media/img/realmedia.gif | Bin 0 -> 439 bytes .../tiny_mce/plugins/media/img/shockwave.gif | Bin 0 -> 387 bytes .../tiny_mce/plugins/media/img/trans.gif | Bin 0 -> 43 bytes .../plugins/media/img/windowsmedia.gif | Bin 0 -> 415 bytes .../tiny_mce/plugins/media/js/embed.js | 73 + .../tiny_mce/plugins/media/js/media.js | 630 + .../tiny_mce/plugins/media/langs/de_dlg.js | 1 + .../tiny_mce/plugins/media/langs/en_dlg.js | 109 + .../jscripts/tiny_mce/plugins/media/media.htm | 643 + .../tiny_mce/plugins/media_orig/css/media.css | 17 + .../plugins/media_orig/editor_plugin.js | 1 + .../plugins/media_orig/editor_plugin_src.js | 770 + .../tiny_mce/plugins/media_orig/js/embed.js | 73 + .../tiny_mce/plugins/media_orig/js/media.js | 354 + .../plugins/media_orig/langs/en_dlg.js | 109 + .../tiny_mce/plugins/media_orig/media.htm | 812 + .../plugins/media_orig/moxieplayer.swf | Bin 0 -> 33931 bytes .../plugins/nonbreaking/editor_plugin.js | 1 + .../plugins/nonbreaking/editor_plugin_src.js | 53 + .../plugins/noneditable/editor_plugin.js | 1 + .../plugins/noneditable/editor_plugin_src.js | 92 + .../plugins/pagebreak/editor_plugin.js | 1 + .../plugins/pagebreak/editor_plugin_src.js | 74 + .../jscripts/tiny_mce/plugins/paste/blank.htm | 22 + .../tiny_mce/plugins/paste/css/blank.css | 14 + .../tiny_mce/plugins/paste/css/pasteword.css | 3 + .../tiny_mce/plugins/paste/editor_plugin.js | 1 + .../plugins/paste/editor_plugin_src.js | 394 + .../tiny_mce/plugins/paste/js/pastetext.js | 42 + .../tiny_mce/plugins/paste/js/pasteword.js | 56 + .../tiny_mce/plugins/paste/langs/de_dlg.js | 1 + .../tiny_mce/plugins/paste/langs/en_dlg.js | 5 + .../tiny_mce/plugins/paste/pastetext.htm | 34 + .../tiny_mce/plugins/paste/pasteword.htm | 23 + .../plugins/paste_orig/editor_plugin.js | 1 + .../plugins/paste_orig/editor_plugin_src.js | 933 + .../plugins/paste_orig/js/pastetext.js | 36 + .../plugins/paste_orig/js/pasteword.js | 51 + .../plugins/paste_orig/langs/en_dlg.js | 5 + .../tiny_mce/plugins/paste_orig/pastetext.htm | 27 + .../tiny_mce/plugins/paste_orig/pasteword.htm | 21 + .../tiny_mce/plugins/preview/editor_plugin.js | 1 + .../plugins/preview/editor_plugin_src.js | 53 + .../tiny_mce/plugins/preview/example.html | 28 + .../plugins/preview/jscripts/embed.js | 73 + .../tiny_mce/plugins/preview/preview.html | 17 + .../tiny_mce/plugins/print/editor_plugin.js | 1 + .../plugins/print/editor_plugin_src.js | 34 + .../tiny_mce/plugins/save/editor_plugin.js | 1 + .../plugins/save/editor_plugin_src.js | 101 + .../searchreplace/css/searchreplace.css | 6 + .../plugins/searchreplace/editor_plugin.js | 1 + .../searchreplace/editor_plugin_src.js | 54 + .../plugins/searchreplace/js/searchreplace.js | 126 + .../plugins/searchreplace/langs/de_dlg.js | 1 + .../plugins/searchreplace/langs/en_dlg.js | 16 + .../plugins/searchreplace/searchreplace.htm | 87 + .../searchreplace_orig/css/searchreplace.css | 6 + .../searchreplace_orig/editor_plugin.js | 1 + .../searchreplace_orig/editor_plugin_src.js | 61 + .../searchreplace_orig/js/searchreplace.js | 142 + .../searchreplace_orig/langs/en_dlg.js | 16 + .../searchreplace_orig/searchreplace.htm | 100 + .../plugins/spellchecker/css/content.css | 1 + .../plugins/spellchecker/editor_plugin.js | 1 + .../plugins/spellchecker/editor_plugin_src.js | 435 + .../plugins/spellchecker/img/wline.gif | Bin 0 -> 46 bytes .../tiny_mce/plugins/style/css/props.css | 13 + .../tiny_mce/plugins/style/editor_plugin.js | 1 + .../plugins/style/editor_plugin_src.js | 55 + .../tiny_mce/plugins/style/js/props.js | 635 + .../tiny_mce/plugins/style/langs/de_dlg.js | 1 + .../tiny_mce/plugins/style/langs/en_dlg.js | 70 + .../jscripts/tiny_mce/plugins/style/props.htm | 838 + .../plugins/tabfocus/editor_plugin.js | 1 + .../plugins/tabfocus/editor_plugin_src.js | 114 + .../jscripts/tiny_mce/plugins/table/cell.htm | 178 + .../tiny_mce/plugins/table/css/cell.css | 17 + .../tiny_mce/plugins/table/css/row.css | 25 + .../tiny_mce/plugins/table/css/table.css | 13 + .../tiny_mce/plugins/table/editor_plugin.js | 1 + .../plugins/table/editor_plugin_src.js | 1202 + .../tiny_mce/plugins/table/js/cell.js | 284 + .../tiny_mce/plugins/table/js/merge_cells.js | 27 + .../jscripts/tiny_mce/plugins/table/js/row.js | 232 + .../tiny_mce/plugins/table/js/table.js | 450 + .../tiny_mce/plugins/table/langs/de_dlg.js | 1 + .../tiny_mce/plugins/table/langs/en_dlg.js | 74 + .../tiny_mce/plugins/table/merge_cells.htm | 32 + .../jscripts/tiny_mce/plugins/table/row.htm | 157 + .../jscripts/tiny_mce/plugins/table/table.htm | 188 + .../tiny_mce/plugins/template/blank.htm | 12 + .../plugins/template/css/template.css | 23 + .../plugins/template/editor_plugin.js | 137 + .../plugins/template/editor_plugin_src.js | 156 + .../tiny_mce/plugins/template/js/template.js | 106 + .../tiny_mce/plugins/template/langs/de_dlg.js | 1 + .../tiny_mce/plugins/template/langs/en_dlg.js | 15 + .../tiny_mce/plugins/template/template.htm | 41 + .../tiny_mce/plugins/template_orig/blank.htm | 12 + .../plugins/template_orig/css/template.css | 23 + .../plugins/template_orig/editor_plugin.js | 1 + .../template_orig/editor_plugin_src.js | 159 + .../plugins/template_orig/js/template.js | 106 + .../plugins/template_orig/langs/en_dlg.js | 15 + .../plugins/template_orig/template.htm | 31 + .../plugins/visualchars/editor_plugin.js | 1 + .../plugins/visualchars/editor_plugin_src.js | 83 + .../plugins/wordcount/editor_plugin.js | 1 + .../plugins/wordcount/editor_plugin_src.js | 114 + .../tiny_mce/plugins/xhtmlxtras/abbr.htm | 142 + .../tiny_mce/plugins/xhtmlxtras/acronym.htm | 142 + .../plugins/xhtmlxtras/attributes.htm | 149 + .../tiny_mce/plugins/xhtmlxtras/cite.htm | 142 + .../plugins/xhtmlxtras/css/attributes.css | 11 + .../tiny_mce/plugins/xhtmlxtras/css/popup.css | 9 + .../tiny_mce/plugins/xhtmlxtras/del.htm | 162 + .../plugins/xhtmlxtras/editor_plugin.js | 1 + .../plugins/xhtmlxtras/editor_plugin_src.js | 132 + .../tiny_mce/plugins/xhtmlxtras/ins.htm | 162 + .../tiny_mce/plugins/xhtmlxtras/js/abbr.js | 28 + .../tiny_mce/plugins/xhtmlxtras/js/acronym.js | 28 + .../plugins/xhtmlxtras/js/attributes.js | 111 + .../tiny_mce/plugins/xhtmlxtras/js/cite.js | 28 + .../tiny_mce/plugins/xhtmlxtras/js/del.js | 53 + .../plugins/xhtmlxtras/js/element_common.js | 229 + .../tiny_mce/plugins/xhtmlxtras/js/ins.js | 53 + .../plugins/xhtmlxtras/langs/de_dlg.js | 1 + .../plugins/xhtmlxtras/langs/en_dlg.js | 32 + .../tiny_mce/themes/advanced/about.htm | 52 + .../tiny_mce/themes/advanced/anchor.htm | 26 + .../tiny_mce/themes/advanced/charmap.htm | 51 + .../tiny_mce/themes/advanced/color_picker.htm | 74 + .../themes/advanced/editor_template.js | 1 + .../themes/advanced/editor_template_src.js | 1360 + .../tiny_mce/themes/advanced/image.htm | 80 + .../themes/advanced/img/colorpicker.jpg | Bin 0 -> 3189 bytes .../tiny_mce/themes/advanced/img/flash.gif | Bin 0 -> 241 bytes .../tiny_mce/themes/advanced/img/icons.gif | Bin 0 -> 11794 bytes .../tiny_mce/themes/advanced/img/iframe.gif | Bin 0 -> 600 bytes .../themes/advanced/img/pagebreak.gif | Bin 0 -> 325 bytes .../themes/advanced/img/quicktime.gif | Bin 0 -> 303 bytes .../themes/advanced/img/realmedia.gif | Bin 0 -> 439 bytes .../themes/advanced/img/shockwave.gif | Bin 0 -> 387 bytes .../tiny_mce/themes/advanced/img/trans.gif | Bin 0 -> 43 bytes .../tiny_mce/themes/advanced/img/video.gif | Bin 0 -> 597 bytes .../themes/advanced/img/windowsmedia.gif | Bin 0 -> 415 bytes .../tiny_mce/themes/advanced/js/about.js | 73 + .../tiny_mce/themes/advanced/js/anchor.js | 42 + .../tiny_mce/themes/advanced/js/charmap.js | 355 + .../themes/advanced/js/color_picker.js | 329 + .../tiny_mce/themes/advanced/js/image.js | 247 + .../tiny_mce/themes/advanced/js/link.js | 153 + .../themes/advanced/js/source_editor.js | 56 + .../tiny_mce/themes/advanced/langs/de.js | 1 + .../tiny_mce/themes/advanced/langs/de_dlg.js | 1 + .../tiny_mce/themes/advanced/langs/en.js | 68 + .../tiny_mce/themes/advanced/langs/en_dlg.js | 54 + .../tiny_mce/themes/advanced/link.htm | 57 + .../tiny_mce/themes/advanced/shortcuts.htm | 47 + .../themes/advanced/skins/default/content.css | 47 + .../themes/advanced/skins/default/dialog.css | 117 + .../advanced/skins/default/img/buttons.png | Bin 0 -> 3274 bytes .../advanced/skins/default/img/items.gif | Bin 0 -> 70 bytes .../advanced/skins/default/img/menu_arrow.gif | Bin 0 -> 68 bytes .../advanced/skins/default/img/menu_check.gif | Bin 0 -> 70 bytes .../advanced/skins/default/img/progress.gif | Bin 0 -> 1787 bytes .../advanced/skins/default/img/tabs.gif | Bin 0 -> 1326 bytes .../themes/advanced/skins/default/ui.css | 213 + .../advanced/skins/grappelli/content.css | 27 + .../advanced/skins/grappelli/content_base.css | 56 + .../grappelli/content_documentstructure.css | 69 + .../content_documentstructure_de.css | 16 + .../content_documentstructure_en.css | 16 + .../advanced/skins/grappelli/content_grid.css | 85 + .../skins/grappelli/content_typography.css | 96 + .../advanced/skins/grappelli/dialog.css | 431 + .../grappelli/img/buttons/blockquote.png | Bin 0 -> 330 bytes .../skins/grappelli/img/buttons/bold.png | Bin 0 -> 274 bytes .../skins/grappelli/img/buttons/bullist.png | Bin 0 -> 205 bytes .../skins/grappelli/img/buttons/charmap.png | Bin 0 -> 324 bytes .../skins/grappelli/img/buttons/cleanup.png | Bin 0 -> 345 bytes .../skins/grappelli/img/buttons/code.png | Bin 0 -> 435 bytes .../grappelli/img/buttons/fullscreen.png | Bin 0 -> 252 bytes .../skins/grappelli/img/buttons/image.png | Bin 0 -> 325 bytes .../skins/grappelli/img/buttons/italic.png | Bin 0 -> 239 bytes .../skins/grappelli/img/buttons/link.png | Bin 0 -> 280 bytes .../skins/grappelli/img/buttons/media.png | Bin 0 -> 301 bytes .../skins/grappelli/img/buttons/numlist.png | Bin 0 -> 286 bytes .../skins/grappelli/img/buttons/pasteword.png | Bin 0 -> 351 bytes .../skins/grappelli/img/buttons/redo.png | Bin 0 -> 295 bytes .../skins/grappelli/img/buttons/search.png | Bin 0 -> 414 bytes .../grappelli/img/buttons/show_advanced.png | Bin 0 -> 320 bytes .../skins/grappelli/img/buttons/table.png | Bin 0 -> 299 bytes .../skins/grappelli/img/buttons/template.png | Bin 0 -> 299 bytes .../skins/grappelli/img/buttons/underline.png | Bin 0 -> 252 bytes .../skins/grappelli/img/buttons/undo.png | Bin 0 -> 297 bytes .../skins/grappelli/img/buttons/unlink.png | Bin 0 -> 287 bytes .../grappelli/img/buttons/visualchars.png | Bin 0 -> 301 bytes .../img/icons/icon-fb_show-hover.png | Bin 0 -> 3312 bytes .../grappelli/img/icons/icon-fb_show.png | Bin 0 -> 3305 bytes .../grappelli/img/icons/icon-mceResize.png | Bin 0 -> 266 bytes .../skins/grappelli/img/menu/icon-mceOpen.png | Bin 0 -> 182 bytes .../themes/advanced/skins/grappelli/ui.css | 486 + .../advanced/skins/highcontrast/content.css | 23 + .../advanced/skins/highcontrast/dialog.css | 105 + .../themes/advanced/skins/highcontrast/ui.css | 101 + .../themes/advanced/skins/o2k7/content.css | 46 + .../themes/advanced/skins/o2k7/dialog.css | 117 + .../advanced/skins/o2k7/img/button_bg.png | Bin 0 -> 5859 bytes .../skins/o2k7/img/button_bg_black.png | Bin 0 -> 3736 bytes .../skins/o2k7/img/button_bg_silver.png | Bin 0 -> 5358 bytes .../themes/advanced/skins/o2k7/ui.css | 216 + .../themes/advanced/skins/o2k7/ui_black.css | 8 + .../themes/advanced/skins/o2k7/ui_silver.css | 5 + .../themes/advanced/source_editor.htm | 26 + .../tiny_mce/themes/simple/editor_template.js | 1 + .../themes/simple/editor_template_src.js | 84 + .../tiny_mce/themes/simple/img/icons.gif | Bin 0 -> 1440 bytes .../tiny_mce/themes/simple/langs/en.js | 11 + .../themes/simple/skins/default/content.css | 25 + .../themes/simple/skins/default/ui.css | 32 + .../themes/simple/skins/o2k7/content.css | 17 + .../simple/skins/o2k7/img/button_bg.png | Bin 0 -> 5102 bytes .../tiny_mce/themes/simple/skins/o2k7/ui.css | 35 + .../tinymce/jscripts/tiny_mce/tiny_mce.js | 1 + .../jscripts/tiny_mce/tiny_mce_popup.js | 5 + .../tinymce/jscripts/tiny_mce/tiny_mce_src.js | 15812 ++++++++++++ .../tiny_mce/utils/editable_selects.js | 70 + .../jscripts/tiny_mce/utils/form_utils.js | 210 + .../tinymce/jscripts/tiny_mce/utils/mctabs.js | 162 + .../jscripts/tiny_mce/utils/validate.js | 252 + .../grappelli/tinymce_setup/tinymce_setup.js | 144 + ddtcms/grappelli/templates/admin/404.html | 13 + ddtcms/grappelli/templates/admin/500.html | 16 + ddtcms/grappelli/templates/admin/actions.html | 15 + .../grappelli/templates/admin/app_index.html | 40 + .../templates/admin/auth/user/add_form.html | 36 + .../admin/auth/user/change_password.html | 69 + ddtcms/grappelli/templates/admin/base.html | 83 + .../grappelli/templates/admin/base_site.html | 10 + .../templates/admin/change_form.html | 168 + .../templates/admin/change_list.html | 216 + .../templates/admin/change_list_results.html | 31 + .../csv_export_selected_confirmation.html | 60 + .../templates/admin/date_hierarchy.html | 13 + .../templates/admin/delete_confirmation.html | 60 + .../admin/delete_selected_confirmation.html | 66 + .../templates/admin/edit_inline/stacked.html | 232 + .../templates/admin/edit_inline/tabular.html | 276 + ddtcms/grappelli/templates/admin/filter.html | 7 + .../templates/admin/includes/fieldset.html | 33 + .../admin/includes/fieldset_inline.html | 33 + .../admin/includes_grappelli/header.html | 57 + ddtcms/grappelli/templates/admin/index.html | 61 + .../templates/admin/invalid_setup.html | 12 + ddtcms/grappelli/templates/admin/login.html | 66 + .../templates/admin/object_history.html | 51 + .../grappelli/templates/admin/pagination.html | 30 + .../admin/prepopulated_fields_js.html | 17 + .../templates/admin/search_form.html | 20 + .../templates/admin/submit_line.html | 10 + .../templates/admin/template_validator.html | 34 + .../templates/admin_doc/bookmarklets.html | 37 + .../grappelli/templates/admin_doc/index.html | 34 + .../templates/admin_doc/missing_docutils.html | 14 + .../templates/admin_doc/model_detail.html | 51 + .../templates/admin_doc/model_index.html | 45 + .../templates/admin_doc/template_detail.html | 21 + .../admin_doc/template_filter_index.html | 47 + .../admin_doc/template_tag_index.html | 48 + .../templates/admin_doc/view_detail.html | 30 + .../templates/admin_doc/view_index.html | 46 + .../templates/registration/logged_out.html | 18 + .../registration/password_change_done.html | 25 + .../registration/password_change_form.html | 61 + .../registration/password_reset_complete.html | 12 + .../registration/password_reset_confirm.html | 23 + .../registration/password_reset_done.html | 11 + .../registration/password_reset_email.html | 16 + .../registration/password_reset_form.html | 15 + ddtcms/grappelli/templatetags/__init__.py | 0 ddtcms/grappelli/templatetags/grp_tags.py | 232 + ddtcms/grappelli/urls.py | 15 + ddtcms/grappelli/views/__init__.py | 0 ddtcms/grappelli/views/related.py | 113 + ddtcms/guestbook/__init__.py | 3 + ddtcms/guestbook/admin.py | 15 + ddtcms/guestbook/forms.py | 145 + ddtcms/guestbook/models.py | 69 + ddtcms/guestbook/tests.py | 16 + ddtcms/guestbook/urls.py | 25 + ddtcms/guestbook/views.py | 95 + ddtcms/home/__init__.py | 0 ddtcms/home/fixtures/initial_data.json | 1 + ddtcms/home/models.py | 1 + ddtcms/home/tests.py | 16 + ddtcms/home/urls.py | 42 + ddtcms/home/views.py | 116 + ddtcms/link/__init__.py | 0 ddtcms/link/admin.py | 57 + ddtcms/link/fixtures/initial_data.json | 1 + ddtcms/link/forms.py | 52 + ddtcms/link/managers.py | 56 + ddtcms/link/models.py | 192 + ddtcms/link/templatetags/__init__.py | 0 ddtcms/link/templatetags/link_tags.py | 168 + ddtcms/link/tests.py | 16 + ddtcms/link/urls.py | 60 + ddtcms/link/views.py | 238 + ddtcms/locale/zh_CN/LC_MESSAGES/django.mo | Bin 0 -> 16149 bytes ddtcms/locale/zh_CN/LC_MESSAGES/django.po | 3702 +++ ddtcms/makezhCN.cmd | 1 + ddtcms/manage.py | 14 + .../media/editor/danamicmutiplefilefield.html | 27 + .../kindeditor-4.0.1/asp.net/README.txt | 12 + .../kindeditor-4.0.1/asp.net/bin/LitJSON.dll | Bin 0 -> 49664 bytes .../editor/kindeditor-4.0.1/asp.net/demo.aspx | 53 + .../asp.net/file_manager_json.ashx | 227 + .../kindeditor-4.0.1/asp.net/upload_json.ashx | 121 + .../kindeditor-4.0.1/asp/JSON_2.0.4.asp | 210 + .../kindeditor-4.0.1/asp/UpLoad_Class.asp | 561 + .../editor/kindeditor-4.0.1/asp/demo.asp | 57 + .../asp/file_manager_json.asp | 228 + .../kindeditor-4.0.1/asp/upload_json.asp | 119 + .../examples/colorpicker.html | 36 + .../examples/custom-plugin.html | 98 + .../examples/custom-theme.html | 33 + .../kindeditor-4.0.1/examples/default.html | 72 + .../kindeditor-4.0.1/examples/dialog.html | 41 + .../examples/dynamic-load.html | 43 + .../examples/file-manager.html | 32 + .../examples/filter-mode.html | 33 + .../examples/image-dialog.html | 31 + .../kindeditor-4.0.1/examples/index.css | 19 + .../kindeditor-4.0.1/examples/index.html | 51 + .../examples/multi-language.html | 44 + .../kindeditor-4.0.1/examples/newline.html | 44 + .../kindeditor-4.0.1/examples/node.html | 46 + .../kindeditor-4.0.1/examples/readonly.html | 42 + .../kindeditor-4.0.1/examples/simple.html | 37 + .../kindeditor-4.0.1/examples/total.html | 545 + .../examples/uploadbutton.html | 32 + .../kindeditor-4.0.1/examples/url-type.html | 53 + .../kindeditor-4.0.1/examples/word-count.html | 37 + .../editor/kindeditor-4.0.1/jsp/README.txt | 15 + .../editor/kindeditor-4.0.1/jsp/demo.jsp | 56 + .../jsp/file_manager_json.jsp | 155 + .../jsp/lib/commons-fileupload-1.2.1.jar | Bin 0 -> 57779 bytes .../jsp/lib/commons-io-1.4.jar | Bin 0 -> 109043 bytes .../jsp/lib/json_simple-1.1.jar | Bin 0 -> 16046 bytes .../kindeditor-4.0.1/jsp/upload_json.jsp | 122 + .../editor/kindeditor-4.0.1/kindeditor-min.js | 166 + .../editor/kindeditor-4.0.1/kindeditor.js | 5522 +++++ .../media/editor/kindeditor-4.0.1/lang/en.js | 210 + .../editor/kindeditor-4.0.1/lang/zh_CN.js | 214 + .../editor/kindeditor-4.0.1/lang/zh_TW.js | 212 + .../media/editor/kindeditor-4.0.1/license.txt | 1 + .../editor/kindeditor-4.0.1/php/JSON.php | 806 + .../editor/kindeditor-4.0.1/php/demo.php | 53 + .../php/file_manager_json.php | 138 + .../kindeditor-4.0.1/php/upload_json.php | 111 + .../kindeditor-4.0.1/plugins/anchor/anchor.js | 46 + .../plugins/clearhtml/clearhtml.js | 29 + .../kindeditor-4.0.1/plugins/code/code.js | 57 + .../plugins/code/prettify.css | 13 + .../kindeditor-4.0.1/plugins/code/prettify.js | 28 + .../plugins/emoticons/emoticons.js | 129 + .../plugins/emoticons/images/0.gif | Bin 0 -> 1810 bytes .../plugins/emoticons/images/1.gif | Bin 0 -> 1582 bytes .../plugins/emoticons/images/10.gif | Bin 0 -> 3716 bytes .../plugins/emoticons/images/100.gif | Bin 0 -> 1780 bytes .../plugins/emoticons/images/101.gif | Bin 0 -> 2443 bytes .../plugins/emoticons/images/102.gif | Bin 0 -> 1446 bytes .../plugins/emoticons/images/103.gif | Bin 0 -> 2166 bytes .../plugins/emoticons/images/104.gif | Bin 0 -> 2169 bytes .../plugins/emoticons/images/105.gif | Bin 0 -> 1277 bytes .../plugins/emoticons/images/106.gif | Bin 0 -> 1041 bytes .../plugins/emoticons/images/107.gif | Bin 0 -> 1058 bytes .../plugins/emoticons/images/108.gif | Bin 0 -> 1046 bytes .../plugins/emoticons/images/109.gif | Bin 0 -> 1081 bytes .../plugins/emoticons/images/11.gif | Bin 0 -> 8033 bytes .../plugins/emoticons/images/110.gif | Bin 0 -> 1082 bytes .../plugins/emoticons/images/111.gif | Bin 0 -> 1039 bytes .../plugins/emoticons/images/112.gif | Bin 0 -> 1111 bytes .../plugins/emoticons/images/113.gif | Bin 0 -> 1015 bytes .../plugins/emoticons/images/114.gif | Bin 0 -> 1003 bytes .../plugins/emoticons/images/115.gif | Bin 0 -> 1061 bytes .../plugins/emoticons/images/116.gif | Bin 0 -> 996 bytes .../plugins/emoticons/images/117.gif | Bin 0 -> 1041 bytes .../plugins/emoticons/images/118.gif | Bin 0 -> 1012 bytes .../plugins/emoticons/images/119.gif | Bin 0 -> 1101 bytes .../plugins/emoticons/images/12.gif | Bin 0 -> 2247 bytes .../plugins/emoticons/images/120.gif | Bin 0 -> 1008 bytes .../plugins/emoticons/images/121.gif | Bin 0 -> 1060 bytes .../plugins/emoticons/images/122.gif | Bin 0 -> 999 bytes .../plugins/emoticons/images/123.gif | Bin 0 -> 1055 bytes .../plugins/emoticons/images/124.gif | Bin 0 -> 1022 bytes .../plugins/emoticons/images/125.gif | Bin 0 -> 1013 bytes .../plugins/emoticons/images/126.gif | Bin 0 -> 1030 bytes .../plugins/emoticons/images/127.gif | Bin 0 -> 956 bytes .../plugins/emoticons/images/128.gif | Bin 0 -> 1022 bytes .../plugins/emoticons/images/129.gif | Bin 0 -> 972 bytes .../plugins/emoticons/images/13.gif | Bin 0 -> 1736 bytes .../plugins/emoticons/images/130.gif | Bin 0 -> 980 bytes .../plugins/emoticons/images/131.gif | Bin 0 -> 945 bytes .../plugins/emoticons/images/132.gif | Bin 0 -> 936 bytes .../plugins/emoticons/images/133.gif | Bin 0 -> 1012 bytes .../plugins/emoticons/images/134.gif | Bin 0 -> 968 bytes .../plugins/emoticons/images/14.gif | Bin 0 -> 4006 bytes .../plugins/emoticons/images/15.gif | Bin 0 -> 1562 bytes .../plugins/emoticons/images/16.gif | Bin 0 -> 1413 bytes .../plugins/emoticons/images/17.gif | Bin 0 -> 3366 bytes .../plugins/emoticons/images/18.gif | Bin 0 -> 8137 bytes .../plugins/emoticons/images/19.gif | Bin 0 -> 8135 bytes .../plugins/emoticons/images/2.gif | Bin 0 -> 1804 bytes .../plugins/emoticons/images/20.gif | Bin 0 -> 1808 bytes .../plugins/emoticons/images/21.gif | Bin 0 -> 1864 bytes .../plugins/emoticons/images/22.gif | Bin 0 -> 3010 bytes .../plugins/emoticons/images/23.gif | Bin 0 -> 1950 bytes .../plugins/emoticons/images/24.gif | Bin 0 -> 2257 bytes .../plugins/emoticons/images/25.gif | Bin 0 -> 2446 bytes .../plugins/emoticons/images/26.gif | Bin 0 -> 4014 bytes .../plugins/emoticons/images/27.gif | Bin 0 -> 2893 bytes .../plugins/emoticons/images/28.gif | Bin 0 -> 3262 bytes .../plugins/emoticons/images/29.gif | Bin 0 -> 5861 bytes .../plugins/emoticons/images/3.gif | Bin 0 -> 1852 bytes .../plugins/emoticons/images/30.gif | Bin 0 -> 1780 bytes .../plugins/emoticons/images/31.gif | Bin 0 -> 5174 bytes .../plugins/emoticons/images/32.gif | Bin 0 -> 7189 bytes .../plugins/emoticons/images/33.gif | Bin 0 -> 4317 bytes .../plugins/emoticons/images/34.gif | Bin 0 -> 2140 bytes .../plugins/emoticons/images/35.gif | Bin 0 -> 13392 bytes .../plugins/emoticons/images/36.gif | Bin 0 -> 1417 bytes .../plugins/emoticons/images/37.gif | Bin 0 -> 1195 bytes .../plugins/emoticons/images/38.gif | Bin 0 -> 1674 bytes .../plugins/emoticons/images/39.gif | Bin 0 -> 1798 bytes .../plugins/emoticons/images/4.gif | Bin 0 -> 1977 bytes .../plugins/emoticons/images/40.gif | Bin 0 -> 10092 bytes .../plugins/emoticons/images/41.gif | Bin 0 -> 3368 bytes .../plugins/emoticons/images/42.gif | Bin 0 -> 13367 bytes .../plugins/emoticons/images/43.gif | Bin 0 -> 4327 bytes .../plugins/emoticons/images/44.gif | Bin 0 -> 1571 bytes .../plugins/emoticons/images/45.gif | Bin 0 -> 4692 bytes .../plugins/emoticons/images/46.gif | Bin 0 -> 5162 bytes .../plugins/emoticons/images/47.gif | Bin 0 -> 3685 bytes .../plugins/emoticons/images/48.gif | Bin 0 -> 1755 bytes .../plugins/emoticons/images/49.gif | Bin 0 -> 6361 bytes .../plugins/emoticons/images/5.gif | Bin 0 -> 1866 bytes .../plugins/emoticons/images/50.gif | Bin 0 -> 3073 bytes .../plugins/emoticons/images/51.gif | Bin 0 -> 3731 bytes .../plugins/emoticons/images/52.gif | Bin 0 -> 1532 bytes .../plugins/emoticons/images/53.gif | Bin 0 -> 2056 bytes .../plugins/emoticons/images/54.gif | Bin 0 -> 2362 bytes .../plugins/emoticons/images/55.gif | Bin 0 -> 1582 bytes .../plugins/emoticons/images/56.gif | Bin 0 -> 1170 bytes .../plugins/emoticons/images/57.gif | Bin 0 -> 5072 bytes .../plugins/emoticons/images/58.gif | Bin 0 -> 2596 bytes .../plugins/emoticons/images/59.gif | Bin 0 -> 1533 bytes .../plugins/emoticons/images/6.gif | Bin 0 -> 3556 bytes .../plugins/emoticons/images/60.gif | Bin 0 -> 2667 bytes .../plugins/emoticons/images/61.gif | Bin 0 -> 1136 bytes .../plugins/emoticons/images/62.gif | Bin 0 -> 1269 bytes .../plugins/emoticons/images/63.gif | Bin 0 -> 971 bytes .../plugins/emoticons/images/64.gif | Bin 0 -> 988 bytes .../plugins/emoticons/images/65.gif | Bin 0 -> 5285 bytes .../plugins/emoticons/images/66.gif | Bin 0 -> 1159 bytes .../plugins/emoticons/images/67.gif | Bin 0 -> 2746 bytes .../plugins/emoticons/images/68.gif | Bin 0 -> 4148 bytes .../plugins/emoticons/images/69.gif | Bin 0 -> 1015 bytes .../plugins/emoticons/images/7.gif | Bin 0 -> 3929 bytes .../plugins/emoticons/images/70.gif | Bin 0 -> 1162 bytes .../plugins/emoticons/images/71.gif | Bin 0 -> 824 bytes .../plugins/emoticons/images/72.gif | Bin 0 -> 3679 bytes .../plugins/emoticons/images/73.gif | Bin 0 -> 2195 bytes .../plugins/emoticons/images/74.gif | Bin 0 -> 2454 bytes .../plugins/emoticons/images/75.gif | Bin 0 -> 1222 bytes .../plugins/emoticons/images/76.gif | Bin 0 -> 1211 bytes .../plugins/emoticons/images/77.gif | Bin 0 -> 1151 bytes .../plugins/emoticons/images/78.gif | Bin 0 -> 1565 bytes .../plugins/emoticons/images/79.gif | Bin 0 -> 1518 bytes .../plugins/emoticons/images/8.gif | Bin 0 -> 4679 bytes .../plugins/emoticons/images/80.gif | Bin 0 -> 1537 bytes .../plugins/emoticons/images/81.gif | Bin 0 -> 1591 bytes .../plugins/emoticons/images/82.gif | Bin 0 -> 1547 bytes .../plugins/emoticons/images/83.gif | Bin 0 -> 1591 bytes .../plugins/emoticons/images/84.gif | Bin 0 -> 3424 bytes .../plugins/emoticons/images/85.gif | Bin 0 -> 1581 bytes .../plugins/emoticons/images/86.gif | Bin 0 -> 1519 bytes .../plugins/emoticons/images/87.gif | Bin 0 -> 1558 bytes .../plugins/emoticons/images/88.gif | Bin 0 -> 2134 bytes .../plugins/emoticons/images/89.gif | Bin 0 -> 1219 bytes .../plugins/emoticons/images/9.gif | Bin 0 -> 3298 bytes .../plugins/emoticons/images/90.gif | Bin 0 -> 2743 bytes .../plugins/emoticons/images/91.gif | Bin 0 -> 654 bytes .../plugins/emoticons/images/92.gif | Bin 0 -> 1377 bytes .../plugins/emoticons/images/93.gif | Bin 0 -> 1119 bytes .../plugins/emoticons/images/94.gif | Bin 0 -> 3426 bytes .../plugins/emoticons/images/95.gif | Bin 0 -> 3011 bytes .../plugins/emoticons/images/96.gif | Bin 0 -> 1796 bytes .../plugins/emoticons/images/97.gif | Bin 0 -> 5300 bytes .../plugins/emoticons/images/98.gif | Bin 0 -> 1629 bytes .../plugins/emoticons/images/99.gif | Bin 0 -> 2261 bytes .../plugins/emoticons/images/static.gif | Bin 0 -> 35504 bytes .../plugins/filemanager/filemanager.js | 189 + .../plugins/filemanager/images/file-16.gif | Bin 0 -> 170 bytes .../plugins/filemanager/images/file-64.gif | Bin 0 -> 1087 bytes .../plugins/filemanager/images/folder-16.gif | Bin 0 -> 226 bytes .../plugins/filemanager/images/folder-64.gif | Bin 0 -> 1220 bytes .../plugins/filemanager/images/go-up.gif | Bin 0 -> 562 bytes .../kindeditor-4.0.1/plugins/flash/flash.js | 145 + .../kindeditor-4.0.1/plugins/image/image.js | 259 + .../plugins/image/images/align_left.gif | Bin 0 -> 639 bytes .../plugins/image/images/align_right.gif | Bin 0 -> 636 bytes .../plugins/image/images/align_top.gif | Bin 0 -> 625 bytes .../plugins/image/images/refresh.gif | Bin 0 -> 655 bytes .../plugins/insertfile/insertfile.js | 109 + .../plugins/lineheight/lineheight.js | 38 + .../kindeditor-4.0.1/plugins/link/link.js | 65 + .../kindeditor-4.0.1/plugins/map/map.html | 57 + .../kindeditor-4.0.1/plugins/map/map.js | 137 + .../kindeditor-4.0.1/plugins/media/media.js | 153 + .../plugins/pagebreak/pagebreak.js | 26 + .../plugins/plainpaste/plainpaste.js | 41 + .../plugins/preview/preview.js | 31 + .../plugins/quickformat/quickformat.js | 71 + .../kindeditor-4.0.1/plugins/table/table.js | 715 + .../plugins/template/html/1.html | 14 + .../plugins/template/html/2.html | 42 + .../plugins/template/html/3.html | 36 + .../plugins/template/template.js | 58 + .../plugins/wordpaste/wordpaste.js | 51 + .../kindeditor-4.0.1/themes/common/anchor.gif | Bin 0 -> 371 bytes .../kindeditor-4.0.1/themes/common/blank.gif | Bin 0 -> 43 bytes .../kindeditor-4.0.1/themes/common/flash.gif | Bin 0 -> 1089 bytes .../themes/common/loading.gif | Bin 0 -> 2608 bytes .../kindeditor-4.0.1/themes/common/media.gif | Bin 0 -> 1036 bytes .../kindeditor-4.0.1/themes/common/rm.gif | Bin 0 -> 989 bytes .../kindeditor-4.0.1/themes/default/bg.gif | Bin 0 -> 616 bytes .../themes/default/default.css | 988 + .../themes/default/default.png | Bin 0 -> 8391 bytes .../kindeditor-4.0.1/themes/simple/simple.css | 148 + ddtcms/media/editor/nicEdit/nicEdit.js | 806 + .../media/editor/nicEdit/nicEditorIcons.gif | Bin 0 -> 3696 bytes ddtcms/media/images/DDTCMS-Logo3.psd | Bin 0 -> 231030 bytes ddtcms/media/images/avatars/Thumbs.db | Bin 0 -> 18944 bytes ddtcms/media/images/avatars/generic.128.jpg | Bin 0 -> 1695 bytes ddtcms/media/images/avatars/generic.32.jpg | Bin 0 -> 1114 bytes ddtcms/media/images/avatars/generic.64.jpg | Bin 0 -> 1097 bytes ddtcms/media/images/avatars/generic.96.jpg | Bin 0 -> 1695 bytes ddtcms/media/images/avatars/generic.jpg | Bin 0 -> 1534 bytes ddtcms/media/images/avatars/noavatar.gif | Bin 0 -> 1075 bytes ddtcms/media/images/favicon.ico | Bin 0 -> 1150 bytes ddtcms/media/images/logo.jpg | Bin 0 -> 24811 bytes ddtcms/media/images/support/0RA23022-0.gif | Bin 0 -> 11716 bytes ddtcms/media/images/support/HTML5_Logo_64.png | Bin 0 -> 1347 bytes ddtcms/media/images/support/Thumbs.db | Bin 0 -> 15872 bytes .../media/images/support/browser_logos-64.png | Bin 0 -> 25251 bytes ddtcms/media/images/support/csdn-huyoo.jpg | Bin 0 -> 16728 bytes ddtcms/media/images/support/css3.jpg | Bin 0 -> 2936 bytes .../images/support/ddtcms-googlecode.jpg | Bin 0 -> 17702 bytes .../media/images/support/ddtcms-powered.png | Bin 0 -> 8065 bytes .../images/support/djangopowered126x54.gif | Bin 0 -> 3312 bytes .../media/images/support/google_code_sm.png | Bin 0 -> 4531 bytes ddtcms/media/images/support/jquery.png | Bin 0 -> 5049 bytes ddtcms/media/images/support/nginx.gif | Bin 0 -> 3546 bytes .../images/support/opensource-ddtcms.png | Bin 0 -> 13215 bytes ddtcms/media/images/support/opensource.gif | Bin 0 -> 1892 bytes ddtcms/media/images/support/opensource1.gif | Bin 0 -> 2728 bytes .../support/python-powered-w-140x56.png | Bin 0 -> 8225 bytes .../media/images/support/python-powered.png | Bin 0 -> 10447 bytes ddtcms/media/images/support/sina_icon.png | Bin 0 -> 871 bytes ddtcms/media/images/support/sina_weibo.png | Bin 0 -> 6329 bytes ddtcms/media/images/utils/arrow_right.png | Bin 0 -> 3659 bytes ddtcms/media/images/utils/equal.png | Bin 0 -> 654 bytes ddtcms/media/images/utils/gp.gif | Bin 0 -> 4490 bytes ddtcms/media/images/utils/guanzhu.jpg | Bin 0 -> 1581 bytes ddtcms/media/images/utils/plus.png | Bin 0 -> 597 bytes .../themes/default/css/SyntaxHighlighter.css | 185 + ddtcms/media/themes/default/css/browser.css | 115 + ddtcms/media/themes/default/css/code.css | 80 + ddtcms/media/themes/default/css/default.css | 824 + .../themes/default/css/django-profile.css | 196 + ddtcms/media/themes/default/css/forum.css | 42 + ddtcms/media/themes/default/css/guestbook.css | 45 + ddtcms/media/themes/default/css/highslide.css | 76 + ddtcms/media/themes/default/css/home.css | 63 + ddtcms/media/themes/default/css/html5.css | 71 + ddtcms/media/themes/default/css/index.css | 53 + ddtcms/media/themes/default/css/iplocater.css | 168 + .../media/themes/default/css/iq_browser.css | 2262 ++ .../media/themes/default/css/jquery.crop.css | 68 + ddtcms/media/themes/default/css/link.css | 297 + .../media/themes/default/css/orbit-1.2.3.css | 201 + .../themes/default/css/orbit/bullets.jpg | Bin 0 -> 657 bytes .../themes/default/css/orbit/left-arrow.png | Bin 0 -> 679 bytes .../themes/default/css/orbit/loading.gif | Bin 0 -> 2608 bytes .../themes/default/css/orbit/mask-black.png | Bin 0 -> 705 bytes .../themes/default/css/orbit/orbit-bg.jpg | Bin 0 -> 4076 bytes .../themes/default/css/orbit/orbit-bg1.jpg | Bin 0 -> 4099 bytes .../themes/default/css/orbit/pause-black.png | Bin 0 -> 330 bytes .../themes/default/css/orbit/right-arrow.png | Bin 0 -> 664 bytes .../default/css/orbit/rotator-black.png | Bin 0 -> 733 bytes .../themes/default/css/orbit/timer-black.png | Bin 0 -> 705 bytes ddtcms/media/themes/default/css/screen.css | 350 + .../themes/default/css/ui.datepicker.css | 208 + .../themes/default/images/DDTCMS-logo.png | Bin 0 -> 7358 bytes ddtcms/media/themes/default/images/Thumbs.db | Bin 0 -> 65024 bytes ddtcms/media/themes/default/images/WPLJWO.jpg | Bin 0 -> 38092 bytes .../themes/default/images/banner/Thumbs.db | Bin 0 -> 6656 bytes .../default/images/banner/banner-12.jpg | Bin 0 -> 95827 bytes .../default/images/banner/banner20010304.jpg | Bin 0 -> 32851 bytes ddtcms/media/themes/default/images/bg.gif | Bin 0 -> 195 bytes .../themes/default/images/bigpic_btn.gif | Bin 0 -> 94 bytes .../media/themes/default/images/bigpic_li.gif | Bin 0 -> 76 bytes .../media/themes/default/images/box-bot-l.gif | Bin 0 -> 199 bytes .../media/themes/default/images/box-bot-r.gif | Bin 0 -> 94 bytes .../media/themes/default/images/box-top-l.gif | Bin 0 -> 199 bytes .../media/themes/default/images/box-top-r.gif | Bin 0 -> 94 bytes .../themes/default/images/box_tit_bg.gif | Bin 0 -> 152 bytes .../themes/default/images/box_tit_bg01.gif | Bin 0 -> 44 bytes .../media/themes/default/images/btn_task.gif | Bin 0 -> 2237 bytes .../media/themes/default/images/bug-high.png | Bin 0 -> 652 bytes .../media/themes/default/images/bug-low.png | Bin 0 -> 647 bytes .../themes/default/images/bug-medium.png | Bin 0 -> 653 bytes .../themes/default/images/check_green.gif | Bin 0 -> 300 bytes ddtcms/media/themes/default/images/common.gif | Bin 0 -> 90 bytes .../media/themes/default/images/digest_1.gif | Bin 0 -> 379 bytes .../media/themes/default/images/digest_2.gif | Bin 0 -> 589 bytes .../themes/default/images/emoticons/Thumbs.db | Bin 0 -> 9216 bytes .../themes/default/images/emoticons/angry.gif | Bin 0 -> 672 bytes .../themes/default/images/emoticons/cool.gif | Bin 0 -> 672 bytes .../themes/default/images/emoticons/crazy.gif | Bin 0 -> 661 bytes .../default/images/emoticons/important.gif | Bin 0 -> 1104 bytes .../themes/default/images/emoticons/laugh.gif | Bin 0 -> 666 bytes .../themes/default/images/emoticons/love.gif | Bin 0 -> 1067 bytes .../themes/default/images/emoticons/ohmy.gif | Bin 0 -> 672 bytes .../default/images/emoticons/question.gif | Bin 0 -> 1104 bytes .../themes/default/images/emoticons/sad.gif | Bin 0 -> 663 bytes .../themes/default/images/emoticons/sick.gif | Bin 0 -> 677 bytes .../themes/default/images/emoticons/smile.gif | Bin 0 -> 672 bytes .../default/images/emoticons/special1.gif | Bin 0 -> 986 bytes .../default/images/emoticons/special2.gif | Bin 0 -> 888 bytes .../default/images/emoticons/tongue.gif | Bin 0 -> 654 bytes .../default/images/emoticons/unsure.gif | Bin 0 -> 659 bytes .../themes/default/images/emoticons/wink.gif | Bin 0 -> 662 bytes ddtcms/media/themes/default/images/ethics.jpg | Bin 0 -> 7245 bytes .../media/themes/default/images/h1-bg-r.gif | Bin 0 -> 223 bytes ddtcms/media/themes/default/images/h1-bg.gif | Bin 0 -> 1395 bytes .../media/themes/default/images/icon_feed.gif | Bin 0 -> 648 bytes .../media/themes/default/images/icon_read.gif | Bin 0 -> 91 bytes .../media/themes/default/images/icon_rep.gif | Bin 0 -> 88 bytes ddtcms/media/themes/default/images/img.gif | Bin 0 -> 221 bytes .../media/themes/default/images/loading.gif | Bin 0 -> 781 bytes ddtcms/media/themes/default/images/logo.gif | Bin 0 -> 49984 bytes ddtcms/media/themes/default/images/logo.jpg | Bin 0 -> 24811 bytes ddtcms/media/themes/default/images/logo.png | Bin 0 -> 12931 bytes .../media/themes/default/images/main_bot.gif | Bin 0 -> 997 bytes ddtcms/media/themes/default/images/p.gif | Bin 0 -> 446 bytes ddtcms/media/themes/default/images/pin_1.gif | Bin 0 -> 249 bytes ddtcms/media/themes/default/images/pin_3.gif | Bin 0 -> 249 bytes .../themes/default/images/plus_green.gif | Bin 0 -> 230 bytes .../media/themes/default/images/pollsmall.gif | Bin 0 -> 600 bytes .../themes/default/images/priority-1.gif | Bin 0 -> 569 bytes .../themes/default/images/select-menu.gif | Bin 0 -> 54 bytes .../media/themes/default/images/side-bg.gif | Bin 0 -> 164 bytes .../themes/default/images/sidemenu-bottom.gif | Bin 0 -> 222 bytes .../themes/default/images/sidemenu-top.gif | Bin 0 -> 148 bytes ddtcms/media/themes/default/images/theme.gif | Bin 0 -> 1859 bytes .../themes/default/images/top-menu-bg.gif | Bin 0 -> 1404 bytes ddtcms/media/themes/default/js/ajax.js | 428 + ddtcms/media/themes/default/js/attachment.js | 61 + ddtcms/media/themes/default/js/common.js | 7 + ddtcms/media/themes/default/js/csschange.js | 61 + .../media/themes/default/js/dd_belatedpng.js | 13 + .../media/themes/default/js/dynamicforms.js | 19 + ddtcms/media/themes/default/js/function.js | 102 + ddtcms/media/themes/default/js/general.js | 104 + .../themes/default/js/jquery-1.1.3.1.pack.js | 11 + .../themes/default/js/jquery-1.2.3.pack.js | 11 + .../themes/default/js/jquery-1.2.6.min.js | 32 + .../themes/default/js/jquery-1.3.2.min.js | 19 + ddtcms/media/themes/default/js/jquery-1.3.js | 4241 ++++ .../media/themes/default/js/jquery-1.3.min.js | 19 + .../media/themes/default/js/jquery-1.4.4.js | 7179 ++++++ .../themes/default/js/jquery-1.4.4.min.js | 167 + .../themes/default/js/jquery-1.6.4.min.js | 4 + ddtcms/media/themes/default/js/jquery.crop.js | 89 + .../js/jquery.imgareaselect-0.4.2.min.js | 1 + .../js/jquery.imgareaselect-0.8.min.js | 1 + .../themes/default/js/jquery.location.js | 91 + .../default/js/jquery.orbit-1.2.3.min.js | 17 + .../themes/default/js/jquery.personal.js | 53 + ddtcms/media/themes/default/js/menu.js | 239 + .../themes/default/js/modernizr-1.6.min.js | 30 + ddtcms/media/themes/default/js/stub.js | 1 + ddtcms/media/themes/default/js/tab.js | 10 + ddtcms/media/themes/default/js/todo.js | 165 + .../media/themes/default/js/ui.datepicker.js | 1440 ++ .../media/themes/default/js/xmlhttprequest.js | 224 + .../media/themes/default/templates/404.html | 14 + .../media/themes/default/templates/500.html | 1 + .../templates/admin/change_list_results.html | 27 + .../themes/default/templates/admin/form.html | 13 + .../media/themes/default/templates/base.html | 194 + .../themes/default/templates/base_2col.html | 15 + .../default/templates/blog/blog_archive.html | 45 + .../templates/blog/blog_archive_day.html | 31 + .../templates/blog/blog_archive_month.html | 152 + .../templates/blog/blog_archive_year.html | 27 + .../default/templates/blog/blog_detail.html | 65 + .../default/templates/blog/blog_list.html | 102 + .../default/templates/blog/blog_post.html | 23 + .../templates/blog/category_detail.html | 15 + .../default/templates/blog/category_list.html | 19 + .../default/templates/blog/entry_archive.html | 45 + .../templates/blog/entry_archive_day.html | 31 + .../templates/blog/entry_archive_month.html | 152 + .../templates/blog/entry_archive_year.html | 27 + .../default/templates/blog/entry_detail.html | 53 + .../default/templates/blog/entry_list.html | 98 + .../themes/default/templates/blog/index.html | 13 + .../default/templates/blog/tag_detail.html | 17 + .../default/templates/blog/tag_list.html | 19 + .../themes/default/templates/blog_base.html | 33 + .../default/templates/comments/400-debug.html | 53 + .../default/templates/comments/approve.html | 15 + .../default/templates/comments/approved.html | 8 + .../default/templates/comments/base.html | 10 + .../default/templates/comments/delete.html | 15 + .../default/templates/comments/deleted.html | 8 + .../default/templates/comments/flag.html | 15 + .../default/templates/comments/flagged.html | 8 + .../default/templates/comments/form.html | 40 + .../default/templates/comments/list.html | 10 + .../default/templates/comments/posted.html | 10 + .../default/templates/comments/preview.html | 36 + .../themes/default/templates/copyright.html | 4 + .../editor/danamicmutiplefilefield.html | 27 + .../default/templates/editor/kindeditor.html | 12 + .../default/templates/editor/niceditor.html | 2 + .../default/templates/faq/faq_archive.html | 17 + .../default/templates/faq/faq_detail.html | 13 + .../default/templates/flatpages/default.html | 25 + .../default/templates/flatpages/sidebar.html | 16 + .../default/templates/flatpages_base.html | 63 + .../themes/default/templates/footer.html | 26 + .../templates/guestbook/400-debug.html | 53 + .../templates/guestbook/entry_list.html | 39 + .../default/templates/guestbook/form.html | 46 + .../default/templates/guestbook/preview.html | 51 + .../default/templates/guestbook/sidebar.html | 18 + .../themes/default/templates/header.html | 52 + .../themes/default/templates/home/index.html | 331 + .../default/templates/link/category_list.html | 80 + .../default/templates/link/link_category.html | 61 + .../default/templates/link/link_list.html | 101 + .../default/templates/link/newlink.html | 53 + .../member/account/email_validation.html | 43 + .../member/account/email_validation_done.html | 26 + .../account/email_validation_processed.html | 23 + .../account/email_validation_reset.html | 39 + .../email_validation_reset_response.html | 25 + .../account/includes/registration_form.html | 25 + .../templates/member/account/login.html | 84 + .../templates/member/account/logout.html | 12 + .../member/account/password_change.html | 55 + .../member/account/password_change_done.html | 22 + .../member/account/password_expired.html | 11 + .../member/account/password_reset.html | 41 + .../account/password_reset_complete.html | 22 + .../account/password_reset_confirm.html | 59 + .../member/account/password_reset_done.html | 19 + .../member/account/registration.html | 70 + .../member/account/registration_done.html | 41 + .../templates/member/avatar/choose.html | 88 + .../default/templates/member/avatar/crop.html | 63 + .../default/templates/member/avatar/done.html | 28 + .../templates/member/avatar/search.html | 59 + .../themes/default/templates/member/base.html | 40 + .../default/templates/member/base_2col.html | 54 + .../member/email/password_reset_email.txt | 15 + .../templates/member/email/validation.txt | 12 + .../member/email/validation_subject.txt | 1 + .../default/templates/member/front.html | 31 + .../default/templates/member/index.html | 22 + .../themes/default/templates/member/menu.html | 14 + .../templates/member/profile/delete.html | 26 + .../templates/member/profile/delete_done.html | 22 + .../templates/member/profile/location.html | 45 + .../member/profile/location_done.html | 22 + .../templates/member/profile/overview.html | 92 + .../templates/member/profile/personal.html | 40 + .../member/profile/personal_done.html | 22 + .../member/profile/profile_detail.html | 46 + .../templates/member/profile/public.html | 90 + .../templates/member/profile/usercard.html | 7 + .../templates/member/profile/userinfo.html | 14 + .../templates/member/profile_detail.html | 45 + .../default/templates/navbar/navbar.html | 3 + .../default/templates/navbar/navbars.html | 4 + .../default/templates/navbar/subtree.html | 5 + .../themes/default/templates/navbar/tree.html | 1 + .../default/templates/news/author_list.html | 14 + .../default/templates/news/category_list.html | 15 + .../news/feeds/news_description.html | 2 + .../default/templates/news/news_archive.html | 38 + .../templates/news/news_archive_day.html | 14 + .../templates/news/news_archive_month.html | 15 + .../templates/news/news_archive_year.html | 17 + .../default/templates/news/news_base.html | 19 + .../default/templates/news/news_detail.html | 121 + .../default/templates/news/news_index.html | 199 + .../default/templates/news/news_list.html | 73 + .../default/templates/news/news_post.html | 23 + .../default/templates/news/sidebar.html | 34 + .../templates/notice/notice_archive.html | 17 + .../templates/notice/notice_detail.html | 13 + .../templates/photologue/gallery_archive.html | 26 + .../photologue/gallery_archive_day.html | 26 + .../photologue/gallery_archive_month.html | 26 + .../photologue/gallery_archive_year.html | 16 + .../templates/photologue/gallery_detail.html | 19 + .../templates/photologue/gallery_list.html | 31 + .../default/templates/photologue/index.html | 64 + .../templates/photologue/photo_archive.html | 20 + .../photologue/photo_archive_day.html | 20 + .../photologue/photo_archive_month.html | 20 + .../photologue/photo_archive_year.html | 14 + .../templates/photologue/photo_detail.html | 23 + .../templates/photologue/photo_list.html | 26 + .../default/templates/photologue/root.html | 1 + .../photologue/tags/next_in_gallery.html | 3 + .../photologue/tags/prev_in_gallery.html | 3 + .../default/templates/polls/poll_detail.html | 25 + .../default/templates/polls/poll_list.html | 19 + .../default/templates/polls/results.html | 24 + .../themes/default/templates/powered.html | 3 + .../templates/tagging/taggeditem_list.html | 104 + .../default/templates/tagging/tags_index.html | 192 + .../themes/default/templates/top_nav.html | 1 + .../2011/03/02/watermarks/nuomihuhu.png | Bin 0 -> 5075 bytes ddtcms/member/__init__.py | 0 ddtcms/member/admin.py | 13 + ddtcms/member/context_processors.py | 31 + ddtcms/member/countries.py | 265 + ddtcms/member/forms.py | 206 + ddtcms/member/generic.jpg | Bin 0 -> 1534 bytes ddtcms/member/locale/zh_CN/django.mo | Bin 0 -> 11641 bytes ddtcms/member/locale/zh_CN/django.po | 980 + ddtcms/member/models.py | 541 + ddtcms/member/profile_settings.py | 9 + ddtcms/member/profile_settings.py-customize | 9 + ddtcms/member/signals.py | 17 + ddtcms/member/templatetags/__init__.py | 0 ddtcms/member/templatetags/account.py | 17 + .../member/templatetags/avatars.original.py | 147 + ddtcms/member/templatetags/avatars.py | 114 + ddtcms/member/tests.py | 16 + ddtcms/member/uploadhandler.py | 35 + ddtcms/member/urls.py | 20 + ddtcms/member/urls/__init__.py | 19 + ddtcms/member/urls/en.py | 147 + ddtcms/member/urls/es.py | 122 + ddtcms/member/urls/fr.py | 104 + ddtcms/member/utils/TuxieMagick.py | 126 + ddtcms/member/utils/decorators.py | 74 + ddtcms/member/views.py | 518 + ddtcms/navbar/__init__.py | 1 + ddtcms/navbar/admin.py | 73 + ddtcms/navbar/context_processors.py | 105 + ddtcms/navbar/fixtures/initial_data.json | 1 + ddtcms/navbar/models.py | 119 + ddtcms/navbar/templates/navbar/navbar.html | 3 + ddtcms/navbar/templates/navbar/navbars.html | 4 + ddtcms/navbar/templates/navbar/subtree.html | 5 + ddtcms/navbar/templates/navbar/tree.html | 1 + ddtcms/navbar/templatetags/__init__.py | 0 ddtcms/navbar/templatetags/navbar.py | 62 + ddtcms/navbar/tests.py | 16 + ddtcms/navbar/views.py | 1 + ddtcms/news/__init__.py | 23 + ddtcms/news/admin.py | 152 + ddtcms/news/feeds.py | 57 + ddtcms/news/fixtures/initial_data.json | 1 + ddtcms/news/forms.py | 88 + ddtcms/news/managers.py | 67 + ddtcms/news/models.py | 444 + ddtcms/news/signals.py | 54 + ddtcms/news/templatetags/__init__.py | 0 ddtcms/news/templatetags/news_tags.py | 170 + ddtcms/news/tests.py | 16 + ddtcms/news/urls.py | 171 + ddtcms/news/views.py | 278 + ddtcms/notice/__init__.py | 0 ddtcms/notice/admin.py | 46 + ddtcms/notice/models.py | 91 + ddtcms/notice/signals.py | 44 + ddtcms/notice/tests.py | 16 + ddtcms/notice/urls.py | 38 + ddtcms/notice/views.py | 1 + ddtcms/photologue/__init__.py | 1 + ddtcms/photologue/admin.py | 70 + ddtcms/photologue/fixtures/initial_data.json | 1 + .../locale/pl/LC_MESSAGES/django.mo | Bin 0 -> 8782 bytes .../locale/pl/LC_MESSAGES/django.po | 419 + ddtcms/photologue/management/__init__.py | 1 + .../management/commands/__init__.py | 37 + .../photologue/management/commands/plcache.py | 43 + .../management/commands/plcreatesize.py | 13 + .../photologue/management/commands/plflush.py | 35 + .../photologue/management/commands/plinit.py | 30 + ddtcms/photologue/models.py | 739 + ddtcms/photologue/res/sample.jpg | Bin 0 -> 14453 bytes ddtcms/photologue/res/test_landscape.jpg | Bin 0 -> 659 bytes ddtcms/photologue/res/test_portrait.jpg | Bin 0 -> 659 bytes ddtcms/photologue/res/test_square.jpg | Bin 0 -> 573 bytes .../templates/photologue/gallery_archive.html | 26 + .../photologue/gallery_archive_day.html | 26 + .../photologue/gallery_archive_month.html | 26 + .../photologue/gallery_archive_year.html | 16 + .../templates/photologue/gallery_detail.html | 19 + .../templates/photologue/gallery_list.html | 31 + .../templates/photologue/index.html | 7 + .../templates/photologue/photo_archive.html | 20 + .../photologue/photo_archive_day.html | 20 + .../photologue/photo_archive_month.html | 20 + .../photologue/photo_archive_year.html | 14 + .../templates/photologue/photo_detail.html | 23 + .../templates/photologue/photo_list.html | 26 + .../photologue/templates/photologue/root.html | 1 + .../photologue/tags/next_in_gallery.html | 3 + .../photologue/tags/prev_in_gallery.html | 3 + ddtcms/photologue/templatetags/__init__.py | 0 .../templatetags/photologue_tags.py | 11 + ddtcms/photologue/tests.py | 16 + ddtcms/photologue/urls.py | 44 + ddtcms/photologue/utils/EXIF.py | 1767 ++ ddtcms/photologue/utils/__init__.py | 0 ddtcms/photologue/utils/reflection.py | 92 + ddtcms/photologue/utils/watermark.py | 68 + ddtcms/photologue/views.py | 1 + ddtcms/plinit.cmd | 1 + ddtcms/polls/__init__.py | 0 ddtcms/polls/admin.py | 28 + ddtcms/polls/models.py | 24 + ddtcms/polls/tests.py | 16 + ddtcms/polls/urls.py | 53 + ddtcms/polls/views.py | 35 + ddtcms/readme.txt | 39 + ddtcms/rte/__init__.py | 0 ddtcms/rte/forms.py | 57 + ddtcms/rte/kindeditor/__init__.py | 0 ddtcms/rte/kindeditor/widgets.py | 66 + ddtcms/rte/models.py | 3 + ddtcms/rte/niceditor/__init__.py | 0 ddtcms/rte/niceditor/widgets.py | 60 + ddtcms/rte/tests.py | 16 + ddtcms/rte/views.py | 1 + ddtcms/rte/wmdeditor/__init__.py | 0 ddtcms/rte/wmdeditor/models.py | 14 + ddtcms/rte/wmdeditor/settings.py | 5 + .../staticl/wmd/images/wmd-buttons.png | Bin 0 -> 7465 bytes .../staticl/wmd/images/wmd-buttons.psd | Bin 0 -> 61236 bytes ddtcms/rte/wmdeditor/staticl/wmd/showdown.js | 1306 + ddtcms/rte/wmdeditor/staticl/wmd/t.html | 23 + ddtcms/rte/wmdeditor/staticl/wmd/wmd.css | 176 + ddtcms/rte/wmdeditor/staticl/wmd/wmd.js | 2380 ++ ddtcms/rte/wmdeditor/widgets.py | 52 + ddtcms/run.cmd | 1 + ddtcms/run80.cmd | 1 + ddtcms/settings.py | 222 + ddtcms/shell.cmd | 1 + ddtcms/static/css/invalid.css | 60 + ddtcms/static/css/reset.css | 49 + ddtcms/static/css/style.css | 817 + ddtcms/static/images/admin-logo.png | Bin 0 -> 11256 bytes ddtcms/static/images/admin-logo.psd | Bin 0 -> 180297 bytes ddtcms/static/images/b.png | Bin 0 -> 84 bytes ddtcms/static/images/bg-body.gif | Bin 0 -> 21720 bytes ddtcms/static/images/bg-button-green.gif | Bin 0 -> 169 bytes ddtcms/static/images/bg-content-box.gif | Bin 0 -> 126 bytes ddtcms/static/images/bg-form-field.gif | Bin 0 -> 97 bytes ddtcms/static/images/bg-login-top.png | Bin 0 -> 2804 bytes ddtcms/static/images/bg-login.gif | Bin 0 -> 13328 bytes ddtcms/static/images/bg-menu-item-current.gif | Bin 0 -> 315 bytes ddtcms/static/images/bg-menu-item-green.gif | Bin 0 -> 3349 bytes ddtcms/static/images/bg-radial-gradient.gif | Bin 0 -> 17617 bytes ddtcms/static/images/bg-sidebar.gif | Bin 0 -> 32792 bytes ddtcms/static/images/bl.png | Bin 0 -> 124 bytes ddtcms/static/images/br.png | Bin 0 -> 124 bytes ddtcms/static/images/icons/bullet_black.png | Bin 0 -> 211 bytes ddtcms/static/images/icons/clock_48.png | Bin 0 -> 6740 bytes ddtcms/static/images/icons/comment_48.png | Bin 0 -> 5367 bytes ddtcms/static/images/icons/cross.png | Bin 0 -> 540 bytes ddtcms/static/images/icons/cross_circle.png | Bin 0 -> 721 bytes .../static/images/icons/cross_grey_small.png | Bin 0 -> 2836 bytes ddtcms/static/images/icons/exclamation.png | Bin 0 -> 622 bytes .../images/icons/hammer_screwdriver.png | Bin 0 -> 780 bytes ddtcms/static/images/icons/image_add_48.png | Bin 0 -> 5131 bytes ddtcms/static/images/icons/information.png | Bin 0 -> 725 bytes ddtcms/static/images/icons/jquery.wysiwyg.gif | Bin 0 -> 4478 bytes .../images/icons/paper_content_pencil_48.png | Bin 0 -> 5509 bytes ddtcms/static/images/icons/pencil.png | Bin 0 -> 497 bytes ddtcms/static/images/icons/pencil_48.png | Bin 0 -> 4334 bytes ddtcms/static/images/icons/tick_circle.png | Bin 0 -> 741 bytes ddtcms/static/images/logo.jpg | Bin 0 -> 24811 bytes ddtcms/static/images/menu-current-arrow.gif | Bin 0 -> 59 bytes ddtcms/static/images/shortcut-button-bg.gif | Bin 0 -> 1341 bytes ddtcms/static/images/tl.png | Bin 0 -> 132 bytes ddtcms/static/images/tr.png | Bin 0 -> 125 bytes ddtcms/static/js/facebox.js | 319 + ddtcms/static/js/jquery-1.3.2.min.js | 19 + ddtcms/static/js/jquery.date.js | 2 + ddtcms/static/js/jquery.datePicker.js | 2 + ddtcms/static/js/jquery.wysiwyg.js | 652 + .../static/js/simpla.jquery.configuration.js | 99 + ddtcms/static/wmd/images/wmd-buttons.png | Bin 0 -> 7465 bytes ddtcms/static/wmd/images/wmd-buttons.psd | Bin 0 -> 61236 bytes ddtcms/static/wmd/showdown.js | 1306 + ddtcms/static/wmd/t.html | 23 + ddtcms/static/wmd/wmd.css | 176 + ddtcms/static/wmd/wmd.js | 2380 ++ ddtcms/tagging/__init__.py | 60 + ddtcms/tagging/admin.py | 13 + ddtcms/tagging/fields.py | 119 + ddtcms/tagging/forms.py | 40 + ddtcms/tagging/generic.py | 40 + ddtcms/tagging/managers.py | 68 + ddtcms/tagging/models.py | 504 + ddtcms/tagging/settings.py | 13 + ddtcms/tagging/templatetags/__init__.py | 0 ddtcms/tagging/templatetags/tagging_tags.py | 231 + ddtcms/tagging/tests.py | 16 + ddtcms/tagging/tests/__init__.py | 0 ddtcms/tagging/tests/models.py | 42 + ddtcms/tagging/tests/settings.py | 27 + ddtcms/tagging/tests/tags.txt | 122 + ddtcms/tagging/tests/tests.py | 920 + ddtcms/tagging/urls.py | 12 + ddtcms/tagging/utils.py | 263 + ddtcms/tagging/views.py | 67 + ddtcms/theme/__init__.py | 2 + ddtcms/theme/admin.py | 47 + ddtcms/theme/fixtures/initial_data.json | 1 + ddtcms/theme/loader.py | 62 + ddtcms/theme/loaders/__init__.py | 2 + ddtcms/theme/loaders/filesystem_themes.py | 75 + ddtcms/theme/managers.py | 55 + ddtcms/theme/models.py | 124 + ddtcms/theme/templatetags/__init__.py | 0 ddtcms/theme/templatetags/themes.py | 117 + ddtcms/theme/tests.py | 16 + ddtcms/theme/urls.py | 59 + ddtcms/theme/views.py | 1 + ddtcms/urls.py | 89 + ddtcms/utils/__init__.py | 0 ddtcms/utils/convert-utf-8.txt | 20520 ++++++++++++++++ ddtcms/utils/convert.py | 127 + ddtcms/utils/decorators.py | 51 + ddtcms/utils/getmd5.py | 82 + ddtcms/utils/uploadfile.py | 79 + postu/home/templatetags/__init__.py | 0 postu/home/templatetags/home_extras.py | 9 + postu/home/views.py | 10 +- postu/postu/settings.py | 15 +- postu/postu/urls.py | 7 +- .../templates/home/{home.html => index.html} | 16 +- postu/wrapper.py | 6 + 1511 files changed, 158009 insertions(+), 18 deletions(-) create mode 100644 ddtcms/__init__.py create mode 100644 ddtcms/backup_initial.cmd create mode 100644 ddtcms/blog/__init__.py create mode 100644 ddtcms/blog/admin.py create mode 100644 ddtcms/blog/forms.py create mode 100644 ddtcms/blog/managers.py create mode 100644 ddtcms/blog/models.py create mode 100644 ddtcms/blog/sitemaps.py create mode 100644 ddtcms/blog/tests.py create mode 100644 ddtcms/blog/urls.py create mode 100644 ddtcms/blog/views.py create mode 100644 ddtcms/captcha/__init__.py create mode 100644 ddtcms/captcha/arial.ttf create mode 100644 ddtcms/captcha/examples.py create mode 100644 ddtcms/captcha/forms.py create mode 100644 ddtcms/captcha/models.py create mode 100644 ddtcms/captcha/settings.py create mode 100644 ddtcms/captcha/tests.py create mode 100644 ddtcms/captcha/urls.py create mode 100644 ddtcms/captcha/views.py create mode 100644 ddtcms/db.cmd create mode 100644 ddtcms/ddtcms_uwsgi.py create mode 100644 ddtcms/dos.cmd create mode 100644 ddtcms/faq/__init__.py create mode 100644 ddtcms/faq/admin.py create mode 100644 ddtcms/faq/models.py create mode 100644 ddtcms/faq/tests.py create mode 100644 ddtcms/faq/urls.py create mode 100644 ddtcms/faq/views.py create mode 100644 ddtcms/grappelli/__init__.py create mode 100644 ddtcms/grappelli/dashboard/__init__.py create mode 100644 ddtcms/grappelli/dashboard/dashboards.py create mode 100644 ddtcms/grappelli/dashboard/management/__init__.py create mode 100644 ddtcms/grappelli/dashboard/management/commands/__init__.py create mode 100644 ddtcms/grappelli/dashboard/management/commands/customdashboard.py create mode 100644 ddtcms/grappelli/dashboard/modules.py create mode 100644 ddtcms/grappelli/dashboard/registry.py create mode 100644 ddtcms/grappelli/dashboard/templates/admin/index.html create mode 100644 ddtcms/grappelli/dashboard/templates/grappelli/dashboard/dashboard.html create mode 100644 ddtcms/grappelli/dashboard/templates/grappelli/dashboard/dashboard.txt create mode 100644 ddtcms/grappelli/dashboard/templates/grappelli/dashboard/dummy.html create mode 100644 ddtcms/grappelli/dashboard/templates/grappelli/dashboard/module.html create mode 100644 ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/app_list.html create mode 100644 ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/feed.html create mode 100644 ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/group.html create mode 100644 ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/link_list.html create mode 100644 ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/model_list.html create mode 100644 ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/recent_actions.html create mode 100644 ddtcms/grappelli/dashboard/templatetags/__init__.py create mode 100644 ddtcms/grappelli/dashboard/templatetags/grp_dashboard_tags.py create mode 100644 ddtcms/grappelli/dashboard/utils.py create mode 100644 ddtcms/grappelli/models.py create mode 100644 ddtcms/grappelli/settings.py create mode 100644 ddtcms/grappelli/static/grappelli/css/admin-tools.css create mode 100644 ddtcms/grappelli/static/grappelli/css/base.css create mode 100644 ddtcms/grappelli/static/grappelli/css/buttons.css create mode 100644 ddtcms/grappelli/static/grappelli/css/components.css create mode 100644 ddtcms/grappelli/static/grappelli/css/datepicker/grappelli-theme-extensions.css create mode 100644 ddtcms/grappelli/static/grappelli/css/forms.css create mode 100644 ddtcms/grappelli/static/grappelli/css/grappelli-skin-basic.css create mode 100644 ddtcms/grappelli/static/grappelli/css/grappelli-skin-default.css create mode 100644 ddtcms/grappelli/static/grappelli/css/jquery-ui-grappelli-extensions.css create mode 100644 ddtcms/grappelli/static/grappelli/css/reset.css create mode 100644 ddtcms/grappelli/static/grappelli/css/structures.css create mode 100644 ddtcms/grappelli/static/grappelli/css/tables.css create mode 100644 ddtcms/grappelli/static/grappelli/css/tools.css create mode 100644 ddtcms/grappelli/static/grappelli/css/typography.css create mode 100644 ddtcms/grappelli/static/grappelli/img/admin/icon-no.gif create mode 100644 ddtcms/grappelli/static/grappelli/img/admin/icon-unknown.gif create mode 100644 ddtcms/grappelli/static/grappelli/img/admin/icon-yes.gif create mode 100644 ddtcms/grappelli/static/grappelli/img/admin/icon_addlink.gif create mode 100644 ddtcms/grappelli/static/grappelli/img/admin/selector-add.gif create mode 100644 ddtcms/grappelli/static/grappelli/img/admin/selector-search.gif create mode 100644 ddtcms/grappelli/static/grappelli/img/backgrounds/autocomplete.png create mode 100644 ddtcms/grappelli/static/grappelli/img/backgrounds/changelist-results.png create mode 100644 ddtcms/grappelli/static/grappelli/img/backgrounds/loading-small.gif create mode 100644 ddtcms/grappelli/static/grappelli/img/backgrounds/tooltip-pointer.png create mode 100644 ddtcms/grappelli/static/grappelli/img/backgrounds/ui-sortable-placeholder.png create mode 100644 ddtcms/grappelli/static/grappelli/img/grappelli-icon.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-actionlist_addlink-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-actionlist_addlink.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-actionlist_changelink-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-actionlist_changelink.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-actionlist_deletelink.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-actions-add-link-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-actions-add-link.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-actions-change-link-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-actions-change-link.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-actions-delete-link.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-actions_changelist.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-add_another-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-add_another.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-addlink-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-addlink.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-admin_tools-dropdown-active-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-admin_tools-dropdown-active.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-admin_tools-dropdown-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-admin_tools-dropdown.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-autocomplete-fk-remove-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-autocomplete-fk-remove.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-autocomplete-m2m-remove-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-autocomplete-m2m-remove.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-bookmark_add-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-bookmark_add-inactive.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-bookmark_add.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-bookmark_manage-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-bookmark_manage.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-bookmark_remove-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-bookmark_remove-inactive.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-bookmark_remove.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-calendar-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-calendar.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-calendarnav_next.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-calendarnav_previous.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-changelink-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-changelink.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-changelist-actions.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-clock-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-clock.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-date-hierarchy-back-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-date-hierarchy-back.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-datepicker-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-datepicker.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-dropdown-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-dropdown.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-edit-dashboard-toggle-handler-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-edit-dashboard-toggle-handler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-fb-show-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-fb-show.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-fb_show-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-fb_show.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-form-select.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-addhandler-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-addhandler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-closehandler-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-closehandler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-deletelink-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-deletelink.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-draghandler-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-draghandler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-openhandler-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-openhandler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-viewsitelink-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-viewsitelink.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-menulist_external-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-menulist_external.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-menulist_internal-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-menulist_internal.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-navigation-external-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-navigation-external.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-navigation-internal-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-navigation-internal.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-no.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-object-tools-add-handler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-related-lookup-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-related-lookup-m2m-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-related-lookup-m2m.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-related-lookup.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-related_lookup-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-related_lookup.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-remove-related-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-remove-related.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-search-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-search.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-searchbox.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-selector_add-m2m_horizontal-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-selector_add-m2m_horizontal.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-selector_add-m2m_vertical-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-selector_add-m2m_vertical.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-selector_remove-m2m_horizontal-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-selector_remove-m2m_horizontal.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-selector_remove-m2m_vertical-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-selector_remove-m2m_vertical.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-th-ascending.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-th-descending.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-timepicker-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-timepicker.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-add-handler-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-add-handler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-arrow-down-handler-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-arrow-down-handler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-arrow-up-handler-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-arrow-up-handler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-close-handler-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-close-handler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-delete-handler-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-delete-handler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-drag-handler-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-drag-handler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-open-handler-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-open-handler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-remove-handler-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-remove-handler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-trash-handler-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-trash-handler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-viewsite-link-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-tools-viewsite-link.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-trash-list-toggle-handler-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-trash-list-toggle-handler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-unknown.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon-yes.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon_fieldset_collapse-closed.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon_fieldset_collapse-open.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon_inline-item-tools_addhandler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon_inline-item-tools_closehandler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/icon_inline-item-tools_openhandler.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/ui-datepicker-next-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/ui-datepicker-next.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/ui-datepicker-prev-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/img/icons/ui-datepicker-prev.png create mode 100644 ddtcms/grappelli/static/grappelli/img/input-throbber.gif create mode 100644 ddtcms/grappelli/static/grappelli/jquery/i18n/ui.datepicker-de.js create mode 100644 ddtcms/grappelli/static/grappelli/jquery/i18n/ui.datepicker-fr.js create mode 100644 ddtcms/grappelli/static/grappelli/jquery/jquery-1.4.2.min.js create mode 100644 ddtcms/grappelli/static/grappelli/jquery/jquery-1.6.2.min.js create mode 100644 ddtcms/grappelli/static/grappelli/jquery/jquery.cookie.min.js create mode 100644 ddtcms/grappelli/static/grappelli/jquery/jquery.form.js create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/custom-theme/images/ui-bg_flat_0_d6d6d6_40x100.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/custom-theme/images/ui-bg_flat_60_bdbdbd_40x100.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/custom-theme/images/ui-bg_flat_75_eeeeee_40x100.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/custom-theme/images/ui-bg_glass_25_cee9f2_1x400.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/custom-theme/images/ui-bg_glass_25_e0e0e0_1x400.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/custom-theme/images/ui-bg_glass_60_fffccc_1x400.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/custom-theme/images/ui-bg_highlight-soft_25_d6d6d6_1x100.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/custom-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/custom-theme/images/ui-icons_444444_256x240.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/custom-theme/images/ui-icons_454545_256x240.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/custom-theme/images/ui-icons_cd0a0a_256x240.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/custom-theme/jquery-ui-1.8.15.custom.css create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/custom-theme/jquery-ui-1.8.custom.css create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/ui-lightness/images/ui-icons_222222_256x240.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/css/ui-lightness/jquery-ui-1.8.custom.css create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/js/jquery-ui-1.8.15.custom.min.js create mode 100644 ddtcms/grappelli/static/grappelli/jquery/ui/js/jquery-ui-1.8.5.custom.min.js create mode 100644 ddtcms/grappelli/static/grappelli/js/LICENSE-JQUERY.txt create mode 100644 ddtcms/grappelli/static/grappelli/js/SelectBox.js create mode 100644 ddtcms/grappelli/static/grappelli/js/SelectFilter2.js create mode 100644 ddtcms/grappelli/static/grappelli/js/actions.js create mode 100644 ddtcms/grappelli/static/grappelli/js/actions.min.js create mode 100644 ddtcms/grappelli/static/grappelli/js/admin/DateTimeShortcuts.js create mode 100644 ddtcms/grappelli/static/grappelli/js/admin/RelatedObjectLookups.js create mode 100644 ddtcms/grappelli/static/grappelli/js/admin/ordering.js create mode 100644 ddtcms/grappelli/static/grappelli/js/calendar.js create mode 100644 ddtcms/grappelli/static/grappelli/js/collapse.js create mode 100644 ddtcms/grappelli/static/grappelli/js/collapse.min.js create mode 100644 ddtcms/grappelli/static/grappelli/js/compress.py create mode 100644 ddtcms/grappelli/static/grappelli/js/core.js create mode 100644 ddtcms/grappelli/static/grappelli/js/dateparse.js create mode 100644 ddtcms/grappelli/static/grappelli/js/getElementsBySelector.js create mode 100644 ddtcms/grappelli/static/grappelli/js/grappelli/grappelli.js create mode 100644 ddtcms/grappelli/static/grappelli/js/grappelli/jquery.grp_autocomplete_fk.js create mode 100644 ddtcms/grappelli/static/grappelli/js/grappelli/jquery.grp_autocomplete_generic.js create mode 100644 ddtcms/grappelli/static/grappelli/js/grappelli/jquery.grp_autocomplete_m2m.js create mode 100644 ddtcms/grappelli/static/grappelli/js/grappelli/jquery.grp_collapsible.js create mode 100644 ddtcms/grappelli/static/grappelli/js/grappelli/jquery.grp_collapsible_group.js create mode 100644 ddtcms/grappelli/static/grappelli/js/grappelli/jquery.grp_inline.js create mode 100644 ddtcms/grappelli/static/grappelli/js/grappelli/jquery.grp_related_fk.js create mode 100644 ddtcms/grappelli/static/grappelli/js/grappelli/jquery.grp_related_generic.js create mode 100644 ddtcms/grappelli/static/grappelli/js/grappelli/jquery.grp_related_m2m.js create mode 100644 ddtcms/grappelli/static/grappelli/js/grappelli/jquery.grp_timepicker.js create mode 100644 ddtcms/grappelli/static/grappelli/js/inlines.js create mode 100644 ddtcms/grappelli/static/grappelli/js/inlines.min.js create mode 100644 ddtcms/grappelli/static/grappelli/js/jquery.init.js create mode 100644 ddtcms/grappelli/static/grappelli/js/jquery.js create mode 100644 ddtcms/grappelli/static/grappelli/js/jquery.min.js create mode 100644 ddtcms/grappelli/static/grappelli/js/json.min.js create mode 100644 ddtcms/grappelli/static/grappelli/js/prepopulate.min.js create mode 100644 ddtcms/grappelli/static/grappelli/js/timeparse.js create mode 100644 ddtcms/grappelli/static/grappelli/js/urlify.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/changelog.txt create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/accessibility.html create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/css/content.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/css/word.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/custom_formats.html create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/full.html create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/index.html create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/lists/image_list.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/lists/link_list.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/lists/media_list.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/lists/template_list.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/media/logo.jpg create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/media/logo_over.jpg create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/media/sample.avi create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/media/sample.dcr create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/media/sample.flv create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/media/sample.mov create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/media/sample.ram create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/media/sample.rm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/media/sample.swf create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/menu.html create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/simple.html create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/skins.html create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/templates/layout1.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/templates/snippet1.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/examples/word.html create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/langs/de.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/langs/en.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/license.txt create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advhr/css/advhr.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advhr/js/rule.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advhr/langs/de_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advhr/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advhr/rule.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advimage/css/advimage.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advimage/img/sample.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advimage/langs/de_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advimage/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advimage_orig/css/advimage.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advimage_orig/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advimage_orig/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advimage_orig/image.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advimage_orig/img/sample.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advimage_orig/js/image.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advimage_orig/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advlink/css/advlink.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advlink/langs/de_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advlink/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advlink_orig/css/advlink.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advlink_orig/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advlink_orig/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advlink_orig/js/advlink.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advlink_orig/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advlink_orig/link.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/autosave/langs/en.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cool.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cry.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-frown.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-smile.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-yell.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/langs/de_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/example/img/example.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/de_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/grappelli/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/grappelli/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/grappelli/img/show_advanced.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/grappelli/img/visualchars.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/grappelli/langs/de.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/grappelli/langs/en.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/grappelli/langs/fr.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/grappelli/langs/ru.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/grappelli_contextmenu/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/grappelli_contextmenu/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/grappelli_contextmenu/langs/de.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/grappelli_contextmenu/langs/en.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/grappelli_contextmenu/langs/fr.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/grappelli_contextmenu/langs/ru.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/inlinepopups/template.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media/css/content.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media/css/media.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media/img/flash.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media/img/flv_player.swf create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media/img/quicktime.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media/img/realmedia.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media/img/shockwave.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media/img/trans.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media/img/windowsmedia.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media/js/media.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media/langs/de_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media/media.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media_orig/css/media.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media_orig/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media_orig/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media_orig/js/embed.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media_orig/js/media.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media_orig/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media_orig/media.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/media_orig/moxieplayer.swf create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/paste/blank.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/paste/css/blank.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/paste/css/pasteword.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/paste/langs/de_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/paste_orig/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/paste_orig/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/paste_orig/js/pastetext.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/paste_orig/js/pasteword.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/paste_orig/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/paste_orig/pastetext.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/paste_orig/pasteword.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/preview/example.html create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/preview/preview.html create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/de_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/searchreplace_orig/css/searchreplace.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/searchreplace_orig/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/searchreplace_orig/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/searchreplace_orig/js/searchreplace.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/searchreplace_orig/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/searchreplace_orig/searchreplace.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/style/css/props.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/style/js/props.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/style/langs/de_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/style/props.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/table/cell.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/table/css/row.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/table/css/table.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/table/js/merge_cells.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/table/js/row.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/table/js/table.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/table/langs/de_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/table/row.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/table/table.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/template/blank.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/template/css/template.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/template/js/template.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/template/langs/de_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/template/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/template/template.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/template_orig/blank.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/template_orig/css/template.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/template_orig/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/template_orig/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/template_orig/js/template.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/template_orig/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/template_orig/template.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/popup.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/cite.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/de_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/about.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/image.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/img/colorpicker.jpg create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/img/flash.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/img/iframe.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/img/pagebreak.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/img/quicktime.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/img/realmedia.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/img/shockwave.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/img/trans.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/img/video.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/img/windowsmedia.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/js/about.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/js/color_picker.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/js/image.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/js/source_editor.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/langs/de.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/langs/de_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/langs/en_dlg.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/link.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/shortcuts.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/buttons.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/items.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/progress.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/ui.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/content.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/content_base.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/content_documentstructure.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/content_documentstructure_de.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/content_documentstructure_en.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/content_grid.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/content_typography.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/dialog.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/blockquote.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/bold.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/bullist.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/charmap.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/cleanup.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/code.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/fullscreen.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/image.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/italic.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/link.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/media.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/numlist.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/pasteword.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/redo.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/search.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/show_advanced.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/table.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/template.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/underline.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/undo.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/unlink.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/buttons/visualchars.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/icons/icon-fb_show-hover.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/icons/icon-fb_show.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/icons/icon-mceResize.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/img/menu/icon-mceOpen.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/grappelli/ui.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/content.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/simple/editor_template.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/simple/img/icons.gif create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/simple/langs/en.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/simple/skins/default/content.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/simple/skins/default/ui.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/content.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/ui.css create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/tiny_mce.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/tiny_mce_popup.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/tiny_mce_src.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/utils/editable_selects.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/utils/form_utils.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/utils/mctabs.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce/jscripts/tiny_mce/utils/validate.js create mode 100644 ddtcms/grappelli/static/grappelli/tinymce_setup/tinymce_setup.js create mode 100644 ddtcms/grappelli/templates/admin/404.html create mode 100644 ddtcms/grappelli/templates/admin/500.html create mode 100644 ddtcms/grappelli/templates/admin/actions.html create mode 100644 ddtcms/grappelli/templates/admin/app_index.html create mode 100644 ddtcms/grappelli/templates/admin/auth/user/add_form.html create mode 100644 ddtcms/grappelli/templates/admin/auth/user/change_password.html create mode 100644 ddtcms/grappelli/templates/admin/base.html create mode 100644 ddtcms/grappelli/templates/admin/base_site.html create mode 100644 ddtcms/grappelli/templates/admin/change_form.html create mode 100644 ddtcms/grappelli/templates/admin/change_list.html create mode 100644 ddtcms/grappelli/templates/admin/change_list_results.html create mode 100644 ddtcms/grappelli/templates/admin/csv_export_selected_confirmation.html create mode 100644 ddtcms/grappelli/templates/admin/date_hierarchy.html create mode 100644 ddtcms/grappelli/templates/admin/delete_confirmation.html create mode 100644 ddtcms/grappelli/templates/admin/delete_selected_confirmation.html create mode 100644 ddtcms/grappelli/templates/admin/edit_inline/stacked.html create mode 100644 ddtcms/grappelli/templates/admin/edit_inline/tabular.html create mode 100644 ddtcms/grappelli/templates/admin/filter.html create mode 100644 ddtcms/grappelli/templates/admin/includes/fieldset.html create mode 100644 ddtcms/grappelli/templates/admin/includes/fieldset_inline.html create mode 100644 ddtcms/grappelli/templates/admin/includes_grappelli/header.html create mode 100644 ddtcms/grappelli/templates/admin/index.html create mode 100644 ddtcms/grappelli/templates/admin/invalid_setup.html create mode 100644 ddtcms/grappelli/templates/admin/login.html create mode 100644 ddtcms/grappelli/templates/admin/object_history.html create mode 100644 ddtcms/grappelli/templates/admin/pagination.html create mode 100644 ddtcms/grappelli/templates/admin/prepopulated_fields_js.html create mode 100644 ddtcms/grappelli/templates/admin/search_form.html create mode 100644 ddtcms/grappelli/templates/admin/submit_line.html create mode 100644 ddtcms/grappelli/templates/admin/template_validator.html create mode 100644 ddtcms/grappelli/templates/admin_doc/bookmarklets.html create mode 100644 ddtcms/grappelli/templates/admin_doc/index.html create mode 100644 ddtcms/grappelli/templates/admin_doc/missing_docutils.html create mode 100644 ddtcms/grappelli/templates/admin_doc/model_detail.html create mode 100644 ddtcms/grappelli/templates/admin_doc/model_index.html create mode 100644 ddtcms/grappelli/templates/admin_doc/template_detail.html create mode 100644 ddtcms/grappelli/templates/admin_doc/template_filter_index.html create mode 100644 ddtcms/grappelli/templates/admin_doc/template_tag_index.html create mode 100644 ddtcms/grappelli/templates/admin_doc/view_detail.html create mode 100644 ddtcms/grappelli/templates/admin_doc/view_index.html create mode 100644 ddtcms/grappelli/templates/registration/logged_out.html create mode 100644 ddtcms/grappelli/templates/registration/password_change_done.html create mode 100644 ddtcms/grappelli/templates/registration/password_change_form.html create mode 100644 ddtcms/grappelli/templates/registration/password_reset_complete.html create mode 100644 ddtcms/grappelli/templates/registration/password_reset_confirm.html create mode 100644 ddtcms/grappelli/templates/registration/password_reset_done.html create mode 100644 ddtcms/grappelli/templates/registration/password_reset_email.html create mode 100644 ddtcms/grappelli/templates/registration/password_reset_form.html create mode 100644 ddtcms/grappelli/templatetags/__init__.py create mode 100644 ddtcms/grappelli/templatetags/grp_tags.py create mode 100644 ddtcms/grappelli/urls.py create mode 100644 ddtcms/grappelli/views/__init__.py create mode 100644 ddtcms/grappelli/views/related.py create mode 100644 ddtcms/guestbook/__init__.py create mode 100644 ddtcms/guestbook/admin.py create mode 100644 ddtcms/guestbook/forms.py create mode 100644 ddtcms/guestbook/models.py create mode 100644 ddtcms/guestbook/tests.py create mode 100644 ddtcms/guestbook/urls.py create mode 100644 ddtcms/guestbook/views.py create mode 100644 ddtcms/home/__init__.py create mode 100644 ddtcms/home/fixtures/initial_data.json create mode 100644 ddtcms/home/models.py create mode 100644 ddtcms/home/tests.py create mode 100644 ddtcms/home/urls.py create mode 100644 ddtcms/home/views.py create mode 100644 ddtcms/link/__init__.py create mode 100644 ddtcms/link/admin.py create mode 100644 ddtcms/link/fixtures/initial_data.json create mode 100644 ddtcms/link/forms.py create mode 100644 ddtcms/link/managers.py create mode 100644 ddtcms/link/models.py create mode 100644 ddtcms/link/templatetags/__init__.py create mode 100644 ddtcms/link/templatetags/link_tags.py create mode 100644 ddtcms/link/tests.py create mode 100644 ddtcms/link/urls.py create mode 100644 ddtcms/link/views.py create mode 100644 ddtcms/locale/zh_CN/LC_MESSAGES/django.mo create mode 100644 ddtcms/locale/zh_CN/LC_MESSAGES/django.po create mode 100644 ddtcms/makezhCN.cmd create mode 100644 ddtcms/manage.py create mode 100644 ddtcms/media/editor/danamicmutiplefilefield.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/asp.net/README.txt create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/asp.net/bin/LitJSON.dll create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/asp.net/demo.aspx create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/asp.net/file_manager_json.ashx create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/asp.net/upload_json.ashx create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/asp/JSON_2.0.4.asp create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/asp/UpLoad_Class.asp create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/asp/demo.asp create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/asp/file_manager_json.asp create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/asp/upload_json.asp create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/colorpicker.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/custom-plugin.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/custom-theme.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/default.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/dialog.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/dynamic-load.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/file-manager.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/filter-mode.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/image-dialog.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/index.css create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/index.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/multi-language.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/newline.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/node.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/readonly.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/simple.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/total.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/uploadbutton.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/url-type.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/examples/word-count.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/jsp/README.txt create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/jsp/demo.jsp create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/jsp/file_manager_json.jsp create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/jsp/lib/commons-fileupload-1.2.1.jar create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/jsp/lib/commons-io-1.4.jar create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/jsp/lib/json_simple-1.1.jar create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/jsp/upload_json.jsp create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/kindeditor-min.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/kindeditor.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/lang/en.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/lang/zh_CN.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/lang/zh_TW.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/license.txt create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/php/JSON.php create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/php/demo.php create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/php/file_manager_json.php create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/php/upload_json.php create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/anchor/anchor.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/clearhtml/clearhtml.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/code/code.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/code/prettify.css create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/code/prettify.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/emoticons.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/0.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/1.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/10.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/100.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/101.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/102.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/103.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/104.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/105.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/106.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/107.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/108.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/109.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/11.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/110.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/111.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/112.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/113.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/114.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/115.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/116.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/117.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/118.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/119.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/12.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/120.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/121.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/122.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/123.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/124.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/125.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/126.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/127.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/128.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/129.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/13.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/130.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/131.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/132.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/133.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/134.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/14.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/15.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/16.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/17.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/18.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/19.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/2.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/20.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/21.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/22.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/23.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/24.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/25.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/26.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/27.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/28.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/29.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/3.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/30.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/31.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/32.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/33.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/34.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/35.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/36.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/37.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/38.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/39.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/4.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/40.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/41.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/42.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/43.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/44.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/45.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/46.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/47.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/48.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/49.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/5.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/50.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/51.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/52.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/53.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/54.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/55.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/56.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/57.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/58.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/59.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/6.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/60.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/61.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/62.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/63.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/64.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/65.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/66.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/67.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/68.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/69.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/7.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/70.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/71.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/72.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/73.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/74.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/75.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/76.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/77.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/78.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/79.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/8.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/80.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/81.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/82.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/83.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/84.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/85.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/86.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/87.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/88.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/89.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/9.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/90.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/91.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/92.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/93.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/94.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/95.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/96.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/97.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/98.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/99.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/emoticons/images/static.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/filemanager/filemanager.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/filemanager/images/file-16.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/filemanager/images/file-64.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/filemanager/images/folder-16.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/filemanager/images/folder-64.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/filemanager/images/go-up.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/flash/flash.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/image/image.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/image/images/align_left.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/image/images/align_right.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/image/images/align_top.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/image/images/refresh.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/insertfile/insertfile.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/lineheight/lineheight.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/link/link.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/map/map.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/map/map.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/media/media.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/pagebreak/pagebreak.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/plainpaste/plainpaste.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/preview/preview.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/quickformat/quickformat.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/table/table.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/template/html/1.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/template/html/2.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/template/html/3.html create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/template/template.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/plugins/wordpaste/wordpaste.js create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/themes/common/anchor.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/themes/common/blank.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/themes/common/flash.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/themes/common/loading.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/themes/common/media.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/themes/common/rm.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/themes/default/bg.gif create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/themes/default/default.css create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/themes/default/default.png create mode 100644 ddtcms/media/editor/kindeditor-4.0.1/themes/simple/simple.css create mode 100644 ddtcms/media/editor/nicEdit/nicEdit.js create mode 100644 ddtcms/media/editor/nicEdit/nicEditorIcons.gif create mode 100644 ddtcms/media/images/DDTCMS-Logo3.psd create mode 100644 ddtcms/media/images/avatars/Thumbs.db create mode 100644 ddtcms/media/images/avatars/generic.128.jpg create mode 100644 ddtcms/media/images/avatars/generic.32.jpg create mode 100644 ddtcms/media/images/avatars/generic.64.jpg create mode 100644 ddtcms/media/images/avatars/generic.96.jpg create mode 100644 ddtcms/media/images/avatars/generic.jpg create mode 100644 ddtcms/media/images/avatars/noavatar.gif create mode 100644 ddtcms/media/images/favicon.ico create mode 100644 ddtcms/media/images/logo.jpg create mode 100644 ddtcms/media/images/support/0RA23022-0.gif create mode 100644 ddtcms/media/images/support/HTML5_Logo_64.png create mode 100644 ddtcms/media/images/support/Thumbs.db create mode 100644 ddtcms/media/images/support/browser_logos-64.png create mode 100644 ddtcms/media/images/support/csdn-huyoo.jpg create mode 100644 ddtcms/media/images/support/css3.jpg create mode 100644 ddtcms/media/images/support/ddtcms-googlecode.jpg create mode 100644 ddtcms/media/images/support/ddtcms-powered.png create mode 100644 ddtcms/media/images/support/djangopowered126x54.gif create mode 100644 ddtcms/media/images/support/google_code_sm.png create mode 100644 ddtcms/media/images/support/jquery.png create mode 100644 ddtcms/media/images/support/nginx.gif create mode 100644 ddtcms/media/images/support/opensource-ddtcms.png create mode 100644 ddtcms/media/images/support/opensource.gif create mode 100644 ddtcms/media/images/support/opensource1.gif create mode 100644 ddtcms/media/images/support/python-powered-w-140x56.png create mode 100644 ddtcms/media/images/support/python-powered.png create mode 100644 ddtcms/media/images/support/sina_icon.png create mode 100644 ddtcms/media/images/support/sina_weibo.png create mode 100644 ddtcms/media/images/utils/arrow_right.png create mode 100644 ddtcms/media/images/utils/equal.png create mode 100644 ddtcms/media/images/utils/gp.gif create mode 100644 ddtcms/media/images/utils/guanzhu.jpg create mode 100644 ddtcms/media/images/utils/plus.png create mode 100644 ddtcms/media/themes/default/css/SyntaxHighlighter.css create mode 100644 ddtcms/media/themes/default/css/browser.css create mode 100644 ddtcms/media/themes/default/css/code.css create mode 100644 ddtcms/media/themes/default/css/default.css create mode 100644 ddtcms/media/themes/default/css/django-profile.css create mode 100644 ddtcms/media/themes/default/css/forum.css create mode 100644 ddtcms/media/themes/default/css/guestbook.css create mode 100644 ddtcms/media/themes/default/css/highslide.css create mode 100644 ddtcms/media/themes/default/css/home.css create mode 100644 ddtcms/media/themes/default/css/html5.css create mode 100644 ddtcms/media/themes/default/css/index.css create mode 100644 ddtcms/media/themes/default/css/iplocater.css create mode 100644 ddtcms/media/themes/default/css/iq_browser.css create mode 100644 ddtcms/media/themes/default/css/jquery.crop.css create mode 100644 ddtcms/media/themes/default/css/link.css create mode 100644 ddtcms/media/themes/default/css/orbit-1.2.3.css create mode 100644 ddtcms/media/themes/default/css/orbit/bullets.jpg create mode 100644 ddtcms/media/themes/default/css/orbit/left-arrow.png create mode 100644 ddtcms/media/themes/default/css/orbit/loading.gif create mode 100644 ddtcms/media/themes/default/css/orbit/mask-black.png create mode 100644 ddtcms/media/themes/default/css/orbit/orbit-bg.jpg create mode 100644 ddtcms/media/themes/default/css/orbit/orbit-bg1.jpg create mode 100644 ddtcms/media/themes/default/css/orbit/pause-black.png create mode 100644 ddtcms/media/themes/default/css/orbit/right-arrow.png create mode 100644 ddtcms/media/themes/default/css/orbit/rotator-black.png create mode 100644 ddtcms/media/themes/default/css/orbit/timer-black.png create mode 100644 ddtcms/media/themes/default/css/screen.css create mode 100644 ddtcms/media/themes/default/css/ui.datepicker.css create mode 100644 ddtcms/media/themes/default/images/DDTCMS-logo.png create mode 100644 ddtcms/media/themes/default/images/Thumbs.db create mode 100644 ddtcms/media/themes/default/images/WPLJWO.jpg create mode 100644 ddtcms/media/themes/default/images/banner/Thumbs.db create mode 100644 ddtcms/media/themes/default/images/banner/banner-12.jpg create mode 100644 ddtcms/media/themes/default/images/banner/banner20010304.jpg create mode 100644 ddtcms/media/themes/default/images/bg.gif create mode 100644 ddtcms/media/themes/default/images/bigpic_btn.gif create mode 100644 ddtcms/media/themes/default/images/bigpic_li.gif create mode 100644 ddtcms/media/themes/default/images/box-bot-l.gif create mode 100644 ddtcms/media/themes/default/images/box-bot-r.gif create mode 100644 ddtcms/media/themes/default/images/box-top-l.gif create mode 100644 ddtcms/media/themes/default/images/box-top-r.gif create mode 100644 ddtcms/media/themes/default/images/box_tit_bg.gif create mode 100644 ddtcms/media/themes/default/images/box_tit_bg01.gif create mode 100644 ddtcms/media/themes/default/images/btn_task.gif create mode 100644 ddtcms/media/themes/default/images/bug-high.png create mode 100644 ddtcms/media/themes/default/images/bug-low.png create mode 100644 ddtcms/media/themes/default/images/bug-medium.png create mode 100644 ddtcms/media/themes/default/images/check_green.gif create mode 100644 ddtcms/media/themes/default/images/common.gif create mode 100644 ddtcms/media/themes/default/images/digest_1.gif create mode 100644 ddtcms/media/themes/default/images/digest_2.gif create mode 100644 ddtcms/media/themes/default/images/emoticons/Thumbs.db create mode 100644 ddtcms/media/themes/default/images/emoticons/angry.gif create mode 100644 ddtcms/media/themes/default/images/emoticons/cool.gif create mode 100644 ddtcms/media/themes/default/images/emoticons/crazy.gif create mode 100644 ddtcms/media/themes/default/images/emoticons/important.gif create mode 100644 ddtcms/media/themes/default/images/emoticons/laugh.gif create mode 100644 ddtcms/media/themes/default/images/emoticons/love.gif create mode 100644 ddtcms/media/themes/default/images/emoticons/ohmy.gif create mode 100644 ddtcms/media/themes/default/images/emoticons/question.gif create mode 100644 ddtcms/media/themes/default/images/emoticons/sad.gif create mode 100644 ddtcms/media/themes/default/images/emoticons/sick.gif create mode 100644 ddtcms/media/themes/default/images/emoticons/smile.gif create mode 100644 ddtcms/media/themes/default/images/emoticons/special1.gif create mode 100644 ddtcms/media/themes/default/images/emoticons/special2.gif create mode 100644 ddtcms/media/themes/default/images/emoticons/tongue.gif create mode 100644 ddtcms/media/themes/default/images/emoticons/unsure.gif create mode 100644 ddtcms/media/themes/default/images/emoticons/wink.gif create mode 100644 ddtcms/media/themes/default/images/ethics.jpg create mode 100644 ddtcms/media/themes/default/images/h1-bg-r.gif create mode 100644 ddtcms/media/themes/default/images/h1-bg.gif create mode 100644 ddtcms/media/themes/default/images/icon_feed.gif create mode 100644 ddtcms/media/themes/default/images/icon_read.gif create mode 100644 ddtcms/media/themes/default/images/icon_rep.gif create mode 100644 ddtcms/media/themes/default/images/img.gif create mode 100644 ddtcms/media/themes/default/images/loading.gif create mode 100644 ddtcms/media/themes/default/images/logo.gif create mode 100644 ddtcms/media/themes/default/images/logo.jpg create mode 100644 ddtcms/media/themes/default/images/logo.png create mode 100644 ddtcms/media/themes/default/images/main_bot.gif create mode 100644 ddtcms/media/themes/default/images/p.gif create mode 100644 ddtcms/media/themes/default/images/pin_1.gif create mode 100644 ddtcms/media/themes/default/images/pin_3.gif create mode 100644 ddtcms/media/themes/default/images/plus_green.gif create mode 100644 ddtcms/media/themes/default/images/pollsmall.gif create mode 100644 ddtcms/media/themes/default/images/priority-1.gif create mode 100644 ddtcms/media/themes/default/images/select-menu.gif create mode 100644 ddtcms/media/themes/default/images/side-bg.gif create mode 100644 ddtcms/media/themes/default/images/sidemenu-bottom.gif create mode 100644 ddtcms/media/themes/default/images/sidemenu-top.gif create mode 100644 ddtcms/media/themes/default/images/theme.gif create mode 100644 ddtcms/media/themes/default/images/top-menu-bg.gif create mode 100644 ddtcms/media/themes/default/js/ajax.js create mode 100644 ddtcms/media/themes/default/js/attachment.js create mode 100644 ddtcms/media/themes/default/js/common.js create mode 100644 ddtcms/media/themes/default/js/csschange.js create mode 100644 ddtcms/media/themes/default/js/dd_belatedpng.js create mode 100644 ddtcms/media/themes/default/js/dynamicforms.js create mode 100644 ddtcms/media/themes/default/js/function.js create mode 100644 ddtcms/media/themes/default/js/general.js create mode 100644 ddtcms/media/themes/default/js/jquery-1.1.3.1.pack.js create mode 100644 ddtcms/media/themes/default/js/jquery-1.2.3.pack.js create mode 100644 ddtcms/media/themes/default/js/jquery-1.2.6.min.js create mode 100644 ddtcms/media/themes/default/js/jquery-1.3.2.min.js create mode 100644 ddtcms/media/themes/default/js/jquery-1.3.js create mode 100644 ddtcms/media/themes/default/js/jquery-1.3.min.js create mode 100644 ddtcms/media/themes/default/js/jquery-1.4.4.js create mode 100644 ddtcms/media/themes/default/js/jquery-1.4.4.min.js create mode 100644 ddtcms/media/themes/default/js/jquery-1.6.4.min.js create mode 100644 ddtcms/media/themes/default/js/jquery.crop.js create mode 100644 ddtcms/media/themes/default/js/jquery.imgareaselect-0.4.2.min.js create mode 100644 ddtcms/media/themes/default/js/jquery.imgareaselect-0.8.min.js create mode 100644 ddtcms/media/themes/default/js/jquery.location.js create mode 100644 ddtcms/media/themes/default/js/jquery.orbit-1.2.3.min.js create mode 100644 ddtcms/media/themes/default/js/jquery.personal.js create mode 100644 ddtcms/media/themes/default/js/menu.js create mode 100644 ddtcms/media/themes/default/js/modernizr-1.6.min.js create mode 100644 ddtcms/media/themes/default/js/stub.js create mode 100644 ddtcms/media/themes/default/js/tab.js create mode 100644 ddtcms/media/themes/default/js/todo.js create mode 100644 ddtcms/media/themes/default/js/ui.datepicker.js create mode 100644 ddtcms/media/themes/default/js/xmlhttprequest.js create mode 100644 ddtcms/media/themes/default/templates/404.html create mode 100644 ddtcms/media/themes/default/templates/500.html create mode 100644 ddtcms/media/themes/default/templates/admin/change_list_results.html create mode 100644 ddtcms/media/themes/default/templates/admin/form.html create mode 100644 ddtcms/media/themes/default/templates/base.html create mode 100644 ddtcms/media/themes/default/templates/base_2col.html create mode 100644 ddtcms/media/themes/default/templates/blog/blog_archive.html create mode 100644 ddtcms/media/themes/default/templates/blog/blog_archive_day.html create mode 100644 ddtcms/media/themes/default/templates/blog/blog_archive_month.html create mode 100644 ddtcms/media/themes/default/templates/blog/blog_archive_year.html create mode 100644 ddtcms/media/themes/default/templates/blog/blog_detail.html create mode 100644 ddtcms/media/themes/default/templates/blog/blog_list.html create mode 100644 ddtcms/media/themes/default/templates/blog/blog_post.html create mode 100644 ddtcms/media/themes/default/templates/blog/category_detail.html create mode 100644 ddtcms/media/themes/default/templates/blog/category_list.html create mode 100644 ddtcms/media/themes/default/templates/blog/entry_archive.html create mode 100644 ddtcms/media/themes/default/templates/blog/entry_archive_day.html create mode 100644 ddtcms/media/themes/default/templates/blog/entry_archive_month.html create mode 100644 ddtcms/media/themes/default/templates/blog/entry_archive_year.html create mode 100644 ddtcms/media/themes/default/templates/blog/entry_detail.html create mode 100644 ddtcms/media/themes/default/templates/blog/entry_list.html create mode 100644 ddtcms/media/themes/default/templates/blog/index.html create mode 100644 ddtcms/media/themes/default/templates/blog/tag_detail.html create mode 100644 ddtcms/media/themes/default/templates/blog/tag_list.html create mode 100644 ddtcms/media/themes/default/templates/blog_base.html create mode 100644 ddtcms/media/themes/default/templates/comments/400-debug.html create mode 100644 ddtcms/media/themes/default/templates/comments/approve.html create mode 100644 ddtcms/media/themes/default/templates/comments/approved.html create mode 100644 ddtcms/media/themes/default/templates/comments/base.html create mode 100644 ddtcms/media/themes/default/templates/comments/delete.html create mode 100644 ddtcms/media/themes/default/templates/comments/deleted.html create mode 100644 ddtcms/media/themes/default/templates/comments/flag.html create mode 100644 ddtcms/media/themes/default/templates/comments/flagged.html create mode 100644 ddtcms/media/themes/default/templates/comments/form.html create mode 100644 ddtcms/media/themes/default/templates/comments/list.html create mode 100644 ddtcms/media/themes/default/templates/comments/posted.html create mode 100644 ddtcms/media/themes/default/templates/comments/preview.html create mode 100644 ddtcms/media/themes/default/templates/copyright.html create mode 100644 ddtcms/media/themes/default/templates/editor/danamicmutiplefilefield.html create mode 100644 ddtcms/media/themes/default/templates/editor/kindeditor.html create mode 100644 ddtcms/media/themes/default/templates/editor/niceditor.html create mode 100644 ddtcms/media/themes/default/templates/faq/faq_archive.html create mode 100644 ddtcms/media/themes/default/templates/faq/faq_detail.html create mode 100644 ddtcms/media/themes/default/templates/flatpages/default.html create mode 100644 ddtcms/media/themes/default/templates/flatpages/sidebar.html create mode 100644 ddtcms/media/themes/default/templates/flatpages_base.html create mode 100644 ddtcms/media/themes/default/templates/footer.html create mode 100644 ddtcms/media/themes/default/templates/guestbook/400-debug.html create mode 100644 ddtcms/media/themes/default/templates/guestbook/entry_list.html create mode 100644 ddtcms/media/themes/default/templates/guestbook/form.html create mode 100644 ddtcms/media/themes/default/templates/guestbook/preview.html create mode 100644 ddtcms/media/themes/default/templates/guestbook/sidebar.html create mode 100644 ddtcms/media/themes/default/templates/header.html create mode 100644 ddtcms/media/themes/default/templates/home/index.html create mode 100644 ddtcms/media/themes/default/templates/link/category_list.html create mode 100644 ddtcms/media/themes/default/templates/link/link_category.html create mode 100644 ddtcms/media/themes/default/templates/link/link_list.html create mode 100644 ddtcms/media/themes/default/templates/link/newlink.html create mode 100644 ddtcms/media/themes/default/templates/member/account/email_validation.html create mode 100644 ddtcms/media/themes/default/templates/member/account/email_validation_done.html create mode 100644 ddtcms/media/themes/default/templates/member/account/email_validation_processed.html create mode 100644 ddtcms/media/themes/default/templates/member/account/email_validation_reset.html create mode 100644 ddtcms/media/themes/default/templates/member/account/email_validation_reset_response.html create mode 100644 ddtcms/media/themes/default/templates/member/account/includes/registration_form.html create mode 100644 ddtcms/media/themes/default/templates/member/account/login.html create mode 100644 ddtcms/media/themes/default/templates/member/account/logout.html create mode 100644 ddtcms/media/themes/default/templates/member/account/password_change.html create mode 100644 ddtcms/media/themes/default/templates/member/account/password_change_done.html create mode 100644 ddtcms/media/themes/default/templates/member/account/password_expired.html create mode 100644 ddtcms/media/themes/default/templates/member/account/password_reset.html create mode 100644 ddtcms/media/themes/default/templates/member/account/password_reset_complete.html create mode 100644 ddtcms/media/themes/default/templates/member/account/password_reset_confirm.html create mode 100644 ddtcms/media/themes/default/templates/member/account/password_reset_done.html create mode 100644 ddtcms/media/themes/default/templates/member/account/registration.html create mode 100644 ddtcms/media/themes/default/templates/member/account/registration_done.html create mode 100644 ddtcms/media/themes/default/templates/member/avatar/choose.html create mode 100644 ddtcms/media/themes/default/templates/member/avatar/crop.html create mode 100644 ddtcms/media/themes/default/templates/member/avatar/done.html create mode 100644 ddtcms/media/themes/default/templates/member/avatar/search.html create mode 100644 ddtcms/media/themes/default/templates/member/base.html create mode 100644 ddtcms/media/themes/default/templates/member/base_2col.html create mode 100644 ddtcms/media/themes/default/templates/member/email/password_reset_email.txt create mode 100644 ddtcms/media/themes/default/templates/member/email/validation.txt create mode 100644 ddtcms/media/themes/default/templates/member/email/validation_subject.txt create mode 100644 ddtcms/media/themes/default/templates/member/front.html create mode 100644 ddtcms/media/themes/default/templates/member/index.html create mode 100644 ddtcms/media/themes/default/templates/member/menu.html create mode 100644 ddtcms/media/themes/default/templates/member/profile/delete.html create mode 100644 ddtcms/media/themes/default/templates/member/profile/delete_done.html create mode 100644 ddtcms/media/themes/default/templates/member/profile/location.html create mode 100644 ddtcms/media/themes/default/templates/member/profile/location_done.html create mode 100644 ddtcms/media/themes/default/templates/member/profile/overview.html create mode 100644 ddtcms/media/themes/default/templates/member/profile/personal.html create mode 100644 ddtcms/media/themes/default/templates/member/profile/personal_done.html create mode 100644 ddtcms/media/themes/default/templates/member/profile/profile_detail.html create mode 100644 ddtcms/media/themes/default/templates/member/profile/public.html create mode 100644 ddtcms/media/themes/default/templates/member/profile/usercard.html create mode 100644 ddtcms/media/themes/default/templates/member/profile/userinfo.html create mode 100644 ddtcms/media/themes/default/templates/member/profile_detail.html create mode 100644 ddtcms/media/themes/default/templates/navbar/navbar.html create mode 100644 ddtcms/media/themes/default/templates/navbar/navbars.html create mode 100644 ddtcms/media/themes/default/templates/navbar/subtree.html create mode 100644 ddtcms/media/themes/default/templates/navbar/tree.html create mode 100644 ddtcms/media/themes/default/templates/news/author_list.html create mode 100644 ddtcms/media/themes/default/templates/news/category_list.html create mode 100644 ddtcms/media/themes/default/templates/news/feeds/news_description.html create mode 100644 ddtcms/media/themes/default/templates/news/news_archive.html create mode 100644 ddtcms/media/themes/default/templates/news/news_archive_day.html create mode 100644 ddtcms/media/themes/default/templates/news/news_archive_month.html create mode 100644 ddtcms/media/themes/default/templates/news/news_archive_year.html create mode 100644 ddtcms/media/themes/default/templates/news/news_base.html create mode 100644 ddtcms/media/themes/default/templates/news/news_detail.html create mode 100644 ddtcms/media/themes/default/templates/news/news_index.html create mode 100644 ddtcms/media/themes/default/templates/news/news_list.html create mode 100644 ddtcms/media/themes/default/templates/news/news_post.html create mode 100644 ddtcms/media/themes/default/templates/news/sidebar.html create mode 100644 ddtcms/media/themes/default/templates/notice/notice_archive.html create mode 100644 ddtcms/media/themes/default/templates/notice/notice_detail.html create mode 100644 ddtcms/media/themes/default/templates/photologue/gallery_archive.html create mode 100644 ddtcms/media/themes/default/templates/photologue/gallery_archive_day.html create mode 100644 ddtcms/media/themes/default/templates/photologue/gallery_archive_month.html create mode 100644 ddtcms/media/themes/default/templates/photologue/gallery_archive_year.html create mode 100644 ddtcms/media/themes/default/templates/photologue/gallery_detail.html create mode 100644 ddtcms/media/themes/default/templates/photologue/gallery_list.html create mode 100644 ddtcms/media/themes/default/templates/photologue/index.html create mode 100644 ddtcms/media/themes/default/templates/photologue/photo_archive.html create mode 100644 ddtcms/media/themes/default/templates/photologue/photo_archive_day.html create mode 100644 ddtcms/media/themes/default/templates/photologue/photo_archive_month.html create mode 100644 ddtcms/media/themes/default/templates/photologue/photo_archive_year.html create mode 100644 ddtcms/media/themes/default/templates/photologue/photo_detail.html create mode 100644 ddtcms/media/themes/default/templates/photologue/photo_list.html create mode 100644 ddtcms/media/themes/default/templates/photologue/root.html create mode 100644 ddtcms/media/themes/default/templates/photologue/tags/next_in_gallery.html create mode 100644 ddtcms/media/themes/default/templates/photologue/tags/prev_in_gallery.html create mode 100644 ddtcms/media/themes/default/templates/polls/poll_detail.html create mode 100644 ddtcms/media/themes/default/templates/polls/poll_list.html create mode 100644 ddtcms/media/themes/default/templates/polls/results.html create mode 100644 ddtcms/media/themes/default/templates/powered.html create mode 100644 ddtcms/media/themes/default/templates/tagging/taggeditem_list.html create mode 100644 ddtcms/media/themes/default/templates/tagging/tags_index.html create mode 100644 ddtcms/media/themes/default/templates/top_nav.html create mode 100644 ddtcms/media/upload/photos/2011/03/02/watermarks/nuomihuhu.png create mode 100644 ddtcms/member/__init__.py create mode 100644 ddtcms/member/admin.py create mode 100644 ddtcms/member/context_processors.py create mode 100644 ddtcms/member/countries.py create mode 100644 ddtcms/member/forms.py create mode 100644 ddtcms/member/generic.jpg create mode 100644 ddtcms/member/locale/zh_CN/django.mo create mode 100644 ddtcms/member/locale/zh_CN/django.po create mode 100644 ddtcms/member/models.py create mode 100644 ddtcms/member/profile_settings.py create mode 100644 ddtcms/member/profile_settings.py-customize create mode 100644 ddtcms/member/signals.py create mode 100644 ddtcms/member/templatetags/__init__.py create mode 100644 ddtcms/member/templatetags/account.py create mode 100644 ddtcms/member/templatetags/avatars.original.py create mode 100644 ddtcms/member/templatetags/avatars.py create mode 100644 ddtcms/member/tests.py create mode 100644 ddtcms/member/uploadhandler.py create mode 100644 ddtcms/member/urls.py create mode 100644 ddtcms/member/urls/__init__.py create mode 100644 ddtcms/member/urls/en.py create mode 100644 ddtcms/member/urls/es.py create mode 100644 ddtcms/member/urls/fr.py create mode 100644 ddtcms/member/utils/TuxieMagick.py create mode 100644 ddtcms/member/utils/decorators.py create mode 100644 ddtcms/member/views.py create mode 100644 ddtcms/navbar/__init__.py create mode 100644 ddtcms/navbar/admin.py create mode 100644 ddtcms/navbar/context_processors.py create mode 100644 ddtcms/navbar/fixtures/initial_data.json create mode 100644 ddtcms/navbar/models.py create mode 100644 ddtcms/navbar/templates/navbar/navbar.html create mode 100644 ddtcms/navbar/templates/navbar/navbars.html create mode 100644 ddtcms/navbar/templates/navbar/subtree.html create mode 100644 ddtcms/navbar/templates/navbar/tree.html create mode 100644 ddtcms/navbar/templatetags/__init__.py create mode 100644 ddtcms/navbar/templatetags/navbar.py create mode 100644 ddtcms/navbar/tests.py create mode 100644 ddtcms/navbar/views.py create mode 100644 ddtcms/news/__init__.py create mode 100644 ddtcms/news/admin.py create mode 100644 ddtcms/news/feeds.py create mode 100644 ddtcms/news/fixtures/initial_data.json create mode 100644 ddtcms/news/forms.py create mode 100644 ddtcms/news/managers.py create mode 100644 ddtcms/news/models.py create mode 100644 ddtcms/news/signals.py create mode 100644 ddtcms/news/templatetags/__init__.py create mode 100644 ddtcms/news/templatetags/news_tags.py create mode 100644 ddtcms/news/tests.py create mode 100644 ddtcms/news/urls.py create mode 100644 ddtcms/news/views.py create mode 100644 ddtcms/notice/__init__.py create mode 100644 ddtcms/notice/admin.py create mode 100644 ddtcms/notice/models.py create mode 100644 ddtcms/notice/signals.py create mode 100644 ddtcms/notice/tests.py create mode 100644 ddtcms/notice/urls.py create mode 100644 ddtcms/notice/views.py create mode 100644 ddtcms/photologue/__init__.py create mode 100644 ddtcms/photologue/admin.py create mode 100644 ddtcms/photologue/fixtures/initial_data.json create mode 100644 ddtcms/photologue/locale/pl/LC_MESSAGES/django.mo create mode 100644 ddtcms/photologue/locale/pl/LC_MESSAGES/django.po create mode 100644 ddtcms/photologue/management/__init__.py create mode 100644 ddtcms/photologue/management/commands/__init__.py create mode 100644 ddtcms/photologue/management/commands/plcache.py create mode 100644 ddtcms/photologue/management/commands/plcreatesize.py create mode 100644 ddtcms/photologue/management/commands/plflush.py create mode 100644 ddtcms/photologue/management/commands/plinit.py create mode 100644 ddtcms/photologue/models.py create mode 100644 ddtcms/photologue/res/sample.jpg create mode 100644 ddtcms/photologue/res/test_landscape.jpg create mode 100644 ddtcms/photologue/res/test_portrait.jpg create mode 100644 ddtcms/photologue/res/test_square.jpg create mode 100644 ddtcms/photologue/templates/photologue/gallery_archive.html create mode 100644 ddtcms/photologue/templates/photologue/gallery_archive_day.html create mode 100644 ddtcms/photologue/templates/photologue/gallery_archive_month.html create mode 100644 ddtcms/photologue/templates/photologue/gallery_archive_year.html create mode 100644 ddtcms/photologue/templates/photologue/gallery_detail.html create mode 100644 ddtcms/photologue/templates/photologue/gallery_list.html create mode 100644 ddtcms/photologue/templates/photologue/index.html create mode 100644 ddtcms/photologue/templates/photologue/photo_archive.html create mode 100644 ddtcms/photologue/templates/photologue/photo_archive_day.html create mode 100644 ddtcms/photologue/templates/photologue/photo_archive_month.html create mode 100644 ddtcms/photologue/templates/photologue/photo_archive_year.html create mode 100644 ddtcms/photologue/templates/photologue/photo_detail.html create mode 100644 ddtcms/photologue/templates/photologue/photo_list.html create mode 100644 ddtcms/photologue/templates/photologue/root.html create mode 100644 ddtcms/photologue/templates/photologue/tags/next_in_gallery.html create mode 100644 ddtcms/photologue/templates/photologue/tags/prev_in_gallery.html create mode 100644 ddtcms/photologue/templatetags/__init__.py create mode 100644 ddtcms/photologue/templatetags/photologue_tags.py create mode 100644 ddtcms/photologue/tests.py create mode 100644 ddtcms/photologue/urls.py create mode 100644 ddtcms/photologue/utils/EXIF.py create mode 100644 ddtcms/photologue/utils/__init__.py create mode 100644 ddtcms/photologue/utils/reflection.py create mode 100644 ddtcms/photologue/utils/watermark.py create mode 100644 ddtcms/photologue/views.py create mode 100644 ddtcms/plinit.cmd create mode 100644 ddtcms/polls/__init__.py create mode 100644 ddtcms/polls/admin.py create mode 100644 ddtcms/polls/models.py create mode 100644 ddtcms/polls/tests.py create mode 100644 ddtcms/polls/urls.py create mode 100644 ddtcms/polls/views.py create mode 100644 ddtcms/readme.txt create mode 100644 ddtcms/rte/__init__.py create mode 100644 ddtcms/rte/forms.py create mode 100644 ddtcms/rte/kindeditor/__init__.py create mode 100644 ddtcms/rte/kindeditor/widgets.py create mode 100644 ddtcms/rte/models.py create mode 100644 ddtcms/rte/niceditor/__init__.py create mode 100644 ddtcms/rte/niceditor/widgets.py create mode 100644 ddtcms/rte/tests.py create mode 100644 ddtcms/rte/views.py create mode 100644 ddtcms/rte/wmdeditor/__init__.py create mode 100644 ddtcms/rte/wmdeditor/models.py create mode 100644 ddtcms/rte/wmdeditor/settings.py create mode 100644 ddtcms/rte/wmdeditor/staticl/wmd/images/wmd-buttons.png create mode 100644 ddtcms/rte/wmdeditor/staticl/wmd/images/wmd-buttons.psd create mode 100644 ddtcms/rte/wmdeditor/staticl/wmd/showdown.js create mode 100644 ddtcms/rte/wmdeditor/staticl/wmd/t.html create mode 100644 ddtcms/rte/wmdeditor/staticl/wmd/wmd.css create mode 100644 ddtcms/rte/wmdeditor/staticl/wmd/wmd.js create mode 100644 ddtcms/rte/wmdeditor/widgets.py create mode 100644 ddtcms/run.cmd create mode 100644 ddtcms/run80.cmd create mode 100644 ddtcms/settings.py create mode 100644 ddtcms/shell.cmd create mode 100644 ddtcms/static/css/invalid.css create mode 100644 ddtcms/static/css/reset.css create mode 100644 ddtcms/static/css/style.css create mode 100644 ddtcms/static/images/admin-logo.png create mode 100644 ddtcms/static/images/admin-logo.psd create mode 100644 ddtcms/static/images/b.png create mode 100644 ddtcms/static/images/bg-body.gif create mode 100644 ddtcms/static/images/bg-button-green.gif create mode 100644 ddtcms/static/images/bg-content-box.gif create mode 100644 ddtcms/static/images/bg-form-field.gif create mode 100644 ddtcms/static/images/bg-login-top.png create mode 100644 ddtcms/static/images/bg-login.gif create mode 100644 ddtcms/static/images/bg-menu-item-current.gif create mode 100644 ddtcms/static/images/bg-menu-item-green.gif create mode 100644 ddtcms/static/images/bg-radial-gradient.gif create mode 100644 ddtcms/static/images/bg-sidebar.gif create mode 100644 ddtcms/static/images/bl.png create mode 100644 ddtcms/static/images/br.png create mode 100644 ddtcms/static/images/icons/bullet_black.png create mode 100644 ddtcms/static/images/icons/clock_48.png create mode 100644 ddtcms/static/images/icons/comment_48.png create mode 100644 ddtcms/static/images/icons/cross.png create mode 100644 ddtcms/static/images/icons/cross_circle.png create mode 100644 ddtcms/static/images/icons/cross_grey_small.png create mode 100644 ddtcms/static/images/icons/exclamation.png create mode 100644 ddtcms/static/images/icons/hammer_screwdriver.png create mode 100644 ddtcms/static/images/icons/image_add_48.png create mode 100644 ddtcms/static/images/icons/information.png create mode 100644 ddtcms/static/images/icons/jquery.wysiwyg.gif create mode 100644 ddtcms/static/images/icons/paper_content_pencil_48.png create mode 100644 ddtcms/static/images/icons/pencil.png create mode 100644 ddtcms/static/images/icons/pencil_48.png create mode 100644 ddtcms/static/images/icons/tick_circle.png create mode 100644 ddtcms/static/images/logo.jpg create mode 100644 ddtcms/static/images/menu-current-arrow.gif create mode 100644 ddtcms/static/images/shortcut-button-bg.gif create mode 100644 ddtcms/static/images/tl.png create mode 100644 ddtcms/static/images/tr.png create mode 100644 ddtcms/static/js/facebox.js create mode 100644 ddtcms/static/js/jquery-1.3.2.min.js create mode 100644 ddtcms/static/js/jquery.date.js create mode 100644 ddtcms/static/js/jquery.datePicker.js create mode 100644 ddtcms/static/js/jquery.wysiwyg.js create mode 100644 ddtcms/static/js/simpla.jquery.configuration.js create mode 100644 ddtcms/static/wmd/images/wmd-buttons.png create mode 100644 ddtcms/static/wmd/images/wmd-buttons.psd create mode 100644 ddtcms/static/wmd/showdown.js create mode 100644 ddtcms/static/wmd/t.html create mode 100644 ddtcms/static/wmd/wmd.css create mode 100644 ddtcms/static/wmd/wmd.js create mode 100644 ddtcms/tagging/__init__.py create mode 100644 ddtcms/tagging/admin.py create mode 100644 ddtcms/tagging/fields.py create mode 100644 ddtcms/tagging/forms.py create mode 100644 ddtcms/tagging/generic.py create mode 100644 ddtcms/tagging/managers.py create mode 100644 ddtcms/tagging/models.py create mode 100644 ddtcms/tagging/settings.py create mode 100644 ddtcms/tagging/templatetags/__init__.py create mode 100644 ddtcms/tagging/templatetags/tagging_tags.py create mode 100644 ddtcms/tagging/tests.py create mode 100644 ddtcms/tagging/tests/__init__.py create mode 100644 ddtcms/tagging/tests/models.py create mode 100644 ddtcms/tagging/tests/settings.py create mode 100644 ddtcms/tagging/tests/tags.txt create mode 100644 ddtcms/tagging/tests/tests.py create mode 100644 ddtcms/tagging/urls.py create mode 100644 ddtcms/tagging/utils.py create mode 100644 ddtcms/tagging/views.py create mode 100644 ddtcms/theme/__init__.py create mode 100644 ddtcms/theme/admin.py create mode 100644 ddtcms/theme/fixtures/initial_data.json create mode 100644 ddtcms/theme/loader.py create mode 100644 ddtcms/theme/loaders/__init__.py create mode 100644 ddtcms/theme/loaders/filesystem_themes.py create mode 100644 ddtcms/theme/managers.py create mode 100644 ddtcms/theme/models.py create mode 100644 ddtcms/theme/templatetags/__init__.py create mode 100644 ddtcms/theme/templatetags/themes.py create mode 100644 ddtcms/theme/tests.py create mode 100644 ddtcms/theme/urls.py create mode 100644 ddtcms/theme/views.py create mode 100644 ddtcms/urls.py create mode 100644 ddtcms/utils/__init__.py create mode 100644 ddtcms/utils/convert-utf-8.txt create mode 100644 ddtcms/utils/convert.py create mode 100644 ddtcms/utils/decorators.py create mode 100644 ddtcms/utils/getmd5.py create mode 100644 ddtcms/utils/uploadfile.py create mode 100644 postu/home/templatetags/__init__.py create mode 100644 postu/home/templatetags/home_extras.py rename postu/templates/home/{home.html => index.html} (55%) create mode 100644 postu/wrapper.py diff --git a/ddtcms/__init__.py b/ddtcms/__init__.py new file mode 100644 index 0000000..3fd98b7 --- /dev/null +++ b/ddtcms/__init__.py @@ -0,0 +1,4 @@ +VERSION = (0, 3, 0, 0, 20111104) +def get_version(): + v = '.'.join(map(str, VERSION)) + return v diff --git a/ddtcms/backup_initial.cmd b/ddtcms/backup_initial.cmd new file mode 100644 index 0000000..ed0ab4e --- /dev/null +++ b/ddtcms/backup_initial.cmd @@ -0,0 +1,6 @@ +manage.py dumpdata news>./news/fixtures/initial_data.json +manage.py dumpdata navbar>./navbar/fixtures/initial_data.json +manage.py dumpdata photologue>./photologue/fixtures/initial_data.json +manage.py dumpdata link>./link/fixtures/initial_data.json +manage.py dumpdata theme>./theme/fixtures/initial_data.json +manage.py dumpdata flatpages>./home/fixtures/initial_data.json \ No newline at end of file diff --git a/ddtcms/blog/__init__.py b/ddtcms/blog/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ddtcms/blog/admin.py b/ddtcms/blog/admin.py new file mode 100644 index 0000000..d70f838 --- /dev/null +++ b/ddtcms/blog/admin.py @@ -0,0 +1,174 @@ +# -*- coding: utf-8 -*- +# ------------------------------------------------------------ +# Script Name: +# Creation Date: +# Last Modified: +# Copyright (c)2011, DDTCMS Project +# Purpose: This file used for DDTCMS Project +# ------------------------------------------------------------ + +# python. +# +# ------------------------------------------------------------ + +# django. +from django.contrib import admin +from django.contrib.contenttypes.models import ContentType +from django import forms +from django.utils.translation import ugettext_lazy as _ +# ------------------------------------------------------------ + +# 3dpart. +# +# ------------------------------------------------------------ + +# ddtcms. +from ddtcms.blog.models import Blog +from ddtcms.blog.models import Category +from ddtcms.blog.forms import CreateBlogForm,MyBlogAdminForm +# ------------------------------------------------------------ + +# config. +#FIELD_MAX_LENGTH = getattr(settings, 'FIELD_MAX_LENGTH', 100) +#n_dict={ +#"sitename":"Example", +#} +# ------------------------------------------------------------ + + + + + +#class BlogBlogAdminForm(forms.ModelForm): +# BLOOD_CHOICES = ( +# (u'A型', u'A型'), +# (u'B型', u'B型'), +# (u'O型', u'O型'), +# (u'AB型',u'AB型'), +# ) +# class Meta: +# model = Blog +# +# #queries = {'user':'admin'} +# #category = forms.ChoiceField(choices=Category.objects.all().filter(**queries)) +# #category = forms.ChoiceField(choices=Category.objects.all()) +# #category = forms.ChoiceField(choices=[(c.id,c.name) for c in Category.objects.all()]) +# #category = forms.ChoiceField(choices=Category.objects.for_model(Blog)) +# #category = forms.ChoiceField(choices=BLOOD_CHOICES) +# #category=forms.ModelChoiceField(queryset=Category.objects.all().filter(**queries)) +# #category=forms.ModelChoiceField(queryset=Category.objects.all()) +# #category=forms.ModelChoiceField(queryset=Category.objects.all().filter(**queries)) +# #def clean_title(self): +# # # do something that validates your data +# # return self.cleaned_data["title"] + + + +class BlogAdmin(admin.ModelAdmin): + #form = BlogBlogAdminForm + form = MyBlogAdminForm + + #http://code.djangoproject.com/wiki/NewformsHOWTO + #Lllama's handy how-do-I guide to newforms admin. + #Q: How do I filter the ChoiceField? based upon attributes of the current ModelAdmin? instance? + #Ticket #3987 http://code.djangoproject.com/ticket/3987 + # +# def __call__(self, request, url): +# #Add in the request object, so that it may be referenced +# #later in the formfield_for_dbfield function. +# self.request = request +# return super(BlogAdmin, self).__call__(request, url) +# +# def formfield_for_dbfield(self, db_field, **kwargs): +# +# field = super(BlogAdmin, self).formfield_for_dbfield(db_field, **kwargs) # Get the default field +# request = kwargs.pop("request", None) +# if db_field.name == 'category': +# #Add the null object +# my_choices = [('', '---------')] +# #Grab the current site id from the URL. +# if request: +# my_choices.extend(Category.objects.filter(user=request.user).values_list('id','name')) +# else: +# my_choices.extend(Category.objects.all().values_list('id','name')) +# #print my_choices +# field.choices = my_choices +# return field +# +# +# def queryset(self, request): +# if request.user.is_superuser: +# return super(BlogAdmin, self).queryset(request) +# else: +# queries = {'user':request.user} +# return super(BlogAdmin, self).queryset(request).filter(**queries) + + + #app, model = "blog.Blog".split('.') + #content_type=ContentType.objects.get(app_label=app, model=model) + #queries = {'category.content_type':content_type} + + + #def save_model(self, request, obj, form, change): + # obj.user = request.user + # return super(BlogAdmin, self).save_model(request, obj, form, change) + + #def add_view(self, request, form_url='', extra_context=None): + # ex_context={'category':Category.objects.for_model(Blog)} + # return super(BlogAdmin, self).add_view(request, form_url='', extra_context=ex_context) + + #def add_view(self, request, form_url='', extra_context=None): + # ex_context={'category':Category.objects.for_model(Blog)} + # return super(BlogAdmin, self).add_view(request, form_url='', extra_context=ex_context) + + # + #CODE FROM : + #URL: http://code.djangoproject.com/wiki/CookBookNewformsAdminAndUser + #TITLE:How to set the current user on the model instance in the admin (newforms-admin) + # + def save_model(self, request, obj, form, change): + instance = form.save(commit=False) + instance.user = request.user + instance.save() + form.save_m2m() + return instance + + def save_formset(self, request, form, formset, change): + def set_user(instance): + instance.user = request.user + instance.save() + + if formset.model == Comment: + instances = formset.save(commit=False) + map(set_user, instances) + formset.save_m2m() + return instances + else: + return formset.save() + + + fieldsets = [ + ('标题', {'fields': ['title']}), + ('简短标记', {'fields': ['slug']}), + #('所属用户', {'fields': ['user']}), + ('所属分类', {'fields': ['category']}), + ('Date information', {'fields': ['pub_date']}), + ('内容', {'fields': ['content']}), + ('摘要', {'fields': ['summary']}), + ('Tags', {'fields': ['tags']}), + #('Views', {'fields': ['views']}), + #('Comments', {'fields': ['comments']}), + ] + + #prepopulated_fields = {'slug': ('title',)} + list_display = ('title', 'user','category','pub_date') + list_filter = ['pub_date'] + search_fields = ['title','user' ,'summary', 'content'] + date_hierarchy = 'pub_date' + + + + + +admin.site.register(Blog,BlogAdmin) +admin.site.register(Category) \ No newline at end of file diff --git a/ddtcms/blog/forms.py b/ddtcms/blog/forms.py new file mode 100644 index 0000000..1433222 --- /dev/null +++ b/ddtcms/blog/forms.py @@ -0,0 +1,134 @@ +# -*- coding: utf-8 -*- +# ------------------------------------------------------------ +# Script Name: forms.py +# Creation Date: 2011-11-12 13:46:32 +# Last Modified: 2011-11-12 13:48:52 +# Copyright (c)2011, DDTCMS Project +# Purpose: This file used for DDTCMS Project +# ------------------------------------------------------------ + +# python. +# +# ------------------------------------------------------------ + +# django. +from datetime import datetime +from django import forms +from django.utils.translation import ugettext_lazy as _ +from django.contrib.auth.models import User +# ------------------------------------------------------------ + +# 3dpart. +# +# ------------------------------------------------------------ + +# ddtcms. +from ddtcms.blog.models import Blog +from ddtcms.blog.models import Category + +from ddtcms.captcha.forms import * +from rte.kindeditor.widgets import KindEditor +# ------------------------------------------------------------ + +# config. +attrs_dict = { 'class': 'required' } + +CATEGORY_CHOICES = {} +# ------------------------------------------------------------ + + + + + + + +class MyBlogAdminForm(forms.ModelForm): + content = forms.CharField(label=_(u"Content"), widget=KindEditor(attrs={'rows':15, 'cols':100}),required=True) + class Meta: + model = Blog + #widgets = { + # 'content':KindEditor(), + #} + +class CreateBlogForm(forms.ModelForm): + + username = forms.RegexField(regex=r'^\w+$', + max_length=30, + widget=forms.TextInput(attrs=attrs_dict), + label=_(u'username')) + title = forms.CharField(widget=forms.TextInput(attrs=dict(attrs_dict,maxlength=75)), + label=_(u'title')) + + #category = forms.ChoiceField(label=_(u'category'), choices=[(c.id,c.name) for c in Category.objects.all()]) + #category = forms.ModelChoiceField(label=_(u'category'), queryset=Category.objects.all()) + category = forms.ChoiceField(label=_(u'category'), choices=CATEGORY_CHOICES) + + + pub_date = forms.DateTimeField(widget=forms.DateTimeInput(attrs=attrs_dict), + label=_(u'datetime')) + + content = forms.CharField(label=_(u'content'),widget=KindEditor()) + slug = forms.SlugField(label=_(u'Slug'),help_text="Use English Or Pinyin.") + summary = forms.CharField(label=_(u'Summary'),help_text="One paragraph. Don't add tag.") + #tags = forms.MultipleChoiceField(label=u'tag', choices=[(t.id,t.name) for t in Tag.objects.all()]) + tags = forms.CharField(widget=forms.TextInput(attrs=dict(attrs_dict,maxlength=75)), label=_(u'tags')) + captcha_uid = forms.CharField( + required=True, + label="", + max_length=40, + widget=CaptchaUID) + + captcha = forms.CharField( + required=True, + label="confirm msg", + max_length=1000, + widget=CaptchaInput) + + class Meta: + model = Blog + + def clean_captcha(self): + return validate_captcha(self) + + def clean_username(self): + """ + Validate that the username is alphanumeric and is not already + in use. + + """ + try: + user = User.objects.get(username__iexact=self.cleaned_data['username']) + except User.DoesNotExist: + return self.cleaned_data['username'] + raise forms.ValidationError(_(u'This username is already taken. Please choose another.')) + + def clean(self): + """ + Verifiy that the values entered into the two password fields + match. Note that an error here will end up in + ``non_field_errors()`` because it doesn't apply to a single + field. + + """ + if 'password1' in self.cleaned_data and 'password2' in self.cleaned_data: + if self.cleaned_data['password1'] != self.cleaned_data['password2']: + raise forms.ValidationError(_(u'You must type the same password each time')) + return self.cleaned_data + + def save(self, profile_callback=None): + """ + Create the new ``User`` and ``RegistrationProfile``, and + returns the ``User``. + + This is essentially a light wrapper around + ``RegistrationProfile.objects.create_inactive_user()``, + feeding it the form data and a profile callback (see the + documentation on ``create_inactive_user()`` for details) if + supplied. + + """ + new_user = RegistrationProfile.objects.create_inactive_user(username=self.cleaned_data['username'], + password=self.cleaned_data['password1'], + email=self.cleaned_data['email'], + profile_callback=profile_callback) + return new_user \ No newline at end of file diff --git a/ddtcms/blog/managers.py b/ddtcms/blog/managers.py new file mode 100644 index 0000000..23e1005 --- /dev/null +++ b/ddtcms/blog/managers.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# ------------------------------------------------------------ +# Script Name: managers.py +# Creation Date: 2009-06-08 20:56 +# Last Modified: 2011-11-12 16:59:30 +# Copyright (c)2011, DDTCMS Project +# Purpose: This file used for DDTCMS Project +# ------------------------------------------------------------ + +# python. +# +# ------------------------------------------------------------ + +# django. +from django.db import models +from django.db.models import Q +# ------------------------------------------------------------ + +# 3dpart. +# +# ------------------------------------------------------------ + +# ddtcms. +#from models import MODEL +#from forms import AForm,BForm +# ------------------------------------------------------------ + +# config. +#FIELD_MAX_LENGTH = getattr(settings, 'FIELD_MAX_LENGTH', 100) +#n_dict={ +#"sitename":"Example", +#} +# ------------------------------------------------------------ + +class BlogManager(models.Manager): + def for_user(self, user): + user_blogs = Q(user__exact=user) + return self.filter(user_blogs) diff --git a/ddtcms/blog/models.py b/ddtcms/blog/models.py new file mode 100644 index 0000000..50b2a01 --- /dev/null +++ b/ddtcms/blog/models.py @@ -0,0 +1,113 @@ +# -*- coding: utf-8 -*- +# ------------------------------------------------------------ +# Script Name: models.py +# Creation Date: 2010-03-09 11:12 +# Last Modified: 2011-11-12 17:4:39 +# Copyright (c)2011, DDTCMS Project +# Purpose: This file used for DDTCMS Project +# ------------------------------------------------------------ + +# python. +import datetime +#import urllib +# ------------------------------------------------------------ + +# django. +from django.db import models +from django.contrib.auth.models import User +from django.core.urlresolvers import reverse +from django.utils.translation import ugettext_lazy as _ +# ------------------------------------------------------------ + +# 3dpart. +# attempt to load the django-tagging TagField from default location, +# otherwise we substitude a dummy TagField. +try: + from tagging.fields import TagField + tagfield_help_text = _('Separate tags with spaces, put quotes around multiple-word tags.') +except ImportError: + class TagField(models.CharField): + def __init__(self, **kwargs): + default_kwargs = {'max_length': 255, 'blank': True} + default_kwargs.update(kwargs) + super(TagField, self).__init__(**default_kwargs) + def get_internal_type(self): + return 'CharField' + tagfield_help_text = _('Django-tagging was not found, tags will be treated as plain text.') +# ------------------------------------------------------------ + +# ddtcms. +from blog.managers import BlogManager +#from forms import AForm,BForm +# ------------------------------------------------------------ + +# config. +#FIELD_MAX_LENGTH = getattr(settings, 'FIELD_MAX_LENGTH', 100) +#n_dict={ +#"sitename":"Example", +#} +# ------------------------------------------------------------ + + +# Create your models here. +class Category(models.Model): + user = models.ForeignKey(User, blank=True, null=True, related_name="blog_categories") + name = models.CharField(_('name'), max_length=50) + slug = models.SlugField(max_length=50,help_text='alias to the name,use english') + parent = models.ForeignKey('self',null=True,blank=True,related_name='category_child') + depth = models.PositiveSmallIntegerField(_("category's depth"), blank=True,null=True) + display_order = models.PositiveSmallIntegerField(_('order'), default=1) + + + class Meta: + verbose_name = _('Blog Category') + verbose_name_plural = _('Blog Categories') + + def __unicode__(self): + return self.name + + def get_absolute_url(self): + return reverse('category_detail', args=( self.slug,)) + + def get_children(self): + return self.category_child.all() + + def is_root(self): + if self.parent == None: + return True + return False + + + +class Blog(models.Model): + title = models.CharField(max_length=200) + pub_date = models.DateTimeField('date published',blank=True,default=datetime.datetime.now) + content = models.TextField() + user = models.ForeignKey(User,verbose_name='Author', editable=False) + category = models.ForeignKey(Category,null=True) + slug = models.SlugField( + unique_for_date='pub_date', + help_text='Automatically built From the title.' + ) + summary = models.TextField(help_text="One paragraph. Don't add tag.") + tags = TagField(help_text=tagfield_help_text, verbose_name=_('tags')) + views = models.PositiveIntegerField(_("Views"), default=0) + comments = models.PositiveIntegerField(_("Comments"), default=0) + + objects = BlogManager() + + class Meta: + ordering = ('-pub_date',) + verbose_name = _('Blog') + verbose_name_plural = _('Blogs') +# get_latest_by = 'pub_date' +# db_table = "blog_entry" + + + + def get_absolute_url(self): + return reverse('blog_detail', args=(self.pub_date.year, self.pub_date.month,self.pub_date.day, self.slug)) + + def __unicode__(self): + return self.title + diff --git a/ddtcms/blog/sitemaps.py b/ddtcms/blog/sitemaps.py new file mode 100644 index 0000000..6a47bbe --- /dev/null +++ b/ddtcms/blog/sitemaps.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +# ------------------------------------------------------------ +# Script Name: sitemaps.py +# Creation Date: 2009-02-05 23:25 +# Last Modified: 2011-11-12 17:5:58 +# Copyright (c)2011, DDTCMS Project +# Purpose: This file used for DDTCMS Project +# ------------------------------------------------------------ + +# python. +#import datetime +#import urllib +# ------------------------------------------------------------ + +# django. +from django.contrib.sitemaps import Sitemap +from ddtcms.blog.models import Blog +# ------------------------------------------------------------ + +# 3dpart. +# +# ------------------------------------------------------------ + +# ddtcms. +#from models import MODEL +#from forms import AForm,BForm +# ------------------------------------------------------------ + +# config. +#FIELD_MAX_LENGTH = getattr(settings, 'FIELD_MAX_LENGTH', 100) +#n_dict={ +#"sitename":"Example", +#} +# ------------------------------------------------------------ + + + +class BlogSitemap(Sitemap): + changefreq = "never" + priority = 0.5 + + def items(self): + return Blog.objects.all() + + def lastmod(self, obj): + return obj.pub_date diff --git a/ddtcms/blog/tests.py b/ddtcms/blog/tests.py new file mode 100644 index 0000000..501deb7 --- /dev/null +++ b/ddtcms/blog/tests.py @@ -0,0 +1,16 @@ +""" +This file demonstrates writing tests using the unittest module. These will pass +when you run "manage.py test". + +Replace this with more appropriate tests for your application. +""" + +from django.test import TestCase + + +class SimpleTest(TestCase): + def test_basic_addition(self): + """ + Tests that 1 + 1 always equals 2. + """ + self.assertEqual(1 + 1, 2) diff --git a/ddtcms/blog/urls.py b/ddtcms/blog/urls.py new file mode 100644 index 0000000..2ae7414 --- /dev/null +++ b/ddtcms/blog/urls.py @@ -0,0 +1,152 @@ +# -*- coding: utf-8 -*- +# ------------------------------------------------------------ +# Script Name: urls.py +# Creation Date: 2011-04-23 22:29 +# Last Modified: 2011-11-12 17:6:29 +# Copyright (c)2011, DDTCMS Project +# Purpose: This file used for DDTCMS Project +# ------------------------------------------------------------ + +# python. +#import datetime +#import urllib +# ------------------------------------------------------------ + +# django. +from django.conf.urls.defaults import * +from django.core.paginator import Paginator, InvalidPage +from django.views.generic import DetailView, ListView + +from django.views.generic.dates import ArchiveIndexView, YearArchiveView, MonthArchiveView, \ + WeekArchiveView, DayArchiveView, TodayArchiveView, \ + DateDetailView +# ------------------------------------------------------------ + +# 3dpart. +# +# ------------------------------------------------------------ + +# ddtcms. +from ddtcms.blog.models import Blog +from ddtcms.blog.models import Category +#from forms import AForm,BForm +# ------------------------------------------------------------ + +# config. +extra_context = { + 'latest_Blog_list':Blog.objects.all()[:5], + 'category_list' : Category.objects.all(), +} + +blog_dict = { +'queryset': Blog.objects.all(), +'extra_context':extra_context, +} + + +category_dict = { +'queryset': Category.objects.all(), +'extra_context':extra_context, +} + +pages_dict = { +'queryset': Blog.objects.all(), +'paginate_by':3, +} + +archive_dict={} +archive_dict.update(blog_dict) +archive_dict.update({'date_field': 'pub_date',}) + +# ------------------------------------------------------------ +# +# paginator = Paginator(Blog.objects.all().order_by('-pub_date'), 3) +# latest_post_list = paginator.page(1).object_list +# catalog_list = Category.objects.all() +# page_list = [i for i in paginator.page_range ] +# return render_to_response('blog_index.html',{ +# 'latest_post_list': latest_post_list, +# 'catalog_list': catalog_list, +# 'blog_roll': blog_roll, +# 'page_list': page_list, +# }) + + +urlpatterns = patterns('', + + + url(r'^page/(?P\w+)/$', + ListView.as_view( + queryset = Blog.objects.all(), + context_object_name = 'latest_blog_list', + paginate_by = 3 + ), + name='blog_pages'), + + + + #url(r'^(?P\d+)/$', + # DetailView.as_view( + # model=Blog, + # name='blog_detail'), + + url(r'^category/$', + ListView.as_view( + queryset = Category.objects.all(), + context_object_name = 'latest_blog_list', + paginate_by = 3 + ), + name='category_list'), + + url(r'^category/(?P[-\w]+)/$', + DetailView.as_view( + model = Category, + context_object_name = 'category', + ), + name='category_detail'), + + url(r'^archive/$', + ArchiveIndexView.as_view( + queryset = Blog.objects.all(), + date_field = 'pub_date', + ), + name='blog_archive_index'), + + url(r'^archive/(?P\d{4})/$', + YearArchiveView.as_view( + queryset = Blog.objects.all(), + date_field = 'pub_date', + ), + name='blog_archive_index_year'), + + + url(r'^archive/(?P\d{4})/(?P\d{2})/$', + MonthArchiveView.as_view( + queryset = Blog.objects.all(), + date_field = 'pub_date', + month_format = '%m' + ), + name='blog_archive_index_month'), + + url(r'^archive/(?P\d{4})/(?P\d{2})/(?P\d{1,2})/$', + MonthArchiveView.as_view( + queryset = Blog.objects.all(), + date_field = 'pub_date', + month_format = '%m' + ), + name='blog_archive_index_day'), + + url(r'^archive/(?P\d{4})/(?P\d{2})/(?P\d{1,2})/(?P[-\w]+)/$', + DateDetailView.as_view( + model = Blog, + context_object_name = 'blog', + date_field = 'pub_date', + month_format = '%m' + ), + name='blog_detail'), + + url(r'^$', 'ddtcms.blog.views.index',name='blog_index'), + url(r'^post/$','ddtcms.blog.views.post'), + +) + diff --git a/ddtcms/blog/views.py b/ddtcms/blog/views.py new file mode 100644 index 0000000..c450074 --- /dev/null +++ b/ddtcms/blog/views.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +# ------------------------------------------------------------ +# Script Name: views.py +# Creation Date: 2011-11-12 15:55 +# Last Modified: 2011-11-12 17:7:30 +# Copyright (c)2011, DDTCMS Project +# Purpose: This file used for DDTCMS Project +# ------------------------------------------------------------ + +# python. +#import datetime +#import urllib +# ------------------------------------------------------------ + +# django. +from django.shortcuts import render_to_response +from django.http import HttpResponseRedirect +from django.template import RequestContext +from django.views.generic.list_detail import object_list +# ------------------------------------------------------------ + +# 3dpart. +# +# ------------------------------------------------------------ + +# ddtcms. +from ddtcms.blog.models import Blog +from ddtcms.blog.forms import CreateBlogForm +# ------------------------------------------------------------ + +# config. +#FIELD_MAX_LENGTH = getattr(settings, 'FIELD_MAX_LENGTH', 100) +#n_dict={ +#"sitename":"Example", +#} +# ------------------------------------------------------------ + +def index(request): + qs = Blog.objects.all() + return object_list(request,qs,paginate_by=10) + + +def post(request, success_url=None, + form_class=CreateBlogForm, + template_name='blog/blog_post.html', + extra_context=None): + + if request.method == 'POST': + form = form_class(data=request.POST, files=request.FILES) + if form.is_valid(): + new_user = form.save(profile_callback=profile_callback) + # success_url needs to be dynamically generated here; setting a + # a default value using reverse() will cause circular-import + # problems with the default URLConf for this application, which + # imports this file. + return HttpResponseRedirect(success_url or reverse('registration_complete')) + else: + form = form_class() + + if extra_context is None: + extra_context = {} + context = RequestContext(request) + for key, value in extra_context.items(): + context[key] = callable(value) and value() or value + return render_to_response(template_name, + { 'form': form,}, + context_instance=context) + + diff --git a/ddtcms/captcha/__init__.py b/ddtcms/captcha/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ddtcms/captcha/arial.ttf b/ddtcms/captcha/arial.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ff0815cd8c64b0a245ec780eb8d21867509155b5 GIT binary patch literal 367112 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≺9Wiv@#qpl#qL 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≪P+Tw+*$qa@!i>|Uj$m6(YG+< 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

{% endblock %} +{% block content_title %}{% if title %}

{{ title }}

{% endif %}{% endblock %} + + +{% block content %} +{% grp_render_dashboard %} +{% endblock %} + diff --git a/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/dashboard.html b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/dashboard.html new file mode 100644 index 0000000..839d3cc --- /dev/null +++ b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/dashboard.html @@ -0,0 +1,27 @@ +{% load i18n grp_dashboard_tags %} + +{{ dashboard.media }} + +
+
+ {% for module in dashboard.children %} + {% if module.column == 1 %} + {% grp_render_dashboard_module module forloop.counter %} + {% endif %} + {% endfor %} +
+
+ {% for module in dashboard.children %} + {% if module.column == 2 %} + {% grp_render_dashboard_module module forloop.counter %} + {% endif %} + {% endfor %} +
+
+ {% for module in dashboard.children %} + {% if module.column == 3 %} + {% grp_render_dashboard_module module forloop.counter %} + {% endif %} + {% endfor %} +
+
diff --git a/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/dashboard.txt b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/dashboard.txt new file mode 100644 index 0000000..5bdf42d --- /dev/null +++ b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/dashboard.txt @@ -0,0 +1,114 @@ +""" +This file was generated with the customdashboard management command and +contains the class for the main dashboard. + +To activate your index dashboard add the following to your settings.py:: + GRAPPELLI_INDEX_DASHBOARD = '{{ project }}.{{ file }}.CustomIndexDashboard' +""" + +from django.utils.translation import ugettext_lazy as _ +from django.core.urlresolvers import reverse + +from grappelli.dashboard import modules, Dashboard +from grappelli.dashboard.utils import get_admin_site_name + + +class CustomIndexDashboard(Dashboard): + """ + Custom index dashboard for www. + """ + + def init_with_context(self, context): + site_name = get_admin_site_name(context) + + # append a group for "Administration" & "Applications" + self.children.append(modules.Group( + _('Group: Administration & Applications'), + column=1, + collapsible=True, + children = [ + modules.AppList( + _('Administration'), + column=1, + collapsible=False, + models=('django.contrib.*',), + ), + modules.AppList( + _('Applications'), + column=1, + css_classes=('collapse closed',), + exclude=('django.contrib.*',), + ) + ] + )) + + # append an app list module for "Applications" + self.children.append(modules.AppList( + _('AppList: Applications'), + collapsible=True, + column=1, + css_classes=('collapse closed',), + exclude=('django.contrib.*',), + )) + + # append an app list module for "Administration" + self.children.append(modules.ModelList( + _('ModelList: Administration'), + column=1, + collapsible=False, + models=('django.contrib.*',), + )) + + # append another link list module for "support". + self.children.append(modules.LinkList( + _('Media Management'), + column=2, + children=[ + { + 'title': _('FileBrowser'), + 'url': '/admin/filebrowser/browse/', + 'external': False, + }, + ] + )) + + # append another link list module for "support". + self.children.append(modules.LinkList( + _('Support'), + column=2, + children=[ + { + 'title': _('Django Documentation'), + 'url': 'http://docs.djangoproject.com/', + 'external': True, + }, + { + 'title': _('Grappelli Documentation'), + 'url': 'http://packages.python.org/django-grappelli/', + 'external': True, + }, + { + 'title': _('Grappelli Google-Code'), + 'url': 'http://code.google.com/p/django-grappelli/', + 'external': True, + }, + ] + )) + + # append a feed module + self.children.append(modules.Feed( + _('Latest Django News'), + column=2, + feed_url='http://www.djangoproject.com/rss/weblog/', + limit=5 + )) + + # append a recent actions module + self.children.append(modules.RecentActions( + _('Recent Actions'), + limit=5, + collapsible=False, + column=3, + )) + + diff --git a/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/dummy.html b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/dummy.html new file mode 100644 index 0000000..f04fcf5 --- /dev/null +++ b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/dummy.html @@ -0,0 +1 @@ +{% extends template %} diff --git a/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/module.html b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/module.html new file mode 100644 index 0000000..7fdf18a --- /dev/null +++ b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/module.html @@ -0,0 +1,32 @@ +{% load grp_tags i18n %} +{% if not module.is_empty %} + +{% if dashboard.app_title %} + +{% else %} + +{% endif %} + + {% if module.title %} + {% if module|classname:"group" %} +

{{ module.title }}

+ {% else %} + {{ module.title }} + {% endif %} + {% endif %} + + {# TODO: need to know in what dom we wrap the pre_content/post_content #} + {# if module.pre_content %}{{ module.pre_content }}{% endif #} + + {% block module_content %} + {% for child in module.children %} + {{ child }} + {% endfor %} + {% endblock %} + + {# TODO: need to know in what dom we wrap the pre_content/post_content #} + {# if module.post_content %}{{ module.post_content }}{% endif #} + + + +{% endif %} diff --git a/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/app_list.html b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/app_list.html new file mode 100644 index 0000000..fd36b40 --- /dev/null +++ b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/app_list.html @@ -0,0 +1,34 @@ +{% extends "grappelli/dashboard/module.html" %} +{% load i18n %} +{% block module_content %} + {% spaceless %} + {% for child in module.children %} +
+ {{ child.title }} + {% for model in child.models %} +
+ {% if model.change_url %} + {{ model.title }} + {% else %} + {{ model.title }} + {% endif %} + {% if model.add_url or model.change_url %} + + {% endif %} +
+ {% endfor %} +
+ {% endfor %} + {% endspaceless %} +{% endblock %} diff --git a/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/feed.html b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/feed.html new file mode 100644 index 0000000..86d4e49 --- /dev/null +++ b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/feed.html @@ -0,0 +1,14 @@ +{% extends "grappelli/dashboard/module.html" %} +{% load i18n %} +{% block module_content %} +
    + {% spaceless %} + {% for child in module.children %} +
  • + {% if child.date %}{{ child.date|date }} {% endif %} + {% if child.warning %}{{ child.title }}{% else %}{{ child.title }}{% endif %} +
  • + {% endfor %} + {% endspaceless %} +
+{% endblock %} diff --git a/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/group.html b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/group.html new file mode 100644 index 0000000..caa4b88 --- /dev/null +++ b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/group.html @@ -0,0 +1,7 @@ +{% extends "grappelli/dashboard/module.html" %} +{% load i18n grp_dashboard_tags %} +{% block module_content %} + {% for sub_module in module.children %} + {% grp_render_dashboard_module sub_module index forloop.counter %} + {% endfor %} +{% endblock %} diff --git a/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/link_list.html b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/link_list.html new file mode 100644 index 0000000..f52ad13 --- /dev/null +++ b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/link_list.html @@ -0,0 +1,13 @@ +{% extends "grappelli/dashboard/module.html" %} +{% load i18n %} +{% block module_content %} +
    + {% spaceless %} + {% for child in module.children %} +
  • + {{ child.title }} +
  • + {% endfor %} + {% endspaceless %} +
+{% endblock %} diff --git a/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/model_list.html b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/model_list.html new file mode 100644 index 0000000..8a6abdb --- /dev/null +++ b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/model_list.html @@ -0,0 +1,15 @@ +{% extends "grappelli/dashboard/module.html" %} +{% load i18n %} +{% block module_content %} + {% for child in module.children %} +
+ {% if child.change_url %}{{ child.title }}{% else %}{{ child.title }}{% endif %} + {% if child.add_url or child.change_url %} + + {% endif %} +
+ {% endfor %} +{% endblock %} diff --git a/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/recent_actions.html b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/recent_actions.html new file mode 100644 index 0000000..428e173 --- /dev/null +++ b/ddtcms/grappelli/dashboard/templates/grappelli/dashboard/modules/recent_actions.html @@ -0,0 +1,15 @@ +{% extends "grappelli/dashboard/module.html" %} +{% load i18n %} +{% block module_content %} +
+ {% if module.children %} + + {% else %} +

{% trans 'None Available' %}

+ {% endif %} +
+{% endblock %} diff --git a/ddtcms/grappelli/dashboard/templatetags/__init__.py b/ddtcms/grappelli/dashboard/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ddtcms/grappelli/dashboard/templatetags/grp_dashboard_tags.py b/ddtcms/grappelli/dashboard/templatetags/grp_dashboard_tags.py new file mode 100644 index 0000000..0ba3822 --- /dev/null +++ b/ddtcms/grappelli/dashboard/templatetags/grp_dashboard_tags.py @@ -0,0 +1,65 @@ +""" +Dashboard template tags, the following dashboard tags are available: + * ``{% grp_render_dashboard %}`` + * ``{% grp_render_dashboard_module %}`` + +To load the dashboard tags: ``{% load grp_dashboard_tags %}``. +""" + +import math + +from django import template +from django.core.urlresolvers import reverse + +from grappelli.dashboard.utils import get_admin_site_name, get_index_dashboard + +register = template.Library() +tag_func = register.inclusion_tag('grappelli/dashboard/dummy.html', takes_context=True) + + +def grp_render_dashboard(context, location='index', dashboard=None): + """ + Template tag that renders the dashboard, it takes two optional arguments: + + ``location`` + The location of the dashboard, it can be 'index' (for the admin index + dashboard) or 'app_index' (for the app index dashboard), the default + value is 'index'. + + ``dashboard`` + An instance of ``Dashboard``, if not given, the dashboard is retrieved + with the ``get_index_dashboard`` or ``get_app_index_dashboard`` + functions, depending on the ``location`` argument. + """ + if dashboard is None: + dashboard = get_index_dashboard(context) + + dashboard.init_with_context(context) + + context.update({ + 'template': dashboard.template, + 'dashboard': dashboard, + 'admin_url': reverse('%s:index' % get_admin_site_name(context)), + }) + return context +grp_render_dashboard = tag_func(grp_render_dashboard) + + +def grp_render_dashboard_module(context, module, index=None, subindex=None): + """ + Template tag that renders a given dashboard module, it takes a + ``DashboardModule`` instance as first parameter and an integer ``index`` as + second parameter, that is the index of the module in the dashboard. + """ + module.init_with_context(context) + context.update({ + 'template': module.template, + 'module': module, + 'index': index, + 'subindex': subindex, + 'admin_url': reverse('%s:index' % get_admin_site_name(context)), + }) + return context +grp_render_dashboard_module = tag_func(grp_render_dashboard_module) + + diff --git a/ddtcms/grappelli/dashboard/utils.py b/ddtcms/grappelli/dashboard/utils.py new file mode 100644 index 0000000..c0cd490 --- /dev/null +++ b/ddtcms/grappelli/dashboard/utils.py @@ -0,0 +1,164 @@ +""" +Admin ui common utilities. +""" + +# PYTHON IMPORTS +import types +import warnings +from fnmatch import fnmatch + +# DJANGO IMPORTS +from django.conf import settings +from django.contrib import admin +from django.core.urlresolvers import reverse +from django.utils.importlib import import_module + + +def _get_dashboard_cls(dashboard_cls, context): + if type(dashboard_cls) is types.DictType: + curr_url = context.get('request').META['PATH_INFO'] + for key in dashboard_cls: + admin_site_mod, admin_site_inst = key.rsplit('.', 1) + admin_site_mod = import_module(admin_site_mod) + admin_site = getattr(admin_site_mod, admin_site_inst) + admin_url = reverse('%s:index' % admin_site.name) + if curr_url.startswith(admin_url): + mod, inst = dashboard_cls[key].rsplit('.', 1) + mod = import_module(mod) + return getattr(mod, inst) + else: + mod, inst = dashboard_cls.rsplit('.', 1) + mod = import_module(mod) + return getattr(mod, inst) + raise ValueError('Dashboard matching "%s" not found' % dashboard_cls) + + +def get_index_dashboard(context): + """ + Returns the admin dashboard defined in settings (or the default one). + """ + + return _get_dashboard_cls(getattr( + settings, + 'GRAPPELLI_INDEX_DASHBOARD', + 'grappelli.dashboard.dashboards.DefaultIndexDashboard' + ), context)() + + +def get_admin_site(context=None, request=None): + dashboard_cls = getattr( + settings, + 'GRAPPELLI_INDEX_DASHBOARD', + 'admin_tools.dashboard.dashboards.DefaultIndexDashboard' + ) + + if type(dashboard_cls) is types.DictType: + if context: + request = context.get('request') + curr_url = request.META['PATH_INFO'] + for key in dashboard_cls: + mod, inst = key.rsplit('.', 1) + mod = import_module(mod) + admin_site = getattr(mod, inst) + admin_url = reverse('%s:index' % admin_site.name) + if curr_url.startswith(admin_url): + return admin_site + else: + return admin.site + raise ValueError('Admin site matching "%s" not found' % dashboard_cls) + + +def get_admin_site_name(context): + return get_admin_site(context).name + + +def get_avail_models(request): + """ Returns (model, perm,) for all models user can possibly see """ + items = [] + admin_site = get_admin_site(request=request) + + for model, model_admin in admin_site._registry.items(): + perms = model_admin.get_model_perms(request) + if True not in perms.values(): + continue + items.append((model, perms,)) + return items + + +def filter_models(request, models, exclude): + """ + Returns (model, perm,) for all models that match models/exclude patterns + and are visible by current user. + """ + items = get_avail_models(request) + included = [] + full_name = lambda model: '%s.%s' % (model.__module__, model.__name__) + + # I beleive that that implemented + # O(len(patterns)*len(matched_patterns)*len(all_models)) + # algorythm is fine for model lists because they are small and admin + # performance is not a bottleneck. If it is not the case then the code + # should be optimized. + + if len(models) == 0: + included = items + else: + for pattern in models: + pattern_items = [] + for item in items: + model, perms = item + if fnmatch(full_name(model), pattern) and item not in included: + pattern_items.append(item) + pattern_items.sort(key=lambda x:x[0]._meta.verbose_name_plural) + included.extend(pattern_items) + + result = included[:] + for pattern in exclude: + for item in included: + model, perms = item + if fnmatch(full_name(model), pattern): + result.remove(item) + return result + + +class AppListElementMixin(object): + """ + Mixin class used by both the AppListDashboardModule and the + AppListMenuItem (to honor the DRY concept). + """ + + def _visible_models(self, request): + + included = self.models[:] + excluded = self.exclude[:] + if not self.models and not self.exclude: + included = ["*"] + return filter_models(request, included, excluded) + + def _get_admin_app_list_url(self, model, context): + """ + Returns the admin change url. + """ + app_label = model._meta.app_label + return reverse('%s:app_list' % get_admin_site_name(context), + args=(app_label,)) + + def _get_admin_change_url(self, model, context): + """ + Returns the admin change url. + """ + app_label = model._meta.app_label + return reverse('%s:%s_%s_changelist' % (get_admin_site_name(context), + app_label, + model.__name__.lower())) + + def _get_admin_add_url(self, model, context): + """ + Returns the admin add url. + """ + app_label = model._meta.app_label + return reverse('%s:%s_%s_add' % (get_admin_site_name(context), + app_label, + model.__name__.lower())) + + diff --git a/ddtcms/grappelli/models.py b/ddtcms/grappelli/models.py new file mode 100644 index 0000000..e69de29 diff --git a/ddtcms/grappelli/settings.py b/ddtcms/grappelli/settings.py new file mode 100644 index 0000000..4854e66 --- /dev/null +++ b/ddtcms/grappelli/settings.py @@ -0,0 +1,12 @@ +# coding: utf-8 + +# DJANGO IMPORTS +from django.conf import settings + + +# Admin Site Title +ADMIN_HEADLINE = getattr(settings, "GRAPPELLI_ADMIN_HEADLINE", 'Grappelli') +ADMIN_TITLE = getattr(settings, "GRAPPELLI_ADMIN_TITLE", 'Grappelli') + +# Link to your Main Admin Site (no slashes at start and end) +ADMIN_URL = getattr(settings, "GRAPPELLI_ADMIN_URL", '/admin/') \ No newline at end of file diff --git a/ddtcms/grappelli/static/grappelli/css/admin-tools.css b/ddtcms/grappelli/static/grappelli/css/admin-tools.css new file mode 100644 index 0000000..1c932ff --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/css/admin-tools.css @@ -0,0 +1,85 @@ + + + +/* Tools in Breadcrumbs: Edit Mode, Trash List +------------------------------------------------------------------------------------------------------ */ + +#breadcrumbs .tools { + margin: -7px 32px -20px 0; +} + +#breadcrumbs .tools > li > a { + padding: 0; + width: 20px; + height: 30px; + border: 0; +} +#breadcrumbs .tools a.edit-dashboard-toggle-handler:link, #breadcrumbs .tools a.edit-dashboard-toggle-handler:visited { + background: transparent url('../img/icons/icon-edit-dashboard-toggle-handler.png') 50% 50% no-repeat; +} +#breadcrumbs .tools a.edit-dashboard-toggle-handler:hover, #breadcrumbs .tools a.edit-dashboard-toggle-handler:active, +#breadcrumbs .tools a.tools-active.edit-dashboard-toggle-handler { + background: transparent url('../img/icons/icon-edit-dashboard-toggle-handler-hover.png') 50% 50% no-repeat !important; +} + +#breadcrumbs .tools a.trash-list-toggle-handler:link, #breadcrumbs .tools a.trash-list-toggle-handler:visited { + background: transparent url('../img/icons/icon-trash-list-toggle-handler.png') 50% 50% no-repeat; +} +#breadcrumbs .tools a.trash-list-toggle-handler:hover, #breadcrumbs .tools a.trash-list-toggle-handler:active, +#breadcrumbs .tools a.tools-active.trash-list-toggle-handler { + background: transparent url('../img/icons/icon-trash-list-toggle-handler-hover.png') 50% 50% no-repeat !important; +} + + +/* Trash List ......................................... */ + +ul.tools li.trash-list-container { + opacity: 1 !important; + overflow: visible !important; +} + +ul.trash-list { + position: absolute; + float: none; + display: block; + right: 2px; + z-index: 900; + top: 28px; + min-width: 218px; + border: 1px solid #ccc; + border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; + border-top-right-radius: 0; -moz-border-radius-topright: 0 !important; -webkit-border-top-right-radius: 0; + border-top-left-radius: 0; -moz-border-radius-topleft: 0 !important; -webkit-border-top-left-radius: 0; + background: #e6e6e6; + box-shadow: 0 10px 50px #ccc; -moz-box-shadow: 0 10px 50px #ccc; -webkit-box-shadow: 0 10px 50px #ccc; +} + +/* Empty breaks in Chrome 11+: Elements are not displayed initially even if they are not empty */ +/*ul.trash-list:empty { + display: none; +}*/ + +ul.trash-list li { + position: relative; + float: none; + margin: 0 !important; + width: 100%; + border-top: 1px solid #f4f4f4 !important; + border-bottom: 1px solid #d4d4d4 !important; +} +ul.trash-list li:last-child { + border-bottom: 0 !important; +} + +ul.trash-list li a { + padding-left: 10px; + border-radius: 0; -moz-border-radius: 0; -webkit-border-radius: 0; + background: transparent !important; + opacity: 1 !important; +} +ul.trash-list li a:link, ul.trash-list li a:visited { + color: #309bbf; +} +ul.trash-list li a:hover, ul.trash-list li a:active { + color: #444; +} \ No newline at end of file diff --git a/ddtcms/grappelli/static/grappelli/css/base.css b/ddtcms/grappelli/static/grappelli/css/base.css new file mode 100644 index 0000000..1f33cc0 --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/css/base.css @@ -0,0 +1,35 @@ + + + +/* Reset Styles (reset.css of Blueprint www.blueprintcss.org) +------------------------------------------------------------------------------------------------------ */ + +@import url('reset.css'); + + + +/* Grappelli Styles: + The core settings of Grappelli are defined here. + Do not change them (better use your own skins/css in the next section). +------------------------------------------------------------------------------------------------------ */ + +@import url('typography.css'); +@import url('structures.css'); +@import url('components.css'); +@import url('tools.css'); +@import url('forms.css'); +@import url('buttons.css'); +@import url('tables.css'); +@import url('admin-tools.css'); + + + +/* Grappelli Skins & Custom Styles: + Use the delivered Grappelli skins or import your own skins/css here +------------------------------------------------------------------------------------------------------ */ + +/* Grappelli Basic Skin: The Plain Version */ +/*@import url('grappelli-skin-basic.css');*/ + +/* Grappelli Default Skin: Adds Border-Radius & Background-Gradients to the Grappelli Basic Skin */ +@import url('grappelli-skin-default.css'); diff --git a/ddtcms/grappelli/static/grappelli/css/buttons.css b/ddtcms/grappelli/static/grappelli/css/buttons.css new file mode 100644 index 0000000..5c4d6b3 --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/css/buttons.css @@ -0,0 +1,379 @@ + + + +/* Submit, Delete & Cancel Buttons +------------------------------------------------------------------------------------------------------ */ + +input[type=submit], input[type=reset], input[type=button], button { + margin-top: 0; + margin-bottom: 0; + padding: 4px 5px 5px; + width: auto; + height: 25px; + box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; + cursor: pointer; +} +@media screen and (-webkit-min-device-pixel-ratio:0) { + input[type=submit], input[type=reset], input[type=button], button { + padding: 5px 8px 4px; + } +} + +.submit-row a.submit-link, +.submit-row a.delete-link, +.submit-row a.cancel-link { + display: block; + padding: 5px 10px; + font-weight: bold; +} +.submit-row input[type=submit], +.submit-row input[type=button] { + padding: 5px 10px; + height: 28px; + font-weight: bold; +} + +input[type=submit], +#bookmark-add-cancel, +.submit-row a.delete-link:link, .submit-row a.delete-link:visited, +.submit-row a.cancel-link:link, .submit-row a.cancel-link:visited, +.submit-row input[type=button] { + opacity: .6; +} + +input[type=submit]:hover, +#bookmark-add-cancel:hover, +.submit-row a.delete-link:hover, .submit-row a.delete-link:active, +.submit-row a.cancel-link:hover, .submit-row a.cancel-link:active, +.submit-row input[type=button]:hover { + opacity: 1; +} + +input[type=submit].default { + opacity: 1; +} + + + +/* Icons & Buttons +------------------------------------------------------------------------------------------------------ */ + +button.fb_show, +button.ui-datepicker-trigger, +button.ui-timepicker-trigger, +button.ui-gAutocomplete-browse, +button.ui-gAutoSlugField-toggle, +button.ui-gFacelist-browse, +a.button, +.vDateField + span a, +.vTimeField + span a, +a.fb_show, +a.related-lookup, +a.add-another { + position: relative; + margin-left: -25px; +} + +button.fb_show, +button.ui-gAutocomplete-browse, +button.ui-gFacelist-browse, +button.ui-gAutoSlugField-toggle, +button.ui-datepicker-trigger, +button.ui-timepicker-trigger, +button.fb_show:hover, +button.ui-gAutocomplete-browse:hover, +button.ui-gFacelist-browse:hover, +button.ui-gAutoSlugField-toggle:hover, +button.ui-datepicker-trigger:hover, +button.ui-timepicker-trigger:hover { + width: 25px; + background: 50% 50% no-repeat; +} +button.fb_show[disabled], +button.ui-gAutocomplete-browse[disabled], +button.ui-gFacelist-browse[disabled], +button.ui-gAutoSlugField-toggle[disabled], +button.ui-datepicker-trigger[disabled], +button.ui-timepicker-trigger[disabled], +input[disabled] + a { + background: 50% 50% no-repeat !important; + opacity: 0.3; + cursor: auto !important; +} + +#changelist table button { + top: -5px; + margin-bottom: -12px; +} +@media screen and (-webkit-min-device-pixel-ratio:0) { + #changelist table button { + margin-bottom: -11px; + } +} + + +/* Hide Images in Templates ........................................... */ + +a.add-another img, a.related-lookup img { + opacity: 0; +} +a.related-lookup img { + display: none; +} + + +/* Autocomplete Button ......................................... */ + +button.ui-gAutocomplete-browse, +button.ui-gFacelist-browse { + background-image: url('../img/icons/icon-related-lookup.png'); +} +button.ui-gAutocomplete-browse:hover, +button.ui-gFacelist-browse:hover { + background-image: url('../img/icons/icon-related-lookup-hover.png'); +} +button.ui-gAutocomplete-browse[disabled], button.ui-gAutocomplete-browse[disabled]:hover, +button.ui-gFacelist-browse[disabled], button.ui-gFacelist-browse[disabled]:hover { + background-image: url('../img/icons/icon-related-lookup-hover.png') !important; +} + + +/* AutoSlugField Button ......................................... */ + +/* TODO: lock/unlock icons .. */ + +button.ui-gAutoSlugField-toggle { + background-image: url('../img/icons/icon-related-lookup.png'); +} +button.ui-gAutoSlugField-toggle:hover { + background-image: url('../img/icons/icon-related-lookup-hover.png'); +} +button.ui-gAutoSlugField-toggle[disabled], button.ui-gAutoSlugField-toggle[disabled]:hover { + background-image: url('../img/icons/icon-related-lookup-hover.png') !important; +} + + +/* Datepicker Button ......................................... */ + +button.ui-datepicker-trigger { + background-image: url('../img/icons/icon-datepicker.png'); +} +button.ui-datepicker-trigger:hover { + background-image: url('../img/icons/icon-datepicker-hover.png'); +} +button.ui-datepicker-trigger[disabled], button.ui-datepicker-trigger[disabled]:hover { + background-image: url('../img/icons/icon-datepicker-hover.png') !important; +} + + +/* Timepicker Button ......................................... */ + +button.ui-timepicker-trigger { + background-image: url('../img/icons/icon-timepicker.png'); +} +button.ui-timepicker-trigger:hover { + background-image: url('../img/icons/icon-timepicker-hover.png'); +} +button.ui-timepicker-trigger[disabled], button.ui-timepicker-trigger[disabled]:hover { + background-image: url('../img/icons/icon-timepicker-hover.png') !important; +} + + +/* Search Button ......................................... */ + +button.search { + position: relative; + float: right; + top: 0; + right: 5px; + margin: 0 0 0 -30px; + background: url('../img/icons/icon-search.png') 0 50% no-repeat scroll; +} +button.search:hover { + background: url('../img/icons/icon-search-hover.png') 0 50% no-repeat scroll; +} +button.search[disabled], button.search[disabled]:hover { + background: url('../img/icons/icon-search-hover.png') 0 50% no-repeat scroll !important; +} + + + +/* Links as Buttons +------------------------------------------------------------------------------------------------------ */ + +a.button, +.datecrumbs a, +.datecrumbs span { + display: inline-block; + padding: 4px 8px 4px; + font-size: 11px; + font-weight: bold; +} + + +/* Drop-Down Button ......................................... */ + +a.button.drop-down { + float: right; + padding-left: 20px; + padding-top: 3px; +} +a.button.drop-down[class*="selected"] { + position: relative; + z-index: 1000; + height: 17px; +} +a.button.drop-down:link, a.button.drop-down:visited { + background: url('../img/icons/icon-dropdown.png') 3px 3px no-repeat; +} +a.button.drop-down[class*="selected"], +a.button.drop-down:hover, a.button.drop-down:active { + background: url('../img/icons/icon-dropdown-hover.png') 3px 3px no-repeat; +} + + +/* Filebrowser & Related Lookup ......................................... */ + +a.fb_show img { + width: 0; + height: 0; + opacity: 0; +} + +a.fb_show, +a.related-lookup { + display: inline-block; + margin-bottom: -5px; + width: 23px; + height: 23px; + font-size: 0; + line-height: 0; + background: 50% 50% no-repeat; +} + +a.fb_show:link, a.fb_show:visited, +.tinyMCE .browse span { + background-image: url('../img/icons/icon-fb-show.png'); +} +a.fb_show:hover, a.fb_show:active, +.tinyMCE .browse span:hover { + background-image: url('../img/icons/icon-fb-show-hover.png'); +} +a.related-lookup:link, a.related-lookup:visited { + background-image: url('../img/icons/icon-related-lookup.png'); +} +a.related-lookup:hover, a.related-lookup:active { + background-image: url('../img/icons/icon-related-lookup-hover.png'); +} +div.autocomplete-wrapper-m2m a.related-lookup:link, div.autocomplete-wrapper-m2m a.related-lookup:visited { + background-image: url('../img/icons/icon-related-lookup-m2m.png'); +} +div.autocomplete-wrapper-m2m a.related-lookup:hover, div.autocomplete-wrapper-m2m a.related-lookup:active { + background-image: url('../img/icons/icon-related-lookup-m2m-hover.png'); +} + +input[disabled] + a.fb_show { + background-image: url('../img/icons/icon-fb-show-hover.png') !important; +} +input[disabled] + a.related-lookup { + background-image: url('../img/icons/icon-related-lookup-hover.png') !important; +} + +a.related-lookup + strong { + position: relative; + top: -4px; + margin-left: 5px; + font-size: 11px; + font-weight: bold; +} +#changelist table a.fb_show, +#changelist table a.related-lookup { + top: -5px; + margin-bottom: -12px; +} +#changelist table a.related-lookup + strong { + top: -1px; +} + + +/* Add Another ......................................... */ + +a.add-another { + position: relative; + display: inline-block; + margin-left: 3px; + width: 14px; + height: 14px; + vertical-align: top; + font-size: 11px; + line-height: 16px; + background: 50% 50% no-repeat; +} + +a.add-another:link, a.add-another:visited { + background-image: url('../img/icons/icon-add_another.png'); +} +a.add-another:hover, a.add-another:active { + background-image: url('../img/icons/icon-add_another-hover.png'); +} + +.change-list table tbody a.add-another { + position: relative; + top: -7px; +} + +.radiolist.inline + a.add-another, +.checkboxlist.inline + a.add-another { + float: left; + margin-left: -20px; + margin-right: -10000px; +} +.row.cells ul.radiolist.inline + a.add-another, +.row.cells ul.checkboxlist.inline + a.add-another { + float: none; + margin-right: 0; +} + + + +/* Unknown, Yes & No Workaround +------------------------------------------------------------------------------------------------------ */ + +img[src$="img/admin/icon-unknown.gif"] { + padding: 0; + width: 15px; + height: 15px; + color: transparent; + background: url('../img/icons/icon-unknown.png') 0 50% no-repeat; +} +img[src$="img/admin/icon-no.gif"] { + padding: 0; + width: 15px; + height: 15px; + color: transparent; + background: url('../img/icons/icon-no.png') 0 50% no-repeat; +} +img[src$="img/admin/icon-yes.gif"] { + padding: 0; + width: 15px; + height: 15px; + color: transparent; + background: url('../img/icons/icon-yes.png') 0 50% no-repeat; +} + +#changelist form table img[src$="img/admin/icon-unknown.gif"] { + position: relative; + top: 2px; + vertical-align: top; +} +#changelist form table img[src$="img/admin/icon-no.gif"] { + position: relative; + top: 3px; + vertical-align: top; +} +#changelist form table img[src$="img/admin/icon-yes.gif"] { + position: relative; + top: 2px; + vertical-align: top; +} + diff --git a/ddtcms/grappelli/static/grappelli/css/components.css b/ddtcms/grappelli/static/grappelli/css/components.css new file mode 100644 index 0000000..28e1d97 --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/css/components.css @@ -0,0 +1,878 @@ + + + +/* Paragraphs & Other Typo Formats +------------------------------------------------------------------------------------------------------ */ + +.module p { + margin: 0; + padding: 5px 0; +} +fieldset.module label + p { + font-size: 11px; + line-height: 15px; +} + + + +/* Modules +------------------------------------------------------------------------------------------------------ */ + +.module { + margin: 0 0 7px; +} + +.form-container .module { + min-width: 938px; +} +#changelist .span-flexible .module + ul.submit-row { + margin-top: 10px; +} +/* Empty breaks in Chrome 11+: Elements are not displayed initially even if they are not empty */ +/*.module:empty { + padding: 0; + height: 0; + border: 0; + visibility: hidden; +}*/ + +/* Nested Modules Basics ......................................... */ + +.module .module, +.module fielset.module { + margin: 0; +} + + + +/* Groups +------------------------------------------------------------------------------------------------------ */ + +.group { + margin: 0 -4px 7px; + padding: 2px; +} +.form-container .group { + min-width: 940px; +} + + + +/* Elements in Modules & Groups +------------------------------------------------------------------------------------------------------ */ + + +/* 1st Level Elements ......................................... */ + +.group h2, +.module h2 { + padding: 6px 10px; +} +.group h2+.tools+* { + margin-top: 2px; +} + + +/* 2nd Level Elements (Dark/Bright) ......................................... */ + +.group h3, +.module h3 { + margin: 0; + padding: 5px 10px; +} + + +/* 3rd Level Elements ......................................... */ + +.group h4, +.module h4 { + margin: 0; + padding: 4px 10px 4px 10px; +} + +.module .description { + padding: 8px 10px; + font-size: 11px; +} + + + +/* Modules & Groups Overrides +------------------------------------------------------------------------------------------------------ */ + +.module:first-child { + margin-top: 0 !important; +} +.group .module:first-child { + margin-top: 2px !important; +} +.group:first-child { + margin-top: -4px; +} +.group .module { + margin-top: 2px; + margin-bottom: 0; +} +.group .module .module { + margin-top: 0; +} +.group:last-child, +.module:last-child { + margin-bottom: 0; +} + + + +/* Collapsible Structures +------------------------------------------------------------------------------------------------------ */ + +.collapse.closed *, +.collapse.closed .module.table, +.collapse.closed .module.table * { + display: none; +} + +.collapse-handler { + cursor: pointer; +} + +.collapse.closed .collapse-handler, +.collapse.closed .tools, +.collapse.closed .tools * { + display: block !important; +} +.collapse.closed h3+.tools, +.collapse.closed h4+.tools { + margin-top: 1px !important; +} + + + +/* Row +------------------------------------------------------------------------------------------------------ */ + +.row { + padding: 5px 10px; + font-weight: bold; +} + +fieldset.module .row + .module { + margin-top: -1px !important; +} + + + +/* Cell +------------------------------------------------------------------------------------------------------ */ + +.row .cell { + display: inline-block; + margin-top: -5px; + margin-bottom: -5px; + padding: 5px 10px; + width: auto; +} +.row .cell + .cell { + padding-left: 18px; +} + + + +/* Fieldset Row +------------------------------------------------------------------------------------------------------ */ + +fieldset.module .row { + overflow: hidden; + padding: 8px 10px; + line-height: 18px; + font-weight: normal; +} +fieldset.module .row.cells { + white-space: nowrap; +} + + + +/* Fieldset Cell +------------------------------------------------------------------------------------------------------ */ + +fieldset.module .cell { + margin: -8px 0 -1000px 0; + padding: 8px 18px 1000px 0; + vertical-align: top; + white-space: nowrap; + height: 100%; +} +fieldset.module .cell:last-child, fieldset.module .cell.last { + margin-right: -20px; +} + + +/* Tabular Modules +------------------------------------------------------------------------------------------------------ */ + +.module.table { + display: table; + margin: 0 0 -2px; + width: 100%; + border-collapse: separate; + border-spacing: 0 2px; +} +h2 + .module.table, +h2 + * + .module.table, +h2 + * + * + .module.table { + margin-top: 0 !important; +} +@media screen and (-webkit-min-device-pixel-ratio:0) { + .module.table { + margin-bottom: -1px; + border-spacing: 0 1px !important; + } +} + +.module.thead { + display: table-header-group; +} +.module.tfoot { + display: table-footer-group; +} +.module.thead, +.module.tfoot { + font-size: 11px; + font-weight: bold; +} +.module.table .tr { + display: table-row; +} + +.module.tbody { + display: table-row-group; +} + +.module.table .th, +.module.table .td { + display: table-cell; + float: none; + overflow: hidden; + margin-right: 0; + padding: 1px 20px; + height: 100%; + vertical-align: top; + white-space: nowrap; +} + +.module.tbody .th, +.module.tbody .td { + padding-top: 5px; + padding-bottom: 5px; +} +.module.table .th:first-of-type, +.module.table .td:first-of-type { + padding-left: 10px; +} +.module.tbody .th.tools, +.module.tbody .td.tools { + padding-left: 0; + width: 100%; +} + +.empty-form { + display: none !important; +} + + + +/* Add Items +------------------------------------------------------------------------------------------------------ */ + +.module.add-item { + height: 28px; +} +.module.add-item>a { + position: relative; + top: 6px; + padding: 5px 10px; + font-weight: bold; +} + + + +/* Selectors +------------------------------------------------------------------------------------------------------ */ + +.selector { + position: relative; + float: left; + overflow: hidden; + width: 758px; +} +.selector-available, .selector-chosen { + float: left; + width: 366px; +} +.selector.stacked .selector-available, .selector.stacked .selector-chosen { + width: 756px; +} +.selector h2, .inline-group .selector h2, +.inline-related fieldset .selector-available h2, .inline-related fieldset .selector-chosen h2 { + padding: 7px 5px 6px 7px; + font-size: 12px; + line-height: 13px; + font-weight: bold; +} +.selector .selector-filter { + padding: 3px 5px 2px 2px; + min-height: 25px; + font-weight: bold; + line-height: 25px; + text-indent: 25px; + background: url('../img/icons/icon-searchbox.png') 6px 50% no-repeat; +} +.selector .selector-filter input[type=text] { + position: relative; + margin: 0; + width: 326px !important; + max-width: 326px !important; +} +.selector.stacked .selector-filter input[type=text] { + width: 716px !important; + max-width: 716px !important; +} +.selector .selector-filter img { + display: none; +} +.selector .selector-chosen .selector-filter:after { + content: " " url('../img/icons/icon-selector_add-m2m_horizontal-hover.png'); + opacity: .75; +} +.selector.stacked .selector-chosen .selector-filter:after { + content: " " url('../img/icons/icon-selector_add-m2m_vertical-hover.png'); +} +.selector select[multiple=multiple] { + margin: 0; + padding-left: 3px; + max-width: 367px !important; + width: 367px !important; + height: 200px; +} +.selector.stacked select[multiple=multiple] { + width: 757px !important; + max-width: 757px !important; +} +.selector h2 + select { + display: none; + position: relative; + top: -1px; +} +.selector ul.selector-chooser { + float: left; + margin: 110px 2px 0; + padding: 0; + width: 18px; +} +.selector.stacked ul.selector-chooser { + margin: 4px 0 0 356px; + width: 36px; +} +.selector.stacked ul.selector-chooser li { + float: left; +} +a.selector-add, a.selector-remove { + display: block; + width: 18px; + height: 18px; + color: transparent !important; + background-position: 50% 0; + background-repeat: no-repeat; +} +a.selector-add:link, a.selector-add:visited { + background-image: url('../img/icons/icon-selector_add-m2m_horizontal.png'); +} +a.selector-add:hover, a.selector-add:active { + background-image: url('../img/icons/icon-selector_add-m2m_horizontal-hover.png'); +} +a.selector-remove:link, a.selector-remove:visited { + background-image: url('../img/icons/icon-selector_remove-m2m_horizontal.png'); +} +a.selector-remove:hover, a.selector-remove:active { + background-image: url('../img/icons/icon-selector_remove-m2m_horizontal-hover.png'); +} +.selector.stacked a.selector-add:link, .selector.stacked a.selector-add:visited { + background-image: url('../img/icons/icon-selector_add-m2m_vertical.png'); +} +.selector.stacked a.selector-add:hover, .selector.stacked a.selector-add:active { + background-image: url('../img/icons/icon-selector_add-m2m_vertical-hover.png'); +} +.selector.stacked a.selector-remove:link, .selector.stacked a.selector-remove:visited { + background-image: url('../img/icons/icon-selector_remove-m2m_vertical.png'); +} +.selector.stacked a.selector-remove:hover, .selector.stacked a.selector-remove:active { + background-image: url('../img/icons/icon-selector_remove-m2m_vertical-hover.png'); +} +a.selector-chooseall, a.selector-clearall { + display: block; + margin: 0; + padding: 2px 7px; + font-size: 11px; + line-height: 13px; + font-weight: bold; +} + + + +/* Link-List, Actions, Feed, Table of Contents +------------------------------------------------------------------------------------------------------ */ + +.link-list ul li, +.feed ul li, +.table-of-contents ul li { + padding: 0; + font-size: 11px; + line-height: 15px; + font-weight: bold; +} +.link-list ul li a, +.feed ul li a, .feed ul li span, +.table-of-contents ul li a { + display: block; + padding: 5px 10px; + font-weight: bold; + line-height: 13px; + background-color: transparent; + background-position: 50% 50%; + background-repeat: no-repeat; +} +.actions p, +.link-list p, +.feed p { + color: #999; + font-size: 11px; + padding: 3px 10px; +} +.link-list ul li a, +.feed ul li a { + padding-left: 25px; +} +a.internal, +a.external { + background-repeat: no-repeat; +} +.dashboard a.internal { + background-position: 12px 7px; +} +.dashboard a.external { + background-position: 10px 8px; +} +.documentation a.external { + padding-left: 12px; + background-position: 1px 3px; +} +a.internal:link, a.internal:visited { + background-image: url('../img/icons/icon-navigation-internal.png'); +} +a.internal:hover, a.internal:active { + background-image: url('../img/icons/icon-navigation-internal-hover.png'); +} +a.external:link, a.external:visited { + background-image: url('../img/icons/icon-navigation-external.png'); +} +a.external:hover, a.external:active { + background-image: url('../img/icons/icon-navigation-external-hover.png'); +} + +.feed ul li a, .feed ul li span { + line-height: 13px; +} +.feed ul li span.date { + float: right; + padding: 5px 5px 0 5px; +} + + + +/* Basic Actions & Module Actions +------------------------------------------------------------------------------------------------------ */ + +ul.actions { + position: relative; + float: right; + clear: both; +} +ul.actions li { + position: relative; + float: left; +} +ul.actions li + li { + margin-left: 20px; +} +ul.actions li a { + padding-left: 15px; + font-size: 11px; + background-position: 0 50%; + background-repeat: no-repeat; +} + +.actions ul li { + padding: 4px 5px 4px 25px; + font-size: 11px; + line-height: 12px; +} + +.actions ul li a { + margin-left: -15px; + padding-left: 15px; + font-weight: bold; + background-position: 0 50%; + background-repeat: no-repeat; +} + +.actions li.add-link a:link, .actions li.add-link a:visited { + background-image: url('../img/icons/icon-actions-add-link.png'); +} +.actions li.add-link a:hover, .actions li.add-link a:active { + background-image: url('../img/icons/icon-actions-add-link-hover.png'); +} +.actions li.change-link a:link, .actions li.change-link a:visited { + background-image: url('../img/icons/icon-actions-change-link.png'); +} +.actions li.change-link a:hover, .actions li.change-link a:active { + background-image: url('../img/icons/icon-actions-change-link-hover.png'); +} + +.actions li.delete-link { + text-decoration: line-through; + background: url('../img/icons/icon-actions-delete-link.png') 10px 7px no-repeat; +} + + + +/* Module Search & Module Filter +------------------------------------------------------------------------------------------------------ */ + +.module.search, +.module.filter { + position: relative; + float: right; + z-index: 990; + padding: 8px 10px; +} +.module.filter + .module.search { + padding-right: 0; +} + +.module.filter .pulldown-container { + position: absolute; + width: inherit; +} + +.module.search .tooltip { + position: absolute; +} +.module.search .tooltip.search-fields { + top: 25px; +} +.module.search .tooltip .tooltip-pointer { + position: relative; + z-index: 1000; + display: block; + width: 30px; + height: 8px; + background: transparent url('../img/backgrounds/tooltip-pointer.png') 10px 100% no-repeat scroll; +} +.module.search .tooltip .tooltip-content { + position: relative; + z-index: 990; + top: -1px; + padding: 8px 10px; + font-size: 11px; + line-height: 15px; +} + +a.button.toggle-filters { + display: block; + margin: 0; + padding: 4px 20px 4px 8px; +} +a.button.toggle-filters:link, a.button.toggle-filters:visited { + background: transparent url('../img/icons/icon-dropdown.png') 100% 3px no-repeat; +} +.selected a.button.toggle-filters:link, .selected a.button.toggle-filters:visited { + background: url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat; +} +.open a.button.toggle-filters, .selected a.button.toggle-filters, +.selected a.button.toggle-filters:hover, .selected a.button.toggle-filters:active, +a.button.toggle-filters:hover, a.button.toggle-filters:active { + background: url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat; +} +.selected a.button.toggle-filters:link, .selected a.button.toggle-filters:visited { + background: url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat; +} +.open a.button.toggle-filters, +.open.selected a.button.toggle-filters, +.selected a.button.toggle-filters:hover, .selected a.button.toggle-filters:active, +a.button.toggle-filters:hover, a.button.toggle-filters:active { + background: url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat; +} + +.filter-pulldown { + display: none; + position: relative; + z-index: 1000; + margin: -1px 0; + padding: 0 10px 10px; +} +.filter-pulldown .filter { + position: relative; + padding: 7px 0 0; + width: 100%; +} +.filter-pulldown select { + width: 100% !important; +} +.filter-pulldown label { + margin: 0 0 -2px; + padding: 0; + width: 100% !important; + line-height: 12px; + font-weight: bold; +} + + + +/* Module Date Hierarchy +------------------------------------------------------------------------------------------------------ */ + +.module + .module.date-hierarchy { + margin-top: -8px; +} + +.date-hierarchy ul { + position: relative; + float: left; + clear: both; + font-size: 11px; + line-height: 16px; + font-weight: bold; +} +.date-hierarchy ul li { + position: relative; + float: left; + margin-right: 10px; +} +.module.date-hierarchy ul a, +.module.date-hierarchy ul span { + padding: 2px 5px 1px; + font-weight: normal; +} +.date-hierarchy ul li a.date-hierarchy-back { + padding-left: 10px; + background: 0 50% no-repeat scroll; +} + +.date-hierarchy a.date-hierarchy-back:link, .date-hierarchy a.date-hierarchy-back:visited { + background-image: url('../img/icons/icon-date-hierarchy-back.png'); +} +.date-hierarchy a.date-hierarchy-back:hover, .date-hierarchy a.date-hierarchy-back:active { + background-image: url('../img/icons/icon-date-hierarchy-back-hover.png'); +} + + + +/* Pagination +------------------------------------------------------------------------------------------------------ */ + +.module.pagination { + padding: 8px 10px; +} +.module .module.pagination { + position: relative; + float: left; +} +ul.pagination { + position: relative; + clear: both; + margin: 0; + padding: 0; + width: auto; + font-weight: bold; +} +ul.pagination li { + position: relative; + float: left; + display: block; + margin-right: 3px; +} +ul.pagination li.results { + margin-right: 10px; +} +ul.pagination li.separator { + border-color: transparent; +} +ul.pagination li:last-child { + clear: right; +} + +ul.pagination span, +ul.pagination a { + display: inline-block; + padding: 4px 8px 4px; + min-width: 25px; + font-size: 11px; + font-weight: bold; + box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; +} +ul.pagination li.separator span { + padding: 4px 0; + min-width: 10px; + font-size: 14px; +} +ul.pagination li.showall { + margin-left: 7px; +} +.submit-row ul.pagination li, +.submit-row ul.pagination li.results { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + + + +/* Module Changelist-Results +------------------------------------------------------------------------------------------------------ */ + +.module.changelist-results { + background: url('../img/backgrounds/changelist-results.png') repeat scroll !important; +} +.changelist-actions + .changelist-results, +.changelist-results + .changelist-actions { + margin-top: -1px; +} + + + +/* Module Changelist Actions +------------------------------------------------------------------------------------------------------ */ + +.changelist-actions { + position: relative; + margin-bottom: 0; +} + +.changelist-actions ul { + position: relative; + float: left; + display: inline; + font-size: 11px; + line-height: 16px; + font-weight: bold; + margin: -1px 10px -1px 0; +} +.changelist-actions ul li { + position: relative; + float: left; + display: block; + margin-right: 3px; +} + +.changelist-actions ul a, +.changelist-actions ul span { + display: inline-block; + padding: 4px 8px 3px; + font-size: 11px; + font-weight: bold; +} +.changelist-actions ul span span { + padding: 0; +} + +.changelist-actions #action-toggle { + display: none; +} +.changelist-actions select { + float: left; + margin: 0 10px 0 0; + width: 278px; +} + +.changelist-actions li.all, +.changelist-actions li.clear-selection, +.changelist-actions li.question { + display: none; +} + + + +/* Submit Row +------------------------------------------------------------------------------------------------------ */ + +.module.submit-row { + width: 100%; +} +ul.submit-row { + position: relative; + float: left; + clear: both; + width: 100%; +} +.pagination + ul.submit-row { + float: right; + clear: none; + width: 25%; +} +ul.submit-row li { + float: right; + margin-left: 10px; +} + +ul.submit-row li.left { + float: left; +} +ul.submit-row li.left:first-child { + margin-left: 0; +} + + + +/* Module Footer +------------------------------------------------------------------------------------------------------ */ + +.module.footer { + position: fixed; + z-index: 1000; + bottom: 0; + margin: 0 -20px; + padding: 12px 20px; + min-width: 100px; + width: 100%; + opacity: 1; + box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; +} +.module.footer .changelist-actions { + position: relative; + float: left; + clear: none; + width: 75%; + padding: 2px 0 0; +} +.change-list .module.footer ul.submit-row { + position: relative; + float: right; + clear: none; + width: 25%; +} + + + +/* Sortable +------------------------------------------------------------------------------------------------------ */ + +.sortablehelper, sortablehelper * { + display: none; +} + + + + + + + diff --git a/ddtcms/grappelli/static/grappelli/css/datepicker/grappelli-theme-extensions.css b/ddtcms/grappelli/static/grappelli/css/datepicker/grappelli-theme-extensions.css new file mode 100644 index 0000000..c5df988 --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/css/datepicker/grappelli-theme-extensions.css @@ -0,0 +1,392 @@ + +body { +/* background: #e4f !important;*/ +} + + + + + +/* Widget Basics +------------------------------------------------------------------------------------------------------ */ + +.module.ui-widget { + border: none; + background: #fff; +} +.ui-widget-content { + border: 1px solid #ccc; + border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; + background: #eee; +} + + + +/* Accordion +------------------------------------------------------------------------------------------------------ */ + + +/* Overlays */ +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { + display: block; + font-size: 1em; + padding: 0 0 0 12px; +} +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { + top: 0; + margin-top: 0; + margin-bottom: 0; + padding: 5px 15px; + border-top: 1px solid #fff; +} +.ui-accordion .ui-accordion-content-active { display: block; }/* Datepicker +----------------------------------*/ + + + +.ui-accordion-header { + margin-top: 2px !important; + cursor: pointer; + outline: none; +} +.ui-accordion .ui-accordion-header a { + padding: 0 0 0 12px; + color: #444; + outline: none; +} + +.ui-accordion-header.ui-state-default { + border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; +} +.ui-accordion-header.ui-state-active { + border-bottom-left-radius: 0; -moz-border-radius-bottomleft: 0; -webkit-border-bottom-left-radius: 0; + border-bottom-right-radius: 0; -moz-border-radius-bottomright: 0; -webkit-border-bottom-right-radius: 0; +} + + +/* Accordion Module ......................................... */ + +.module .ui-accordion-header.ui-state-default { + border: 1px solid #bdbdbd; + background-color: #a1d4e5; +} +.module .ui-accordion-header.ui-state-default:hover { + background-color: #d6d6d6; +} +.module .ui-accordion-header.ui-state-active { + border: 1px solid #bdbdbd; + background-color: #d6d6d6; +} + + + +/* Accordion Module in Group......................................... */ + +.group .module .ui-accordion-header.ui-state-default { + border: 1px solid #c7c7c7; + background-color: #cee9f2; +} +.group .module .ui-accordion-header.ui-state-default:hover { + background-color: #e0e0e0; +} +.group .module .ui-accordion-header.ui-state-active { + border: 1px solid #c7c7c7; + background-color: #e0e0e0; +} + + + + +/*.module .ui-accordion-header { + border-top: 1px solid #e4f; +}*/ +.group .module .ui-accordion-header { + border-top: 1px solid #4ef; +} + + + +/* Datepicker +------------------------------------------------------------------------------------------------------ */ + +.ui-datepicker { + width: auto !important; padding: 3px 3px 0; + border-color: #bdbdbd; + box-shadow: 0 0 10px #333; -moz-box-shadow: 0 0 10px #333; -webkit-box-shadow: 0 0 10px #333; +} +.ui-datepicker .ui-datepicker-header { + padding: 2px 0; + height: 25px; +} +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { + position: absolute; + top: 4px; + width: 1.8em; + height: 1.8em; +} +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 3px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { + margin: 3px 25px 2px; + line-height: 1.8em; + text-align: center; +} +.ui-datepicker .ui-datepicker-title select { + float:left; + font-size:1em; + margin: -3px 0 -1px !important; + min-width: 30px; +} +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker .ui-datepicker-title select.ui-datepicker-year { + float: right; +} +.ui-datepicker table { + width: 100%; + font-size: 12px; + margin: 0 0 2px; +} +.ui-datepicker th { padding: 5px 0; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { + min-width: 25px; + border: 0; padding: 1px; +} +.ui-datepicker td span, .ui-datepicker td a { + padding: 4px 0 3px; + text-align: center; + border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; +} +.ui-datepicker td a.ui-state-hover { + color: #fff !important; + border-color: #444 !important; + background: #444 !important; +} +.ui-datepicker td a.ui-state-active { +/* color: #fff;*/ +/* border-color: #aaa;*/ + background: #fff; +} +.ui-datepicker td a.ui-state-highlight { +/* color: #fff;*/ + border-color: #bababa; + background: #D6D6D6; +} +.ui-datepicker .ui-datepicker-buttonpane { + background-image: none; + margin: 10px 0 0; + padding: 0; + border-left: 0; + border-right: 0; + border-bottom: 0; + } +.ui-datepicker .ui-datepicker-buttonpane button { + float: right; + margin: 3px 0; + padding: 4px 5px 5px; + height: 25px; + font-size: 12px; + background: #fff; + cursor: pointer; +} +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { + opacity: 1 !important; + color: #fff; font-weight: bold; + border-color: #309bbf; + background: #309bbf; +} +.ui-datepicker .ui-datepicker-buttonpane button.ui-state-hover { + color: #fff !important; + border-color: #444 !important; + background: #444 !important; +} + +.ui-datepicker-multi .ui-datepicker-group-first .ui-datepicker-title, +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-title { + margin-right: 5px !important; +} +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-title, +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-title { + margin-left: 5px !important; +} + +.ui-datepicker-multi .ui-datepicker-group table { + width: 95%; +} +.ui-datepicker-multi .ui-datepicker-group-first table, +.ui-datepicker-multi .ui-datepicker-group-middle table { + margin-right: 5px !important; +} +.ui-datepicker-multi .ui-datepicker-group-middle table, +.ui-datepicker-multi .ui-datepicker-group-last table { + margin-left: 5px !important; +} +.ui-datepicker-multi .ui-datepicker-group-middle table { + margin-left: 3px !important; +} +.ui-datepicker-multi .ui-datepicker-buttonpane { + border: none; +} + +.ui-datepicker-append { + margin-left: 6px; color: #999; font-size: 10px; +} + + + +/* Tabs +------------------------------------------------------------------------------------------------------ */ + +.ui-tabs { + padding: 0; zoom: 1; +} +.ui-tabs .ui-tabs-nav { + padding: 0; + color: #444; font-size: 12px; + border: none; + border-bottom: 1px solid #bdbdbd; + border-bottom-left-radius: 0; -moz-border-radius-bottomleft: 0; -webkit-border-bottom-left-radius: 0; +/* -moz-border-radius-bottomright: 0;*/ + background: none; +} +.ui-tabs .ui-tabs-nav li { + position: relative; float: left; + border-bottom-width: 1px !important; + margin: 0 .2em -1px 0; + padding: 0; +} +.ui-tabs .ui-tabs-nav li a { float: left; text-decoration: none; padding: .5em 1em; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { + padding-bottom: 0px; border-bottom-width: 1px; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { + padding: 0; + display: block; + border: 1px solid #bdbdbd; + border-top: 1px solid #fff; + border-top-right-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; + background: #eee; +} +.ui-tabs .ui-tabs-hide { display: none !important; } + + + + +/* gAutocomplete +------------------------------------------------------------------------------------------------------ */ + +.ui-gAutocomplete-wrapper { + position: absolute; + z-index: 400; +} +ul.ui-gAutocomplete-results { + margin-top: 4px; + padding: 5px; + border: 1px solid #ddd; + border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; + box-shadow: 0 0 3px #444; -moz-box-shadow: 0 0 3px #444; -webkit-box-shadow: 0 0 3px #444; + background: #fff; +} +ul.ui-gAutocomplete-results li { + padding: 2px 5px; + color: #666; + cursor: pointer; +} +ul.ui-gAutocomplete-results li:hover { + background: #e1f0f5; +} +ul.ui-gAutocomplete-results li:first-child { + border-top-left-radius: 4px; -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; + border-top-right-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; +} +ul.ui-gAutocomplete-results li:last-child { + border-bottom-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; +} +ul.ui-gAutocomplete-results li + li { + border-top: 1px solid #eee; +} + +ul.ui-gAutocomplete-results li b { + margin: 0 1px; + color: #444; +/* text-decoration: underline;*/ +} + + + +/* gFacelist +------------------------------------------------------------------------------------------------------ */ + +/*span.ui-gFacelist-message { + display: inline-block; + height: 25px; + background: #fff; + margin: 0; + padding: 3px 5px 4px; + vertical-align: middle; + color: #666; font-family: Arial, sans-serif; font-size: 12px; font-weight: bold; + border: 1px solid #bbb; + border-color: #ccc #ddd #ddd #ccc; + border-top-left-radius: 3px; -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; + border-top-right-radius: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; + box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; + outline: none; +}*/ + +.ui-gFacelist-toolbar input.ui-gAutocomplete-autocomplete { +/* margin-top: 4px;*/ +/* width: 100px;*/ + border-bottom-left-radius: 0; -moz-border-radius-bottomleft: 0; -webkit-border-bottom-left-radius: 0; +} +.ui-gFacelist-toolbar button { + border-bottom-right-radius: 0; -moz-border-radius-bottomright: 0; -webkit-border-bottom-right-radius: 0; +} + +.ui-gFacelist-toolbar .ui-gAutocomplete-wrapper { + margin-top: -4px; +} + +ul.ui-gFacelist-facelist { + position: relative; float: left; clear: both; + padding: 0px 5px 5px; + border: 1px solid #bbb; + border-color: #ccc #ddd #ddd #ccc; + border-top: none; + border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; + box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; + background: #fff; + +} +li.ui-gFacelist-item { + position: relative; float: left; + margin-top: 5px; padding: 3px 6px 2px; + width: auto; + font-weight: bold; + border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; + background: #ddd; +} +li.ui-gFacelist-item { + margin-right: 5px; +} + +a.ui-gFacelist-item-remove { + display: inline-block; + margin: 0 0 -3px 0; + width: 16px; + height: 16px; + background: transparent 100% 3px no-repeat; +} diff --git a/ddtcms/grappelli/static/grappelli/css/forms.css b/ddtcms/grappelli/static/grappelli/css/forms.css new file mode 100644 index 0000000..84e21f6 --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/css/forms.css @@ -0,0 +1,1243 @@ + + + +/* Basic Settings, Fieldsets, Form-Rows +------------------------------------------------------------------------------------------------------ */ + +form { + margin: 0; + padding: 0; +} + +fieldset { + margin: 0; + padding: 0; +} + +.row p.help { + margin: 3px 0 2px 0; + padding: 0; +} +.row.cells p.help { + max-width: 278px; + white-space: normal !important; +} + +.row ul.radio-list + p.help, +.row ul.checkbox-list + p.help { + margin-top: -3px; +} + + + +/* Errors +------------------------------------------------------------------------------------------------------ */ + +.errornote { + margin-bottom: 7px; + padding: 8px 10px; + font-size: 12px; + font-weight: bold; +} +/* little fix to accomodate the top aligned login form .. */ +.errornote.login-errors { + margin-bottom: 0 !important; + padding: 8px 12px; +} +ul.errorlist { + margin: 6px 0 -3px; + font-size: 11px; + line-height: 13px; + font-weight: bold; +} +ul.errorlist li { + padding: 0 5px 0 0; +} +p.errornote + ul.errorlist { + margin-bottom: 8px; +} +ul.errorlist:empty { + display: none; + margin: 0; +} +.group.tabular ul.errorlist { + margin-left: 11px; +} +.group.stacked ul.errorlist { + margin-left: 11px; + margin-bottom: 5px; +} +.group.stacked h3 + * + ul.errorlist { + margin: 0 !important; + padding: 5px 11px; +} +.cell ul.errorlist { + padding-left: 0; +} +.cell ul.errorlist li { + padding-left: 0; +} +.cell label + * + ul.errorlist, +.cell label + * + * + ul.errorlist { + padding-left: 160px !important; +} +table ul.errorlist { + margin: -9px 0 6px; +} +.group.stacked .row ul.errorlist, +.module.table ul.errorlist { + margin-top: 5px; + margin-left: 0; + margin-bottom: -3px; +} +ul.radiolist.inline + ul.errorlist, +ul.radiolist.inline + * + ul.errorlist { + position: relative; clear: both; +} +ul.radiolist + ul.errorlist, +ul.radiolist + * + ul.errorlist { + margin-top: 0 !important; +} + +.module.table .tbody>ul.errorlist { + margin-top: 2px; + margin-left: 11px; + margin-bottom: 2px; +} +.module.table .tr ul.errorlist { + margin-left: 0; +} +.module.table ul.radiolist + ul.errorlist, +.module.table ul.radiolist + * + ul.errorlist { + margin: -2px 0 0; +} +table ul.errorlist li, +.module.table ul.errorlist li { + padding-left: 0; +} +p.errornote + ul.errorlist li { + padding-left: 10px; +} + + + +/* Labels & Other Typographic Elements in Forms +------------------------------------------------------------------------------------------------------ */ + +label { + margin: 5px 0 -5px; + font-size: 11px; + line-height: 15px; + cursor: pointer; +} +.required label, label.required, +.row .required label, .row label.required { + font-weight: bold; +} + +.module label { + display: block; + padding: 0 0 6px; + white-space: normal; +} +.module .vCheckboxLabel { + display: inline; + float: none; + clear: both; + margin: 0 0 0 10px; + padding: 0; +} + + + +/* Form Elements +------------------------------------------------------------------------------------------------------ */ + +input, textarea, select, button { + margin: 0; + vertical-align: top; + font-family: Arial, sans-serif; + font-size: 12px; + font-weight: bold; + box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; +} + + +/* Text, Password ................................................... */ + +input[type=text], input[type=password] { + padding: 5px 5px 4px; + height: 25px; +} +/* Webkit browser hack: apply same horizontal padding as in moz browsers + Moz Browsers have a default horizontal padding of 3px in input[type=submit] */ +@media screen and (-webkit-min-device-pixel-ratio:0) { + input[type=text], input[type=password] { + line-height: 13px !important; + } +} + + +/* Searchbar ................................................... */ + +form#changelist-search { + position: relative; + float: left; + clear: both; +} +input#searchbar { + position: relative; + float: left; + padding-left: 8px; + padding-right: 30px; + width: 218px; + height: 26px; + font-size: 11px; +} + + +/* FileBrowseField ................................................... */ + +input.vFileBrowseField { + padding-right: 25px; +} + + +/* File ................................................... */ + +input[type=file] { + position: relative; + top: 1px; + height: auto; + border: 0; +} +.th input[type=file], +.td input[type=file] { + top: 3px; + margin-bottom: -2px; +} + +.module p.file-upload { + margin-bottom: 5px !important; + padding: 3px 0 0 !important; + font-size: 11px; + line-height: 20px; +/* font-size: 0;*/ +/* color: transparent;*/ +} +.file-upload a { + font-size: 12px; + font-weight: bold; +} +.file-upload br { + display: none; +} +.file-upload .clearable-file-input { + display: block; + margin: 0 0 5px; + padding: 0; + min-width: 320px; +} +.file-upload .clearable-file-input label { + display: inline-block; + float: none; + margin-bottom: -2px; + position: relative; + top: 0; +} +.file-upload .clearable-file-input input { + top: 5px !important; +} +@media screen and (-webkit-min-device-pixel-ratio:0) { + .file-upload .clearable-file-input input { + top: 7px !important; + } +} +.file-upload input[type=file] { + position: relative; + top: 1px; + height: auto; + border: 0; +} + + +/* Date & Time ................................................... */ + +.vDateField, .vTimeField { + margin-left: 0; +} +p.datetime { + margin-bottom: 0 !important; + padding: 0; +} +p.datetime input.vTimeField { + margin-left: 13px; +} + + +/* Textarea ................................................... */ + +textarea { + vertical-align: top; + padding: 3px 5px; +} +fieldset.monospace textarea { + font-family: "Bitstream Vera Sans Mono",Monaco,"Courier New",Courier,monospace; +} + + +/* Select ................................................... */ + +select { + padding: 4px 3px 4px 3px; + height: 25px; +} +@media screen and (-webkit-min-device-pixel-ratio:0) { + select { + padding: 4px 28px 4px 8px; + -webkit-appearance: textfield; + background: #fff url('../img/icons/icon-form-select.png') 100% 50% no-repeat; + } +} +select[multiple=multiple] { + padding-right: 5px; + height: 160px; +} +@media screen and (-webkit-min-device-pixel-ratio:0) { + select[multiple=multiple] { + background-image: none; + } +} + + +/* Checkbox, Radio ................................................... */ + +input[type=checkbox], input[type=radio] { + position: relative; + margin: 0; +} +.row input[type=checkbox], .row input[type=radio] { + margin-left: 0; + margin-right: 5px; +} +.th>input[type=radio], +.th>input[type=checkbox], +.td>input[type=radio], +.td>input[type=checkbox] { + top: 5px; + margin-bottom: -3px; +} +@media screen and (-webkit-min-device-pixel-ratio:0) { + .th>input[type=radio], + .td>input[type=radio] { + top: 6px; + margin-bottom: -2px; + } + .th>input[type=checkbox], + .td>input[type=checkbox] { + top: 7px; + margin-bottom: -2px; + } +} +.row input[type=radio], +.th ul.radiolist input[type=radio], +.td ul.radiolist input[type=radio] { + top: 0; +} +.row input[type=checkbox], +.th ul.checkboxlist input[type=checkbox], +.td ul.checkboxlist input[type=checkbox] { + top: 2px; +} +@media screen and (-webkit-min-device-pixel-ratio:0) { + .row input[type=radio], + .th ul.radiolist input[type=radio], + .td ul.radiolist input[type=radio] { + top: 1px; + } + .row input[type=checkbox], + .th ul.checkboxlist input[type=checkbox], + .td ul.checkboxlist input[type=checkbox] { + top: 3px; + } +} +.th input[type=radio], +.th input[type=checkbox], +.td input[type=radio], +.td input[type=checkbox], +ul.radiolist input[type=radio], +ul.checkboxlist input[type=checkbox] { + margin-left: 0; + margin-right: 5px; +} + +.row input[type=checkbox] + label { + position: relative; + float: none; + top: 0; + display: inline-block; + margin-bottom: -2px; +} + +.row ul.checkboxlist input[type=checkbox] { + top: 0; + margin: 0 5px 0 0; +} +.row ul.checkboxlist label input[type=checkbox] { + top: -2px; + vertical-align: middle; +} +@media screen and (-webkit-min-device-pixel-ratio:0) { + .row ul.checkboxlist label input[type=checkbox] { + top: -1px; + vertical-align: middle; + } +} + +.row label + input + p.help input[type=checkbox] { + position: relative; + top: -2px; + margin: 0 3px 0 0; +} + +ul.tools .delete-handler-container input[type=checkbox], +ul.tools .remove-handler-container input[type=checkbox] { + display: none !important; +} + + +/* Radiolists & Checkboxlists ................................................... */ + +ul.radiolist, ul.checkboxlist { + position: relative; + float: none; + display: inline-block; + margin: 5px 0; + padding: 0; + font-size: 11px; + line-height: 15px; + font-weight: normal; +} + +.row>ul.radiolist, .row>ul.checkboxlist { + margin: 0; +} + +ul.radiolist li + li, ul.checkboxlist li + li { + margin-top: 2px; +} + +ul.radiolist.inline, ul.checkboxlist.inline { + float: left; + display: inline; + margin-top: 5px; + margin-bottom: 3px; + padding-right: 20px; +} +th ul.radiolist.inline, th ul.checkboxlist.inline, +td ul.radiolist.inline, td ul.checkboxlist.inline { + margin-top: 0; +} +ul.radiolist.inline li, ul.checkboxlist.inline li { + float: left; + display: inline; + margin-top: 0 !important; + margin-bottom: 2px; + padding-right: 20px; +} +.module.tbody ul.radiolist.inline, .module.tbody ul.checkboxlist.inline { + display: inline; + white-space: normal; +} +.module.tbody ul.radiolist.inline li, .module.tbody ul.checkboxlist.inline li { + position: relative; + float: left; + display: inline; +} +.row.cells ul.radiolist.inline li, .row.cells ul.checkboxlist.inline li { + float: none; +} + +ul.radiolist label, ul.checkboxlist label { + float: none; + display: inline-block; + margin: 0; + padding: 0; + width: auto !important; + white-space: nowrap; +} + + +/* Changelist Form Fields ................................................... */ + +#changelist table input[type=text], +#changelist table input[type=password], +#changelist table input[type=file], +#changelist table select, +#changelist table textarea { + position: relative; + top: -5px; + margin-bottom: -9px; + vertical-align: top; +} +#changelist table input[type=file] { + top: -3px; + margin-bottom: -7px; +} +#changelist table input[type=radio], +#changelist table input[type=checkbox] { + position: relative; + top: 0; +} +@media screen and (-webkit-min-device-pixel-ratio:0) { + #changelist table input[type=radio], + #changelist table input[type=checkbox] { + top: 1px; + } +} +#changelist table thead input[type=radio], +#changelist table thead input[type=checkbox] { + top: 0; +} + + + +/* Form Fields in Grid +------------------------------------------------------------------------------------------------------ */ + +input[class*="span"], select[class*="span"], textarea[class*="span"] { + margin-right: 0; +} + +.span-24 input[type=text], .span-24 input[type=password], +.span-24 select, .span-24 textarea, +input[type=text].span-24, input[type=password].span-24, +select.span-24, textarea.span-24, +.span-24 .ui-gFacelist-message, +.span-24 .ui-gFacelist-facelist, +.span-24 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-24 { + width: 918px; +} +.span-24 div.autocomplete-wrapper-m2m ul.repr, +.span-24 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-24 ul.repr, +div.autocomplete-wrapper-m2m.span-24 ul.repr li { + max-width: 860px; +} +.span-23 input[type=text], .span-23 input[type=password], +.span-23 select, .span-23 textarea, +input[type=text].span-23, input[type=password].span-23, +select.span-23, textarea.span-23, +.span-23 .ui-gFacelist-message, +.span-23 .ui-gFacelist-facelist, +.span-23 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-23 { + width: 878px; +} +.span-23 div.autocomplete-wrapper-m2m ul.repr, +.span-23 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-23 ul.repr, +div.autocomplete-wrapper-m2m.span-23 ul.repr li { + max-width: 820px; +} +.span-22 input[type=text], .span-22 input[type=password], +.span-22 select, .span-22 textarea, +input[type=text].span-22, input[type=password].span-22, +select.span-22, textarea.span-22, +.span-22 .ui-gFacelist-message, +.span-22 .ui-gFacelist-facelist, +.span-22 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-22 { + width: 838px; +} +.span-22 div.autocomplete-wrapper-m2m ul.repr, +.span-22 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-22 ul.repr, +div.autocomplete-wrapper-m2m.span-22 ul.repr li { + max-width: 780px; +} +.span-21 input[type=text], .span-21 input[type=password], +.span-21 select, .span-21 textarea, +input[type=text].span-21, input[type=password].span-21, +select.span-21, textarea.span-21, +.span-21 .ui-gFacelist-message, +.span-21 .ui-gFacelist-facelist, +.span-21 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-21 { + width: 798px; +} +.span-21 div.autocomplete-wrapper-m2m ul.repr, +.span-21 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-21 ul.repr, +div.autocomplete-wrapper-m2m.span-21 ul.repr li { + max-width: 740px; +} +.span-20 input[type=text], .span-20 input[type=password], +.span-20 select, .span-20 textarea, +input[type=text].span-20, input[type=password].span-20, +select.span-20, textarea.span-20, +.span-20 .ui-gFacelist-message, +.span-20 .ui-gFacelist-facelist, +.span-20 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-20, +.span-24 label + input[type=text], .span-24 label + input[type=password], +.span-24 label + select, .span-24 label + textarea { + width: 758px; +} +.span-20 div.autocomplete-wrapper-m2m ul.repr, +.span-20 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-20 ul.repr, +div.autocomplete-wrapper-m2m.span-20 ul.repr li { + max-width: 700px; +} +.span-19 input[type=text], .span-19 input[type=password], +.span-19 select, .span-19 textarea, +input[type=text].span-19, input[type=password].span-19, +select.span-19, textarea.span-19, +.span-19 .ui-gFacelist-message, +.span-19 .ui-gFacelist-facelist, +.span-19 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-19, +.span-23 label + input[type=text], .span-23 label + input[type=password], +.span-23 label + select, .span-23 label + textarea { + width: 718px; +} +.span-19 div.autocomplete-wrapper-m2m ul.repr, +.span-19 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-19 ul.repr, +div.autocomplete-wrapper-m2m.span-19 ul.repr li { + max-width: 660px; +} +.span-18 input[type=text], .span-18 input[type=password], +.span-18 select, .span-18 textarea, +input[type=text].span-18, input[type=password].span-18, +select.span-18, textarea.span-18, +.span-18 .ui-gFacelist-message, +.span-18 .ui-gFacelist-facelist, +.span-18 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-18, +.span-22 label + input[type=text], .span-22 label + input[type=password], +.span-22 label + select, .span-22 label + textarea { + width: 678px; +} +.span-18 div.autocomplete-wrapper-m2m ul.repr, +.span-18 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-18 ul.repr, +div.autocomplete-wrapper-m2m.span-18 ul.repr li { + max-width: 620px; +} +.span-17 input[type=text], .span-17 input[type=password], +.span-17 select, .span-17 textarea, +input[type=text].span-17, input[type=password].span-17, +select.span-17, textarea.span-17, +.span-17 .ui-gFacelist-message, +.span-17 .ui-gFacelist-facelist, +.span-17 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-17, +.span-21 label + input[type=text], .span-21 label + input[type=password], +.span-1 label + select, .span-21 label + textarea { + width: 638px; +} +.span-17 div.autocomplete-wrapper-m2m ul.repr, +.span-17 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-17 ul.repr, +div.autocomplete-wrapper-m2m.span-17 ul.repr li { + max-width: 580px; +} +.span-16 input[type=text], .span-16 input[type=password], +.span-16 select, .span-16 textarea, +input[type=text].span-16, input[type=password].span-16, +select.span-16, textarea.span-16, +.span-16 .ui-gFacelist-message, +.span-16 .ui-gFacelist-facelist, +.span-24 input.vForeignKeyRawIdAdminField, +.span-24 input.vManyToManyRawIdAdminField, +.span-16 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-16, +.span-20 label + input[type=text], .span-20 label + input[type=password], +.span-20 label + select, .span-20 label + textarea { + width: 598px; +} +.span-16 div.autocomplete-wrapper-m2m ul.repr, +.span-16 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-16 ul.repr, +div.autocomplete-wrapper-m2m.span-16 ul.repr li { + max-width: 540px; +} +.span-15 input[type=text], .span-15 input[type=password], +.span-15 select, .span-15 textarea, +input[type=text].span-15, input[type=password].span-15, +select.span-15, textarea.span-15, +.span-15 .ui-gFacelist-message, +.span-15 .ui-gFacelist-facelist, +.span-23 input.vForeignKeyRawIdAdminField, +.span-23 input.vManyToManyRawIdAdminField, +.span-15 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-15, +.span-19 label + input[type=text], .span-19 label + input[type=password], +.span-19 label + select, .span-19 label + textarea { + width: 558px; +} +.span-15 div.autocomplete-wrapper-m2m ul.repr, +.span-15 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-15 ul.repr, +div.autocomplete-wrapper-m2m.span-15 ul.repr li { + max-width: 500px; +} +.span-14 input[type=text], .span-14 input[type=password], +.span-14 select, .span-14 textarea, +input[type=text].span-14, input[type=password].span-14, +select.span-14, textarea.span-14, +.span-14 .ui-gFacelist-message, +.span-14 .ui-gFacelist-facelist, +.span-22 input.vForeignKeyRawIdAdminField, +.span-22 input.vManyToManyRawIdAdminField, +.span-14 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-14, +.span-18 label + input[type=text], .span-18 label + input[type=password], +.span-18 label + select, .span-18 label + textarea { + width: 518px; +} +.span-14 div.autocomplete-wrapper-m2m ul.repr, +.span-14 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-14 ul.repr, +div.autocomplete-wrapper-m2m.span-14 ul.repr li { + max-width: 460px; +} +.span-13 input[type=text], .span-13 input[type=password], +.span-13 select, .span-13 textarea, +input[type=text].span-13, input[type=password].span-13, +select.span-13, textarea.span-13, +.span-13 .ui-gFacelist-message, +.span-13 .ui-gFacelist-facelist, +.span-21 input.vForeignKeyRawIdAdminField, +.span-21 input.vManyToManyRawIdAdminField, +.span-13 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-13, +.span-17 label + input[type=text], .span-17 label + input[type=password], +.span-17 label + select, .span-17 label + textarea { + width: 478px; +} +.span-13 div.autocomplete-wrapper-m2m ul.repr, +.span-13 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-13 ul.repr, +div.autocomplete-wrapper-m2m.span-13 ul.repr li { + max-width: 420px; +} +.span-12 input[type=text], .span-12 input[type=password], +.span-12 select, .span-12 textarea, +input[type=text].span-12, input[type=password].span-12, +select.span-12, textarea.span-12, +.span-12 .ui-gFacelist-message, +.span-12 .ui-gFacelist-facelist, +.span-20 input.vForeignKeyRawIdAdminField, +.span-20 input.vManyToManyRawIdAdminField, +.span-12 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-12, +.span-16 label + input[type=text], .span-16 label + input[type=password], +.span-16 label + select, .span-16 label + textarea { + width: 438px; +} +.span-12 div.autocomplete-wrapper-m2m ul.repr, +.span-12 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-12 ul.repr, +div.autocomplete-wrapper-m2m.span-12 ul.repr li { + max-width: 380px; +} +.span-11 input[type=text], .span-11 input[type=password], +.span-11 select, .span-11 textarea, +input[type=text].span-11, input[type=password].span-11, +select.span-11, textarea.span-11, +.span-11 .ui-gFacelist-message, +.span-11 .ui-gFacelist-facelist, +.span-19 input.vForeignKeyRawIdAdminField, +.span-19 input.vManyToManyRawIdAdminField, +.span-11 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-11, +.span-15 label + input[type=text], .span-15 label + input[type=password], +.span-15 label + select, .span-15 label + textarea { + width: 398px; +} +.span-11 div.autocomplete-wrapper-m2m ul.repr, +.span-11 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-11 ul.repr, +div.autocomplete-wrapper-m2m.span-11 ul.repr li { + max-width: 340px; +} +.span-10 input[type=text], .span-10 input[type=password], +.span-10 select, .span-10 textarea, +input[type=text].span-10, input[type=password].span-10, +select.span-10, textarea.span-10, +.span-10 .ui-gFacelist-message, +.span-10 .ui-gFacelist-facelist, +.span-18 input.vForeignKeyRawIdAdminField, +.span-18 input.vManyToManyRawIdAdminField, +.span-10 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-10, +.span-14 label + input[type=text], .span-4 label + input[type=password], +.span-14 label + select, .span-14 label + textarea { + width: 358px; +} +.span-10 div.autocomplete-wrapper-m2m ul.repr, +.span-10 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-10 ul.repr, +div.autocomplete-wrapper-m2m.span-10 ul.repr li { + max-width: 300px; +} +.span-9 input[type=text], .span-9 input[type=password], +.span-9 select, .span-9 textarea, +input[type=text].span-9, input[type=password].span-9, +select.span-9, textarea.span-9, +.span-9 .ui-gFacelist-message, +.span-9 .ui-gFacelist-facelist, +.span-17 input.vForeignKeyRawIdAdminField, +.span-17 input.vManyToManyRawIdAdminField, +.span-9 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-9, +.span-13 label + input[type=text], .span-13 label + input[type=password], +.span-13 label + select, .span-13 label + textarea { + width: 318px; +} +.span-9 div.autocomplete-wrapper-m2m ul.repr, +.span-9 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-9 ul.repr, +div.autocomplete-wrapper-m2m.span-9 ul.repr li { + max-width: 260px; +} +.span-8 input[type=text], .span-8 input[type=password], +.span-8 select, .span-8 textarea, +input[type=text].span-8, input[type=password].span-8, +select.span-8, textarea.span-8, +.span-8 .ui-gFacelist-message, +.span-8 .ui-gFacelist-facelist, +.span-16 input.vForeignKeyRawIdAdminField, +.span-16 input.vManyToManyRawIdAdminField, +.span-8 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-8, +.span-12 label + input[type=text], .span-12 label + input[type=password], +.span-12 label + select, .span-12 label + textarea { + width: 278px; +} +.span-8 div.autocomplete-wrapper-m2m ul.repr, +.span-8 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-8 ul.repr, +div.autocomplete-wrapper-m2m.span-8 ul.repr li { + max-width: 220px; +} +.span-7 input[type=text], .span-7 input[type=password], +.span-7 select, .span-7 textarea, +input[type=text].span-7, input[type=password].span-7, +select.span-7, textarea.span-7, +.span-15 input.vForeignKeyRawIdAdminField, +.span-15 input.vManyToManyRawIdAdminField, +.span-7 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-7, +.span-11 label + input[type=text], .span-11 label + input[type=password], +.span-11 label + select, .span-11 label + textarea { + width: 238px; +} +.span-7 div.autocomplete-wrapper-m2m ul.repr, +.span-7 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-7 ul.repr, +div.autocomplete-wrapper-m2m.span-7 ul.repr li { + max-width: 180px; +} +.span-6 input[type=text], .span-6 input[type=password], +.span-6 select, .span-6 textarea, +input[type=text].span-6, input[type=password].span-6, +select.span-6, textarea.span-6, +.span-14 input.vForeignKeyRawIdAdminField, +.span-14 input.vManyToManyRawIdAdminField, +.span-6 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-6, +.span-10 label + input[type=text], .span-10 label + input[type=password], +.span-10 label + select, .span-10 label + textarea { + width: 198px; +} +.span-6 div.autocomplete-wrapper-m2m ul.repr, +.span-6 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-6 ul.repr, +div.autocomplete-wrapper-m2m.span-6 ul.repr li { + max-width: 140px; +} +.span-5 input[type=text], .span-5 input[type=password], +.span-5 select, .span-5 textarea, +input[type=text].span-5, input[type=password].span-5, +select.span-5, textarea.span-5, +.span-13 input.vForeignKeyRawIdAdminField, +.span-13 input.vManyToManyRawIdAdminField, +.span-5 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-5, +.span-9 label + input[type=text], .span-9 label + input[type=password], +.span-9 label + select, .span-9 label + textarea { + width: 158px; +} +.span-5 div.autocomplete-wrapper-m2m ul.repr, +.span-5 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-5 ul.repr, +div.autocomplete-wrapper-m2m.span-5 ul.repr li { + max-width: 100px; +} +.span-4 input[type=text], .span-4 input[type=password], +.span-4 select, .span-4 textarea, +input[type=text].span-4, input[type=password].span-4, +select.span-4, textarea.span-4, +.span-12 input.vForeignKeyRawIdAdminField, +.span-12 input.vManyToManyRawIdAdminField, +.span-4 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-4, +.span-8 label + input[type=text], .span-8 label + input[type=password], +.span-8 label + select, .span-8 label + textarea { + width: 118px; +} +.span-4 div.autocomplete-wrapper-m2m ul.repr, +.span-4 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-4 ul.repr, +div.autocomplete-wrapper-m2m.span-4 ul.repr li { + max-width: 60px; +} +.span-3 input[type=text], .span-3 input[type=password], +.span-3 select, .span-3 textarea, +input[type=text].span-3, input[type=password].span-3, +select.span-3, textarea.span-3, +.span-11 input.vForeignKeyRawIdAdminField, +.span-11 input.vManyToManyRawIdAdminField, +.span-3 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-3, +.span-7 label + input[type=text], .span-7 label + input[type=password], +.span-7 label + select, .span-7 label + textarea { + width: 78px; +} +.span-3 div.autocomplete-wrapper-m2m ul.repr, +.span-3 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-3 ul.repr, +div.autocomplete-wrapper-m2m.span-3 ul.repr li { + max-width: 20px; +} +.span-2 input[type=text], .span-2 input[type=password], +.span-2 select, .span-2 textarea, +input[type=text].span-2, input[type=password].span-2, +select.span-2, textarea.span-2, +.span-10 input.vForeignKeyRawIdAdminField, +.span-10 input.vManyToManyRawIdAdminField, +.span-2 div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-m2m.span-2, +.span-6 label + input[type=text], .span-6 label + input[type=password], +.span-6 label + select, .span-6 label + textarea { + width: 38px; +} +.span-2 div.autocomplete-wrapper-m2m ul.repr, +.span-2 div.autocomplete-wrapper-m2m ul.repr li, +div.autocomplete-wrapper-m2m.span-2 ul.repr, +div.autocomplete-wrapper-m2m.span-2 ul.repr li { + max-width: 30px; +} + + +.container-grid .span-flexible input[type=text], .container-grid .span-flexible input[type=password], +.container-grid .span-flexible textarea, .container-grid .span-flexible select { + width: 100% !important; +} + + + +/* Form Elements: Basic Widths & Heights +------------------------------------------------------------------------------------------------------ */ + +input[type=text], +input[type=password], +.vDateField, +.vTimeField, +.vIntegerField, +.vPositiveSmallIntegerField, +.vManyToManyRawIdAdminField, +.vForeignKeyRawIdAdminField { + width: 118px; +} + +input.vTextField, +input.vURLField, +input.vFileBrowseField, +textarea, +.vLargeTextField, +.vXMLLargeTextField { + width: 278px; +} + +.row select { + min-width: 118px; +} + +.vLargeTextField { + height: 118px; +} + + + +/* Large Form Elements in Change-Form: Widths & Heights +------------------------------------------------------------------------------------------------------ */ + +.row .vTextField, +.row .vURLField, +.row .vFileBrowseField, +.row textarea, +.row .vLargeTextField, +.row .vXMLLargeTextField, +div.autocomplete-wrapper-m2m { + width: 758px; +} +.row select { + max-width: 758px; +} +div.autocomplete-wrapper-m2m ul.repr, +div.autocomplete-wrapper-m2m ul.repr li { + max-width: 700px; +} + + + +/* Form Elements in Changelist-Results Table & Tabular Modules: Widths & Heights +------------------------------------------------------------------------------------------------------ */ + +.changelist-results table select, +.module.table select, +.module.table div.autocomplete-wrapper-m2m { + max-width: 278px; +} +.module.table div.autocomplete-wrapper-m2m { + width: 278px; +} +.module.table div.autocomplete-wrapper-m2m ul.repr, +.module.table div.autocomplete-wrapper-m2m ul.repr li { + max-width: 222px; +} + + +/* Form Elements Cells +------------------------------------------------------------------------------------------------------ */ + +.cell input[type=text], +.cell input[type=password], +.cell select, +.cell div.autocomplete-wrapper-m2m { + max-width: 280px; +} +.cell div.autocomplete-wrapper-m2m { + width: 280px; +} +.cell div.autocomplete-wrapper-m2m ul.repr, +.cell div.autocomplete-wrapper-m2m ul.repr li { + max-width: 222px; +} + + +/* Autocomplete Elements +------------------------------------------------------------------------------------------------------ */ + + +/* Autocomplete Wrappers (Input and Input-Lookalike) ......................................... */ + +div.autocomplete-wrapper-m2m, +div.autocomplete-wrapper-fk input.ui-autocomplete-input { + padding-right: 55px; + color: #666; + border: 1px solid #ccc; +/* border-color: #ccc #ddd #ddd #ccc;*/ + border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; + box-shadow: 0 1px 3px #eaeaea inset; -moz-box-shadow: 0 1px 3px #eaeaea inset; -webkit-box-shadow: 0 1px 3px #eaeaea inset; +/* background: #fff url('../img/backgrounds/autocomplete.png') repeat-x scroll;*/ + background: #fff; +/* background: #f2f8fa;*/ +/* background: #e1f0f5;*/ +} +div.autocomplete-wrapper-m2m.state-focus, +div.autocomplete-wrapper-fk input.ui-autocomplete-input:focus { + border-color: #999; + background: #e1f0f5; +/* border: 1px solid #309bbf;*/ +/* background: #fff url('../img/backgrounds/autocomplete.png');*/ +} + +div.autocomplete-wrapper-m2m { + display: inline-block; + position: relative; + padding: 0 0 0 1px; +/* width: 758px;*/ + height: auto !important; + vertical-align: top; + box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; +} +div.autocomplete-wrapper-fk { + display: inline-block; + position: relative; + width: auto !important; + height: auto !important; + margin: 0 !important; + padding: 0 !important; + vertical-align: top; + font-size: 0 !important; /* Set font-size and line-height to 0 to let the   at the end of the autocomplete-wrapper disappear */ + line-height: 0 !important; + background: transparent !important; +} + + +/* M2M Listing ......................................... */ + +div.autocomplete-wrapper-m2m ul.repr { +/* position: relative;*/ + float: left; +/* clear: both;*/ +/* padding-right: 25px;*/ + width: 100%; + overflow: hidden; + box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; +} +div.autocomplete-wrapper-m2m li { +/* position: relative;*/ + float: left; + display: inline; + overflow: hidden; + text-overflow: ellipsis; +} +div.autocomplete-wrapper-m2m li.search { + margin-top: 1px; + margin-bottom: 1px; + background: transparent; +} +div.autocomplete-wrapper-m2m li.search input[type=text] { + margin: 0 0 -1px !important; + padding: 0 4px !important; + width: 100px; + height: 22px !important; + font-size: 12px !important; + line-height: 16px !important; + outline: 0 !important; + border: 0 !important; + box-shadow: none !important; -moz-box-shadow: none !important; -webkit-box-shadow: none !important; + background: transparent !important; + cursor: text; +} +div.autocomplete-wrapper-m2m li.repr { + margin-top: 3px; + margin-bottom: 0; + margin-right: 5px; + font-weight: bold; + line-height: 18px; +} + + +/* Autocomplete Icons ......................................... */ + +div.autocomplete-wrapper-m2m li.repr a.m2m-remove { + color: #666; + padding-left: 5px; +} + +div.autocomplete-wrapper-fk.autocomplete-preremove input.ui-autocomplete-input, +div.autocomplete-wrapper-m2m.autocomplete-preremove li.repr a { + color: #bf3030 !important; +} + +div.autocomplete-wrapper-m2m li.repr.autocomplete-preremove a { + color: #bf3030 !important; +} + +div.autocomplete-wrapper-m2m a.related-lookup, +div.autocomplete-wrapper-fk a.related-lookup { + position: absolute; + border: 1px solid #ccc; +} +div.autocomplete-wrapper-m2m a.related-lookup { + top: -1px; + right: -1px; +/* border-bottom-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px;*/ +} + +div.autocomplete-wrapper-fk a.related-lookup { + top: 0; + right: 0; +} +div.autocomplete-wrapper-fk a.related-remove, +div.autocomplete-wrapper-m2m a.related-remove, +div.autocomplete-wrapper-fk div.loader, +div.autocomplete-wrapper-m2m div.loader { + display: inline-block; + position: absolute; + right: 24px; + top: 0; + font-size: 0; + line-height: 0; + width: 23px; + height: 23px; + border: 1px solid #ccc; +/* border-radius: 15px; -moz-border-radius: 15px; -webkit-border-radius: 15px;*/ +} +div.autocomplete-wrapper-m2m a.related-remove + a.related-lookup { + border-bottom-left-radius: 0; -moz-border-radius-bottomleft: 0; -webkit-border-bottom-left-radius: 0; +} +div.autocomplete-wrapper-fk a.related-remove:link, +div.autocomplete-wrapper-fk a.related-remove:visited, +div.autocomplete-wrapper-m2m a.related-remove:link, +div.autocomplete-wrapper-m2m a.related-remove:visited { + background: #fff url('../img/icons/icon-autocomplete-fk-remove.png') 50% 50% no-repeat scroll; +} +div.autocomplete-wrapper-fk a.related-remove:hover, +div.autocomplete-wrapper-fk a.related-remove:active, +div.autocomplete-wrapper-m2m a.related-remove:hover, +div.autocomplete-wrapper-m2m a.related-remove:active { + background: #fff url('../img/icons/icon-autocomplete-fk-remove-hover.png') 50% 50% no-repeat scroll; +} + +div.autocomplete-wrapper-m2m.state-focus a.related-lookup, +div.autocomplete-wrapper-fk input.ui-autocomplete-input:focus + * + a.related-lookup, +div.autocomplete-wrapper-m2m.state-focus a.related-remove, +div.autocomplete-wrapper-fk input.ui-autocomplete-input:focus + * + * + a.related-remove, +div.autocomplete-wrapper-m2m.state-focus .loader, +div.autocomplete-wrapper-fk input.ui-autocomplete-input:focus + * + * + * + .loader { + border-color: #999; +} + +div.autocomplete-wrapper-fk div.loader, +div.autocomplete-wrapper-m2m div.loader { + /*display: inline-block !important;*/ + width: 23px; + height: 23px; + background: #fff url('../img/backgrounds/loading-small.gif') 50% 50% no-repeat scroll; +} +/*div.autocomplete-wrapper-m2m.state-focus a.related-remove, +div.autocomplete-wrapper-fk input.ui-autocomplete-input:focus + * + * + a.related-remove, +div.autocomplete-wrapper-m2m.state-focus .loader, +div.autocomplete-wrapper-fk input.ui-autocomplete-input:focus + * + * + * + .loader { + background-color: #e1f0f5; +} +*/ +div.autocomplete-wrapper-m2m a.related-remove, +div.autocomplete-wrapper-m2m a.related-remove + div.loader { + top: -1px; + right: 23px; +/* border-bottom-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px;*/ +} + + + +/* Autocompletes in Changelists ......................................... */ + +#changelist table div.autocomplete-wrapper-fk a.related-remove, #changelist table div.autocomplete-wrapper-m2m a.related-remove, +#changelist table div.autocomplete-wrapper-fk div.loader, #changelist table div.autocomplete-wrapper-m2m div.loader { + top: -5px; +} + +/* we need to "hide" the input-field without display:none, because with display:none we can´t focus the field anymore */ +div.autocomplete-wrapper-m2m input.vManyToManyRawIdAdminField, div.autocomplete-wrapper-fk input.vForeignKeyRawIdAdminField, div.autocomplete-wrapper-fk input.vIntegerField { + position: absolute; + left: 0; + top: -40px; + width: 10px; + height: 10px; + color: transparent !important; + border: 0 !important; + background: transparent !important; + box-shadow: none !important; -moz-box-shadow: none !important; -webkit-box-shadow: none !important; + cursor: default !important; +} \ No newline at end of file diff --git a/ddtcms/grappelli/static/grappelli/css/grappelli-skin-basic.css b/ddtcms/grappelli/static/grappelli/css/grappelli-skin-basic.css new file mode 100644 index 0000000..546b2b6 --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/css/grappelli-skin-basic.css @@ -0,0 +1,1301 @@ + + + +/* TYPOGRAPHY +–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */ + + + +/* Paragraphs +------------------------------------------------------------------------------------------------------ */ + +.module p.help, +p.help { + color: #999; +} + +.fb_show + p.help a { + border: 1px solid #309bbf; +} +.fb_show + p.help a:link, .fb_show + p.help a:visited { + border: 1px solid #309bbf; +} +.fb_show + p.help a:hover, .fb_show + p.help a:active { + border: 1px solid #444; +} + + + +/* Links +------------------------------------------------------------------------------------------------------ */ + +a:link, a:visited { + color: #309bbf; +} +a:hover, a:active, a.selected { + color: #444; +} + +.dashboard h2 a:link, .dashboard h2 a:visited, +.dashboard h3 a:link, .dashboard h3 a:visited { + color: #444; +} +.dashboard h2 a:hover, .dashboard h2 a:active, +.dashboard h3 a:hover, .dashboard h3 a:active { + color: #309bbf; +} + +#header a:link, #header a:visited { + color: #59AFCC; +} +#header a:hover, #header a:active { + color: #444; +} + + + +/* Blockquote, Pre, Code +------------------------------------------------------------------------------------------------------ */ + +blockquote { + color: #777; + border-left: 5px solid #ddd; +} + +code, pre { + color: #666; + background: inherit; +} + +pre.literal-block { + background: #eee; +} + +code strong { + color: #930; +} + +hr { + color: #eee; + border: 0; + background-color: #eee; +} + + + +/* RTE (Rich Text Edited) +------------------------------------------------------------------------------------------------------ */ + +.rte h3 { + border-top: 1px solid #d4d4d4; + border-bottom: 1px solid #d4d4d4; +} +.rte .group h3 { + border-top: 0; +} +.rte h3:last-child, +.rte h4:last-child { + border-bottom: 0; +} +.rte td { + border-left: 1px solid #f4f4f4; +} +.rte td:first-of-type { + border-left: 0; +} +.delete-confirmation ul.rte>li { + border-top: 1px solid #fff; + border-bottom: 1px solid #e0e0e0; +} +.delete-confirmation ul.rte>li:first-child { + border-top: 0; +} +.delete-confirmation ul.rte>li:last-child { + border-bottom: 0; +} +.delete-confirmation ul.rte>li>ul>li { + border-top: 1px dashed #e0e0e0; +} +.rte blockquote table { + border: 1px solid #d4d4d4; +} + + + +/* Other Styles +------------------------------------------------------------------------------------------------------ */ + +.warning { + color: #bf3030; +} +.quiet { + color: #999; +} + + + +/* STRUCTURES +–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */ + +body { + color: #444; + background: #fff; +} + + + +/* Header +------------------------------------------------------------------------------------------------------ */ + +#header { + color: #eee; + background: #333; +} +#header a:hover, #header a:active { + color: #ddd; +} + + + +/* Branding, Bookmarks & User-Tools +------------------------------------------------------------------------------------------------------ */ + +.branding { + border-left: 1px solid #343434; + background-color: #262626; +} +.admin-title { + border-left: 1px solid #404040; + border-right: 1px solid #303030; +} + + +/* User Tools ................................................... */ + +#user-tools { + border-left: 1px solid #303030; +} +#user-tools>li { + border-left: 1px solid #404040; + border-right: 1px solid #303030; +} +li.user-options-container.open a.user-options-handler { + color: #eee !important; +} +li.user-options-container.open ul.user-options { + border-top: 1px solid #262626; + background: #333; +} +ul.user-options li { + border-top: 1px solid #404040; + border-bottom: 1px solid #292929; +} +ul.user-options li:last-child { + border-bottom: 0; +} + + + +/* Breadcrumbs +------------------------------------------------------------------------------------------------------ */ + +div#breadcrumbs { + color: #666; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; + background: #e6e6e6; +} + + + +/* Messages +------------------------------------------------------------------------------------------------------ */ + +ul.messagelist li { + border-bottom: 1px solid #ccc; + background-color: #e8f2da; +} +ul.messagelist.success li { + background-color: #e8f2da; +} +ul.messagelist.error li { + background-color: #f2e6e6; +} + + + +/* Login Form +------------------------------------------------------------------------------------------------------ */ + +.login .module { + border: 0; + background: #333; +} +.login .module .row { + border-top: 1px solid #444; + border-bottom: 1px solid #222; +} +.login .module label { + color: #eee; +} + + + +/* COMPONENTS +–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */ + + + +/* Modules +------------------------------------------------------------------------------------------------------ */ + +.module { + border: 1px solid #bdbdbd; + background: #eee; +} +.rte .module { + background: transparent; +} + + +/* Nested Modules Basics ......................................... */ + +.module .module, +.module fielset.module { + border: 0; +} + + + +/* Groups +------------------------------------------------------------------------------------------------------ */ + +.group.collapse.closed { + border: 2px solid #e0e0e0; +} +.group, +.group.collapse.closed:hover { + border: 2px solid #c7c7c7; +} + + + +/* Elements in Modules & Groups +------------------------------------------------------------------------------------------------------ */ + + +/* 1st Level Borders Top (Dark/Bright) ......................................... */ + +.group h2, +.module h2 { + border-bottom: 1px solid #bdbdbd; + background: #d6d6d6; +} +.group h2 { + border: 1px solid #bdbdbd; +} +.module h2+*, +.module h2+.tools+* { + border-top: 1px solid #fff; +} +.module h2+.module, +.module h2+.tools, +.module h2+.tools+.module { + border-top: 0 !important; +} + + +/* 2nd Level Borders Top (Dark/Bright) ......................................... */ + +.module .module { + border-top: 1px solid #c7c7c7; +} +.module .module>*:first-child { + border-top: 1px solid #eee; +} +#changelist .span-flexible .module .module:first-child { + border-top: 0; +} + +.group h3, +.module h3 { + border-bottom: 1px solid #c7c7c7; + background: #e0e0e0; +} +.module h3+*, +.module h3+.tools+* { + border-top: 1px solid #fff; +} +.module h3+.module, +.module h3+.tools, +.module h3+.tools+.module { + border-top: 0 !important; +} + + +/* 3rd Level Borders Top (Dark/Bright) ......................................... */ + +.group .module .module, +.module .module .module { + border-top: 1px solid #d4d4d4; +} +.group .module .module>*:first-child, +.module .module .module>*:first-child { + border-top: 1px solid #f4f4f4; +} + +.group h4, +.module h4 { + border-bottom: 1px solid #d4d4d4; + background: #e8e8e8; +} +.module h4+*, +.module h4+.tools+* { + border-top: 1px solid #fff; +} +.module h4+.tools { + border-top: 0 !important; +} +.module .description { + border-bottom: 1px solid #d4d4d4; +} + + + +/* Collapsible Structures +------------------------------------------------------------------------------------------------------ */ + +.module.collapse.closed h2.collapse-handler, +.module.collapse.closed h3.collapse-handler, +.module.collapse.closed h4.collapse-handler { + border-bottom: 0; +} + + +/* 1st Level Collapsible-Handler ......................................... */ + +.collapse h2.collapse-handler { + background: #a1d4e5; +} +.collapse h2.collapse-handler:hover, +.collapse.open h2.collapse-handler { + background: #bcdfeb; +} + + +/* 2nd Level Collapsible-Handler ......................................... */ + +.group .collapse h3.collapse-handler, +.module .collapse h3.collapse-handler { + background: #cee9f2; +} +.group .collapse h3.collapse-handler:hover, +.module .collapse h3.collapse-handler:hover, +.group .collapse.open h3.collapse-handler, +.module .collapse.open h3.collapse-handler { + background: #e1f0f5; +} +.module .collapse h3.collapse-handler { + border-top: 1px solid #e1f0f5; +} + + +/* 3rd Level Collapsible-Handler ......................................... */ + +.group .module .collapse h4.collapse-handler, +.module .module .collapse h4.collapse-handler { + border-top: 1px solid #f0f7fa; + background: #e1f0f5; +} +.group .collapse h4.collapse-handler:hover, +.module .collapse h4.collapse-handler:hover, +.group .collapse.open h4.collapse-handler, +.module .collapse.open h4.collapse-handler { + background: #ebf2f5; +} + + + +/* Row +------------------------------------------------------------------------------------------------------ */ + +.row { + border-top: 1px solid #fff; + border-bottom: 1px solid #e0e0e0; + border-left: 0; + border-right: 0; +} +.row.first, +.row:first-child, +.module input[type=hidden] + .row { + border-top: 0 !important; +} +.row.last, +.row:last-child, +.row:last-of-type, +fieldset.module > .row.last, +fieldset.module > .row:last-child { + border-bottom: 0 !important; +} + + + +/* Cell +------------------------------------------------------------------------------------------------------ */ + +.cell { + border-right: 1px solid #e0e0e0; + border-left: 1px solid #fff; +} + + + +/* Fieldset Cell +------------------------------------------------------------------------------------------------------ */ + +fieldset.module .cell:first-child { + border-left: 0 !important; +} +fieldset.module .cell:last-child, +fieldset.module .cell.last { + border-right: 0 !important; +} +fieldset.module .cell.last + fieldset.module .cell { + border-left: 0 !important; +} + + +/* Tabular Modules +------------------------------------------------------------------------------------------------------ */ + +.module.table { + border: 0; + border-collapse: separate; + border-spacing: 0 2px; + background: transparent; +} +.module.thead, +.module.tfoot { + color: #aaa; + background: transparent; +} +.module.table .tr, +.module.tbody { + background: transparent; +} +.module.table .th, +.module.table .td { + border-left: 1px solid #fff; + border-right: 1px solid #e0e0e0; +} +.module.thead .th:last-of-type, +.module.thead .td:last-of-type, +.module.tfoot .td:last-of-type { + border-right: 0; +} +.module.table .module.thead .th, +.module.table .module.thead .td { + border-top: 0; + border-bottom: 0; + background: none; +} +.module.tbody .th, +.module.tbody .td { + border-top: 1px solid #d4d4d4; + border-bottom: 1px solid #d4d4d4; + background: #eee; +} +.module.tbody .th:first-of-type, +.module.tbody .td:first-of-type { + border-left: 1px solid #ccc; +} + + + +/* Add Items +------------------------------------------------------------------------------------------------------ */ + +.module.add-item { + border: 1px solid transparent; + background: #fff; +} + + + +/* Predelete +------------------------------------------------------------------------------------------------------ */ + +.predelete h2, .predelete h2.collapse-handler, +.predelete h3, .predelete h3.collapse-handler, +.predelete h4, .predelete h4.collapse-handler { + background: #f2e6e6 !important; +} +.predelete h2.collapse-handler:hover, +.predelete h3.collapse-handler:hover, +.predelete h4.collapse-handler:hover, +.collapse.open .predelete h2.collapse-handler, +.collapse.open .predelete h3.collapse-handler, +.collapse.open .predelete h4.collapse-handler { + background: #f2e6e6 !important; +} +.predelete, +.predelete .module, +.predelete .th, +.predelete .td { + background: #f2e6e6 !important; +} + + + +/* Selectors +------------------------------------------------------------------------------------------------------ */ + +.selector-available, .selector-chosen { + border: 1px solid #ccc; + background: #ddd; +} +.selector h2, .inline-group .selector h2, +.inline-related fieldset .selector-available h2, .inline-related fieldset .selector-chosen h2 { + border: 0; + border-bottom: 1px solid #d0d0d0; + background: transparent; +} +.selector .selector-filter { + color: #666; + border-top: 1px solid #e4e4e4; + border-bottom: 1px solid #e4e4e4; +} +.selector select[multiple=multiple] { + border-left: 0; + border-top: 1px solid #d0d0d0; + border-bottom: 1px solid #d0d0d0; +} + +a.selector-chooseall, a.selector-clearall { + border-top: 1px solid #e4e4e4; +} + +.selector h2 + select { + border-top: 0; +} + +a.selector-chooseall, a.selector-clearall { + border-top: 1px solid #e4e4e4; +} + + + +/* Link-List, Actions, Feed, Table of Contents +------------------------------------------------------------------------------------------------------ */ + +.module.link-list, +.module.link-list .module, +.module.actions, +.module.actions .module, +.module.feed, +.module.feed .module { + background: #fff; +} +.link-list ul li, +.feed ul li, +.actions ul li, +.table-of-contents ul li { + border-top: 1px solid #fff; + border-bottom: 1px solid #e0e0e0; +} +.actions ul li { + color: #999; +} +.actions ul li:first-child, +.link-list ul li:first-child, +.feed ul li:first-child, +.table-of-contents ul li:first-child { + border-top: 0; +} +.actions ul li:last-child, +.link-list ul li:last-child, +.feed ul li:last-child, +.table-of-contents ul li:last-child { + border-bottom: 0; +} +.link-list ul li.selected a, +.table-of-contents ul li.selected a { + color: #444; +} +a.internal:link, a.internal:visited {} +a.internal:hover, a.internal:active, +.actions li.delete-link { + color: #666; +} +a.external:link, a.external:visited { + color: #83c3d9; +} +a.external:hover, a.external:active { + color: #666; +} + + + +/* Module Changelist Filters +------------------------------------------------------------------------------------------------------ */ + +.module.changelist-filters { + color: #666; + border: 1px solid #d4d4d4; +} + + + +/* Module Search & Module Filter +------------------------------------------------------------------------------------------------------ */ + +.module.search, +.module.filter { + border: 0; +} +.module.filter .pulldown-container { + border: 1px solid #fff; +} +.module.filter.open .pulldown-container { + border-color: #ccc; + box-shadow: 0 0 10px #444; -moz-box-shadow: 0 0 10px #444; -webkit-box-shadow: 0 0 10px #444; +} + +.open a.button.toggle-filters, +.open.selected a.button.toggle-filters { + border-color: transparent !important; +} +a.button.toggle-filters:link, a.button.toggle-filters:visited { + color: #309bbf; + border-color: #ddd; +} +.selected a.button.toggle-filters:link, .selected a.button.toggle-filters:visited { + color: #444; + background-color: #e1f0f5; +} +.open a.button.toggle-filters, .selected a.button.toggle-filters, +.selected a.button.toggle-filters:hover, .selected a.button.toggle-filters:active, +a.button.toggle-filters:hover, a.button.toggle-filters:active { + color: #666; + border-color: #ccc; + background-color: #e1f0f5; +} +.selected a.button.toggle-filters:link, .selected a.button.toggle-filters:visited { + color: #666; + border-color: #ddd; + background-color: #e1f0f5; +} +.open a.button.toggle-filters, +.open.selected a.button.toggle-filters, +.selected a.button.toggle-filters:hover, .selected a.button.toggle-filters:active, +a.button.toggle-filters:hover, a.button.toggle-filters:active { + color: #666; + border-color: #ccc; + background-color: #e1f0f5; +} + +.filter-pulldown { + border: 1px solid transparent; + border-top: 0; + background: #e1f0f5; +} +.filter-pulldown label { + color: #999; +} + + + +/* Module Date Hierarchy +------------------------------------------------------------------------------------------------------ */ + +.module.date-hierarchy { + border: 1px solid #d9d9d9; + background: #eee; +} +.module + .module.date-hierarchy .row { + border-top: 1px solid #fff !important; +} +.date-hierarchy a:link, .date-hierarchy a:visited { + color: #59afcc; +} +.date-hierarchy a:hover, .date-hierarchy a:active { + color: #444; +} +.date-hierarchy a.date-hierarchy-back:hover, .date-hierarchy a.date-hierarchy-back:active { + color: #666; +} + + + +/* Pagination +------------------------------------------------------------------------------------------------------ */ + +.module.pagination { + border: 1px solid #d9d9d9; +} +.module .module.pagination { + border: 0; +} +ul.pagination { + border-top: 0 !important; +} +ul.pagination li { + border: 1px solid #fff; +} + +ul.pagination span, +ul.pagination a { + border: 1px solid; + box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; +} +ul.pagination a:link, .pagination a:visited { + color: #59afcc; + border-color: #d9d9d9; +} +ul.pagination a:hover, .pagination a:active { + color: #444; + border-color: #bdbdbd; + background: #e0e0e0; +} +ul.pagination span { + color: #444; + border-color: #bdbdbd; + background: #e0e0e0; +} +ul.pagination li.separator span { + border-color: transparent; + background: transparent; +} + + + +/* Module Changelist-Results +------------------------------------------------------------------------------------------------------ */ + +.module.changelist-results { + background-color: #eee !important; +} + + + +/* Module Changelist Actions +------------------------------------------------------------------------------------------------------ */ + +.module.changelist-actions { + color: #ccc; + background: #eee; +} +.module.changelist-actions.all-selected, +.module.changelist-actions.all-selected + .module.changelist-results { + background: #ffffe6 !important; +} +.module.changelist-actions ul li { + border: 1px solid #444; +} +.module.changelist-actions ul a, +.module.changelist-actions ul span { + border: 1px solid; +} +.module.changelist-actions ul a:link, .module.changelist-actions ul a:visited { + color: #59afcc; + border-color: #333; + background: #333; +} +.module.changelist-actions ul a:hover, .module.changelist-actions ul a:active { + color: #ccc; + border-color: #333; + background: #555; +} +.module.changelist-actions ul span { + color: #ccc; + border-color: #333; +} +.module.changelist-actions ul span span { + border: 0; +} + + + +/* Module Footer +------------------------------------------------------------------------------------------------------ */ + +.module.footer { + border: 0; + border-top: 1px solid #bdbdbd; + background: #333; +} + + + +/* Submit Row +------------------------------------------------------------------------------------------------------ */ + +.module.submit-row { + border: 0; + background: transparent; +} + + + +/* Tooltips +------------------------------------------------------------------------------------------------------ */ + +.module.search .tooltip .tooltip-content { + border: 1px solid #ccc; + background: #fff; +} + + + +/* TOOLS +–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */ + +ul.tools li { + border-top: 0 !important; + border-bottom: 0 !important; +} + + + +/* H1 + Tools +------------------------------------------------------------------------------------------------------ */ + +h1 + .tools a { + color: #fff; + border-radius: 15px; -moz-border-radius: 15px; -webkit-border-radius: 15px; +} +h1 + .tools a:link, h1 + .tools a:visited { + background: #444; +} +h1 + .tools a:hover, h1 + .tools a:active { + border-color: transparent; + background: #309bbf; +} +h1 + .tools a.add-handler:link, h1 + .tools a.add-handler:visited { + background-color: #444; +} +h1 + .tools a.add-handler:hover, h1 + .tools a.add-handler:active { + background-color: #309bbf; +} + + + +/* FORMS +–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */ + + + +/* Errors +------------------------------------------------------------------------------------------------------ */ + +.errornote { + color: #f7f7f7; + background: #bf3030; +} +ul.errorlist { + color: #bf3030; +} +.error input, .error select, .errors input, .errors select { + border: 1px solid #bf3030 !important; +} + + + +/* Labels & Other Typographic Elements in Forms +------------------------------------------------------------------------------------------------------ */ + +label { + color: #444; +} + + + +/* Form Elements +------------------------------------------------------------------------------------------------------ */ + +input, textarea, select, button { + color: #666; + border: 1px solid #bbb; + border-color: #ccc #ddd #ddd #ccc; + outline: 0; +} +input, textarea, select { + box-shadow: 0 1px 3px #eaeaea inset; -moz-box-shadow: 0 1px 3px #eaeaea inset; -webkit-box-shadow: 0 1px 3px #eaeaea inset; +} + +*:focus, input:focus, textarea:focus, select:focus { + border-color: #999 #bbb #bbb #999; +} +select:focus * { + border: 0 !important; + outline: 0 !important; +} + + +/* Searchbar ................................................... */ + +form#changelist-search { + border: 1px solid #fff; + border-radius: 15px; -moz-border-radius: 15px; -webkit-border-radius: 15px; +} +input#searchbar { + border-radius: 14px; -moz-border-radius: 14px; -webkit-border-radius: 14px; +} + + +/* Select ................................................... */ + +option, +select[multiple=multiple] option { + border-bottom: 1px dotted #ddd !important; +} +option:last-child { + border-bottom: 0; +} + + +/* Autocomplete Fields ................................................... */ + +.vAutocompleteSearchField, +.vM2MAutocompleteSearchField { + background: #eaf5f8; +} + + +/* Read Only ................................................... */ + +input[readonly], +textarea[readonly], +select[readonly] { + background: #f4f4f4; +} + + + +/* BUTTONS +–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */ + +input[type=submit], input[type=reset], input[type=button], button { + color: #fff; + border: 0; + background: #acd7e5; +} + + +/* Button Containers ................................................... */ + +.submit-row>*[class*="-container"] { + box-shadow: 0 0 5px #666; -moz-box-shadow: 0 0 5px #666; -webkit-box-shadow: 0 0 5px #666; + background: #d6d6d6; +} +.submit-row>*[class*="-container"]:hover { + box-shadow: 0 0 5px #777; -moz-box-shadow: 0 0 5px #777; -webkit-box-shadow: 0 0 5px #777; + background: #d6d6d6; +} +.submit-row>*[class*="cancel-button-container"] { + box-shadow: 0 0 5px #aaa; -moz-box-shadow: 0 0 5px #aaa; -webkit-box-shadow: 0 0 5px #aaa; +} +.footer .submit-row>*[class*="-container"], +.footer .submit-row>*[class*="cancel-button-container"] { + border: 1px solid #666; + box-shadow: 0 0 5px #666; -moz-box-shadow: 0 0 5px #666; -webkit-box-shadow: 0 0 5px #666; + background: #666; +} +.submit-row>*[class*="cancel-button-container"] { + box-shadow: 0 0 5px #aaa; -moz-box-shadow: 0 0 5px #aaa; -webkit-box-shadow: 0 0 5px #aaa; +} +.footer .submit-row>*[class*="-container"]:hover, +.footer .submit-row>*[class*="cancel-button-container"]:hover { + border: 1px solid #777; + box-shadow: 0 0 5px #777; -moz-box-shadow: 0 0 5px #777; -webkit-box-shadow: 0 0 5px #777; + background: #777; +} + + + +/* Buttons & Buttonlike Links +------------------------------------------------------------------------------------------------------ */ + +.submit-row input[type=submit], +.submit-row a.submit-link:link, .submit-row a.submit-link:visited { + border: 1px solid #267c99; +} + +input[type=submit], +#bookmark-add-cancel, +.submit-row a.delete-link:link, .submit-row a.delete-link:visited, +.submit-row a.cancel-link:link, .submit-row a.cancel-link:visited, +.submit-row input[type=button] { + box-shadow: none !important; -moz-box-shadow: none !important; -webkit-box-shadow: none !important; +} + +.submit-row a.delete-link:link, .submit-row a.delete-link:visited { + color: #fff; + border: 1px solid #992626; + background: #bf3030; +} +#bookmark-add-cancel, +.submit-row a.cancel-link:link, .submit-row a.cancel-link:visited, +.submit-row input.cancel:hover { + color: #fff; + border: 1px solid #444; + background: #666; +} + +input[type=submit], +.submit-row a.submit-link:hover, .submit-row a.submit-link:active { + color: #fff; + background: #309bbf; +} +input[type=submit]:hover, +#bookmark-add-cancel:hover, +.submit-row a.submit-link:hover, .submit-row a.submit-link:active, +.submit-row a.delete-link:hover, .submit-row a.delete-link:active, +.submit-row a.cancel-link:hover, .submit-row a.cancel-link:active, +.submit-row input.cancel { + color: #444; + border: 1px solid #aaa; + background: #d6d6d6; +} +.footer input[type=submit]:hover, +.footer #bookmark-add-cancel:hover, +.footer .submit-row a.delete-link:hover, .footer .submit-row a.delete-link:active, +.footer .submit-row a.cancel-link:hover, .footer .submit-row a.cancel-link:active { + border: 1px solid #666; +} + +button { + background: #309bbf; +} +button:hover { + background: #666; +} + +button.fb_show, +button.ui-gAutocomplete-browse, +button.ui-gFacelist-browse, +button.ui-gAutoSlugField-toggle, +button.ui-datepicker-trigger, +button.ui-timepicker-trigger, +.tinyMCE .browse span { + border: 1px solid #ccc; + background-color: #e1f0f5; +} +button.fb_show:hover, +button.ui-gAutocomplete-browse:hover, +button.ui-gFacelist-browse:hover, +button.ui-gAutoSlugField-toggle:hover, +button.ui-datepicker-trigger:hover, +button.ui-timepicker-trigger:hover, +.tinyMCE .browse span:hover { + background-color: #e1e1e1; +} +button.fb_show[disabled], +button.ui-gAutocomplete-browse[disabled], +button.ui-gFacelist-browse[disabled], +button.ui-gAutoSlugField-toggle[disabled], +button.ui-datepicker-trigger[disabled], +button.ui-timepicker-trigger[disabled], +input[disabled] + a { + background-color: transparent !important; + opacity: 0.3; + cursor: auto !important; +} + + +/* Search Button ......................................... */ + +button.search { + border-color: transparent !important; + background-color: transparent; +} + + + +/* Links as Buttons +------------------------------------------------------------------------------------------------------ */ + +a.button, +.datecrumbs a, +.datecrumbs span { + border: 1px solid #e0e0e0; +} + + +/* Drop-Down Button ......................................... */ + +a.button.drop-down[class*="selected"] { + color: #444 !important; + border-color: #b0b0b0; + border-bottom-width: 0 !important; + box-shadow: 0 -2px 3px #bbb, -2px -2px 3px #bbb, 2px -2px 3px #bbb; + -moz-box-shadow: 0 -2px 3px #bbb, -2px -2px 3px #bbb, 2px -2px 3px #bbb; + -webkit-box-shadow: 0 -2px 3px #bbb, -2px -2px 3px #bbb, 2px -2px 3px #bbb; +} +a.button.drop-down:link, a.button.drop-down:visited { + color: #309bbf; + background-color: #fff; +} +a.button.drop-down[class*="selected"], +a.button.drop-down:hover, a.button.drop-down:active { + color: #666; + background-color: #e1f0f5; +} + + +/* Filebrowser & Related Lookup ......................................... */ + +a.fb_show, +a.related-lookup { + border: 1px solid #ccc; +} +a.fb_show:link, a.fb_show:visited, +a.related-lookup:link, a.related-lookup:visited { + background-color: #e1f0f5; +} +a.fb_show:hover, a.fb_show:active, +a.related-lookup:hover, a.related-lookup:active { + background-color: #e1e1e1; +} +a.related-lookup + strong { + color: #555; +} + + +/* Buttons & Button Links in Errors ......................................... */ + +.error input + button, +.error .vDateField + button, +.error .vTimeField + button, +.error input + a.fb_show, +.error input + a.related-lookup, +.error input + a.add-another, +.errors input + button, +.errors .vDateField + button, +.errors .vTimeField + button, +.errors input + a.fb_show, +.errors input + a.related-lookup, +.errors input + a.add-another { + border-color: #bf3030; +} + + +/* Focused Buttons & Button Links ......................................... */ + +input:focus + button, +.vDateField:focus + span a, +.vTimeField:focus + span a, +input:focus + a.fb_show, +input:focus + a.related-lookup, +input:focus + a.add-another { + border-color: #bbb; + border-left-color: #ccc; +} + + + +/* TABLES +–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */ + +tr.alt th, tr.alt td { + background: #f4f4f4; +} +.row1 th, .row1 td { + background: #f4f4f4; +} +.row2 th, .row2 td { + background: #fff; +} +.selected th, .selected td { + background: #ffd; +} + + +/* Thead ................................................... */ + +thead th, +tfoot td { + color: #aaa; + border-left: 1px solid #d4d4d4; + border-bottom: 1px solid #d4d4d4; + background: #eee; +} +thead th.sorted { + border-bottom: 1px solid #ccc; + background: #e0e0e0; +} + +thead th a:link, thead th a:visited { + color: #59afcc; + border-top: 1px solid #fff; +} +thead th a:hover, thead th a:active, +thead th.sorted a { + color: #444; +} +thead th.sorted a { + border-top: 1px solid #ececec; +} + + +/* Tbody ................................................... */ + +tbody th, tbody td { + border-top: 1px solid #fff; + border-bottom: 1px solid #e0e0e0; +} + +tfoot td { + border-bottom: 0; + border-top: 1px solid #d4d4d4; +} + +thead th:first-child, +tfoot td:first-child { + border-left: 0; +} + +fieldset table { + border-right: 1px solid #eee; +} + +tr.row-label td { + border-bottom: 0; + color: #666; +} + + + +/* Changelist Table +------------------------------------------------------------------------------------------------------ */ + +#changelist table { + border: 1px solid #bdbdbd; +} +#changelist tbody th, #changelist tbody td { + border: 0; + border-top: 1px solid #e8e8e8; + border-left: 1px solid #e0e0e0; +} +#changelist tbody tr:first-child th, #changelist tbody tr:first-child td { + border-top: 1px solid #fff; +} +#changelist tbody tr th:first-child, #changelist tbody tr td:first-child { + border-left: 0; +} +#changelist thead *[style^="display: none"] + *, +#changelist tbody tr *[style^="display: none"] + * { + border-left: 0; +} + + + +/* Overrides +------------------------------------------------------------------------------------------------------ */ + +tbody th:first-child, tbody td:first-child { + border-left: 0; +} +tbody tr:last-child td, tbody tr:last-child th { + border-bottom: 0; +} diff --git a/ddtcms/grappelli/static/grappelli/css/grappelli-skin-default.css b/ddtcms/grappelli/static/grappelli/css/grappelli-skin-default.css new file mode 100644 index 0000000..ef60385 --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/css/grappelli-skin-default.css @@ -0,0 +1,1884 @@ + + + +/* TYPOGRAPHY +–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */ + + + +/* Paragraphs +------------------------------------------------------------------------------------------------------ */ + +.module p.help, +p.help { + color: #999; +} + +p.preview a { + display: inline-block; + padding: 3px; + line-height: 1px; + border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; +} +p.preview a:link, p.preview a:visited { + border: 1px solid #309bbf; +} +p.preview a:hover, p.preview a:active { + border: 1px solid #444; +} + + + +/* Links +------------------------------------------------------------------------------------------------------ */ + +a:link, a:visited { + color: #309bbf; +} +a:hover, a:active, a.selected { + color: #444; +} + +.dashboard h2 a:link, .dashboard h2 a:visited, +.dashboard h3 a:link, .dashboard h3 a:visited { + color: #444; +} +.dashboard h2 a:hover, .dashboard h2 a:active, +.dashboard h3 a:hover, .dashboard h3 a:active { + color: #309bbf; +} + +.dashboard h4 a:link, .dashboard h4 a:visited { + color: #666; +} +.dashboard h4 a:hover, .dashboard h4 a:active { + color: #309bbf; +} + +#header a:link, #header a:visited { + color: #59AFCC; +} +#header a:hover, #header a:active { + color: #444; +} + + + +/* Blockquote, Pre, Code +------------------------------------------------------------------------------------------------------ */ + +blockquote { + color: #777; + border-left: 5px solid #ddd; +} + +code, pre { + color: #666; + background: inherit; +} + +pre.literal-block { + background: #eee; +} + +code strong { + color: #930; +} + +hr { + color: #eee; + border: 0; + background-color: #eee; +} + + + +/* RTE (Rich Text Edited) +------------------------------------------------------------------------------------------------------ */ + +.rte h3 { + border-top: 1px solid #d4d4d4; + border-bottom: 1px solid #d4d4d4; +} +.rte .group h3 { + border-top: 0; +} +.rte h3:last-child, +.rte h4:last-child { + border-bottom: 0; + border-bottom-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; +} +.rte td { + border-left: 1px solid #f4f4f4; +} +.rte td:first-of-type { + border-left: 0; +} +.delete-confirmation ul.rte>li { + border-top: 1px solid #fff; + border-bottom: 1px solid #e0e0e0; +} +.delete-confirmation ul.rte>li:first-child { + border-top: 0; +} +.delete-confirmation ul.rte>li:last-child { + border-bottom: 0; +} +.delete-confirmation ul.rte>li>ul>li { + border-top: 1px dashed #e0e0e0; +} +.rte blockquote table { + border: 1px solid #d4d4d4; + border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; +} + + + +/* Other Styles +------------------------------------------------------------------------------------------------------ */ + +.warning { + color: #bf3030; +} +.quiet { + color: #999; +} + + + +/* STRUCTURES +–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */ + +body { + color: #444; + background: #fff; +} + + + +/* Header +------------------------------------------------------------------------------------------------------ */ + +#header { + color: #eee; + background: #333; + background: -moz-linear-gradient(top, #444, #333); + background: -webkit-gradient(linear, left top, left bottom, from(#444), to(#333)); + background: -o-linear-gradient(top, #444, #333); +} +#header a:hover, #header a:active { + color: #ddd; +} + + + +/* Branding, Bookmarks & User-Tools +------------------------------------------------------------------------------------------------------ */ + +.branding { + border-left: 1px solid #343434; + background-color: #262626; +} +.admin-title { + border-left: 1px solid #404040; + border-right: 1px solid #303030; +} + + +/* User Tools ................................................... */ + +#user-tools { + border-left: 1px solid #303030; +} +#user-tools>li { + border-left: 1px solid #404040; + border-right: 1px solid #303030; +} +li.user-options-container.open a.user-options-handler { + color: #eee !important; +} +li.user-options-container.open ul.user-options { + border-top: 1px solid #262626; + border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; + background: #333; +} +ul.user-options li { + border-top: 1px solid #404040; + border-bottom: 1px solid #292929; +} +ul.user-options li:last-child { + border-bottom: 0; +} + + +/* Navigation Menu (UL Navigation-Menu of Admin-Tools) ................................................... */ + +ul.navigation-menu>li>a { + border-left: 1px solid #404040; + border-right: 1px solid #303030; +} +ul.navigation-menu>li.bookmark>a { + border-right: 0; +} +ul.navigation-menu li ul { + border-top: 1px solid #2a2a2a; + border-bottom-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; + background: #333; +} +ul.navigation-menu li li { + border-top: 1px solid #404040; + border-bottom: 1px solid #2a2a2a; +} + +ul.navigation-menu li li li { + border-top: 1px solid #303030; + border-bottom: 1px solid #303030; + border-bottom: 0; +} +ul.navigation-menu li li li li { + border-top: 1px solid #383838; + border-bottom: 1px solid #383838; + border-bottom: 0; +} +ul.navigation-menu li li li li li { + border-top: 1px solid #404040; + border-bottom: 1px solid #383838; + border-bottom: 0; +} +ul.navigation-menu>li>ul>li.parent { + border-top: 1px solid #404040; + border-bottom: 1px solid #2a2a2a; +} +ul.navigation-menu li ul ul { + border-top: 0; + border-bottom: 0; + background: transparent; +} +ul.navigation-menu li.menu-item.last { + border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; +} + +ul.navigation-menu li ul ul>li:first-child a { + border-bottom: 0; +} +ul.navigation-menu li ul ul ul>li:first-child a { + border-bottom: 0; +} +ul.navigation-menu li ul ul ul ul>li:first-child a { + border-bottom: 0; +} +ul.navigation-menu li ul ul ul ul>li:first-child a { + border-bottom: 0; +} +ul.navigation-menu li.collapse.open>a.collapse-handler, +ul.navigation-menu li.bookmark.disabled>a, +ul.navigation-menu li.collapse.open + li.actions { + color: #eee !important; +} +ul.navigation-menu li.bookmark.disabled>a { + cursor: default !important; +} + +form#bookmark-form { + border-right: 1px solid #303030; +} +form#bookmark-form button { +/* border: 1px solid #2e2e2e;*/ +/* border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px;*/ + background-position: 50% 3px; + background-repeat: no-repeat; + background-color: transparent !important; +} +form#bookmark-form button { + background-image: url('../img/icons/icon-bookmark_add.png'); +} +form#bookmark-form button:hover { +/* border: 1px solid #ccc;*/ + background-image: url('../img/icons/icon-bookmark_add-hover.png'); +/* background-color: #e6e6e6 !important;*/ +} +form#bookmark-form button.bookmarked { + background-image: url('../img/icons/icon-bookmark_remove.png'); +} +form#bookmark-form button.bookmarked:hover { + background-image: url('../img/icons/icon-bookmark_remove-hover.png'); +} + + + +/* Breadcrumbs +------------------------------------------------------------------------------------------------------ */ + +div#breadcrumbs { + color: #666; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; + background: #e6e6e6; +} + + + +/* Messages +------------------------------------------------------------------------------------------------------ */ + +ul.messagelist li { + color: #fff; + border-top: 1px solid #949494; + border-bottom: 1px solid #949494; + background-color: #a6a6a6; +} +ul.messagelist li.success { + border-top-color: #72a629; + border-bottom-color: #72a629; + background-color: #83bf30; +} +ul.messagelist li.error, +ul.messagelist li.warning { + border-top-color: #a62929; + border-bottom-color: #a62929; + background-color: #bf3030; +} +ul.messagelist li + li { + border-top: 0; +} + + + +/* Login Form +------------------------------------------------------------------------------------------------------ */ + +.login .module { + border: 0; + border-top-left-radius: 0; -moz-border-radius-topleft: 0; -webkit-border-top-left-radius: 0; + border-top-right-radius: 0; -moz-border-radius-topright: 0; -webkit-border-top-right-radius: 0; + background: #333; +} +.login .module .row { + border-top: 1px solid #444; + border-bottom: 1px solid #222; +} +.login .module label { + color: #eee; +} + + + +/* COMPONENTS +–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */ + + + +/* Modules +------------------------------------------------------------------------------------------------------ */ + +.module { + border: 1px solid #bdbdbd; + border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; + background: #eee; +} +.rte .module { + background: transparent; +} + + +/* Nested Modules Basics ......................................... */ + +.module .module, +.module fielset.module { + border: 0; + border-radius: 0; -moz-border-radius: 0; -webkit-border-radius: 0; +} +.module .module:first-child { + border-top-left-radius: 4px; -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; + border-top-right-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; +} + + + +/* Groups +------------------------------------------------------------------------------------------------------ */ + +.group { + border-radius: 7px; -moz-border-radius: 7px; -webkit-border-radius: 7px; +} + +.group.collapse.closed { + border: 2px solid #e0e0e0; +} +.group, +.group.collapse.closed:hover { + border: 2px solid #c7c7c7; +} + + + +/* Elements in Modules & Groups +------------------------------------------------------------------------------------------------------ */ + + +/* 1st Level Borders Top (Dark/Bright) ......................................... */ + +.group h2, +.module h2 { + border-bottom: 1px solid #bdbdbd; + border-top-left-radius: 4px; -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; + border-top-right-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; + background: #d6d6d6; + background: -moz-linear-gradient(top, #e3e3e3, #d6d6d6); + background: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#d6d6d6)); + background: -o-linear-gradient(top, #e3e3e3, #d6d6d6); +} +.group h2 { + border: 1px solid #bdbdbd; + border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; +} +.module h2+*, +.module h2+.tools+* { + border-top: 1px solid #fff; +} +.module h2+.module, +.module h2+.tools, +.module h2+.tools+.module { + border-top: 0 !important; +} + + +/* 2nd Level Borders Top (Dark/Bright) ......................................... */ + +.module .module { + border-top: 1px solid #c7c7c7; +} +.module .module>*:first-child { + border-top: 1px solid #eee; +} +#changelist .span-flexible .module .module:first-child { + border-top: 0; +} + +.group h3, +.module h3 { + border-bottom: 1px solid #c7c7c7; + background: #e0e0e0; + background: -moz-linear-gradient(top, #e9e9e9, #e0e0e0); + background: -webkit-gradient(linear, left top, left bottom, from(#e9e9e9), to(#e0e0e0)); + background: -o-linear-gradient(top, #e9e9e9, #e0e0e0); +} +.group h3 { + border-top-left-radius: 4px; -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; + border-top-right-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; +} +.module h3+*, +.module h3+.tools+* { + border-top: 1px solid #fff; +} +.module h3+.module, +.module h3+.tools, +.module h3+.tools+.module { + border-top: 0 !important; +} + + +/* 3rd Level Borders Top (Dark/Bright) ......................................... */ + +.group .module .module, +.module .module .module { + border-top: 1px solid #d4d4d4; +} +.group .module .module>*:first-child, +.module .module .module>*:first-child { + border-top: 1px solid #f4f4f4; +} + +.group h4, +.module h4 { + border-bottom: 1px solid #d4d4d4; + background: #e8e8e8; + background: -moz-linear-gradient(top, #ededed, #e8e8e8); + background: -webkit-gradient(linear, left top, left bottom, from(#ededed), to(#e8e8e8)); + background: -o-linear-gradient(top, #ededed, #e8e8e8); +} +.module h4+*, +.module h4+.tools+* { + border-top: 1px solid #fff; +} +.module h4+.tools { + border-top: 0 !important; +} +.module .description { + border-bottom: 1px solid #d4d4d4; +} +.module .row.description, +.module.table .description { + border-bottom: 0; +} + + + +/* Modules & Groups Overrides +------------------------------------------------------------------------------------------------------ */ + +.module .module:last-of-type { + border-bottom-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; +} + + + +/* Collapsible Structures +------------------------------------------------------------------------------------------------------ */ + +.group .module.collapse.closed h3.collapse-handler, +.group .module.collapse.closed h4.collapse-handler, +.collapse.closed h2.collapse-handler, +.module .module.collapse.closed.last .collapse-handler, +.module .module.collapse.closed:last-child .collapse-handler { + border-bottom-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; +} +.module.collapse.closed h2.collapse-handler, +.module.collapse.closed h3.collapse-handler, +.module.collapse.closed h4.collapse-handler { + border-bottom: 0; +} + + +/* 1st Level Collapsible-Handler ......................................... */ + +.collapse h2.collapse-handler { + background: #a1d4e5; + background: -moz-linear-gradient(top, #bcdfeb, #a1d4e5); + background: -webkit-gradient(linear, left top, left bottom, from(#bcdfeb), to(#a1d4e5)); + background: -o-linear-gradient(top, #bcdfeb, #a1d4e5); +} +.collapse h2.collapse-handler:hover, +.collapse.open h2.collapse-handler { + background: #bcdfeb; + background: -moz-linear-gradient(top, #a1d4e5, #bcdfeb); + background: -webkit-gradient(linear, left top, left bottom, from(#a1d4e5), to(#bcdfeb)); + background: -o-linear-gradient(top, #a1d4e5, #bcdfeb); +} + + +/* 2nd Level Collapsible-Handler ......................................... */ + +.group .collapse h3.collapse-handler, +.module .collapse h3.collapse-handler { + background: #cee9f2; + background: -moz-linear-gradient(top, #e1f0f5, #cee9f2); + background: -webkit-gradient(linear, left top, left bottom, from(#e1f0f5), to(#cee9f2)); + background: -o-linear-gradient(top, #e1f0f5, #cee9f2); +} +.group .collapse h3.collapse-handler:hover, +.module .collapse h3.collapse-handler:hover, +.group .collapse.open h3.collapse-handler, +.module .collapse.open h3.collapse-handler { + background: #e1f0f5; + background: -moz-linear-gradient(top, #cee9f2, #e1f0f5); + background: -webkit-gradient(linear, left top, left bottom, from(#cee9f2), to(#e1f0f5)); + background: -o-linear-gradient(top, #cee9f2, #e1f0f5); +} +.module .collapse h3.collapse-handler { + border-top: 1px solid #e1f0f5; +} + + +/* 3rd Level Collapsible-Handler ......................................... */ + +.group .module .collapse > h4.collapse-handler, +.module .module .collapse > h4.collapse-handler { + border-top: 1px solid #f0f7fa; + background: #e1f0f5; + background: -moz-linear-gradient(top, #ebf2f5, #e1f0f5); + background: -webkit-gradient(linear, left top, left bottom, from(#ebf2f5), to(#e1f0f5)); + background: -o-linear-gradient(top, #ebf2f5, #e1f0f5); +} +.group .collapse > h4.collapse-handler:hover, +.module .collapse > h4.collapse-handler:hover, +.group .collapse.open > h4.collapse-handler, +.module .collapse.open > h4.collapse-handler { + background: #ebf2f5; + background: -moz-linear-gradient(top, #e1f0f5, #ebf2f5); + background: -webkit-gradient(linear, left top, left bottom, from(#e1f0f5), to(#ebf2f5)); + background: -o-linear-gradient(top, #e1f0f5, #ebf2f5); +} + + + +/* Row +------------------------------------------------------------------------------------------------------ */ + +.row { + margin: 0; + border-top: 1px solid #fff; + border-bottom: 1px solid #e0e0e0; + border-left: 0; + border-right: 0; +} +.row.first, +.row:first-child, +.module input[type=hidden] + .row { + border-top: 0 !important; + border-top-left-radius: 5px; -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; + border-top-right-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; +} +.row.last, +.row:last-child, +.row:last-of-type, +fieldset.module > .row.last, +fieldset.module > .row:last-child { + border-bottom: 0 !important; + border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; +} + + + +/* Cell +------------------------------------------------------------------------------------------------------ */ + +.cell { + border-right: 1px solid #e0e0e0; + border-left: 1px solid #fff; +} + + + +/* Fieldset Cell +------------------------------------------------------------------------------------------------------ */ + +fieldset.module .cell:first-child { + border-left: 0 !important; +} +fieldset.module .cell:last-child, +fieldset.module .cell.last { + border-right: 0 !important; +} +fieldset.module .cell.last + fieldset.module .cell { + border-left: 0 !important; +} + + + +/* Tabular Modules +------------------------------------------------------------------------------------------------------ */ + +.module.table { + border: 0; + border-collapse: separate; + border-spacing: 0 2px; + background: transparent; +} +.module.thead, +.module.tfoot { + color: #aaa; + background: transparent; +} +.module.table .tr, +.module.tbody { + background: transparent; +} +.module.table .th, +.module.table .td { + border-left: 1px solid #fff; + border-right: 1px solid #e0e0e0; +} +.module.thead .th:last-of-type, +.module.thead .td:last-of-type, +.module.tfoot .td:last-of-type { + border-right: 0; +} +.module.table .module.thead .th, +.module.table .module.thead .td { + border-top: 0; + border-bottom: 0; + background: none; +} +.module.tbody .th, +.module.tbody .td { + border-top: 1px solid #d4d4d4; + border-bottom: 1px solid #d4d4d4; + background: #eee; +} +.module.tbody .th:first-of-type, +.module.tbody .td:first-of-type { + border-left: 1px solid #ccc; + border-top-left-radius: 5px; -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; + border-top-right-radius: 0; -moz-border-radius-topright: 0; -webkit-border-top-right-radius: 0; + border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; +} +.module.tbody .th:last-of-type, +.module.tbody .td:last-of-type { + border-top-right-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; + border-bottom-left-radius: 0; -moz-border-radius-bottomleft: 0; -webkit-border-bottom-left-radius: 0; + border-bottom-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; +} + + + +/* Add Items +------------------------------------------------------------------------------------------------------ */ + +.module.add-item { + border: 1px solid transparent; + background: #fff; +} + + + +/* Predelete +------------------------------------------------------------------------------------------------------ */ + +.predelete h2, .collapse.predelete > h2.collapse-handler, +.predelete h3, .collapse.predelete > h3.collapse-handler, +.predelete h4, .collapse.predelete .collapse > h4.collapse-handler { + background: #f2e6e6; + background: -moz-linear-gradient(top, #fff2f2, #f2e6e6); + background: -webkit-gradient(linear, left top, left bottom, from(#fff2f2), to(#f2e6e6)); + background: -o-linear-gradient(top, #fff2f2, #f2e6e6); +} +.collapse.predelete > h2.collapse-handler:hover, +.collapse.predelete > h3.collapse-handler:hover, +.predelete .collapse > h4.collapse-handler:hover, +.collapse.open.predelete > h2.collapse-handler, +.collapse.open.predelete > h3.collapse-handler, +.predelete .collapse.open > h4.collapse-handler { + background: #f2e6e6 !important; + background: -moz-linear-gradient(top, #f2e6e6, #fff2f2) !important; + background: -webkit-gradient(linear, left top, left bottom, from(#f2e6e6), to(#fff2f2)) !important; + background: -o-linear-gradient(top, #f2e6e6, #fff2f2) !important; +} +.predelete, +.predelete .module, +.predelete .th, +.predelete .td { + background: #f2e6e6 !important; +} + + + +/* Selectors +------------------------------------------------------------------------------------------------------ */ + +.selector-available, .selector-chosen { + border: 1px solid #ccc; + border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; + background: #ddd; +} +.selector h2, .inline-group .selector h2, +.inline-related fieldset .selector-available h2, .inline-related fieldset .selector-chosen h2 { + border: 0; + border-bottom: 1px solid #d0d0d0; + background: transparent; +} +.selector .selector-filter { + color: #666; + border-top: 1px solid #e4e4e4; + border-bottom: 1px solid #e4e4e4; + border-top-left-radius: 5px;-moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; + border-top-right-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; +} +.selector h2 + .selector-filter { + border-radius-topleft: 0; -moz-border-radius-topleft: 0; -webkit-border-top-left-radius: 0; + border-radius-topright: 0; -moz-border-radius-topright: 0; -webkit-border-top-right-radius: 0; +} +.selector select[multiple=multiple] { + border-left: 0; + border-top: 1px solid #d0d0d0; + border-bottom: 1px solid #d0d0d0; + border-radius: 0; -moz-border-radius: 0; -webkit-border-radius: 0; +} + +a.selector-chooseall, a.selector-clearall { + border-top: 1px solid #e4e4e4; +} + +.selector h2 + select { + border-top: 0; +} + +a.selector-chooseall, a.selector-clearall { + border-top: 1px solid #e4e4e4; +} + + + +/* Link-List, Actions, Feed, Table of Contents +------------------------------------------------------------------------------------------------------ */ + +.module.link-list, +.module.link-list .module, +.module.actions, +.module.actions .module, +.module.feed, +.module.feed .module { + background: #fff; +} +.link-list ul li, +.feed ul li, +.actions ul li, +.table-of-contents ul li { + border-top: 1px solid #fff; + border-bottom: 1px solid #e0e0e0; +} +.actions ul li { + color: #999; +} +.actions ul li:first-child, +.link-list ul li:first-child, +.feed ul li:first-child, +.table-of-contents ul li:first-child { + border-top: 0; +} +.actions ul li:last-child, +.link-list ul li:last-child, +.feed ul li:last-child, +.table-of-contents ul li:last-child { + border-bottom: 0; +} +.link-list ul li.selected a, +.table-of-contents ul li.selected a { + color: #444; +} +a.internal:link, a.internal:visited {} +a.internal:hover, a.internal:active, +.actions li.delete-link { + color: #666; +} +a.external:link, a.external:visited { + color: #83c3d9; +} +a.external:hover, a.external:active { + color: #666; +} + + + +/* Module Changelist Filters +------------------------------------------------------------------------------------------------------ */ + +.module.changelist-filters { + color: #666; + border: 1px solid #d4d4d4; + border-bottom-left-radius: 0; -moz-border-radius-bottomleft: 0; -webkit-border-bottom-left-radius: 0; + border-bottom-right-radius: 0; -moz-border-radius-bottomright: 0; -webkit-border-bottom-right-radius: 0; +} +.module.changelist-filters:last-of-type, +body.filebrowser .module.changelist-filters { + border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; +} + + + +/* Module Search & Module Filter +------------------------------------------------------------------------------------------------------ */ + +.module.search, +.module.filter { + border: 0; + border-top-right-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; +} +.module.filter .pulldown-container { + border: 1px solid #fff; + border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px; +} +.module.filter.open .pulldown-container { + border-color: #ccc; + box-shadow: 0 0 10px #444; -moz-box-shadow: 0 0 10px #444; -webkit-box-shadow: 0 0 10px #444; +} + +.open a.button.toggle-filters, +.open.selected a.button.toggle-filters { + border-color: transparent !important; + border-bottom-left-radius: 0; -moz-border-radius-bottomleft: 0 !important; -webkit-border-bottom-left-radius: 0; + border-bottom-right-radius: 0; -moz-border-radius-bottomright: 0 !important; -webkit-border-bottom-right-radius: 0; +} +a.button.toggle-filters:link, a.button.toggle-filters:visited { + color: #309bbf; + border-color: #ddd; +} +.selected a.button.toggle-filters:link, .selected a.button.toggle-filters:visited { + color: #444; + background-color: #e1f0f5; + background: #e1f0f5 url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat; + background: url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat, -moz-linear-gradient(top, #eee, #e0e0e0); + background: url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat, -webkit-gradient(linear, left top, left bottom, from(#eee), to(#e0e0e0)); + background: url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat, -o-linear-gradient(top, #eee, #e0e0e0); +} +.open a.button.toggle-filters, .selected a.button.toggle-filters, +.selected a.button.toggle-filters:hover, .selected a.button.toggle-filters:active, +a.button.toggle-filters:hover, a.button.toggle-filters:active { + color: #666; + border-color: #ccc; + background-color: #e1f0f5; + background: #e1f0f5 url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat; + background: url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat, -moz-linear-gradient(top, #f0f7fa, #e1f0f5); + background: url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat, -webkit-gradient(linear, left top, left bottom, from(#f0f7fa), to(#e1f0f5)); + background: url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat, -o-linear-gradient(top, #f0f7fa, #e1f0f5); +} +.selected a.button.toggle-filters:link, .selected a.button.toggle-filters:visited { + color: #666; + border-color: #ddd; + background-color: #e1f0f5; + background: #e1f0f5 url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat; + background: url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat, -moz-linear-gradient(top, #f0f7fa, #e1f0f5); + background: url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat, -webkit-gradient(linear, left top, left bottom, from(#f0f7fa), to(#e1f0f5)); + background: url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat, -o-linear-gradient(top, #f0f7fa, #e1f0f5); +} +.open a.button.toggle-filters, +.open.selected a.button.toggle-filters, +.selected a.button.toggle-filters:hover, .selected a.button.toggle-filters:active, +a.button.toggle-filters:hover, a.button.toggle-filters:active { + color: #666; + border-color: #ccc; + background-color: #e1f0f5; + background: #e1f0f5 url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat; + background: url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat, -moz-linear-gradient(top, #f0f7fa, #e1f0f5); + background: url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat, -webkit-gradient(linear, left top, left bottom, from(#f0f7fa), to(#e1f0f5)); + background: url('../img/icons/icon-dropdown-hover.png') 100% 3px no-repeat, -o-linear-gradient(top, #f0f7fa, #e1f0f5); +} + +.filter-pulldown { + border: 1px solid transparent; + border-top: 0; + border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; + background: #e1f0f5; +} +.filter-pulldown label { + color: #999; +} + + + +/* Module Date Hierarchy +------------------------------------------------------------------------------------------------------ */ + +.module.date-hierarchy { + border: 1px solid #d9d9d9; + border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; + background: #eee; + background: -moz-linear-gradient(top, #eee, #e7e7e7); + background: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#e7e7e7)); + background: -o-linear-gradient(top, #eee, #e7e7e7); +} +.module + .module.date-hierarchy { + border-top-left-radius: 0; -moz-border-radius-topleft: 0; -webkit-border-top-left-radius: 0; + border-top-right-radius: 0; -moz-border-radius-topright: 0; -webkit-border-top-right-radius: 0; +} +.module + .module.date-hierarchy .row { + border-top: 1px solid #fff !important; + border-top-left-radius: 0; -moz-border-radius-topleft: 0; -webkit-border-top-left-radius: 0; + border-top-right-radius: 0; -moz-border-radius-topright: 0; -webkit-border-top-right-radius: 0; +} +.date-hierarchy a:link, .date-hierarchy a:visited { + color: #59afcc; +} +.date-hierarchy a:hover, .date-hierarchy a:active { + color: #444; +} +.date-hierarchy a.date-hierarchy-back:hover, .date-hierarchy a.date-hierarchy-back:active { + color: #666; +} + + + +/* Pagination +------------------------------------------------------------------------------------------------------ */ + +.module.pagination { + border: 1px solid #d9d9d9; + border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; +} +.module .module.pagination { + border: 0; +} +ul.pagination { + border-top: 0 !important; +} +ul.pagination li { + border: 1px solid #fff; + border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; +} + +ul.pagination span, +ul.pagination a { + border: 1px solid; + border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; + box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; +} +ul.pagination a:link, .pagination a:visited { + color: #59afcc; + border-color: #d9d9d9; +} +ul.pagination a:hover, .pagination a:active { + color: #444; + border-color: #bdbdbd; + background: #e0e0e0; + background: -moz-linear-gradient(top, #eee, #e0e0e0); + background: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#e0e0e0)); + background: -o-linear-gradient(top, #eee, #e0e0e0); +} +ul.pagination span { + color: #444; + border-color: #bdbdbd; + background: #e0e0e0; + background: -moz-linear-gradient(top, #eee, #e0e0e0); + background: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#e0e0e0)); + background: -o-linear-gradient(top, #eee, #e0e0e0); +} +ul.pagination li.separator span { + border-color: transparent; + background: transparent; +} + + + +/* Module Changelist-Results +------------------------------------------------------------------------------------------------------ */ + +.module.changelist-results { + border-bottom-right-radius: 0; -moz-border-radius-bottomright: 0; -webkit-border-bottom-right-radius: 0; + background-color: #eee !important; +} + + + +/* Module Changelist Actions +------------------------------------------------------------------------------------------------------ */ + +.changelist-actions { + color: #ccc; +} +.changelist-actions.all-selected, +.changelist-actions.all-selected + .changelist-results { + background: #ffffe6 !important; +} +.changelist-actions ul li { + border: 1px solid #444; + border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; +} +.changelist-actions ul a, +.changelist-actions ul span { + border: 1px solid; + border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; +} +.changelist-actions ul a:link, .changelist-actions ul a:visited { + color: #59afcc; + border-color: #333; + background: #333; + background: -moz-linear-gradient(top, #444, #333); + background: -webkit-gradient(linear, left top, left bottom, from(#444), to(#333)); + background: -o-linear-gradient(top, #444, #333); +} +.changelist-actions ul a:hover, .changelist-actions ul a:active { + color: #ccc; + border-color: #333; + background: #555; + background: -moz-linear-gradient(top, #666, #555); + background: -webkit-gradient(linear, left top, left bottom, from(#666), to(#555)); + background: -o-linear-gradient(top, #666, #555); +} +.changelist-actions ul span { + color: #ccc; + border-color: #333; +} +.changelist-actions ul span span { + border: 0; +} + + + +/* Module Footer +------------------------------------------------------------------------------------------------------ */ + +.module.footer { + border: 0; + border-top: 1px solid #bdbdbd; + border-radius: 0; -moz-border-radius: 0; -webkit-border-radius: 0; + background: #333; + background: -moz-linear-gradient(top, #444, #333); + background: -webkit-gradient(linear, left top, left bottom, from(#444), to(#333)); + background: -o-linear-gradient(top, #444, #333); +} + + + +/* Submit Row +------------------------------------------------------------------------------------------------------ */ + +.module.submit-row { + border: 0; + background: transparent; +} + + + +/* Tooltips +------------------------------------------------------------------------------------------------------ */ + +.module.search .tooltip .tooltip-content { + border: 1px solid #ccc; + border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; + background: #fff; + box-shadow: 0 10px 50px #333; -moz-box-shadow: 0 10px 50px #333; -webkit-box-shadow: 0 10px 50px #333; +} + + + +/* TOOLS +–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */ + +ul.tools > li { + border-top: 0 !important; + border-bottom: 0 !important; +} + + + +/* H1 + Tools +------------------------------------------------------------------------------------------------------ */ + +h1 + .tools a { + color: #fff; + border-radius: 15px; -moz-border-radius: 15px; -webkit-border-radius: 15px; +} +h1 + .tools a:link, h1 + .tools a:visited { + background: #444; + background: -moz-linear-gradient(top, #666, #444); + background: -webkit-gradient(linear, left top, left bottom, from(#666), to(#444)); + background: -o-linear-gradient(top, #666, #444); +} +h1 + .tools a:hover, h1 + .tools a:active { + border-color: transparent; + background: #309bbf; + background: -moz-linear-gradient(top, #39bae5, #309bbf); + background: -webkit-gradient(linear, left top, left bottom, from(#39bae5), to(#309bbf)); + background: -o-linear-gradient(top, #39bae5, #309bbf); +} + +.tools-active { + border-color: transparent !important; + background: #309bbf !important; + background: -moz-linear-gradient(top, #39bae5, #309bbf) !important; + background: -webkit-gradient(linear, left top, left bottom, from(#39bae5), to(#309bbf)) !important; + background: -o-linear-gradient(top, #39bae5, #309bbf) !important; +} + +h1 + .tools a.add-handler:link, h1 + .tools a.add-handler:visited { + background-color: #444; + background: #444 0 50% no-repeat scroll; + background-image: url('../img/icons/icon-object-tools-add-handler.png'), -moz-linear-gradient(top, #666, #444); + background-image: url('../img/icons/icon-object-tools-add-handler.png'), -webkit-gradient(linear, left top, left bottom, from(#666), to(#444)); + background-image: url('../img/icons/icon-object-tools-add-handler.png'), -o-linear-gradient(top, #666, #444); +} +h1 + .tools a.add-handler:hover, h1 + .tools a.add-handler:active { + background-color: #309bbf; + background: #309bbf 0 50% no-repeat scroll; + background-image: url('../img/icons/icon-object-tools-add-handler.png'), -moz-linear-gradient(top, #39bae5, #309bbf); + background-image: url('../img/icons/icon-object-tools-add-handler.png'), -webkit-gradient(linear, left top, left bottom, from(#39bae5), to(#309bbf)); + background-image: url('../img/icons/icon-object-tools-add-handler.png'), -o-linear-gradient(top, #39bae5, #309bbf); +} + + +/* 1st Level H2 + Tools ......................................... */ + +.group h2+.tools, +.module h2+.tools { + border-top-right-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; +} + +.module h2+.tools li { + border-top-right-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; +} +.group h2+.tools, +.module.collapse.closed h2+.tools { + border-bottom-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; +} + + +/* 2nd Level H3 + Tools ......................................... */ + +.group .module.collapse.closed h3+.tools, +.group .module.collapse.closed h3+.tools li, +.module.collapse.closed:last-child h3+.tools, +.module.collapse.closed:last-child h3+.tools li { + border-bottom-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; +} +.group h3+.tools, +.group h3+.tools li { + border-top-right-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; +} + + +/* 3rd Level H4 + Tools ......................................... */ + +.module.collapse.closed:last-child h4+.tools, +.module.collapse.closed:last-child h4+.tools li { + border-bottom-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; +} + + + +/* FORMS +–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */ + + + +/* Errors +------------------------------------------------------------------------------------------------------ */ + +.errornote { + color: #f7f7f7; + border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; + background: #bf3030; +} +/* little fix to accomodate the top aligned login form .. */ +.login .errornote, +.errornote.login-errors { + margin-bottom: 0 !important; + padding: 8px 10px 6px !important; + border-radius: 0px; -moz-border-radius: 0px; -webkit-border-radius: 0px; +} +ul.errorlist { + color: #bf3030; +} +.error input, .error select, .errors input, .errors select { + border: 1px solid #bf3030 !important; +} +.login ul.errorlist { + color: #d93636; +} + + + +/* Labels & Other Typographic Elements in Forms +------------------------------------------------------------------------------------------------------ */ + +label { + color: #444; +} + + + +/* Form Elements +------------------------------------------------------------------------------------------------------ */ + +input, textarea, select, button { + color: #666; + border: 1px solid #ccc; +/* border-color: #ccc #ddd #ddd #ccc;*/ + border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; + outline: 0; +} +input, textarea, select { + box-shadow: 0 1px 3px #eaeaea inset; -moz-box-shadow: 0 1px 3px #eaeaea inset; -webkit-box-shadow: 0 1px 3px #eaeaea inset; + background-color: #fff; +} +@media screen and (-webkit-min-device-pixel-ratio:0) { + input[type=file] { + background-color: transparent; + } +} + +*:focus, input:focus, textarea:focus, select:focus { + border-color: #999; +} +select:focus * { + border: 0 !important; + outline: 0 !important; +} + + +/* Searchbar ................................................... */ + +form#changelist-search { + border: 1px solid #fff; + border-radius: 15px; -moz-border-radius: 15px; -webkit-border-radius: 15px; +} +input#searchbar { + border-radius: 14px; -moz-border-radius: 14px; -webkit-border-radius: 14px; +} + + +/* Select ................................................... */ + +option, +select[multiple=multiple] option { + border-bottom: 1px dotted #ddd !important; +} +option:last-child { + border-bottom: 0; +} + + +/* Autocomplete Fields ................................................... */ + +.vAutocompleteSearchField, +.vM2MAutocompleteSearchField { + background: #eaf5f8; +} + + +/* Read Only ................................................... */ + +input[readonly], +textarea[readonly], +select[readonly] { + background: #f4f4f4; +} + + + +/* BUTTONS +–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */ + +input[type=submit], input[type=reset], input[type=button], button { + color: #fff; + border: 0; + border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; + background: #acd7e5; +} + + +/* Button Containers ................................................... */ + +.submit-row>*[class*="-container"] { + border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px; + box-shadow: 0 0 5px #666; -moz-box-shadow: 0 0 5px #666; -webkit-box-shadow: 0 0 5px #666; + background: #d6d6d6; +} +.submit-row>*[class*="-container"]:hover { + box-shadow: 0 0 5px #777; -moz-box-shadow: 0 0 5px #777; -webkit-box-shadow: 0 0 5px #777; + background: #d6d6d6; +} +.submit-row>*[class*="cancel-button-container"] { + box-shadow: 0 0 5px #aaa; -moz-box-shadow: 0 0 5px #aaa; -webkit-box-shadow: 0 0 5px #aaa; +} +.footer .submit-row>*[class*="-container"], +.footer .submit-row>*[class*="cancel-button-container"] { + border: 1px solid #666; + box-shadow: 0 0 5px #666; -moz-box-shadow: 0 0 5px #666; -webkit-box-shadow: 0 0 5px #666; + background: #666; +} +.submit-row>*[class*="cancel-button-container"] { + box-shadow: 0 0 5px #aaa; -moz-box-shadow: 0 0 5px #aaa; -webkit-box-shadow: 0 0 5px #aaa; +} +.footer .submit-row>*[class*="-container"]:hover, +.footer .submit-row>*[class*="cancel-button-container"]:hover { + border: 1px solid #777; + box-shadow: 0 0 5px #777; -moz-box-shadow: 0 0 5px #777; -webkit-box-shadow: 0 0 5px #777; + background: #777; +} + + +/* Buttons & Buttonlike Links +------------------------------------------------------------------------------------------------------ */ + +.submit-row a.submit-link, +.submit-row a.delete-link, +.submit-row a.cancel-link { + border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; +} +.submit-row a.submit-link, +.submit-row input[type=submit] { + border: 1px solid #267c99; +} + +input[type=submit], +#bookmark-add-cancel, +.submit-row a.delete-link:link, .submit-row a.delete-link:visited, +.submit-row a.cancel-link:link, .submit-row a.cancel-link:visited, +.submit-row input[type=button] { + box-shadow: none !important; -moz-box-shadow: none !important; -webkit-box-shadow: none !important; +} + +.submit-row a.delete-link:link, .submit-row a.delete-link:visited { + color: #fff; + border: 1px solid #992626; + background: #bf3030; + background: -moz-linear-gradient(top, #d93636, #bf3030); + background: -webkit-gradient(linear, left top, left bottom, from(#d93636), to(#bf3030)); + background: -o-linear-gradient(top, #d93636, #bf3030); +} +#bookmark-add-cancel, +.submit-row a.cancel-link:link, .submit-row a.cancel-link:visited, +.submit-row input.cancel:hover { + color: #fff; + border: 1px solid #444; + background: #666; + background: -moz-linear-gradient(top, #666, #444); + background: -webkit-gradient(linear, left top, left bottom, from(#666), to(#444)); + background: -o-linear-gradient(top, #666, #444); +} + +input[type=submit], +.submit-row a.submit-link:link, .submit-row a.submit-link:visited { + color: #fff; + background: #309bbf; + background: -moz-linear-gradient(top, #39bae5, #309bbf); + background: -webkit-gradient(linear, left top, left bottom, from(#39bae5), to(#309bbf)); + background: -o-linear-gradient(top, #39bae5, #309bbf); +} +input[type=submit]:hover, +#bookmark-add-cancel:hover, +.submit-row a.submit-link:hover, .submit-row a.submit-link:active, +.submit-row a.delete-link:hover, .submit-row a.delete-link:active, +.submit-row a.cancel-link:hover, .submit-row a.cancel-link:active, +.submit-row input.cancel { + color: #444; + border: 1px solid #aaa; + background: #d6d6d6; + background: -moz-linear-gradient(top, #e3e3e3, #d6d6d6); + background: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#d6d6d6)); + background: -o-linear-gradient(top, #e3e3e3, #d6d6d6); +} +.footer input[type=submit]:hover, +.footer #bookmark-add-cancel:hover, +.footer .submit-row a.delete-link:hover, .footer .submit-row a.delete-link:active, +.footer .submit-row a.cancel-link:hover, .footer .submit-row a.cancel-link:active { + border: 1px solid #666; +} + +button.fb_show, +button.ui-datepicker-trigger, +button.ui-timepicker-trigger, +button.ui-gAutocomplete-browse, +button.ui-gAutoSlugField-toggle, +button.ui-gFacelist-browse, +a.button, +.vDateField + span a, +.vTimeField + span a, +a.fb_show, +a.related-lookup, +a.add-another, +.tinyMCE .browse span { + border-top-left-radius: 0; -moz-border-radius-topleft: 0; -webkit-border-top-left-radius: 0; + border-bottom-left-radius: 0; -moz-border-radius-bottomleft: 0; -webkit-border-bottom-left-radius: 0; + border-top-right-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; + border-bottom-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; +} + +button { + background: #309bbf; + background-image: -moz-linear-gradient(top, #33a6cc, #309bbf); + background-image: -webkit-gradient(linear, left top, left bottom, from(#33a6cc), to(#309bbf)); + background-image: -o-linear-gradient(top, #33a6cc, #309bbf); +} +button:hover { + background: #666; + background-image: -moz-linear-gradient(top, #555, #444); + background-image: -webkit-gradient(linear, left top, left bottom, from(#555), to(#444)); + background-image: -o-linear-gradient(top, #555, #444); +} + +button.fb_show, +button.ui-gAutocomplete-browse, +button.ui-gFacelist-browse, +button.ui-gAutoSlugField-toggle, +button.ui-datepicker-trigger, +button.ui-timepicker-trigger, +.tinyMCE .browse span { + border: 1px solid #ccc; + background-color: #e1f0f5; +} +button.fb_show:hover, +button.ui-gAutocomplete-browse:hover, +button.ui-gFacelist-browse:hover, +button.ui-gAutoSlugField-toggle:hover, +button.ui-datepicker-trigger:hover, +button.ui-timepicker-trigger:hover, +.tinyMCE .browse span:hover { + background-color: #e1e1e1; +} +button.fb_show[disabled], +button.ui-gAutocomplete-browse[disabled], +button.ui-gFacelist-browse[disabled], +button.ui-gAutoSlugField-toggle[disabled], +button.ui-datepicker-trigger[disabled], +button.ui-timepicker-trigger[disabled], +input[disabled] + a { + background-color: transparent !important; + opacity: 0.3; + cursor: auto !important; +} + + +/* Autocomplete Button ......................................... */ + +button.ui-gAutocomplete-browse, +button.ui-gFacelist-browse { + background-image: url('../img/icons/icon-related-lookup.png'), -moz-linear-gradient(top, #ebf2f5, #e1f0f5); + background-image: url('../img/icons/icon-related-lookup.png'), -webkit-gradient(linear, left top, left bottom, from(#ebf2f5), to(#e1f0f5)); + background-image: url('../img/icons/icon-related-lookup.png'), -o-linear-gradient(top, #ebf2f5, #e1f0f5); +} +button.ui-gAutocomplete-browse:hover, +button.ui-gFacelist-browse:hover { + background-image: url('../img/icons/icon-related-lookup-hover.png'), -moz-linear-gradient(top, #e1e1e1, #eee); + background-image: url('../img/icons/icon-related-lookup-hover.png'), -webkit-gradient(linear, left top, left bottom, from(#e1e1e1), to(#eee)); + background-image: url('../img/icons/icon-related-lookup-hover.png'), -o-linear-gradient(top, #e1e1e1, #eee); +} + +.errors button.ui-gAutocomplete-browse, +.errors button.ui-gFacelist-browse { + border-color: #bf3030 #bf3030 #bf3030 #ccc; +} + + +/* AutoSlugField Button ......................................... */ + +/* TODO: lock/unlock icons .. */ + +button.ui-gAutoSlugField-toggle { + background-image: url('../img/icons/icon-related-lookup.png'), -moz-linear-gradient(top, #ebf2f5, #e1f0f5); + background-image: url('../img/icons/icon-related-lookup.png'), -webkit-gradient(linear, left top, left bottom, from(#ebf2f5), to(#e1f0f5)); + background-image: url('../img/icons/icon-related-lookup.png'), -o-linear-gradient(top, #ebf2f5, #e1f0f5); +} +button.ui-gAutoSlugField-toggle:hover { + background-image: url('../img/icons/icon-related-lookup-hover.png'), -moz-linear-gradient(top, #e1e1e1, #eee); + background-image: url('../img/icons/icon-related-lookup-hover.png'), -webkit-gradient(linear, left top, left bottom, from(#e1e1e1), to(#eee)); + background-image: url('../img/icons/icon-related-lookup-hover.png'), -o-linear-gradient(top, #e1e1e1, #eee); +} +.errors button.ui-gAutoSlugField-toggle { + border-color: #bf3030 #bf3030 #bf3030 #ccc; +} + + +/* Datepicker Button ......................................... */ + +button.ui-datepicker-trigger { + background-image: url('../img/icons/icon-datepicker.png'), -moz-linear-gradient(top, #ebf2f5, #e1f0f5); + background-image: url('../img/icons/icon-datepicker.png'), -webkit-gradient(linear, left top, left bottom, from(#ebf2f5), to(#e1f0f5)); + background-image: url('../img/icons/icon-datepicker.png'), -o-linear-gradient(top, #ebf2f5, #e1f0f5); +} +button.ui-datepicker-trigger:hover { + background-image: url('../img/icons/icon-datepicker-hover.png'), -moz-linear-gradient(top, #e1e1e1, #eee); + background-image: url('../img/icons/icon-datepicker-hover.png'), -webkit-gradient(linear, left top, left bottom, from(#e1e1e1), to(#eee)); + background-image: url('../img/icons/icon-datepicker-hover.png'), -o-linear-gradient(top, #e1e1e1, #eee); +} + + +/* Timepicker Button ......................................... */ + +button.ui-timepicker-trigger { + background-image: url('../img/icons/icon-timepicker.png'), -moz-linear-gradient(top, #ebf2f5, #e1f0f5); + background-image: url('../img/icons/icon-timepicker.png'), -webkit-gradient(linear, left top, left bottom, from(#ebf2f5), to(#e1f0f5)); + background-image: url('../img/icons/icon-timepicker.png'), -o-linear-gradient(top, #ebf2f5, #e1f0f5); +} +button.ui-timepicker-trigger:hover { + background-image: url('../img/icons/icon-timepicker-hover.png'), -moz-linear-gradient(top, #e1e1e1, #eee); + background-image: url('../img/icons/icon-timepicker-hover.png'), -webkit-gradient(linear, left top, left bottom, from(#e1e1e1), to(#eee)); + background-image: url('../img/icons/icon-timepicker-hover.png'), -o-linear-gradient(top, #e1e1e1, #eee); +} + + +/* Search Button ......................................... */ + +button.search { + border-color: transparent !important; + background-color: transparent; +} + + + +/* Links as Buttons +------------------------------------------------------------------------------------------------------ */ + +a.button, +.datecrumbs a, +.datecrumbs span { + border: 1px solid #e0e0e0; + border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; +} + + +/* Drop-Down Button ......................................... */ + +a.button.drop-down[class*="selected"] { + color: #444 !important; + border-color: #b0b0b0; + border-bottom-width: 0 !important; + border-bottom-left-radius: 0; -moz-border-radius-bottomleft: 0 !important; -webkit-border-bottom-left-radius: 0; + border-bottom-right-radius: 0; -moz-border-radius-bottomright: 0 !important; -webkit-border-bottom-right-radius: 0; + box-shadow: 0 -2px 3px #bbb, -2px -2px 3px #bbb, 2px -2px 3px #bbb; + -moz-box-shadow: 0 -2px 3px #bbb, -2px -2px 3px #bbb, 2px -2px 3px #bbb; + -webkit-box-shadow: 0 -2px 3px #bbb, -2px -2px 3px #bbb, 2px -2px 3px #bbb; +} +a.button.drop-down:link, a.button.drop-down:visited { + color: #309bbf; + background-color: #fff; +} +a.button.drop-down[class*="selected"], +a.button.drop-down:hover, a.button.drop-down:active { + color: #666; + background-color: #e1f0f5; + background: #e1f0f5 url('../img/icons/icon-dropdown-hover.png') 3px 3px no-repeat; + background: url('../img/icons/icon-dropdown-hover.png') 3px 3px no-repeat, -moz-linear-gradient(top, #f0f7fa, #e1f0f5) !important; + background: url('../img/icons/icon-dropdown-hover.png') 3px 3px no-repeat, -webkit-gradient(linear, left top, left bottom, from(#f0f7fa), to(#e1f0f5)); + background: url('../img/icons/icon-dropdown-hover.png') 3px 3px no-repeat, -o-linear-gradient(top, #f0f7fa, #e1f0f5) !important; +} + + +/* Filebrowser & Related Lookup ......................................... */ + +a.fb_show, +a.related-lookup { + border: 1px solid #ccc; +} +a.fb_show:link, a.fb_show:visited, +a.related-lookup:link, a.related-lookup:visited { + background-color: #e1f0f5; +} +a.fb_show:hover, a.fb_show:active, +a.related-lookup:hover, a.related-lookup:active { + background-color: #e1e1e1; +} + +a.fb_show:link, a.fb_show:visited, +.tinyMCE .browse span { + background-image: url('../img/icons/icon-fb-show.png'), -moz-linear-gradient(top, #ebf2f5, #e1f0f5); + background-image: url('../img/icons/icon-fb-show.png'), -webkit-gradient(linear, left top, left bottom, from(#ebf2f5), to(#e1f0f5)); + background-image: url('../img/icons/icon-fb-show.png'), -o-linear-gradient(top, #ebf2f5, #e1f0f5); +} +a.fb_show:hover, a.fb_show:active, +.tinyMCE .browse span:hover { + background-image: url('../img/icons/icon-fb-show-hover.png'), -moz-linear-gradient(top, #e1e1e1, #eee); + background-image: url('../img/icons/icon-fb-show-hover.png'), -webkit-gradient(linear, left top, left bottom, from(#e1e1e1), to(#eee)); + background-image: url('../img/icons/icon-fb-show-hover.png'), -o-linear-gradient(top, #e1e1e1, #eee); +} +a.related-lookup:link, a.related-lookup:visited { + background-image: url('../img/icons/icon-related-lookup.png'), -moz-linear-gradient(top, #ebf2f5, #e1f0f5); + background-image: url('../img/icons/icon-related-lookup.png'), -webkit-gradient(linear, left top, left bottom, from(#ebf2f5), to(#e1f0f5)); + background-image: url('../img/icons/icon-related-lookup.png'), -o-linear-gradient(top, #ebf2f5, #e1f0f5); +} +a.related-lookup:hover, a.related-lookup:active { + background-image: url('../img/icons/icon-related-lookup-hover.png'), -moz-linear-gradient(top, #e1e1e1, #eee); + background-image: url('../img/icons/icon-related-lookup-hover.png'), -webkit-gradient(linear, left top, left bottom, from(#e1e1e1), to(#eee)); + background-image: url('../img/icons/icon-related-lookup-hover.png'), -o-linear-gradient(top, #e1e1e1, #eee); +} + + +/* Related Lookup M2M ......................................... */ + +a.related-lookup.m2m:link, a.related-lookup.m2m:visited, +div.autocomplete-wrapper-m2m a.related-lookup:link, div.autocomplete-wrapper-m2m a.related-lookup:visited { + background-image: url('../img/icons/icon-related-lookup-m2m.png'), -moz-linear-gradient(top, #ebf2f5, #e1f0f5); + background-image: url('../img/icons/icon-related-lookup-m2m.png'), -webkit-gradient(linear, left top, left bottom, from(#ebf2f5), to(#e1f0f5)); + background-image: url('../img/icons/icon-related-lookup-m2m.png'), -o-linear-gradient(top, #ebf2f5, #e1f0f5); +} +a.related-lookup.m2m:hover, a.related-lookup.m2m:active, +div.autocomplete-wrapper-m2m a.related-lookup:hover, div.autocomplete-wrapper-m2m a.related-lookup:active { + background-image: url('../img/icons/icon-related-lookup-m2m-hover.png'), -moz-linear-gradient(top, #e1e1e1, #eee); + background-image: url('../img/icons/icon-related-lookup-m2m-hover.png'), -webkit-gradient(linear, left top, left bottom, from(#e1e1e1), to(#eee)); + background-image: url('../img/icons/icon-related-lookup-m2m-hover.png'), -o-linear-gradient(top, #e1e1e1, #eee); +} + +a.related-lookup + strong { + color: #555; +} + + +/* Add Another ......................................... */ + +a.add-another { + border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; +} + + +/* Buttons & Button Links in Errors ......................................... */ + +.error input + button, +.error .vDateField + button, +.error .vTimeField + button, +.error input + a.fb_show, +.error input + a.related-lookup, +.error input + a.add-another, +.errors input + button, +.errors .vDateField + button, +.errors .vTimeField + button, +.errors input + a.fb_show, +.errors input + a.related-lookup, +.errors input + a.add-another, +.errors .autocomplete-wrapper-m2m { + border-color: #bf3030; +} + + +/* Focused Buttons & Button Links ......................................... */ + +input:focus + button, +.vDateField:focus + span a, +.vTimeField:focus + span a, +input:focus + a.fb_show, +input:focus + a.related-lookup, +input:focus + a.add-another { + border-color: #999; + /*border-left-color: #ccc;*/ +} +/* Reset the style for focused links in autocompletes as there is an automatically + focused (invisible) input which causes the a.related-lookup to be "focused" though it's not */ +div.autocomplete-wrapper-fk input:focus + a.related-lookup, +div.autocomplete-wrapper-m2m input:focus + a.related-lookup { + border-color: #ccc !important; +} + + +/* TABLES +–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */ + +tr.alt th, tr.alt td { + background: #f4f4f4; +} +.row1 th, .row1 td { + background: #f4f4f4; +} +.row2 th, .row2 td { + background: #fff; +} +.selected th, .selected td { + background: #ffd; +} + + +/* Thead ................................................... */ + +thead th, +tfoot td { + color: #aaa; + border-left: 1px solid #d4d4d4; + border-bottom: 1px solid #d4d4d4; + background: #eee; + background: -moz-linear-gradient(top, #eee, #e0e0e0); + background: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#e0e0e0)); + background: -o-linear-gradient(top, #eee, #e0e0e0); +} +thead th:first-of-type { + border-top-left-radius: 4px; -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; +} +thead th:last-of-type { + border-top-right-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; +} +thead th.sorted { + border-bottom: 1px solid #ccc; + background: #e0e0e0; + background: -moz-linear-gradient(top, #e0e0e0, #eee); + background: -webkit-gradient(linear, left top, left bottom, from(#e0e0e0), to(#eee)); + background: -o-linear-gradient(top, #e0e0e0, #eee); +} + +thead th a:link, thead th a:visited { + color: #59afcc; + border-top: 1px solid #fff; +} +thead th a:hover, thead th a:active, +thead th.sorted a { + color: #444; +} +thead th.sorted a { + border-top: 1px solid #ececec; +} + + +/* Tbody ................................................... */ + +tbody th, tbody td { + border-top: 1px solid #fff; + border-bottom: 1px solid #e0e0e0; +} + +tfoot td { + border-bottom: 0; + border-top: 1px solid #d4d4d4; +} + +thead th:first-child, +tfoot td:first-child { + border-left: 0; +} + +fieldset table { + border-right: 1px solid #eee; +} + +tr.row-label td { + border-bottom: 0; + color: #666; +} + + + +/* Changelist Table +------------------------------------------------------------------------------------------------------ */ + +#changelist table { + border: 1px solid #bdbdbd; +} +#changelist tbody th, #changelist tbody td { + border: 0; + border-top: 1px solid #e8e8e8; + border-left: 1px solid #e0e0e0; +} +#changelist tbody tr:first-child th, #changelist tbody tr:first-child td { + border-top: 1px solid #fff; +} +#changelist tbody tr th:first-child, #changelist tbody tr td:first-child { + border-left: 0; +} + +#changelist .changelist-results, +#changelist table { + border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; +} + +#changelist thead th:first-of-type, +#changelist thead th:first-of-type a, +#changelist thead *:first-child[style^="display: none"] + *, +#changelist thead *:first-child[style^="display: none"] + * a { + border-top-left-radius: 5px; -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; +} +#changelist thead th:last-of-type, +#changelist thead th:last-of-type a { + border-top-right-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; +} +#changelist tbody tr:last-of-type>*:first-child, +#changelist tbody tr:last-of-type>*:first-child[style^="display: none"] + * { + border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; +} +#changelist tbody tr:last-of-type>*:last-child, +#changelist.editable tbody tr:last-of-type td:nth-last-child(-n+2) { + border-bottom-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; +} + +#changelist thead *[style^="display: none"] + *, +#changelist tbody tr *[style^="display: none"] + * { + border-left: 0; +} + + + +/* Change History +------------------------------------------------------------------------------------------------------ */ + +table#change-history thead th:first-child { + border-top-left-radius: 5px; -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; +} +table#change-history thead th:last-child { + border-top-right-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; +} + + + +/* Overrides +------------------------------------------------------------------------------------------------------ */ + +tbody th:first-child, tbody td:first-child { + border-left: 0; +} +tbody tr:last-child td, tbody tr:last-child th { + border-bottom: 0; +} diff --git a/ddtcms/grappelli/static/grappelli/css/jquery-ui-grappelli-extensions.css b/ddtcms/grappelli/static/grappelli/css/jquery-ui-grappelli-extensions.css new file mode 100644 index 0000000..ff519a6 --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/css/jquery-ui-grappelli-extensions.css @@ -0,0 +1,611 @@ + + + +/* Widget Basics +------------------------------------------------------------------------------------------------------ */ + +.module.ui-widget { + border: none; + background: #fff; +} +.ui-widget-content { + border: 1px solid #ccc; + border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; + background: #eee; +} + + + +/* Sortable +------------------------------------------------------------------------------------------------------ */ + +.ui-sortable-helper, +.ui-sortable-placeholder { + opacity: .8; +} + +.ui-sortable-placeholder, +.ui-sortable .module.ui-sortable-placeholder { + border: 1px solid #bdbdbd; + border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; + background: transparent url('../img/backgrounds/ui-sortable-placeholder.png') 0 0 repeat scroll !important; +} +.group.stacked div.ui-sortable-placeholder { + display: block; + margin-top: 2px !important; +} +.group.tabular div.ui-sortable-placeholder { + border: 0 !important; + overflow: hidden; +} +.group.tabular .ui-sortable .module.ui-sortable-placeholder .td { + background: transparent; +} +.group.tabular .ui-sortable .module.ui-sortable-placeholder .th, +.group.tabular .ui-sortable .module.ui-sortable-placeholder .td { + padding-top: 0 !important; + padding-bottom: 0 !important; +} +.group.tabular .module.ui-sortable-helper { + border-top: 0 !important; +} +.group.tabular .ui-sortable-helper .th, .group.tabular .ui-sortable-helper .td { + background: #ffffcc !important; +} +.group.stacked .ui-sortable-helper, .group.stacked .ui-sortable-helper .module, .group.stacked .ui-sortable-helper h2, .group.stacked .ui-sortable-helper h3, .group.stacked .ui-sortable-helper h4, +.group.stacked .collapse.predelete.ui-sortable-helper > h3.collapse-handler, +.group.stacked .collapse.open.predelete.ui-sortable-helper > h3.collapse-handler, +.group.stacked .collapse.predelete.ui-sortable-helper h4.collapse-handler, +.group.stacked .collapse.open.predelete.ui-sortable-helper h4.collapse-handler { + background: #ffffcc !important; +} + + + +/* Accordion +------------------------------------------------------------------------------------------------------ */ + + +/* Overlays */ +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { + display: block; + font-size: 1em; + padding: 0 0 0 12px; +} +.ui-accordion .ui-accordion-header .ui-icon { display: none; } +.ui-accordion .ui-accordion-content { + top: 0; + margin-top: 0; + margin-bottom: 0; + padding: 0; +/* border-top: 1px solid #fff;*/ +} +.ui-accordion .ui-accordion-content-active { display: block; } + + + +/* Datepicker +----------------------------------*/ +.datetime br { + display: none; +} +.datetimeshortcuts { + width: 40px; + position: relative; + margin-left: 10px; +} +.datetimeshortcuts a { + margin-left: 0 !important; +} + +.ui-accordion-header { + margin-top: 2px !important; + cursor: pointer; + outline: none; +} +.ui-accordion .ui-accordion-header a { + padding: 0 0 0 12px; + color: #444; + outline: none; +} +.ui-accordion .ui-accordion-header { + display: block; + margin: 0; + padding: 6px 0; + outline: none; + font-size: 12px; + border: 1px solid #bdbdbd !important; + background: #cee9f2; + background: -moz-linear-gradient(top, #e1f0f5, #cee9f2); + background: -webkit-gradient(linear, left top, left bottom, from(#e1f0f5), to(#cee9f2)); + background: -o-linear-gradient(top, #e1f0f5, #cee9f2); +} + +.ui-accordion-header.ui-state-default { + border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; +} +.ui-accordion-header.ui-state-hover { + background: #cee9f2; + background: -moz-linear-gradient(top, #cee9f2, #e1f0f5); + background: -webkit-gradient(linear, left top, left bottom, from(#cee9f2), to(#e1f0f5)); + background: -o-linear-gradient(top, #cee9f2, #e1f0f5); +} +.ui-accordion-header.ui-state-active { + border-bottom: 1px solid #c7c7c7 !important; + border-bottom-left-radius: 0; -moz-border-radius-bottomleft: 0; -webkit-border-bottom-left-radius: 0; + border-bottom-right-radius: 0; -moz-border-radius-bottomright: 0; -webkit-border-bottom-right-radius: 0; + background: #cee9f2; + background: -moz-linear-gradient(top, #cee9f2, #e1f0f5); + background: -webkit-gradient(linear, left top, left bottom, from(#cee9f2), to(#e1f0f5)); + background: -o-linear-gradient(top, #cee9f2, #e1f0f5); +} + +.ui-accordion-content { + border-top: 0 !important; + border-top-left-radius: 0; -moz-border-radius-topleft: 0; -webkit-border-top-left-radius: 0; + border-top-right-radius: 0; -moz-border-radius-topright: 0; -webkit-border-top-right-radius: 0; +} +.ui-accordion-content h3 { + display: none; +} +.ui-accordion-content .module:first-child { + margin-top: 0 !important; + border-top-color: #f4f4f4 !important; +} +.module.accordion>.module { + margin-bottom: 2px; + border-top: 0 !important; +} +.module.accordion>.module:last-of-type { + margin-bottom: 0; +} + + +/* Accordion Module ......................................... */ + +.ui-accordion-header.ui-state-default, +.module .ui-accordion-header.ui-state-default { + border: 1px solid #bdbdbd; + background-color: #a1d4e5; +} +.ui-accordion-header.ui-state-default:hover, +.module .ui-accordion-header.ui-state-default:hover { + background-color: #d6d6d6; +} +.ui-accordion-header.ui-state-active, +.module .ui-accordion-header.ui-state-active { + border: 1px solid #bdbdbd; + background-color: #d6d6d6; +} + + + +/* Accordion Module in Group......................................... */ + +/*.group .module .ui-accordion-header.ui-state-default { + border: 1px solid #c7c7c7; + background-color: #cee9f2; +} +.group .module .ui-accordion-header.ui-state-default:hover { + background-color: #e0e0e0; +} +.group .module .ui-accordion-header.ui-state-active { + border: 1px solid #c7c7c7; + background-color: #e0e0e0; +} +.group .module .ui-accordion-header { + border-top: 1px solid #4ef; +} +*/ + + +/* Datepicker +------------------------------------------------------------------------------------------------------ */ + +.ui-datepicker { + position: absolute; + display: none; + padding: 3px 3px 0; + width: auto !important; + border-color: #bdbdbd; + box-shadow: 0 10px 50px #333; -moz-box-shadow: 0 10px 50px #333; -webkit-box-shadow: 0 10px 50px #333; +} +.ui-datepicker .ui-datepicker-header { + padding: 2px 0; + height: 25px; +} +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next, +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { + position: absolute; + top: 4px; + width: 20px; + height: 30px; + background-color: transparent; + background-position: 50% 50%; + background-repeat: no-repeat; + cursor: pointer; +} +.ui-datepicker .ui-datepicker-prev { + left: 3px; + background-image: url('../img/icons/ui-datepicker-prev.png'); +} +.ui-datepicker .ui-datepicker-prev-hover { + left: 3px; + border: none; + background-image: url('../img/icons/ui-datepicker-prev-hover.png'); +} +.ui-datepicker .ui-datepicker-next { + right: 3px; + background-image: url('../img/icons/ui-datepicker-next.png'); +} +.ui-datepicker .ui-datepicker-next-hover { + right: 3px; + border: none; + background-image: url('../img/icons/ui-datepicker-next-hover.png'); +} +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { + display: none !important; +} + + +.ui-datepicker .ui-datepicker-title { + margin: 3px 25px 2px; + line-height: 1.8em; + text-align: center; +} +.ui-datepicker .ui-datepicker-title select { + float:left; + font-size:1em; + margin: -3px 0 -1px !important; + min-width: 30px; +} +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker .ui-datepicker-title select.ui-datepicker-year { + float: right; +} +.ui-datepicker table { + width: 100%; + font-size: 12px; + margin: 0 0 2px; +} +.ui-datepicker th { + padding: 5px 0; + text-align: center; + font-weight: bold; + border: 0; + background: transparent; +} +.ui-datepicker td { + min-width: 25px; + border: 0; padding: 1px; +} +.ui-datepicker td span, .ui-datepicker td a { + padding: 4px 0 3px; + margin:0!important; + text-align: center; + display:block; + border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; +} +.ui-datepicker td a.ui-state-hover { + color: #fff !important; + border-color: transparent !important; + background: #444 !important; +} +.ui-datepicker td a.ui-state-active { + background: #fff; +} +.ui-datepicker td a.ui-state-highlight { + border-color: #bababa; + background: #d6d6d6; +} +.ui-datepicker .ui-datepicker-buttonpane { + background-image: none; + margin: 5px 0 0; + padding: 0; + border: 0; +} +.ui-datepicker .ui-datepicker-buttonpane button { + float: right; + margin: 3px 0; + padding: 4px 5px 5px; + height: 25px; + color: #aaa; font-size: 11px; + border: 1px solid #c7c7c7; + background: transparent; + cursor: pointer; +} +@media screen and (-webkit-min-device-pixel-ratio:0) { + .ui-datepicker .ui-datepicker-buttonpane button { + padding: 5px 8px 4px; + } +} +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { + opacity: 1 !important; + color: #444; font-weight: bold; + background: #cee9f2; +} +.ui-datepicker .ui-datepicker-buttonpane button.ui-state-hover { + color: #fff !important; + border-color: #444 !important; + background: #444 !important; +} + +.ui-datepicker-multi .ui-datepicker-group-first .ui-datepicker-title, +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-title { + margin-right: 5px !important; +} +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-title, +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-title { + margin-left: 5px !important; +} + +.ui-datepicker-multi .ui-datepicker-group table { + width: 95%; +} +.ui-datepicker-multi .ui-datepicker-group-first table, +.ui-datepicker-multi .ui-datepicker-group-middle table { + margin-right: 5px !important; +} +.ui-datepicker-multi .ui-datepicker-group-middle table, +.ui-datepicker-multi .ui-datepicker-group-last table { + margin-left: 5px !important; +} +.ui-datepicker-multi .ui-datepicker-group-middle table { + margin-left: 3px !important; +} +.ui-datepicker-multi .ui-datepicker-buttonpane { + border: none; +} + +.ui-datepicker-append { + margin-left: 6px; color: #999; font-size: 10px; +} + +.ui-datepicker td.ui-state-disabled { + padding:1px; + text-align: center; +} +.ui-datepicker td.ui-state-disabled span { + background: #ccc; + color: #555 !important; + font-weight: bold; + font-size: 11px; + border-radius: 3px; -moz-border-radius: 3px; -webkit-borderradius: 3px; +} +button.ui-datepicker-close { + float: left !important; + margin-right: 4px !important; +} + + + +/* Timepicker +------------------------------------------------------------------------------------------------------ */ + +#ui-timepicker { + position: absolute; + display: none; + padding: 5px 3px 3px 5px; + width: 216px; + border: 1px solid #bdbdbd; + box-shadow: 0 10px 50px #333; -moz-box-shadow: 0 10px 50px #333; -webkit-box-shadow: 0 10px 50px #333; +} +#ui-timepicker ul { + position: relative; + float: left; + clear: both; + width: auto; +} +#ui-timepicker ul li.row { + position: relative; + float: left; + display: block; + margin: 0 2px 2px 0; + padding: 2px 10px 1px; + width: 30px; + font-size: 11px; + text-align: center; + border: 0; + border-radius: 3px; -moz-border-radius: 3px; -webkit-borderradius: 3px; + cursor: pointer; +} +#ui-timepicker .row.ui-state-default { + border: 1px solid #c7c7c7 !important; + background: #e1f0f5; +} +#ui-timepicker .row.ui-state-active { + border: 1px solid #bababa !important; + background: #d6d6d6; +} +#ui-timepicker .row.ui-state-default:hover { + color: #fff; + border: 1px solid #666 !important; + background: #444; +} + + + +/* Tabs +------------------------------------------------------------------------------------------------------ */ + +.ui-tabs { + zoom: 1; + border: 0 !important; + background: transparent; +} +.ui-tabs .ui-tabs-nav { + margin-top: 2px; + padding: 0; + color: #444; + font-size: 12px; + border: none; + border-bottom: 1px solid #bdbdbd; + border-bottom-left-radius: 0; -moz-border-radius-bottomleft: 0; -webkit-border-bottom-left-radius: 0; + background: none; +} +.ui-tabs:first-child .ui-tabs-nav { + margin-top: 0; +} +.ui-tabs .ui-tabs-nav li { + position: relative; float: left; + border-bottom-width: 1px !important; + margin: 0 2px -1px 0; + padding: 0; +} +.ui-tabs .ui-tabs-nav li a { + float: left; + text-decoration: none; + padding: 6px 10px 6px; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { + padding-bottom: 0px; border-bottom-width: 1px; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { + cursor: pointer; +} /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.tab-handler.ui-state-default { + background: #e1f0f5; + background: -moz-linear-gradient(top, #cee9f2, #e1f0f5); + background: -webkit-gradient(linear, left top, left bottom, from(#cee9f2), to(#e1f0f5)); + background: -o-linear-gradient(top, #cee9f2, #e1f0f5); +} +.tab-handler.ui-state-default:hover { + color: #444 !important; + border: 1px solid #c7c7c7; + background: #cee9f2; + background: -moz-linear-gradient(top, #e1f0f5, #cee9f2); + background: -webkit-gradient(linear, left top, left bottom, from(#e1f0f5), to(#cee9f2)); + background: -o-linear-gradient(top, #e1f0f5, #cee9f2); +} +.tab-handler.ui-state-default.ui-tabs-selected { + border: 1px solid #c7c7c7; + border-bottom-color: #d4d4d4; + background: #e9e9e9; + background: -moz-linear-gradient(top, #e0e0e0, #e9e9e9); + background: -webkit-gradient(linear, left top, left bottom, from(#e0e0e0), to(#e9e9e9)); + background: -o-linear-gradient(top, #e0e0e0, #e9e9e9); +} + + +.ui-tabs-nav li a:hover { + color: #444 !important; +} +.ui-tabs-nav li.ui-tabs-selected a { + color: #444 !important; +} +.ui-tabs .ui-tabs-panel { + margin-top: 0 !important; + padding: 0; + display: block; + border: 1px solid #ccc; + border-top-left-radius: 0; -moz-border-radius-topleft: 0; -webkit-border-top-left-radius: 0; + border-top-right-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; + border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; + background: #eee; +} +.ui-tabs-panel h3 { display: none; } +.ui-tabs-panel > h3 + .module { + border-top-right-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; +} +.ui-tabs-panel > h3 + .module > h4:first-child { + margin-top: -1px; +/* border-top: 0 !important;*/ + border-top-right-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; +} +.ui-tabs .ui-tabs-hide { display: none !important; } + +/*.group-accordion-container h3 { display: none; }*/ + + + + + +/* Menu +----------------------------------*/ +.ui-menu { + list-style:none; + padding: 2px; + margin: 0; + display:block; +} +.ui-menu .ui-menu { + margin-top: -3px; +} +.ui-menu .ui-menu-item { + margin: 0; + padding: 0; + width: 100%; +} +.ui-menu .ui-menu-item a { + text-decoration: none; + display: block; + padding: 5px 5px 4px; +} +.ui-menu .ui-menu-item a.ui-state-hover, +.ui-menu .ui-menu-item a.ui-state-active { +/* margin: -1px;*/ + border: 0 !important; +} + + +/* Autocomplete +------------------------------------------------------------------------------------------------------ */ + +.ui-autocomplete { + position: absolute; + cursor: default; + padding: 3px; + border: 1px solid #ccc; + border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; + background: #eee; + box-shadow: 0 10px 50px #333; -moz-box-shadow: 0 10px 50px #333; -webkit-box-shadow: 0 10px 50px #333; +} +* html .ui-autocomplete { + width: 1px; +} +.ui-autocomplete-category { + font-weight: bold; + line-height: 1.5; + font-style: italic; + margin: 0; + padding: 5px; +} +.ui-autocomplete li:first-child span { + display: block; + padding: 1px 4px; + color: #999; + font-weight: bold; +} +.ui-autocomplete .ui-menu-item + .ui-menu-item { + margin-top: 2px; + border-top: 0 !important; +} +.ui-autocomplete li:first-child + li { + margin-top: 4px; +} +.ui-autocomplete .ui-menu-item a { + margin: 0; + padding: 3px 4px; + color: #444; + font-weight: bold; + border: 1px solid #c7c7c7; + border-radius: 2px; -moz-border-radius: 2px; -webkit-border-radius: 2px; + background: #cee9f2; +} +.ui-autocomplete .ui-menu-item a.ui-state-hover, +.ui-autocomplete .ui-menu-item a:hover, .ui-autocomplete .ui-menu-item a:active { + margin: 0 !important; + padding: 3px 4px !important; + color: #fff !important; + border: 1px solid transparent !important; + border-radius: 2px; -moz-border-radius: 2px; -webkit-border-radius: 2px; + background: #444 !important; +} diff --git a/ddtcms/grappelli/static/grappelli/css/reset.css b/ddtcms/grappelli/static/grappelli/css/reset.css new file mode 100644 index 0000000..ec2ec5c --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/css/reset.css @@ -0,0 +1,40 @@ +/* -------------------------------------------------------------- + + reset.css + * Resets default browser CSS. + +-------------------------------------------------------------- */ + +html, body, div, span, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, code, +del, dfn, em, img, q, dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0; + padding: 0; + border: 0; + font-weight: inherit; + font-style: inherit; + font-size: 100%; + font-family: inherit; + vertical-align: baseline; +} + +body { + line-height: 1.5; +} + +/* Tables still need 'cellspacing="0"' in the markup. */ +table { border-collapse: separate; border-spacing: 0; } +caption, th, td { text-align: left; font-weight: normal; } +table, td, th { vertical-align: middle; } + +/* Remove possible quote marks (") from ,
. */ +blockquote:before, blockquote:after, q:before, q:after { content: ""; } +blockquote, q { quotes: "" ""; } + +/* Remove annoying border on linked images. */ +a img { border: none; } + + diff --git a/ddtcms/grappelli/static/grappelli/css/structures.css b/ddtcms/grappelli/static/grappelli/css/structures.css new file mode 100644 index 0000000..baaea07 --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/css/structures.css @@ -0,0 +1,661 @@ + + + +/* Body +------------------------------------------------------------------------------------------------------ */ + +body { + padding: 58px 20px 0; + font-family: Arial, sans-serif; + font-size: 12px; + line-height: 16px; +} +body.popup { + padding-top: 0; +} + + + +/* Container +------------------------------------------------------------------------------------------------------ */ + +#container { + z-index: 0; + position: relative; + float: left; + clear: both; + margin: 0; + padding: 0; + width: 100%; +} + + + +/* Header +------------------------------------------------------------------------------------------------------ */ + +#header { + position: fixed; + top: 0; + left: 0; + z-index: 1100; + padding: 0 20px; + width: 100%; + height: 30px; + font-size: 11px; + line-height: 14px; + font-weight: bold; +} +body.filebrowser.popup #header { + display: none; +} + + + +/* Branding, Bookmarks & User-Tools +------------------------------------------------------------------------------------------------------ */ + +.branding, .admin-title, +#bookmarks li, #user-tools li { + margin: 0; + padding: 8px 10px; +} +.branding { + display: none; + position: relative; + float: right; + width: 10px; + background: url('../img/grappelli-icon.png') 50% 50% no-repeat; +} +.admin-title { + position: relative; + float: left; + margin: 0 0 0 -20px; + padding-left: 20px; + padding-right: 20px; +} +#header ul li { + position: relative; + float: left; +} + + +/* Navigation Menu (UL Navigation-Menu of Admin-Tools) ................................................... */ + +ul.navigation-menu { + position: relative; + float: left; +} +ul.navigation-menu li { + float: none !important; +} +ul.navigation-menu>li { + position: relative; + float: none !important; + display: block; + margin: 0; +} +ul.navigation-menu>li>a { + display: block; + padding: 8px 10px; + font-size: 11px !important; +} +ul.navigation-menu li.bookmark, +ul.navigation-menu li.actions { + float: left !important; +} +ul.navigation-menu li ul { + position: absolute; + z-index: 1 !important; + float: none !important; + margin-top: -1px; + padding: 0; + min-width: 220px; + white-space: nowrap; + +/* box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;*/ +} +ul.navigation-menu>li>a+ul { + overflow-x: hidden !important; +/* padding-right: 20px;*/ +/* width: 500px;*/ + box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; + box-shadow: 0 0 20px #333; -moz-box-shadow: 0 0 20px #333; -webkit-box-shadow: 0 0 20px #333; +} +ul.navigation-menu>li>ul>li.parent { + overflow-x: hidden !important; +} + +ul.navigation-menu li ul ul { + position: relative; + float: none; + margin-top: 0; + margin: 0; + padding: 0; + width: 100%; + overflow: inherit; +} + +ul.navigation-menu li li.item-collapse.item-open { + background: #3a3a3a; +} +ul.navigation-menu li li li.item-collapse.item-open { +/* border: 1px solid #383838;*/ + -moz-border-radius: 4px; + background: #424242; +} +ul.navigation-menu li li li.item-collapse.item-open + li { +/* border: 0 !important;*/ +} +ul.navigation-menu li li li li.item-collapse.item-open { +/* border: 1px solid #404040;*/ + background: #4a4a4a; +} +ul.navigation-menu li li li li.item-collapse.oitem-pen + li { +/* border: 0 !important;*/ +} +ul.navigation-menu li li li li li.item-collapse.item-open { +/* border: 1px solid #484848;*/ + background: #525252; +} + + +ul.navigation-menu li li { +/* padding: 0 10px;*/ +} +ul.navigation-menu li li li { +/* margin: 0 -20px 0 -10px;*/ +/* padding: 0 10px 0 20px;*/ + box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; +} +ul.navigation-menu li li li li { +/* margin: 0 -10px 0 -20px;*/ +/* padding: 0 10px 0 30px;*/ +/* box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;*/ +} +ul.navigation-menu li li li li li { +/* margin: 0 -10px 0 -30px;*/ +/* padding: 0 10px 0 40px;*/ + overflow: hidden; +/* box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;*/ +} +ul.navigation-menu li li li li li li { +/* margin: 0 0 0 -40px;*/ +/* padding: 0 10px 0 50px;*/ + overflow: hidden; +/* box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;*/ +} + + +ul.navigation-menu li li.last { + border-bottom: 0 !important; +} + +ul.navigation-menu li ul ul>li:first-child a { +/* margin-left: -10px;*/ +/* padding-left: 10px;*/ +} +ul.navigation-menu li li a { + display: block; + padding: 8px 10px; + font-size: 11px; +} +ul.navigation-menu li li li a { + padding: 4px 10px 4px 20px; + font-size: 11px; + white-space: normal; +} +ul.navigation-menu li li li li a { + padding-left: 30px; +} +ul.navigation-menu li li li li li a { + padding-left: 40px; +} +ul.navigation-menu li li li li li li a { + padding-left: 50px; +} +ul.navigation-menu li.parent>a { + font-size: 11px; +} +ul.navigation-menu li li.parent>a { + font-size: 11px; +} + +ul.navigation-menu li.item-collapse.item-closed>* { + display: none !important; +} +ul.navigation-menu li.item-collapse.item-open>* { + display: block !important; +} + +ul.navigation-menu li.item-collapse a.item-collapse-handler-container { + display: block !important; +/* padding: 10px 0 !important;*/ +} + +form#bookmark-form { + position: relative; + float: left; + padding: 3px 10px 1px 0; + height: 26px; +} +form#bookmark-form button { + position: relative; display: block; + margin: 3px 0 0; + width: 20px; + height: 20px; +} + +ul.navigation-menu li.item-collapse a.item-collapse-handler { + position: relative; + float: right; + display: inline-block !important; + right: 0; + margin: -30px 0 -30px 0; + padding: 0; + width: 28px; + height: 30px; + cursor: pointer; +} +ul.navigation-menu li li li.item-collapse a.item-collapse-handler { + margin: -22px 0; + width: 28px; + height: 22px; +} +a.item-collapse-handler-container { + padding-right: 38px !important; +} +ul.navigation-menu li li.item-collapse.item-closed>a+a.item-collapse-handler:link, +ul.navigation-menu li li.item-collapse.item-closed>a+a.item-collapse-handler:visited { + background: transparent url("../img/icons/icon-admin_tools-dropdown.png") no-repeat scroll 50% 50%; +} +ul.navigation-menu li li.item-collapse.item-closed>a+a.item-collapse-handler:hover, +ul.navigation-menu li li.item-collapse.item-closed>a+a.item-collapse-handler:active { + background: transparent url("../img/icons/icon-admin_tools-dropdown-hover.png") no-repeat scroll 50% 50%; +} +ul.navigation-menu li li.item-collapse.item-open>a+a.item-collapse-handler:link, +ul.navigation-menu li li.item-collapse.item-open>a+a.item-collapse-handler:visited { + background: transparent url("../img/icons/icon-admin_tools-dropdown-active.png") no-repeat scroll 50% 50%; +} +ul.navigation-menu li li.item-collapse.item-open>a+a.item-collapse-handler:hover, +ul.navigation-menu li li.item-collapse.item-open>a+a.item-collapse-handler:active { + background: transparent url("../img/icons/icon-admin_tools-dropdown-active-hover.png") no-repeat scroll 50% 50%; +} + + +/* User Tools ................................................... */ + +#user-tools { + position: absolute; + right: 40px; +} +#user-tools>li:last-child { + padding-right: 20px; +} + +#user-tools li.user-options-container { + position: relative; + width: 200px; +} + +li.user-options-container.open a.user-options-handler { + display: block; +} +ul.user-options { + display: none; +} +li.user-options-container.open ul.user-options { + display: block; + position: absolute; + float: none; + clear: both; + z-index: 1000; + margin: 7px -10px 0; + width: 221px; +} +ul.user-options li { + float: none !important; + clear: both; +} +ul.user-options li a { + display: block; +} + + + +/* Breadcrumbs +------------------------------------------------------------------------------------------------------ */ + +div#breadcrumbs { + position: fixed; + top: 30px; + left: 0; + z-index: 1000; + padding: 5px 10px 5px 20px; + width: 100%; + font-size: 11px; +/* font-weight: bold;*/ + text-align: left; +} +div#breadcrumbs > a { + padding: 10px 2px; +} +body.popup div#breadcrumbs { + top: 0; +} + + + +/* Messages +------------------------------------------------------------------------------------------------------ */ + +ul.messagelist { + position: relative; + top: 0; + z-index: 990; + margin: 0 -20px; +} +ul.messagelist li { + display: block; + padding: 5px 10px 5px 20px; + font-size: 11px; + font-weight: bold; +} +body.popup .breadcrumbs + ul.messagelist { + top: 24px; +} +body.filebrowser.popup ul.messagelist { + top: 28px; +} +body.login ul.messagelist { + top: -28px; +} + + +/* Masthead +------------------------------------------------------------------------------------------------------ */ + +#masthead { + position: relative; + float: left; + clear: both; + z-index: 900; + padding: 60px 0 10px; + width: 100%; +} + + + +/* Login Form +------------------------------------------------------------------------------------------------------ */ + +div.login { + top: -30px; +} +#login-form { + margin: 0 auto; +} + + + +/* Content +------------------------------------------------------------------------------------------------------ */ + +#content { + position: relative; + float: left; + clear: both; + margin: 0 0 80px; + padding: 0; + width: auto; +} +#content.content-flexible { + width: 100%; +} +body.filebrowser.popup #content { + top: 28px; +} + + + +/* Container +------------------------------------------------------------------------------------------------------ */ + +.container, +.container-grid { + position: relative; + float: left; + clear: both; + width: 940px; +} +.container-flexible { + position: relative; + float: none; + clear: both; + width: auto; + height: 100%; +} + + + +/* Blueprint Grid Columns & Spans +------------------------------------------------------------------------------------------------------ */ + +.column { + position: relative; + float: left; +} +.column.centered { + position: relative; + float: none !important; + margin: 0 auto !important; +} +.span-flexible { + position: relative; + width: 100%; +} +.container-flexible.layout-flexible-grid .span-flexible { + float: left; + margin-right: 20px; + width: 100%; +} +.container-flexible.layout-flexible-grid .span-flexible + .column { + float: left !important; +} +.container-flexible.layout-grid-flexible .column { + float: left; +} +.container-flexible.layout-grid-flexible .span-flexible { + float: left; + width: 100%; +} +fieldset.module .row .column:first-child { + margin-left: 0 !important; +} +fieldset.module .row .column:last-child { + margin-right: -20px !important; +} +fieldset.module .row .column.span-flexible:last-child { + margin-right: 0 !important; +} +.row .span-flexible, +.row .span-flexible:last-child { + float: none; + width: auto; + margin-right: 0 !important; +} + + +/* Basic Float & Margin ......................................... */ + +.span-1, .span-2, .span-3, .span-4, .span-5, .span-6, +.span-7, .span-8, .span-9, .span-10, .span-11, .span-12, +.span-13, .span-14, .span-15, .span-16, .span-17, .span-18, +.span-19, .span-20, .span-21, .span-22, .span-23, .span-24 { +/* float: left;*/ + margin-right: 20px; +} +.column.last { margin-right: 0; } + + +/* Column Widths ......................................... */ + +.span-1 { width: 20px; } +.span-2 { width: 60px; } +.span-3 { width: 100px; } +.span-4 { width: 140px; } +.span-5 { width: 180px; } +.span-6 { width: 220px; } +.span-7 { width: 260px; } +.span-8 { width: 300px; } +.span-9 { width: 340px; } +.span-10 { width: 380px; } +.span-11 { width: 420px; } +.span-12 { width: 460px; } +.span-13 { width: 500px; } +.span-14 { width: 540px; } +.span-15 { width: 580px; } +.span-16 { width: 620px; } +.span-17 { width: 660px; } +.span-18 { width: 700px; } +.span-19 { width: 740px; } +.span-20 { width: 780px; } +.span-21 { width: 820px; } +.span-22 { width: 860px; } +.span-23 { width: 900px; } +.span-24 { width: 940px; margin: 0; } + + +/* Append empty columns ......................................... */ + +.append-1 { padding-right: 40px; } +.append-2 { padding-right: 80px; } +.append-3 { padding-right: 120px; } +.append-4 { padding-right: 160px; } +.append-5 { padding-right: 200px; } +.append-6 { padding-right: 240px; } +.append-7 { padding-right: 280px; } +.append-8 { padding-right: 320px; } +.append-9 { padding-right: 360px; } +.append-10 { padding-right: 400px; } +.append-11 { padding-right: 440px; } +.append-12 { padding-right: 480px; } +.append-13 { padding-right: 520px; } +.append-14 { padding-right: 560px; } +.append-15 { padding-right: 600px; } +.append-16 { padding-right: 640px; } +.append-17 { padding-right: 680px; } +.append-18 { padding-right: 720px; } +.append-19 { padding-right: 760px; } +.append-20 { padding-right: 800px; } +.append-21 { padding-right: 840px; } +.append-22 { padding-right: 880px; } +.append-23 { padding-right: 920px; } + + +/* Prepend empty columns ......................................... */ + +.prepend-1 { padding-left: 40px; } +.prepend-2 { padding-left: 80px; } +.prepend-3 { padding-left: 120px; } +.prepend-4 { padding-left: 160px; } +.prepend-5 { padding-left: 200px; } +.prepend-6 { padding-left: 240px; } +.prepend-7 { padding-left: 280px; } +.prepend-8 { padding-left: 320px; } +.prepend-9 { padding-left: 360px; } +.prepend-10 { padding-left: 400px; } +.prepend-11 { padding-left: 440px; } +.prepend-12 { padding-left: 480px; } +.prepend-13 { padding-left: 520px; } +.prepend-14 { padding-left: 560px; } +.prepend-15 { padding-left: 600px; } +.prepend-16 { padding-left: 640px; } +.prepend-17 { padding-left: 680px; } +.prepend-18 { padding-left: 720px; } +.prepend-19 { padding-left: 760px; } +.prepend-20 { padding-left: 800px; } +.prepend-21 { padding-left: 840px; } +.prepend-22 { padding-left: 880px; } +.prepend-23 { padding-left: 920px; } + + +/* Span-X + Span-Flexible ......................................... */ + +.span-1 + .span-flexible { margin-left: 40px; } +.span-2 + .span-flexible { margin-left: 80px; } +.span-3 + .span-flexible { margin-left: 120px; } +.span-4 + .span-flexible { margin-left: 160px; Xmin-width: 758px; } +.span-5 + .span-flexible { margin-left: 200px; } +.span-6 + .span-flexible { margin-left: 240px; } +.span-7 + .span-flexible { margin-left: 280px; } +.span-8 + .span-flexible { margin-left: 320px; } +.span-9 + .span-flexible { margin-left: 360px; } +.span-10 + .span-flexible { margin-left: 400px; } +.span-11 + .span-flexible { margin-left: 440px; } +.span-12 + .span-flexible { margin-left: 480px; } +.span-13 + .span-flexible { margin-left: 520px; } +.span-14 + .span-flexible { margin-left: 560px; } +.span-15 + .span-flexible { margin-left: 600px; } +.span-16 + .span-flexible { margin-left: 640px; } +.span-17 + .span-flexible { margin-left: 680px; } +.span-18 + .span-flexible { margin-left: 720px; } +.span-19 + .span-flexible { margin-left: 760px; } +.span-20 + .span-flexible { margin-left: 800px; } +.span-21 + .span-flexible { margin-left: 840px; } +.span-22 + .span-flexible { margin-left: 880px; } +.span-23 + .span-flexible { margin-left: 920px; } +.span-24 + .span-flexible { margin-left: 960px; } + + +/* Columns in Cells ......................................... */ + +.cell.span-1 { width: 0px; } +.cell.span-2 { width: 40px; } +.cell.span-3 { width: 80px; } +.cell.span-4 { width: 120px; } +.cell.span-5 { width: 160px; } +.cell.span-6 { width: 200px; } +.cell.span-7 { width: 240px; } +.cell.span-8 { width: 280px; } +.cell.span-9 { width: 330px; } +.cell.span-10 { width: 360px; } +.cell.span-11 { width: 400px; } +.cell.span-12 { width: 440px; } +.cell.span-13 { width: 480px; } +.cell.span-14 { width: 520px; } +.cell.span-15 { width: 560px; } +.cell.span-16 { width: 600px; } +.cell.span-17 { width: 640px; } +.cell.span-18 { width: 680px; } +.cell.span-19 { width: 720px; } +.cell.span-20 { width: 760px; } +.cell.span-21 { width: 800px; } +.cell.span-22 { width: 840px; } +.cell.span-23 { width: 880px; } +.cell.span-24 { width: 920px; margin: 0; } + + +/* Clearing floats without extra markup + Based on How To Clear Floats Without Structural Markup by PiE + [http://www.positioniseverything.net/easyclearing.html] */ + +.clearfix:after, .container:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} +.clearfix, .container { display: inline-block; } +* html .clearfix, +* html .container { height: 1%; } +.clearfix, .container { display: block; } + +/* Regular clearing + apply to column that should drop below previous ones. */ + +.clear { clear: both; } + + + diff --git a/ddtcms/grappelli/static/grappelli/css/tables.css b/ddtcms/grappelli/static/grappelli/css/tables.css new file mode 100644 index 0000000..7a79ade --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/css/tables.css @@ -0,0 +1,138 @@ + + + +/* Basic Table Settings +------------------------------------------------------------------------------------------------------ */ + +table { + margin: 0; + padding: 0; + border-spacing: none; +} +td, th { + vertical-align: top; + padding: 10px 10px 9px; + font-size: 11px; + line-height: 15px; +} +th { + text-align: left; + font-size: 12px; + font-weight: bold; +} + + +/* Thead ................................................... */ + +thead th, +tfoot td { + padding: 5px 10px; + font-size: 11px; + line-height: 12px; + font-weight: normal; +} +thead th.sorted { + font-weight: bold; +} +thead th a { + position: relative; + display: block; + margin: -5px -10px -4px; + padding: 4px 10px 4px; + height: 100% !important; + white-space: nowrap; +} +thead th.ascending a:after { + content: url('../img/icons/icon-th-ascending.png'); +} +thead th.descending a:after { + content: url('../img/icons/icon-th-descending.png'); +} + + +/* Tbody ................................................... */ + +thead th.optional { + font-weight: normal !important; +} +tr.row-label td { + margin-top: -1px; + padding-top: 2px; + padding-bottom: 0; + font-size: 9px; +} + + + +/* Table XFull +------------------------------------------------------------------------------------------------------ */ + +table.xfull { + width: 100%; +} + + + +/* Changelist Table +------------------------------------------------------------------------------------------------------ */ + +#changelist table { + position: relative; + margin: -1px !important; +} + +#changelist form table tbody td, #changelist form table tbody th { + padding-top: 10px; + padding-bottom: 9px; + line-height: 16px; +} + + + +/* Orderable Tables +------------------------------------------------------------------------------------------------------ */ + +table.orderable tbody tr td:hover { + cursor: move; +} + +table.orderable tbody tr td:first-child { + padding-left: 14px; +} + +table.orderable-initalized .order-cell, body>tr>td.order-cell { + display: none; +} + + + +/* Change History +------------------------------------------------------------------------------------------------------ */ + +table#change-history { + width: 100%; +} +table#change-history tbody th { + width: 150px; +} + + + +/* Documentation +------------------------------------------------------------------------------------------------------ */ + +.model-index table { + width: 100%; +} +.model-index table th { + padding: 7px 10px 8px; +} + + + +/* Other Classes +------------------------------------------------------------------------------------------------------ */ + +table .nowrap { + white-space: nowrap; +} diff --git a/ddtcms/grappelli/static/grappelli/css/tools.css b/ddtcms/grappelli/static/grappelli/css/tools.css new file mode 100644 index 0000000..0069667 --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/css/tools.css @@ -0,0 +1,306 @@ + + + +/* Tools Basics +------------------------------------------------------------------------------------------------------ */ + +.tools { + position: relative; + float: right; + clear: both; + padding: 6px 10px; + font-size: 11px; + font-weight: bold; +} +ul.tools { + padding: 0; + list-style-type: none; + white-space: nowrap; +} +/* Empty breaks in Chrome 11+: Elements are not displayed initially even if they are not empty */ +/*ul.tools:empty { + display: none; +}*/ +ul.tools li { + position: relative; + float: left; + display: block; + overflow: hidden; + margin-left: 5px; + padding: 6px 0; + min-width: 12px; +} +ul.tools li:last-child { + margin-right: 5px; +} + + + +/* H1 + Tools +------------------------------------------------------------------------------------------------------ */ + +h1 + .tools, +.grappelli-h1 + .tools { + position: relative; + float: right; + clear: right; + z-index: 900; + margin-top: -34px; + margin-bottom: -34px; + display: inline-block; +} + +h1 + .tools li, +h1 + .tools li:last-child { + float: left; + margin: 0 0 0 3px; + padding: 0; +} +h1 + .tools a { + display: block; + margin: 0; + padding: 4px 15px; + width: auto; + height: 17px; + font-size: 11px; + opacity: .6; +} +h1 + .tools a:hover, h1 + .tools a:active { + opacity: 1; +} + +h1 + .tools a.add-handler:link, h1 + .tools a.add-handler:visited { + padding-left: 30px; + background: url('../img/icons/icon-object-tools-add-handler.png') 0 50% no-repeat scroll; +} +h1 + .tools a.add-handler:hover, h1 + .tools a.add-handler:active { + background: url('../img/icons/icon-object-tools-add-handler.png') 0 50% no-repeat scroll; +} + + +/* Focused Buttons ................................................... */ + +h1 + .tools a.focus { + opacity: 1; +} + + + + +/* Tools +------------------------------------------------------------------------------------------------------ */ + +.group .tools, +.module .tools { + position: relative; + float: right; + clear: both; + padding: 6px 10px; + font-size: 11px; + font-weight: bold; +} +.group ul.tools, +.module ul.tools { + padding: 0 2px; + list-style-type: none; +} +.group ul.tools li, +.module ul.tools li { + position: relative; + float: left; + display: block; + overflow: hidden; + margin-left: 5px; + padding: 6px 2px; +} +.group ul.tools li:last-child, +.module ul.tools li:last-child { + margin-right: 5px; +} + + +/* 1st Level H2 + Tools ......................................... */ + +.group h2+.tools, +.module h2+.tools { + top: -29px; + right: 0; + margin-bottom: -29px; +} +.group h2+.tools { + right: 1px; +} +.module.collapse.closed h2+.tools { + top: -28px; +} + + +/* 2nd Level H3 + Tools ......................................... */ + +.module h3+.tools { + top: -27px; + right: 0; + margin-bottom: -27px; +} +.module h3+ul.tools li { + padding-top: 5px; + padding-bottom: 5px; +} + + +/* 3rd Level H4 + Tools ......................................... */ + +.module h4+.tools { + top: -24px; + right: 0; + margin-bottom: -24px; +} +.module h4+ul.tools li { + padding-top: 3px; + padding-bottom: 4px; +} + + +/* Tools in Tabular Groups ......................................... */ + +.module.table .th .tools, +.module.table .td .tools { + top: -5px; + right: -20px; + margin-left: -20px; + margin-bottom: -15px; +} +.module.table .th .tools li, +.module.table .td .tools li { + padding-top: 10px; + padding-bottom: 9px; +} + + +/* Links ................................................... */ + +.tools a { + position: relative; + display: block; + margin: -6px 0; + padding: 6px 0px; + width: 100%; + height: 100%; + background-position: 50% 50%; + background-repeat: no-repeat; +} + +.tools a.icon { + margin: -6px 0; + padding: 6px 0px; + width: 12px; + height: 16px; +} + +.module.table .th .tools a, +.module.table .td .tools a { + margin: -9px 0; + padding: 9px 0px; +} +.module.table .th .tools a.icon, +.module.table .td .tools a.icon { + margin: -9px 0; + padding: 9px 0px; +} + + +/* Icons ................................................... */ + +.tools a.drag-handler:link, .tools a.drag-handler:visited { + background-image: url('../img/icons/icon-tools-drag-handler.png'); +} +.tools a.drag-handler:hover, .tools a.drag-handler:active { + background-image: url('../img/icons/icon-tools-drag-handler-hover.png'); +} +.predelete-items a.drag-handler, .predelete-item a.drag-handler { + display: none; +} + +.tools a.viewsite-link:link, .tools a.viewsite-link:visited { + background-image: url('../img/icons/icon-tools-viewsite-link.png'); + opacity: .4; +} +.tools a.viewsite-link:hover, .tools a.viewsite-link:active { + background-image: url('../img/icons/icon-tools-viewsite-link-hover.png'); +} + +.tools a.delete-handler:link, .tools a.delete-handler:visited, +.predelete .tools a.delete-handler:hover, .predelete .tools a.delete-handler:active { + background-image: url('../img/icons/icon-tools-delete-handler.png'); +} +.tools a.delete-handler:hover, .tools a.delete-handler:active, +.predelete .tools a.delete-handler:link, .predelete .tools a.delete-handler:visited { + background-image: url('../img/icons/icon-tools-delete-handler-hover.png'); +} + +.tools a.remove-handler:link, .tools a.remove-handler:visited { + background-image: url('../img/icons/icon-tools-remove-handler.png'); +} +.tools a.remove-handler:hover, .tools a.remove-handler:active { + background-image: url('../img/icons/icon-tools-remove-handler-hover.png'); +} + +.tools a.add-handler:link, .tools a.add-handler:visited { + background-image: url('../img/icons/icon-tools-add-handler.png'); +} +.tools a.add-handler:hover, .tools a.add-handler:active { + background-image: url('../img/icons/icon-tools-add-handler-hover.png'); +} + +.tools a.open-handler:link, .tools a.open-handler:visited { + background-image: url('../img/icons/icon-tools-open-handler.png'); +} +.tools a.open-handler:hover, .tools a.open-handler:active { + background-image: url('../img/icons/icon-tools-open-handler-hover.png'); +} + +.tools a.close-handler:link, .tools a.close-handler:visited { + background-image: url('../img/icons/icon-tools-close-handler.png'); +} +.tools a.close-handler:hover, .tools a.close-handler:active { + background-image: url('../img/icons/icon-tools-close-handler-hover.png'); +} + +.tools a.keep-open-handler:link, .tools a.keep-open-handler:visited { + background-image: url('../img/icons/icon-tools-close-handler.png'); +} +.tools a.keep-open-handler:hover, .tools a.keep-open-handler:active { + background-image: url('../img/icons/icon-tools-close-handler-hover.png'); +} + +.tools a.keep-closed-handler:link, .tools a.keep-closed-handler:visited { + background-image: url('../img/icons/icon-tools-open-handler.png'); +} +.tools a.keep-closed-handler:hover, .tools a.keep-closed-handler:active { + background-image: url('../img/icons/icon-tools-open-handler-hover.png'); +} + +.tools a.arrow-up-handler:link, .tools a.arrow-up-handler:visited { + background-image: url('../img/icons/icon-tools-arrow-up-handler.png'); +} +.tools a.arrow-up-handler:hover, .tools a.arrow-up-handler:active { + background-image: url('../img/icons/icon-tools-arrow-up-handler-hover.png'); +} + +.tools a.arrow-down-handler:link, .tools a.arrow-down-handler:visited { + background-image: url('../img/icons/icon-tools-arrow-down-handler.png'); +} +.tools a.arrow-down-handler:hover, .tools a.arrow-down-handler:active { + background-image: url('../img/icons/icon-tools-arrow-down-handler-hover.png'); +} + + +.group.open h2 + .tools li.keep-closed-handler-container, +.module.open h2 + .tools li.keep-closed-handler-container, +.group.closed h2 + .tools li.keep-open-handler-container, +.module.closed h2 + .tools li.keep-open-handler-container { + display: none !important; +} +.dashboard-module.open h2 + .tools { + margin-right: 5px; +} diff --git a/ddtcms/grappelli/static/grappelli/css/typography.css b/ddtcms/grappelli/static/grappelli/css/typography.css new file mode 100644 index 0000000..b821d7c --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/css/typography.css @@ -0,0 +1,274 @@ + +/* typography.css: + 2009 / vonautomatisch werkstaetten / vonautomatisch.at +------------------------------------------------------------------------------------------------------ */ + + + +/* Headings +------------------------------------------------------------------------------------------------------ */ + +h1, h2, h3, h4 { + font-weight: bold; +} + +h1 { + position: relative; + z-index: 800; + margin: 26px 0 10px; + font-size: 16px; + line-height: 20px; +} +.pretitle + h1 { + margin-top: 0; +} +h2 { + font-size: 13px; +} +h3 { + font-size: 12px; +} +h4, h5 { + font-size: 11px; +} + + + +/* Paragraphs & Images +------------------------------------------------------------------------------------------------------ */ + +.module p.help, +p.help { + padding: 5px 0; + font-size: 10px !important; + line-height: 12px; +} + +p.readonly { + margin: 0 !important; + padding: 3px 0 !important; + color: #666; + font-size: 12px; + font-weight: bold; +} + +.row img { + font-size: 1px; + line-height: 1px; + vertical-align: middle; +} + +.fb_show + p.help a { + display: inline-block; + padding: 3px; + font-size: 0; + line-height: 0; +} +.fb_show + p.help a img { + margin: 0; + font-size: 0; + line-height: 0; +} +.container-grid > p:first-child, .container-flexible > p:first-child, +.container-grid .column > p:first-child, .container-flexible .column > p:first-child { + margin: 0 0 10px; +} + + + +/* Links +------------------------------------------------------------------------------------------------------ */ + +a { + text-decoration: none; + outline: none; + cursor: pointer; +} +a.back { + font-weight: bold; +} + + + +/* Listings +------------------------------------------------------------------------------------------------------ */ + +ul, li { + list-style-type: none; +} + + + +/* Blockquote, Pre, Code +------------------------------------------------------------------------------------------------------ */ + +blockquote { + margin-left: 2px; + padding-left: 4px; + font-size: 11px; +} + +code, pre { + font-size: 11px; + font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace; +} + +pre.literal-block { + margin: 10px; + padding: 6px 8px; +} + +hr { + clear: both; + margin: 0; + padding: 0; + height: 1px; + font-size: 1px; + line-height: 1px; +} + + + +/* Table Typography +------------------------------------------------------------------------------------------------------ */ + +th.focus, +td.focus { + font-weight: bold; +} + + + +/* RTE (Rich Text Edited) +------------------------------------------------------------------------------------------------------ */ + +.rte h2.subhead { + margin: 0; + font-size: 12px; +} +.rte h3 { + margin: 10px -10px 10px; + padding: 7px 10px 6px; + font-size: 12px !important; +} +.rte h2 + h3 { + margin-top: -11px !important; +} +.rte h4 { + margin: 10px 0 0; + font-size: 12px; +} + +.rte p { + margin: 10px 0; +} +.rte .module p { + margin: 10px 0; + padding: 0 10px; +} +.rte > p:first-child { + margin-top: 0; +} + +.rte .group h2 + p, +.rte .module h2 + p { + margin: 5px 0; + padding: 0 10px; + font-size: 11px; +} + +.rte table p { + margin: 0 !important; + padding: 0 !important; +} + +/* Workaround for problem reported in django-ticket #11817 */ +.rte h2 p, +.rte h4 p { + margin: 0 !important; + padding: 0 !important; + font-weight: normal; +} +.rte h2 p { + font-weight: bold !important; +} +.rte h4:empty, +.rte p:empty, +.rte hr, +.rte br:first-child { + display: none !important; +} + +.rte ul, .rte ol { + margin: 10px 0 0 20px; + padding: 0 0 0 10px; + font-weight: normal !important; +} +ul.rte ul, ul.rte ol, +ol.rte ul, ol.rte ol { + margin: 0 0 0 20px; + font-size: 12px; + line-height: 14px; +} +.rte ul li, .rte ol li { + margin: 0; + padding: 0; +} +.rte ul li { + list-style-type: disc; +} +.rte ol li { + list-style-type: decimal; +} + +.delete-confirmation ul.rte>li { + padding-bottom: 9px; + font-weight: bold; +} +.delete-confirmation ul.rte>li:last-child { + padding-bottom: 0; +} +.delete-confirmation ul.rte>li+li { + padding-top: 8px !important; +} +.delete-confirmation ul.rte>li>ul { + margin-top: 2px; +} +.delete-confirmation ul.rte>li>ul>li { + list-style-type: none; + margin: 0 0 0 -30px !important; + padding: 5px 0; +} +.delete-confirmation ul.rte>li>ul>li:last-child { + padding-bottom: 0; +} +.delete-confirmation ul.rte>li>ul>li>ul>li { + font-size: 11px; +} + +.rte dd ul, .rte dd ol { + margin-top: 0; +} +.rte blockquote { + margin: 10px; +} +.rte dl, .rte dt, .rte dd { + margin: 0; +} +.rte dl { + padding: 5px 10px; +} +.rte dt { + font-weight: bold; +} +.rte dd + dt { + margin-top: 5px; +} + + + +/* Other Styles +------------------------------------------------------------------------------------------------------ */ + +.small { font-size: 10px; } +.fw-normal { font-weight: normal; } diff --git a/ddtcms/grappelli/static/grappelli/img/admin/icon-no.gif b/ddtcms/grappelli/static/grappelli/img/admin/icon-no.gif new file mode 100644 index 0000000000000000000000000000000000000000..099c95f3c4975c910c5e02d85ff2cc414952561f GIT binary patch literal 49 zcmZ?wbhEHbX0ssI2%)0wB0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzA4x<(RCwCN*4uJ|Fc1ddWC`N5owoM< zUr}2-JwOt&l~FtD@Nbgk!o6`w`1oB80lWS6=Az!#tpT;`gAuFBI(xCP!ScNiR!pt6 z&Ys6!J19SfV8vL4J#;(`zjO}C{Sc4)pwii?uV@7rjOs%zam(=MwKK}SI z$t&Utr|Rq!9CEV7scLI|?ku$gj~o)Kt&{(+!!jmbVo5E{g4Cl00000NkvXXu0mjfWsR?h literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/backgrounds/changelist-results.png b/ddtcms/grappelli/static/grappelli/img/backgrounds/changelist-results.png new file mode 100644 index 0000000000000000000000000000000000000000..265beacdbcc2d21a2dadd335974d50152298931e GIT binary patch literal 244 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 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/backgrounds/tooltip-pointer.png b/ddtcms/grappelli/static/grappelli/img/backgrounds/tooltip-pointer.png new file mode 100644 index 0000000000000000000000000000000000000000..f23b1889b2c198ed230a59e3de2e5f2f953cd8cd GIT binary patch literal 302 zcmV+}0nz@6P)9u+0)kAb&;LkRnN)AI5#6;NNQW!DE=6_r7KYGm}nI%DEa#<;C^s zr0hA4bJUgqd}rVHH(?lZUDw=o-NjAQa1=$XZmzDUgSl}WbKm#;tYH{9NfJP}lYj`K zfTB+0IC7e%fbKp55kL@yZ$c)^vKQzB41p=IduX2LfF5ofp_ZBYo3&}0E8DioFbw)d zfD}bRZQFWk-HRXy*s?5wg%I?ws;Z*0Ea@!30J4d8>ueuAKL7v#07*qoM6N<$f{Idp AnE(I) literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/backgrounds/ui-sortable-placeholder.png b/ddtcms/grappelli/static/grappelli/img/backgrounds/ui-sortable-placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..f9b2ce9e196ac5682f436d306b57d54e3f986ddc GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XmU_B4hE&{obKQ}vK|#PRQF>R8`fHz9pY_3PPBWIRt~p{q zyX>%gz?o<#j@{Mgp8eXq`(x(2&-dcbOC*=hKYQe9=EE!pk##I}ebP76Q)1YX3Nyou z-u*dbuKYM^za-B)-i`xX8zf?QI}S~Cka@@F^2n$_DlcXJ#KM;o42<%=@cP*v?CE*U zD0qDJ#KJ5g)6Q8gzKhfXC$I3lq5|eV`R-f9VZfksruo&glr#1~2QzrO`njxgN@xNA D_%UZz literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/grappelli-icon.png b/ddtcms/grappelli/static/grappelli/img/grappelli-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c4fb10e08408abeac388778485e36d6c120f291e GIT binary patch literal 423 zcmV;Y0a*TtP)Gh z6QrGhW`bmcBom}eK(YauAasJVK^ehf0s1UGODBo~tqp3Vob+@SpnJZ%=fi%}G~N{U z;7w$Aq90b*bqqwK5h3^n_`>o6yp5UB5{O1GT@VBdxN52%4JLXV(hImFFax%tTqU2` z6OrUV0#5{1KzPVmYF%~1rs&oftv%;>At!$f) z>G5YGv-33qE1|SRe3QE9QN$i~os*ohF0F~$7ZEYpi{FeO|9(^b_e9?U3;?hZdT^3H RA4mWI002ovPDHLkV1k|bvK0UT literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-actionlist_addlink-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-actionlist_addlink-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..20c740bf86fe73fac5959c93bd82f5d93fb0448d GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1|*LJg}1{rLaio|&h*qGFBvGh@RAOpGafyHvOmSR`AQ x9A@aycep7papBFK{_}opHDz@U&lp%F7;;}|cRy||)Bu{o;OXk;vd$@?2>_Y@Ff;%F literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-actionlist_addlink.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-actionlist_addlink.png new file mode 100644 index 0000000000000000000000000000000000000000..6e2ed2a8e4a2d8fe94ad1608a5fa78dfac6ff6c2 GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1|*LJg}1{rdmko|#Ab{O!GRGtVDs;9{9z`C^hrgJ6ot yBtB+^eGIAf2@ac!?d_~3KivGuIFnf*fuSr^cjczbGoyi~FnGH9xvX>$j+1|*LJg}1ef;nt;{1UF3I`fk4gUTAKc7)NA?X0K1p9%A c1_ovZ#n)VCa`G7SfEpM)UHx3vIVCg!04wV#=l}o! literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-actionlist_changelink.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-actionlist_changelink.png new file mode 100644 index 0000000000000000000000000000000000000000..2a6f2930bbe568c00285161136c8f8040c985de2 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1|*LJg}1natZ>ZOhEu%)l&m;K%>}^=vT=>s7i>{;~aH cCZ=$JA^D=vOSUAVn?M~5p00i_>zopr0Pv_NTL1t6 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-actionlist_deletelink.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-actionlist_deletelink.png new file mode 100644 index 0000000000000000000000000000000000000000..7931f6716b0913a428a55f79aabb0a4cd77caca3 GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1|*LJg}16%-Zy;%DJ`A)&&TzQDU7gNHGtmFGrDg2$sP hotOP;*0FLJFnn}qnr5GH#u})N!PC{xWt~$(69AnfDM>$j+1|*LJg}1{rLaio|&h*qGFBvGh@RAOpGafyHvOmSR`AQ x9A@aycep7papBFK{_}opHDz@U&lp%F7;;}|cRy||)Bu{o;OXk;vd$@?2>_Y@Ff;%F literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-actions-add-link.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-actions-add-link.png new file mode 100644 index 0000000000000000000000000000000000000000..6e2ed2a8e4a2d8fe94ad1608a5fa78dfac6ff6c2 GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1|*LJg}1{rdmko|#Ab{O!GRGtVDs;9{9z`C^hrgJ6ot yBtB+^eGIAf2@ac!?d_~3KivGuIFnf*fuSr^cjczbGoyi~FnGH9xvX>$j+1|*LJg}1ef;nt;{1UF3I`fk4gUTAKc7)NA?X0K1p9%A c1_ovZ#n)VCa`G7SfEpM)UHx3vIVCg!04wV#=l}o! literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-actions-change-link.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-actions-change-link.png new file mode 100644 index 0000000000000000000000000000000000000000..2a6f2930bbe568c00285161136c8f8040c985de2 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1|*LJg}1natZ>ZOhEu%)l&m;K%>}^=vT=>s7i>{;~aH cCZ=$JA^D=vOSUAVn?M~5p00i_>zopr0Pv_NTL1t6 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-actions-delete-link.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-actions-delete-link.png new file mode 100644 index 0000000000000000000000000000000000000000..7931f6716b0913a428a55f79aabb0a4cd77caca3 GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1|*LJg}16%-Zy;%DJ`A)&&TzQDU7gNHGtmFGrDg2$sP hotOP;*0FLJFnn}qnr5GH#u})N!PC{xWt~$(69AnfDMpB%U)_X!O?-gM#PbKTUO$Z%Dm~&{+z$FC$1AQZLL^@_ zG6R;7IXYur9YXtPq#?2qvi{Zf?L_V^!UHXMXmD!>$qU!O^*{b6PXPu1UL8YF(Or(1 P00000NkvXXu0mjfjj@oD literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-add_another-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-add_another-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..c017a95b016dc752c713b93a28d531a7ed598762 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X+&x_!Ln>}1{rUgjo|&hjs%jnk#oOES`CB?S8Z2O9G_hkA zW@bF_;^D)Ma-Pc>r|e@`YA;~Mcy{9Ng?%L|w|HOd`_ZtDLE!*H*>$1G(R&If1C3}1{rUgjo|$LHnfsgNT;_Y0aJF=AG+4mIXky1K z%*=Qo!zTZGmC9VUfL}~g{yE%WF>!y_Zgpv5hWUcukC=BcH83zUe9;zmm(-ma05p@q M)78&qol`;+0F&@FbpQYW literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-addlink-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-addlink-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..c017a95b016dc752c713b93a28d531a7ed598762 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X+&x_!Ln>}1{rUgjo|&hjs%jnk#oOES`CB?S8Z2O9G_hkA zW@bF_;^D)Ma-Pc>r|e@`YA;~Mcy{9Ng?%L|w|HOd`_ZtDLE!*H*>$1G(R&If1C3}1{rUgjo|$LHnfsgNT;_Y0aJF=AG+4mIXky1K z%*=Qo!zTZGmC9VUfL}~g{yE%WF>!y_Zgpv5hWUcukC=BcH83zUe9;zmm(-ma05p@q M)78&qol`;+0F&@FbpQYW literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-admin_tools-dropdown-active-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-admin_tools-dropdown-active-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..2b5d50ede28077ae05dbda4e5b85f9286e2aec2c GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^96-#%!3HEZpRM}|6H_V+Po~-c6s?4NMLyIG^cpe>B}iVQy4s5{an^LB{Ts55JWN_ literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-admin_tools-dropdown-active.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-admin_tools-dropdown-active.png new file mode 100644 index 0000000000000000000000000000000000000000..2f84846b1de5d48922689cba0e7399e3f4b437e9 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^96-#%!3HEZpRM}|6H_V+Po~-c6|6H_V+Po~-c6|6H_V+Po~-c6}fx5IEGZ*N-~(S_rJZscjE<&6C^zPI8XSoJYrEux0|HW zF_&RdatoIP!^*!7HH^#HI%M^iSj8o{Tw)c9;eX23q~gfaz`)Fq-XSF$&1jknG?Ky7 L)z4*}Q$iB}=;JVm literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-autocomplete-fk-remove-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-autocomplete-fk-remove-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..e34d1725240d5aa7730431616bc560e623becfca GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X)_A%&hE&{2`tkq2{o%sm+(3a|?!!-J`bE6xFfuT>!*J;v zPXt529R`nB)=N=7V(RPmuoXEqR>kZ2acs+UqpNOeU zp3`t8OF@tMQCUiBLc>wxOou<>9j`Auov~rZM!}BRjTZ8E`F%3Dwlf#%U3kT&AlvdT zQ%#5Kx`S=4KrFNJh1^RHzj!t|nJjMYata3+l6_`oEu6X`1?X-D MPgg&ebxsLQ020b!<^TWy literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-autocomplete-fk-remove.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-autocomplete-fk-remove.png new file mode 100644 index 0000000000000000000000000000000000000000..5e23eb6765ffb680998da47d39cd30a7b88b0f2c GIT binary patch literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xc6+)whE&{2`tkq2{oyk+ja?m0^mrzxPn$GJC^aErN8z_O zHzyxEc8p*0!htoBn|T_pa4z^0wrtCmE!Q3VGz8W&d)-J5+`-+kx#871!$y|Ip4t~u z7ev-Eb{aO_X-b(SJRyqrNUFn~zBK~Qh9S;U6K3%p>2+xJJyGNnapwldk+TkS`romu znY7++v=GloVxGX~^xZ^QtTlVVJiCr{j3VbQIs6jXY+nEX literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-autocomplete-m2m-remove-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-autocomplete-m2m-remove-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..e34d1725240d5aa7730431616bc560e623becfca GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X)_A%&hE&{2`tkq2{o%sm+(3a|?!!-J`bE6xFfuT>!*J;v zPXt529R`nB)=N=7V(RPmuoXEqR>kZ2acs+UqpNOeU zp3`t8OF@tMQCUiBLc>wxOou<>9j`Auov~rZM!}BRjTZ8E`F%3Dwlf#%U3kT&AlvdT zQ%#5Kx`S=4KrFNJh1^RHzj!t|nJjMYata3+l6_`oEu6X`1?X-D MPgg&ebxsLQ020b!<^TWy literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-autocomplete-m2m-remove.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-autocomplete-m2m-remove.png new file mode 100644 index 0000000000000000000000000000000000000000..5e23eb6765ffb680998da47d39cd30a7b88b0f2c GIT binary patch literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xc6+)whE&{2`tkq2{oyk+ja?m0^mrzxPn$GJC^aErN8z_O zHzyxEc8p*0!htoBn|T_pa4z^0wrtCmE!Q3VGz8W&d)-J5+`-+kx#871!$y|Ip4t~u z7ev-Eb{aO_X-b(SJRyqrNUFn~zBK~Qh9S;U6K3%p>2+xJJyGNnapwldk+TkS`romu znY7++v=GloVxGX~^xZ^QtTlVVJiCr{j3VbQIs6jXY+nEX literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-bookmark_add-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-bookmark_add-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..992bd739c41d37f53c55535fc2fd4f1dbdc046e8 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GzMd|QAr-fh{`~)M&#c+NIs3tK|M~M84K7N3U=)*iG)Kjf zQ$B&EQtIShgULS^esS0ME9>&%<44bl>CDpts`yOGI!TP7cK@41BP#0a;>@x S7pVXZX7F_Nb6Mw<&;$TGP&xtt literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-bookmark_add-inactive.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-bookmark_add-inactive.png new file mode 100644 index 0000000000000000000000000000000000000000..ca9eb1d7c9c62a103687f630b21a62098f76048b GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GzMd|QAr-fh{`~)M&#c+NIXl72>r|D1S`@S0fhOme1{L*( z%smSJ$~(o=HZe}w$FS7Cp~JHH8Ox+}=4k=9_)RZPOk4P+ao0i@E(Q(*2C<(~hiB~Z R%mEtA;OXk;vd$@?2>@)FH*Wv{ literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-bookmark_add.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-bookmark_add.png new file mode 100644 index 0000000000000000000000000000000000000000..3d86950353ec032f8aa39d98e6799bb035e26489 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GzMd|QAr-fh{`~)M&#c+NIeWp?S;prbW@PaGVBqE}^qVxN zh2NmbruRwQjFW!?eko7+$EVcSI>TdPI`g!EDt^HV%6n9$@Aw!W66J@80mvj_Zf({07f)+ z(qJ}R^Vc)%|3>=uiJ7}}zfGG?myWPUxU%ka2&h`PM;Zj{r_a9-g#j*%R-3kKk7doV z1RTZ)f#otZ$0@ski?sovphJ3wt-@a)KSN;XDm*FF#G1QD`o_`NBh7KWrHuz#Nr$^T zyb{Qaz#^U9*n}Q@rSxqeFK_M^X3sOCFN%qgGl*Qn-heQ*53uQzh;@E;LOM-~ zX_S^-F{}Y7x+cd=ksB9PHfij|u4#mo$R@UXDh#qZ>EfYDAxaP^tUHA$=ubjrp8l!N z+Nec5%l}`g{>H6DSGx2xEMdIIo}6_XnzdU}X3`l~Wuj)dD)N+fnIu(WA-j}oA(_&k zrCg~J3)!Vy3(1rQE#*p;SjaBrT1cie=wEX2^MRGvY;GE{arEott;t5&2h~cs6%({VR#tCvKfmAF_^|roMmPXh_v@ASkDk5y E4O*ZI=l}o! literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-bookmark_manage.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-bookmark_manage.png new file mode 100644 index 0000000000000000000000000000000000000000..17e453be071463cded4f85ccac21478b9c87494d GIT binary patch literal 2928 zcmeHJzi-n(6gG-fp-7bwVu9&&9jSeela$7?TZN`2kw{b}shWX-i+xS3_!ss?b|V2Q zOcmFhHzcjkq z7O|<13PJ&0jb}=#fN~+0{m^+6~Y9 zAD=v*sJYy0F8AW+(eY9J>&4~e%lCI~Tky^Icg2;n6YjpgJXxxA&4RpJYO4*i-?}$ySTWmm z9+Pr;nU8d9v`J$etg} zwY5tRdr42W*Je_SO*MWPY3`6-wUZ@E>G_$k-v=b`*7dqKFfx3)n>MxlRYn@n4Gf;H KelF{r5}E*3CQTOr literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-bookmark_remove.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-bookmark_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..84cb3cf87cdf7d4ebc0514ab816068ebe1217c64 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GhMq2tAr-fh{`~)M&#c+d+2~@xVY;EA<9Ogf?v6m6-8s2T n+*4%zm#}j7C>usFGVw68U}fi7AzZCsS>JiuycV978H@CH?vT-@bYI@^nUKW@kGAZ36)|{)UQ2-`?I< zH>j$pXfV0PY^W^oU(Lx_Ti`$YBR91by+^WA8dfo{JfGfZb(Q}`&smo&w#v)m9=S;j zR=@2}++UJ3!A{LYI9-u@lm74sBrtqvYz literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-calendar.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..3379352978ff286b59f28a28e9a2cb5445011c04 GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^{6H+o!3HFmxV|j}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiuyfW978H@CH?vT-@f_eA6r%)9-f~LYYsR_*f2cmOc#n( zGmtueoA*)#|B)VtKeIW`u5tJy-yuD7ftk?iiHxiGme|c_eHCKAz}QT9rQ{Rec!jN< zj4$5&SE!%d<@jsH1)n*dJiP3S&H6cJJ4!ybo8ZTycAi;9#h+clR6gaii$WZ~s6yD| jstI;(UZ0E|8W_E)H!3HEvS)PI@$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GF`h1tAr-fhe*FJ$&n#fikQA;V-Iv%S?(m1BO6w)rWU3xdQEB@O1TaS?83{1OV``K#>3d literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-calendarnav_previous.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-calendarnav_previous.png new file mode 100644 index 0000000000000000000000000000000000000000..47147a5333f21364feb593d9ba7f9dcd7ea15068 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PI@$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GF`h1tAr-fhe*FJ$&n#5N`iR}YZc~e#fIZVA@e`AL9NutT zEtKyFov5nY@IzSOK1-5dO7;v135kdWKgmdKI;Vst04bU}?*IS* literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-changelink-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-changelink-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..529722746cd7467cc9ab0bb9326c57013aef72c8 GIT binary patch literal 2924 zcmeHJJ#5oJ6gCW~iWIQ|64L2d7_iTAlG0dqtI)JG5{arLC>eXPFNqcZVP6zCVnA%D z0~5?_*;pBnAOj05Oe~d{8L1E>QaJx5WdLQMTP)en@9ulwyZ7B2-m}B{{cPq&hU2(w z^`O#Vb|ZW@uCVWitM5*jxlZ>wwCVKd7<+^(>rR(|s)hTcL9l-O=p#`$E^}(MIp$g+eb!vxT*YOA_2$CT2nz)$<#k`O& zN}E#Q4v<7~3yF78UgUFIvRIT0IgmVXI|CF?@5znIev*!PDjZPi$_S0eV_}>Z9IuaZ zrBVrr5|SjIA$b4Tra0hj|5iv5b5w}0d4@|3#|9xM?m8o?Ldf<(Lau8IZg=FF5wor# zViJqk)JHiXhtA`f5)Gq2p#CDv_7jzv-YCE>3lWhQVdBU|h+Ms6{->|6i&8#;rt0I(IcJVZ6q!oOK&ov|CbU(is{_msWJ*D6xl$!ovTM0kk|_oKORmgvU?n!2o5pM${q*aF$wt}R)k?V) zoOXYnopnCXW?=T@=HsI-;I7T*^XKhLC)4S-S8pzZ8TaE$cKTBPItu6C>R!F_`rgsg E-}0*xA^-pY literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-changelink.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-changelink.png new file mode 100644 index 0000000000000000000000000000000000000000..8f71029910a451445eb89ab9ac6831a424024d95 GIT binary patch literal 2925 zcmeHJzi-n(6t<{9mDQ>3;L!Du0XTIBvDR zS8Fl59KFjo*!T0=hgZzpq&r>OcKS5H9^tCG(<7j6;Q?t8tRFr5LKKeU&x}r&b{mgm z&9MX=VT90fSv1EfmC(i7h)~cY1H)F~_xB$mFmx3jlp12g-6lh0Z{m^mq}kCXBdx5% z$`-GLG9$1E#UQjy+m}NX#=J87kCqVxF@%m(m>jCx*azE=M?g`K1SzM98wF4*2!)cg zAr;qwB#N6zypIZEF25;@CApXf=>xZTpm=&;Zq;_vbj(xXkWyDhCK>2dH zj6?}ZQjQ^V{*g^_n6v%c5kg zDW-8+cEqR#py-;MFvV_CRMn)3m$;@8RU(_%9;h(P>7c&R#IyYWmFjQYN_?bCSHlt}YwXHdx1njfrDdj_aaAU6hN~jaco#`BCFZgVx#p57 z11;prl$gsdGnvUlsXY9~DF z72mvjp)M`GpB%U)_X!O?-gM#PbKTUO$Z%Dm~&{+z$FC$1AQZLL^@_ zG6R;7IXYur9YXtPq#?2qvi{Zf?L_V^!UHXMXmD!>$qU!O^*{b6PXPu1UL8YF(Or(1 P00000NkvXXu0mjfjj@oD literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-clock-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-clock-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..a0610633dfad3c75f12da8890fca6035fccd306e GIT binary patch literal 3214 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 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-date-hierarchy-back-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-date-hierarchy-back-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..e28bc836abf07fab04cc94d35553dbe4e008b677 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^tU%1c!3HD^Kbl$tDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MLwP`jv*DdlK%YvZ_mtAQB`%0J&3bM!BN4T;lxe;BWw;f zjTa9eW{y-S{Qd1M_lygy4#x}(6Brd7-4*sR9QoXsrryA^F}mffCj%oJgO8&^>wO7T QKA^b_p00i_>zopr00LDt9{>OV literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-date-hierarchy-back.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-date-hierarchy-back.png new file mode 100644 index 0000000000000000000000000000000000000000..665724b8cab297c5746efb1b46c2a59383926cc7 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^tU%1c!3HD^Kbl$tDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MLwP`jv*Ddl79aGZ_ms#zopr0Ces%hX4Qo literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-datepicker-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-datepicker-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..064ef4eb40300c2c8c90a949bd69ab48581e4552 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^{6H+o!3HFmxV|j}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiuycV978H@CH?vT-@bYE>TE`4W@kGAZ36)|{)UQ2@9yqa zH`ujfM}x^VWDkdd|9Ju~l9c_sC6R zu=;I(;{KAP33h5G!s$ZJhYzket9ℜMflSCBls-KQnNiyv*ovmi?xUV8?Z5){d(? jbP0l+XkKwOUsw literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-datepicker.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-datepicker.png new file mode 100644 index 0000000000000000000000000000000000000000..3379352978ff286b59f28a28e9a2cb5445011c04 GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^{6H+o!3HFmxV|j}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiuyfW978H@CH?vT-@f_eA6r%)9-f~LYYsR_*f2cmOc#n( zGmtueoA*)#|B)VtKeIW`u5tJy-yuD7ftk?iiHxiGme|c_eHCKAz}QT9rQ{Rec!jN< zj4$5&SE!%d<@jsH1)n*dJiP3S&H6cJJ4!ybo8ZTycAi;9#h+clR6gaii$WZ~s6yD| jstI;(UZ0E|8WDSr z1<%~X^wgl##FWaylc_d9MU|c|jv*DdlK%YvZ_m7zL718M;EIQf+l2WeI5Z1NOIcG} zd>v%AR)2rD-ocK4!d|A1y^S?)Ua|97kJLHb;Wvq3^zdhpVG67Hv`JxsN5XkcXM_$hZp;`El&Ku0im My85}Sb4q9e0MYzPT>t<8 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-dropdown.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-dropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..7331ed539dbdd02e02dc0b12387d44f2037862ef GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6O!3HGFip}=|DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MU|c|jv*DdlK%YvZ_m7zL718M;EIQf+l2WeI5Z9B6f;Z_ zG-E8h@>8UJy@MV9guP51dmC%qykh6E9;tJkr_ISO!S2o5Nm9QpQzbp&l1L4K1 zCY%^LI9qHRA@#|3!bHea|R)}^37-+p=aL`YW7=R9ib3{BbTip z?jXJq9()nzEJJkMv)tT8+Qt2eznKY|U`TyJ)*fc!ziBe{r%44Rv|tnY7FsB=0u3$H zFmW{8&qXzq5zWW@6&W$-Lq>Td?T<>%gfV=HLnINOGWsLt$5in8Rxnr@SS8x0ekRXc iKzspG7o5%Z7GMCroHg9z?gK#p0000AfAREXCj9|(o+_RSYVeZ~FX~S!hS2pG4t`gP;>z8FgyeGVP z)r2EM2WN|IBcwjrmo*V`-g|BNXu%}%4YW{U1sYmt zVB%=FpNncJBbtwQD>7ovhm7(_x*wIC2t)W1`$!@_W%LKkkE!7Gtzob-uv)ZF{Y;*@ jfcOlgV{kUxTYv!oz@9dma22_w00000NkvXXu0mjfdPR&Y literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-fb-show-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-fb-show-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..549e2619d23bcd0720ea80a922e98a741a0aa957 GIT binary patch literal 3136 zcmeAS@N?(olHy`uVBq!ia0vp^{2JM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)C80k)DxmvVobgf~m2d zv8j=nk%^9ik%57QzJa;Ev4O6kg_VJ+m5HGO6e!toDcBUHq*(>IxIwK0@@$ndN=gc> z^!3Zj%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUl|e>8%y3C9PA<)LWmeJ%7Lj(AD-Nx-h`$MT2bJ{Kr6#x z=8jqd3kjm=(cmH~m|%)Vg9{cCMA4(cMN}}s6paQKEF_4cM}v!~V1g;a7hGJ325V{_ zu-#M+Y>uA#Gc^a;l>OuB;uunKt0(w2Z?l0wvyOvX0*jl*{F<%G2UrfMlr&G{{qcBn z&jF6NY&j0KCps?)yGCsCtGux@M(^XUbrYQfMZ{aAres*!HvYBfJMW=bmc${?p}M1i z`3Ix$2exGoc%B(V)*WdKxO2OJxmUWyPg-KxE>6S9%!LfaV0G0G~R&Mhc?6p&#G>=_#^SE`G;?j p`_#D!H$~+|&PsZS{S0qlWcU%3`}f_+t}IZS-qY33Wt~$(69B1JaF751 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-fb-show.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-fb-show.png new file mode 100644 index 0000000000000000000000000000000000000000..886c05c3755c67ef0062d300bb0003b2901620a2 GIT binary patch literal 380 zcmV-?0fYXDP)(QJtd=r&wV?ej ze672=%Wr$Q7*bwvxq^yEbi7W%ow0%foWq5Xgi7cIdC(d1p&B|Mh_r%t!0L2qAAtJ_ zTs9TJ9ZAIpj7`zdMyy@nA}D|on}WtnMXJjub6)XzW4Jnbsmo=@3RP&ntr1+XcqaCo z)90QcT-d@ZwwsBa=xbBB%A?PA(+ya_t}2aNkzJrpk^vBEz;|A%g9w`;65JfL8U}fi7AzZCsS=07`Sd_hD4M^`1)8S=jZArg4F0$^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakZd%cjB#Xh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2K8o{^rBZnA-yv4W|w zp0TNsnURT(f{}rNg}#BgzOjL>p@o%!sg;SL0u(6OaVgjorKDK}xwt{C1M+N@GD=Dc ztn~HE%ggo3jrH=2()A53EiLs8jP#9+bb%^#i!1X=5-W7`ij_e|K+JGSElw`VEGWs$ z&r<-InV6JcT4JlD1e8~R8lI92H@l#;CG(C1>ZBxvUpq&FbIaVj|LU-}9Wx@7OJ@De4Q9Nf12hLKMxg+ zX?)&uZ#e9Y^Ssz!z9i3DXOaEJDIaa}Y<4TYKXa9RadEaN*YAtHvv$?@o>-Qc`Z#Tp zPTLaYBGW~QZK^M(wH}t1Ii%LT!&6DAa2G>%0S|jXquq=az5;>W9Kx$q7kTfvB)ouQ zwZ(0NZ)+znR5&i!^J%Zp@>kPbPl#Ns-R-V({tJ)F*6OcsChFf|{u~;lJ#qel1^O!P z)zgz9iLC%-fzB4DW)dK#@(Rz zFw^S&yg$=fekB^-aF27?5O%wX^M-rQw2x8;`JcUwV%YsE{?y+q*H-U|d)+GQn`n8# zT~c&n-0vxM-POKxyo0l}8U}fi7AzZCsS=07`Sd_hD4M^`1)8S=jZArg4F0$^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakZd%cjB#Xh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2K8o{^rBZnA-yv4W|w zp0TNsnURT(f{}rNg}#BgzOjL>p@o%!sg;SL0u(6OaVgjorKDK}xwt{C1M+N@GD=Dc ztn~HE%ggo3jrH=2()A53EiLs8jP#9+bb%^#i!1X=5-W7`ij_e|K+JGSElw`VEGWs$ z&r<-InV6JcT4JlD1e8~R8lI92H@l#;C;wZNYpo-l2UdhRk1wfyq{P^b*JLZ4Gwk7=dHe7=vy4W>BE)v#qYe&|Nl4t_nhK0 zeSa1@mT*oJ)RkLUVKqtb6~BpOS+f5F!%b6GfG>0PeJCq(laPa4%Onj`PHTzkp3Z)%$E0`6Ns zge;S`FDyO3<=EY(D`oS9H!6HoT2~hx&&%VvqjdH`Tk|$%nVPJ*Zw_g2a@YLrJ#TG$ zLGSL5yQQxE2}?IJHE-y>VeweB>HQh$rHp1O`?J0$2lsv2aFHuJ$m#gzzDY`puH9;n z$`9=CG(O>_DZj)~M)P({N66tMrB{~DJLiS|=DJs)u~@Ua>YaB3Bg2XM?iCV0oKrxZ N4^LM=mvv4FO#n#D$H)Kx literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-form-select.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-form-select.png new file mode 100644 index 0000000000000000000000000000000000000000..3591d50312ea306be4b843a3a225682f279e81cb GIT binary patch literal 289 zcmV++0p9+JP)SY`kj_#X@S_wV2T)2C1WudA#3f9A{?FdqkCK*l3D9X=&f|5IEB nra&_~sRcs{u4F?s01#jR0`HU)oz+Ui00000NkvXXu0mjfbP0 Hl+XkK%g8c0 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-closehandler-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-closehandler-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..cd186c8571c2f2fa1f1154b601fa3d994f9f3388 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^oFFy_8<4DKZ~;-0C9V-A!TD(=<%vb942~)JNvR5+ zxryniL8*x;m4zo$ZGejEJY5_^DsCnH`TyUZnMdNBWdOsHUyVCH)N~zYnPH*qBN%Y7 zMq%oK1_tg1E@4L=H4|3xh6q6~b%&#p61-{e-NPPmT=~nWp~;Z)o;`_qLZ^c3`^Fx2 z1=fJ03FeI|3%NwuF8M03dL*hfJXEV`&~VjpNS5Z%VtQ2N)WyKW!@#WN-|5a9QwDSi NgQu&X%Q~loCIAuyLBs$6 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-closehandler.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-closehandler.png new file mode 100644 index 0000000000000000000000000000000000000000..00edf99a6931f631a8b66a04f22cd315d92ba552 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^oFFy_8<4DKZ~;-0C9V-A!TD(=<%vb942~)JNvR5+ zxryniL8*x;m4zo$ZGehuJzX3_DsCnH`2XLYnP>No9U=@L>jips&T%L?9JqS5)NX=T zf|5*OcTW&)n!^#+lP7dW@&uP-joJ(r4~7(_O|u}1l@u0MoV}HD_KLOPg`qdPlWHZeFzQQO80x|zejZM`EDm%UgQu&X%Q~loCIF@&P>28k literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-draghandler-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-draghandler-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..57f40775ef8a964bf1ef5bbcb3b8fe089d9538e6 GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XW_Y?dhE&{2`t$$4Ju{EQIZFkGB|;55}FSqbXaA5M` zS+PLA>tN1;XFnrEomCx{#W5tgYRqj|)5y8XKz>z$l7KbS+IogX3;(dJuwho-G@FxA zY{9y-N3_(=rl^?vH|*NT_~IG=g@hc2qzN&M0Xa%{Qnp;+V0rY_A&21zcLSHO;he@L rjBF3MHoAH#iWoa28wf@UDI8#^OmaTo(tXzl=tc%lS3j3^P6tH#`hHI1CB4CGf8C<$0It*vKRwD1qh3L9qSO|v-} z#TKkPdqhj^Y>JAxf5Wbgj4z(?Ur5MdNSYAC7?7iMCuPe84wgq>9da0sa5r!X8_sE5 s!pQc3Yon`|qKL6WvVmZvkir25UQ>tb860vSfNo^)boFyt=akR{0D`1cQvd(} literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-openhandler-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-openhandler-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..d82b640105d97e1cacbae57ed6c967359582dcb5 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^oFFy_8<4DKZ~;-0C9V-A!TD(=<%vb942~)JNvR5+ zxryniL8*x;m4zo$ZGeipJzX3_DsCki&e;3ko|*9g(~;g55yOA~{Vymy64@wm&hmqt zhdo2m@z0uk@(Dr?g^UVY0S_9CH%A4~%5OdqRO zG_g8d7JiuL6vV-tz?#s`e3hhC|z$a7O+4Ji{A_F>Tq;CL!_NTh+m cp@ETM&VQfZD%ufVKxZ*{y85}Sb4q9e03s?$9RL6T literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-openhandler.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-openhandler.png new file mode 100644 index 0000000000000000000000000000000000000000..a250eed50b742fe998712ebdedd71d57f2e4abb9 GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^oFFy_8<4DKZ~;-0C9V-A!TD(=<%vb942~)JNvR5+ zxryniL8*x;m4zo$ZGeh;JY5_^DsCl}6c+wG@4&Eup-@@TwdenTVUv!=&PI*{k6yj{ zCFfz!kaYa+?(+HuPlltc4Oi+E!Wd?5VeH^_U<%+&VO99Zn_$k!`kdL4)1ij3gSoN7 zHsm1Ff|s2I?aG=hj2oCXyl;5OQZ5`4XfGh%B$8Mv9Ad6KiAifWr`(KyMkkH!0?Qa! c7?^k%_{uyQCUh+71G1|->WOumJ z;c6t`!P;$;RSrq;;1f6JcKggsok3%T=(9#9R+;j!i&bfFn#t7Q6Cb&AV t{{11M5N*!b-o)vUbHZb51|x?7L#U+j|Jz#|7=e~Dc)I$ztaD0e0sxk@Kb!yn literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-viewsitelink.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-inline_item_tools-viewsitelink.png new file mode 100644 index 0000000000000000000000000000000000000000..06f38e325d25e02b300f96176e69868a7d85c804 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^oFFy_8<4DKZ~;-0C9V-A!TD(=<%vb942~)JNvR5+ zxryniL8*x;m4zo$ZGeihJY5_^DsCnH`TyUZS@FOT2bKiOsxK=TC)oA7pJf$O_{h*9 zz0u)RvmK{p0A-+CEZNWR?t9<6_uU)b z_EO>INa%8iVVIHJLbgcl5Pb&+Pt)(jyN@rZxkTnFq|{s`Ey==6MrqbC$mvoY7qO&l z+NNzal7P#xJeN0T z@tV4@Y2nglp)7AUlt9Ns0*GnGwhDaRBz-+CJo_`)(=jX>0iKyKYZh=~3q6c5wiwrLxcv8CJpE7jk)Mej&Qu7)P`*XWhgZbRL6>y+8) zjN>w1GaMIrz}rs}DAAMc%hi)i0jMumphQo$FIP`81)#oMff7C0zFa-Y6oCFESLkqH z#Ri?5T67$JyZ>0DqpX_CX3Eaz+S%dZXti3Md4F$+eY*1U!@1q+K>JMk%huJM(cKei zjTx)%9~`7srbY2?^5HF}JqjMAA6?9}7c1u{nfCVHFaF5{^SzL5jgKv5Qpr<$pYrJv iH?TGGTo}K=406oZpYU7hYovd?Z*@BaoA|06a4 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-menulist_external.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-menulist_external.png new file mode 100644 index 0000000000000000000000000000000000000000..0cc2883201924051d450c64fc54bb180b0872b89 GIT binary patch literal 2990 zcmeHJ!B5jr81KL!EFls->8U=w5M5u_F=R~(Lk6;h;WB2}LCw1MG3wf`whvdh2*gDE z1B^;M`3HED7>zM17fn2JL1UuEgB~=-lZFIe+jZbUvxD5$r2YE6_xpa|`+n~`d^fU_ zXS%~j!W2byr^iz{V!O!O+1Ww9CthznAm%V0E#Rr@46aEQqK1`f3DId?Dx(~dl=;gq zkw8)5O*LP@h0FvmS9L~mF^r>|B$}dxA;*;D3c_>=l~qFo-yS~&w5o_;I-X%O<_MZq z#}_O#wJ@2N7b0Yigf!Qlykj<7^Kx@OqCBLa_?C;#p;1hfai6%qJ{DrB z0NJPOtOV^(B{G^8T~+c3&R;ch%pBBz#TvE2wW?7GTCZ|F!S31Ok-Vf@HO z2%nLx3LB z_R4t8uvg>(Z!1ZlL{qjUS5q45bTusRofLd||N;G9#ay2DW0Q#3);hljM z8Dws%k#Y3Z)=iC!vX|1S;k>h1x@&!13bnVtnD3Y{kG{#i>sc>`KI~7vT{(W|zCL?J5)i literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-menulist_internal-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-menulist_internal-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..a99d4a1edb81f01e0d1da35c87d7674a9cedf65d GIT binary patch literal 2980 zcmeHJ&rcIU6dp}f(v|?x#Go-wmP9UgXS=0H*IfuwkS3I1si8-vyFdx3B{Be! zExk~r#oUaf)@wX=F}zc2uxJ3}F{gpmDxt7M%DSm=pI^M>psp$0LMkWZ8WW_VPp?{J zes#8>u2$8w#*K|eWJh8IH9|3TYKCb`j>37o68m?T5eGd8tty;5sdC+FZgIRE9s Uom-o6fXz_8%Q`2@Zw}l&;#3PyDYM$WrHlpCN3e%8urL+J1oui%XV-JC*#4y ztBD5_L%f@K_22=oa`9^TCyWOZzY?5&EqKuEL2lcmeSI^(_j~hx^A7Ln=EmJ|{u??gKEHX1qR~vN8-K8Du6K>gXn*>yB+#)rCje`dth{|#NsabE( zM)jVeyS9KMj1bx$i{?1B6na>16AGH7WjY%C{O%Y6)6n2{p(<9r6|!fpANpkLaHFmt zw)LU`OG~^ODvZD;6ob&VoInXR81pLZKUzi*#1PunU~;HNbrY<(J^^!rEXX-soX>+o zUdR{Zd3kOY$fCG_#M>w@=A;EhEGTmlNFTVw1JyTnm0Ec%O~*V9?osL~2z5Fgp_3O} zzlEe?v4}(&$#RY%a>0Q^ahP+08xcjqQ6_=zn;tb?2Sl8>>F!evLbeZ5azpQOd;7i> zGaEW07O{y#10)F&x`<~=)Xdf%4Z2}YkgCk|Mj`fCh=}|clSFnylq&YygsHuTt$@U= z=X=|vxkWLJ)3PH*H2~Gnm4qpFlcJU_ns|w8nNcN*g`JiL!<<2O@xDbNN+VEIcNU_e zKMB?I^!EeSMs?!b!T(D2H*PgP(uJ#G36nK;<*eIKx82e*)6Tdo6F0+Uk!QU9B$*OD z*}hyo$&`Wma%D>NWczaUBvS_J%atk7lkLmZlS~=tUvly111oXZ+|*&?=*h3=78_+N zmGW{uJZ*|cZ-161KAxSOm9C8C2Zw)5PfhWUz70++9#!b~_oL6G7sodTZi&}t1}29F qjH@#vv)t>4ldrfZt7D&D4o&QECne?Uv{o)f19D|`qx|O1&g0(=X%t-m literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-navigation-external-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-navigation-external-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..30b34906c71385a4434e22f1262a95ef71813fe9 GIT binary patch literal 2989 zcmeHJJ#5oJ6m~&Cn^G02Nc^b7=|Ey=<8z#*G?w#6)6$?Os*<2)=n%)grdDjn*jL4^ z7!VRtyCETlj_e4DfdMhFbSOv&2?+)SOEy@L7?>)RvmK{p0A-+CEZNWR?t9<6_uU)b z_EO>INa%8iVVIHJLbgcl5Pb&+Pt)(jyN@rZxkTnFq|{s`Ey==6MrqbC$mvoY7qO&l z+NNzal7P#xJeN0T z@tV4@Y2nglp)7AUlt9Ns0*GnGwhDaRBz-+CJo_`)(=jX>0iKyKYZh=~3q6c5wiwrLxcv8CJpE7jk)Mej&Qu7)P`*XWhgZbRL6>y+8) zjN>w1GaMIrz}rs}DAAMc%hi)i0jMumphQo$FIP`81)#oMff7C0zFa-Y6oCFESLkqH z#Ri?5T67$JyZ>0DqpX_CX3Eaz+S%dZXti3Md4F$+eY*1U!@1q+K>JMk%huJM(cKei zjTx)%9~`7srbY2?^5HF}JqjMAA6?9}7c1u{nfCVHFaF5{^SzL5jgKv5Qpr<$pYrJv iH?TGGTo}K=406oZpYU7hYovd?Z*@BaoA|06a4 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-navigation-external.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-navigation-external.png new file mode 100644 index 0000000000000000000000000000000000000000..0cc2883201924051d450c64fc54bb180b0872b89 GIT binary patch literal 2990 zcmeHJ!B5jr81KL!EFls->8U=w5M5u_F=R~(Lk6;h;WB2}LCw1MG3wf`whvdh2*gDE z1B^;M`3HED7>zM17fn2JL1UuEgB~=-lZFIe+jZbUvxD5$r2YE6_xpa|`+n~`d^fU_ zXS%~j!W2byr^iz{V!O!O+1Ww9CthznAm%V0E#Rr@46aEQqK1`f3DId?Dx(~dl=;gq zkw8)5O*LP@h0FvmS9L~mF^r>|B$}dxA;*;D3c_>=l~qFo-yS~&w5o_;I-X%O<_MZq z#}_O#wJ@2N7b0Yigf!Qlykj<7^Kx@OqCBLa_?C;#p;1hfai6%qJ{DrB z0NJPOtOV^(B{G^8T~+c3&R;ch%pBBz#TvE2wW?7GTCZ|F!S31Ok-Vf@HO z2%nLx3LB z_R4t8uvg>(Z!1ZlL{qjUS5q45bTusRofLd||N;G9#ay2DW0Q#3);hljM z8Dws%k#Y3Z)=iC!vX|1S;k>h1x@&!13bnVtnD3Y{kG{#i>sc>`KI~7vT{(W|zCL?J5)i literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-navigation-internal-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-navigation-internal-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..a99d4a1edb81f01e0d1da35c87d7674a9cedf65d GIT binary patch literal 2980 zcmeHJ&rcIU6dp}f(v|?x#Go-wmP9UgXS=0H*IfuwkS3I1si8-vyFdx3B{Be! zExk~r#oUaf)@wX=F}zc2uxJ3}F{gpmDxt7M%DSm=pI^M>psp$0LMkWZ8WW_VPp?{J zes#8>u2$8w#*K|eWJh8IH9|3TYKCb`j>37o68m?T5eGd8tty;5sdC+FZgIRE9s Uom-o6fXz_8%Q`2@Zw}l&;#3PyDYM$WrHlpCN3e%8urL+J1oui%XV-JC*#4y ztBD5_L%f@K_22=oa`9^TCyWOZzY?5&EqKuEL2lcmeSI^(_j~hx^A7Ln=EmJ|{u??gKEHX1qR~vN8-K8Du6K>gXn*>yB+#)rCje`dth{|#NsabE( zM)jVeyS9KMj1bx$i{?1B6na>16AGH7WjY%C{O%Y6)6n2{p(<9r6|!fpANpkLaHFmt zw)LU`OG~^ODvZD;6ob&VoInXR81pLZKUzi*#1PunU~;HNbrY<(J^^!rEXX-soX>+o zUdR{Zd3kOY$fCG_#M>w@=A;EhEGTmlNFTVw1JyTnm0Ec%O~*V9?osL~2z5Fgp_3O} zzlEe?v4}(&$#RY%a>0Q^ahP+08xcjqQ6_=zn;tb?2Sl8>>F!evLbeZ5azpQOd;7i> zGaEW07O{y#10)F&x`<~=)Xdf%4Z2}YkgCk|Mj`fCh=}|clSFnylq&YygsHuTt$@U= z=X=|vxkWLJ)3PH*H2~Gnm4qpFlcJU_ns|w8nNcN*g`JiL!<<2O@xDbNN+VEIcNU_e zKMB?I^!EeSMs?!b!T(D2H*PgP(uJ#G36nK;<*eIKx82e*)6Tdo6F0+Uk!QU9B$*OD z*}hyo$&`Wma%D>NWczaUBvS_J%atk7lkLmZlS~=tUvly111oXZ+|*&?=*h3=78_+N zmGW{uJZ*|cZ-161KAxSOm9C8C2Zw)5PfhWUz70++9#!b~_oL6G7sodTZi&}t1}29F qjH@#vv)t>4ldrfZt7D&D4o&QECne?Uv{o)f19D|`qx|O1&g0(=X%t-m literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-no.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-no.png new file mode 100644 index 0000000000000000000000000000000000000000..91fac43946f15e1c8972f3963b62f217ae2e7f29 GIT binary patch literal 323 zcmeAS@N?(olHy`uVBq!ia0vp^{2vW3Md_~zVup&I4NkTkue#Q5IKsblyVKF;2}dLun0OeHO^o(U T6J2-+=wSv=S3j3^P68U}fi7AzZCsS>JiX1#$978H@CH?vT-=3NEf$bDAm+1*hE+ouIb1UIgW0Pup znERnRV}?@llMQai-e*30bTP!Sx;awg%74b`EDjBf44c)(t~xlmM+41b@O1TaS?83{ F1OS>#HM#%* literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-related-lookup-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-related-lookup-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..549e2619d23bcd0720ea80a922e98a741a0aa957 GIT binary patch literal 3136 zcmeAS@N?(olHy`uVBq!ia0vp^{2JM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)C80k)DxmvVobgf~m2d zv8j=nk%^9ik%57QzJa;Ev4O6kg_VJ+m5HGO6e!toDcBUHq*(>IxIwK0@@$ndN=gc> z^!3Zj%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUl|e>8%y3C9PA<)LWmeJ%7Lj(AD-Nx-h`$MT2bJ{Kr6#x z=8jqd3kjm=(cmH~m|%)Vg9{cCMA4(cMN}}s6paQKEF_4cM}v!~V1g;a7hGJ325V{_ zu-#M+Y>uA#Gc^a;l>OuB;uunKt0(w2Z?l0wvyOvX0*jl*{F<%G2UrfMlr&G{{qcBn z&jF6NY&j0KCps?)yGCsCtGux@M(^XUbrYQfMZ{aAres*!HvYBfJMW=bmc${?p}M1i z`3Ix$2exGoc%B(V)*WdKxO2OJxmUWyPg-KxE>6S9%!LfaV0G0G~R&Mhc?6p&#G>=_#^SE`G;?j p`_#D!H$~+|&PsZS{S0qlWcU%3`}f_+t}IZS-qY33Wt~$(69B1JaF751 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-related-lookup-m2m-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-related-lookup-m2m-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..6f816a4fabcdbf096dca91ac929231d67e52e06f GIT binary patch literal 3119 zcmeAS@N?(olHy`uVBq!ia0vp^{2JM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)C80k)DxmvVobgf~m2d zv8j=nk%^9ik%57QzJa;Ev4O6kg_VJ+m5HGO6e!toDcBUHq*(>IxIwK0@@$ndN=gc> z^!3Zj%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUl|e>8%y3C9PA<)LWmeJ%7Lj(AD-Nx-h`$MT2bJ{Kr6#x z=8jqd3kjm=(cmH~m|%)Vg9{cCMA4(cMN}}s6paQKEF_4cM}v!~V1g;a7hGJ325V{_ zu-#M+Y>uA#Gc^a;lzr{#;uunKt0(9#Zmhl zPWd?&Wj*=ZZ0~=~OMT9`(|~dJ)WmBw>m=n*$_NBSdUh|$xy$C`XuR8zXM*0R{S3?u XvsLn1IYP5JM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)C80k)DxmvVobgf~m2d zv8j=nk%^9ik%57QzJa;Ev4O6kg_VJ+m5HGO6e!toDcBUHq*(>IxIwK0@@$ndN=gc> z^!3Zj%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUl|e>8%y3C9PA<)LWmeJ%7Lj(AD-Nx-h`$MT2bJ{Kr6#x z=8jqd3kjm=(cmH~m|%)Vg9{cCMA4(cMN}}s6paQKEF_4cM}v!~V1g;a7hGJ325V{_ zu-#M+Y>uA#Gc^a;l>Oo9;uunKt0(9!ZbP0l+XkKlJs$y literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-related-lookup.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-related-lookup.png new file mode 100644 index 0000000000000000000000000000000000000000..b14a9cd3e5c1ae884d5925b8cf637f32f41cc93c GIT binary patch literal 3139 zcmeAS@N?(olHy`uVBq!ia0vp^{2JM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)C80k)DxmvVobgf~m2d zv8j=nk%^9ik%57QzJa;Ev4O6kg_VJ+m5HGO6e!toDcBUHq*(>IxIwK0@@$ndN=gc> z^!3Zj%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUl|e>8%y3C9PA<)LWmeJ%7Lj(AD-Nx-h`$MT2bJ{Kr6#x z=8jqd3kjm=(cmH~m|%)Vg9{cCMA4(cMN}}s6paQKEF_4cM}v!~V1g;a7hGJ325V{_ zu-#M+Y>uA#Gc^a;l>P7N;uunKt0(w2Z?l0wvyOvX0*jrM!^B_r`xt~7CSTyykT!5w zYUE&V<+PhoIzYZ?(H9rNX={Sz%Jimt+ng_cQt;xPdkfc;3`^Ulzng9DDz)C|RD2`A zRlvmlfm!VVtIt948HZDT39>sC<{#oUStl5kn=s>*(vg&vtxRWP1-%TIv(57>+yzZ8 zvQ<2v_@OXgy tk^D*4tKP6&URAL;JM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)C80k)DxmvVobgf~m2d zv8j=nk%^9ik%57QzJa;Ev4O6kg_VJ+m5HGO6e!toDcBUHq*(>IxIwK0@@$ndN=gc> z^!3Zj%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUl|e>8%y3C9PA<)LWmeJ%7Lj(AD-Nx-h`$MT2bJ{Kr6#x z=8jqd3kjm=(cmH~m|%)Vg9{cCMA4(cMN}}s6paQKEF_4cM}v!~V1g;a7hGJ325V{_ zu-#M+Y>uA#Gc^a;l>OuB;uunKt0(w2Z?l0wvyOvX0*jl*{F<%G2UrfMlr&G{{qcBn z&jF6NY&j0KCps?)yGCsCtGux@M(^XUbrYQfMZ{aAres*!HvYBfJMW=bmc${?p}M1i z`3Ix$2exGoc%B(V)*WdKxO2OJxmUWyPg-KxE>6S9%!LfaV0G0G~R&Mhc?6p&#G>=_#^SE`G;?j p`_#D!H$~+|&PsZS{S0qlWcU%3`}f_+t}IZS-qY33Wt~$(69B1JaF751 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-related_lookup.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-related_lookup.png new file mode 100644 index 0000000000000000000000000000000000000000..b14a9cd3e5c1ae884d5925b8cf637f32f41cc93c GIT binary patch literal 3139 zcmeAS@N?(olHy`uVBq!ia0vp^{2JM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)C80k)DxmvVobgf~m2d zv8j=nk%^9ik%57QzJa;Ev4O6kg_VJ+m5HGO6e!toDcBUHq*(>IxIwK0@@$ndN=gc> z^!3Zj%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUl|e>8%y3C9PA<)LWmeJ%7Lj(AD-Nx-h`$MT2bJ{Kr6#x z=8jqd3kjm=(cmH~m|%)Vg9{cCMA4(cMN}}s6paQKEF_4cM}v!~V1g;a7hGJ325V{_ zu-#M+Y>uA#Gc^a;l>P7N;uunKt0(w2Z?l0wvyOvX0*jrM!^B_r`xt~7CSTyykT!5w zYUE&V<+PhoIzYZ?(H9rNX={Sz%Jimt+ng_cQt;xPdkfc;3`^Ulzng9DDz)C|RD2`A zRlvmlfm!VVtIt948HZDT39>sC<{#oUStl5kn=s>*(vg&vtxRWP1-%TIv(57>+yzZ8 zvQ<2v_@OXgy tk^D*4tKP6&URAL;4nJ za0`Jj!9_Kz6bFEh6X^2cbarb(u zH8X>XrP3+3iT)3#Hs0I5fhm5m&>!4nJ za0`Jjd_no;O7rD)*HoUTevIy@4zA z`{#A9ZJKXcF^KeTXnf{dk$Rw9JnccYNYj5ei`$mA#lN;*uI~G1U^ao{z@xrL?@nJ} Zc&Ig1Xp+M0T|oO7JYD@<);T3K0RX>eQz8HW literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-search-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-search-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..549e2619d23bcd0720ea80a922e98a741a0aa957 GIT binary patch literal 3136 zcmeAS@N?(olHy`uVBq!ia0vp^{2JM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)C80k)DxmvVobgf~m2d zv8j=nk%^9ik%57QzJa;Ev4O6kg_VJ+m5HGO6e!toDcBUHq*(>IxIwK0@@$ndN=gc> z^!3Zj%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUl|e>8%y3C9PA<)LWmeJ%7Lj(AD-Nx-h`$MT2bJ{Kr6#x z=8jqd3kjm=(cmH~m|%)Vg9{cCMA4(cMN}}s6paQKEF_4cM}v!~V1g;a7hGJ325V{_ zu-#M+Y>uA#Gc^a;l>OuB;uunKt0(w2Z?l0wvyOvX0*jl*{F<%G2UrfMlr&G{{qcBn z&jF6NY&j0KCps?)yGCsCtGux@M(^XUbrYQfMZ{aAres*!HvYBfJMW=bmc${?p}M1i z`3Ix$2exGoc%B(V)*WdKxO2OJxmUWyPg-KxE>6S9%!LfaV0G0G~R&Mhc?6p&#G>=_#^SE`G;?j p`_#D!H$~+|&PsZS{S0qlWcU%3`}f_+t}IZS-qY33Wt~$(69B1JaF751 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-search.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-search.png new file mode 100644 index 0000000000000000000000000000000000000000..b14a9cd3e5c1ae884d5925b8cf637f32f41cc93c GIT binary patch literal 3139 zcmeAS@N?(olHy`uVBq!ia0vp^{2JM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)C80k)DxmvVobgf~m2d zv8j=nk%^9ik%57QzJa;Ev4O6kg_VJ+m5HGO6e!toDcBUHq*(>IxIwK0@@$ndN=gc> z^!3Zj%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUl|e>8%y3C9PA<)LWmeJ%7Lj(AD-Nx-h`$MT2bJ{Kr6#x z=8jqd3kjm=(cmH~m|%)Vg9{cCMA4(cMN}}s6paQKEF_4cM}v!~V1g;a7hGJ325V{_ zu-#M+Y>uA#Gc^a;l>P7N;uunKt0(w2Z?l0wvyOvX0*jrM!^B_r`xt~7CSTyykT!5w zYUE&V<+PhoIzYZ?(H9rNX={Sz%Jimt+ng_cQt;xPdkfc;3`^Ulzng9DDz)C|RD2`A zRlvmlfm!VVtIt948HZDT39>sC<{#oUStl5kn=s>*(vg&vtxRWP1-%TIv(57>+yzZ8 zvQ<2v_@OXgy tk^D*4tKP6&URAL;JM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)C80k)DxmvVobgf~m2d zv8j=nk%^9ik%57QzJa;Ev4O6kg_VJ+m5HGO6e!toDcBUHq*(>IxIwK0@@$ndN=gc> z^!3Zj%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUl|e>8%y3C9PA<)LWmeJ%7Lj(AD-Nx-h`$MT2bJ{Kr6#x z=8jqd3kjm=(cmH~m|%)Vg9{cCMA4(cMN}}s6paQKEF_4cM}v!~V1g;a7hGJ325V{_ zu-#M+Y>uA#Gc^a;l>OuB;uunKt0(w2Z?l0wvyOvX0*jl5@Rs^Nhgc4%lr&HC|94|S z&jF6NY&j0KCps?)yGCsCtGux@M(^XUbrYQfMZ{aAres*!HvTo>Iq#uZmc${?p}M0% z`3Ix$2exGoc%B(V)*WdKxO2OJxmUWyPg-KxE>6S9%!LfamR*N zj&Ln}wPB%+z&?v9%{ezzrghKEb{9Kt6q>us)ceM~X}kfi4{eAIo>kp!@kioS^AF!5 p_o;IeZi>o_oR#zt`x)NA$S^A)Z>h@G)SI9-y{D_6%Q~loCIHivZZ_D2lFLqx_MA~aJL4MKmU8*|NZa(-hcS7 zPEDTf4)=u#g6PhV=Zdby@1cVS@OSOW&;~ZWXta!`^;u+#CM2@5UV&u3E>>X?it^(8 zOUM&M_?=QJqjF(_lk_?*x)|E28#tOE__Sk)QVk-q0;`H9P+y-tr$|K>sF_58DHtPg zP8n~QaJn&Bk{UHBB~$6)Fz;}fpbn8pI(1dEI7gs7UJn1e%YY(12&xH`f2eX{iX72R zNXBWFW+M_a7$XxgI+kDu+4um-GE5RMLmw}Do>HOp*v z#(o*E8TN}j;O!&{lxWL#P8gTEryA+k zMCg7zTd-d|IC8I$Ot2redhYCGR(_7GT^qK literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-selector_add-m2m_horizontal.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-selector_add-m2m_horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..7ba549923db2428eb8cdf74b91b13f2653b9f034 GIT binary patch literal 2991 zcmeHJzi-n(6gF5YG@@dpz;ZPb0*Uw>=SLgMZW@|~Mk1j~Q#D8ob?j?u#dci#s<>gG zDpR)(AP@up021m}AqIX33Fv@W>A+SoBKAt~zCSr=v2_8@jSZLO5vqm>{wnA{1r2 zfr#39S$B}n+S^-1wRtRKKP@?;R|61LMF^ODHz+Er4CUGpjtblI#+j2l(avb?5a z26iH#S9cg9!aoVcUit-xv{41whV#Et{f%4nk96#6NWx%^Tsi4B*lo8?nVrr!DdRW8 zNs))VgCwC6ec6FreaRGp26BZ;^koNf^(9jX8pstY(U%>_)t5{m=wEV0dIKvm$=uW; zJU%e{i2L5(C;=t`qQcg9xp7ciO!b~am^5)X!Z#t|bA^-pY literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-selector_add-m2m_vertical-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-selector_add-m2m_vertical-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..6be1d75013d7002ca1822e02ec4eeae767adfdb2 GIT binary patch literal 3023 zcmeHJKTH!*7(Y`qrBbK^0~+yhP9*f+_1Yr6^k^srX<`W}H8chju6K`e>GfLf9_hhE zm}-oX#ZBX%!NI{nNgNzh7L?J%g+WT*@JkEQ)!QMxwmD z_yI*J%CnSfkDrh4yYxUqeN4-C0A22IiP>Z zVY5ALaCl)aryjAYE6+`-{t%*F5R@6UEUc~$z-TV=L3S1-DEefhZ@ zIM)&P4!rd#)W-{}efp_~@khK1bW<<-E>(Ywp5E*K+?782ao63w^{hP^a1U{7bmvW9 z_2=Vnad~n5WsexR^Yp9hMjO9*@Vs{)3QlzT#`ibcK5g`FdlOy4D&?YPW+T61 STkn>w5j#0HnRp(bTl)<>dNWD@ literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-selector_add-m2m_vertical.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-selector_add-m2m_vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..0f53ca3b1eda583443b27b1c9b0afa7e4b34b88a GIT binary patch literal 3023 zcmeHJF-#Lt7(P=prBbLS3~1EHIg!wN*K3RPatEOlq=_Y@)XBp~_MRgDM}2qW#Pr~?ES@gS;fiD+YD6jJ5J(oKJW3-; zSz3691d8(Qs+la#rmpdFsmMq+hOvre5=~LUuvM1i0>U7N@~SS*Aq^Y|E{L>yscdQr zjFt=pA`HiHL75#0gJ_ruN4Wtm(hoS69fa%^7-oZ^L7t8Bkr1eT^pFn-hBC*e6XUgX z#1rXxjLSTPl}d%Fgqf0&hoM+323ZbrT#z7w=8}#jE2x{7Z3>qoflS#@%UCVxz~+>4 zr9~{#G&u(~az$=%mlqAqVOC^_G*m=7HerYf!J~MhL|VCe*-q4cDB!q>A zgK;ApA$&?Q3W%sZE@>umSP#!;P;MGa*hx#SXx9J)Mdn>5$90Pu(Xi{euBO_R@S3FO zMcN7~Xii$xFb!)F(5|~4BEUZhg~RmMP0~ggWE9Q+mFjQYf^(%KPeT&Ad*sPUx4}lc z)yk}O#&H>^8IFs*&f7{-SE4D~lB+41>Y$cfbtRgzExDSKsSaw%Rac@Z+mfp(nd+c_ z$>lp7SdmWVrV1HHxA*UBWR$&~OpIi#-Q51c!LWyCA8h2s>d?JUXRFNC=E?={ULZf4 z17|wo{{A-smD)MK(rcV}9Dl-lKsWWW_fqx8=*e$=AG*?~clNy9ThH5*A@3l!N_XB2 zRDV7F5?2=1UiCZ*LF%K726pmYPFkszByyi=-i&7)+?OB8KUzT*5gltIHRj zVG)4Px|T1HLS{x#YE@QtFsxmz(`W$1al0-n6-;0emo!6SzC3!&KuwjH`FMuQ)F*LS zORboAZe=#FtW=bQ%8ZYNL|dQ)RZL`PS9QY@Y>9Ds1^VwSBL=zl|YuO;O9X6~%hr;7XVoNc#I?-wdbU5W=ZHY(> zL-%2mTvb}!^(9kxnN88`*N5hH%JqF-OF}F3u5|xM}GTof@F1DuT!4x?WKeI`KTu)itLQL6?n^#MogK zFUm_gVNf#yId%IXBKnh1+)jVqqHUDNX4U#%ss6?-x<}e^H8i2OMz5T98)~&%v&?2^ z?3QtxVYkSA-cAxW* zH;_nC^p=`0;6ip%kgF9|axko2F-SB;iNm%b$z_B=5tURu$^3e=#sF1GGPCh4mo-Mw zf;zEmqM7BXyu4hN6ACjtM2ogS2r39mz^-VzCD=*E4=wP z7BDsh2y3+(TZ^()vjiiFL;`X=MJH#p)tX zG7Q-VKDi>-xs63rbD0$xA`MlLjx88rBXBRCD3Mc33)rfM>6WiD(Hq*5K|(lax)?9A z9wKBVvy6z^el!iUeb2ZheM9?I?lw|C% zg65?~4KvV>fKJ^(hzS2A6nE2Kv`8D}ky)|+SE|2pi|Tn$O+t&uAy-3IIJ=9lSr z#(o*M8TN}j;B6)elxWB{8 zJ6?8XZ}ok6*k#A>J!yHiVSm-{$JS$C+CS1G+ti)T8wV%573wJHy)B%lR=QTrlb2dj u*Y18_x%@bEp|$nt`$L;O>*&bH^%m;f+jN)wqwvX@q%&hv>E~zWZvF=U3MV80 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-selector_remove-m2m_vertical-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-selector_remove-m2m_vertical-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..943945ce28f2798cccf3e76304a66f26e80dab21 GIT binary patch literal 3009 zcmeHJL1@!Z7>*W)76;0_IE2MaM8W2zX*;)=tZUcJ71tqM$0`hLn!I(fX&RF^n+=2^ zicU5J(M<%wdDDXz4}uE1qh1A(>B*}M6?T&0d`X&a9+V#3tvTd>|9jv6{qO(YfB0w5 z4xMiHxB3Z!Xig3!(%9~`*SnkW|H1KFacmBvzAPFpkE4ocKq4lW^N>uI!~#r1QJ%W^ z7V-q)Ur{nyluZqCQn^HnHiouJI*uj?K5FTrRD_7k!-Ap-)VG(fDN>OIYBZ8!QhG0( zPzI(AI6OU+k*14MmrO;w{k+9tf)Yd`X_ZvX_fpx^S+cim zKr&3TG#ikZju06M(V+<2!G=$eEW>mH<|GI)fnX=cM7VH}tbSCtpX3dBoJ%MAtLd;O zP!kC08~~L{g|39?vQYrRuC6Y?uz+O)7!fe1G$dL9&1|?32Mj$K{^Pw;;|BGr7(faT9{^5RmOS)OVn`)0}Kb_ zM%F^OlxP$oR=ZzRP3W+0o{hr%FcOiI7GKe>f#hY0bD131Eh?rW*K=J}u`A(JQ7Z_P z6_DY$IH@8ER3m_0w->^LKMDEG^dly2qYN}k=Ko6dH*Vg!(w3*e3Ee&XD2quD)+`LX*w ztw+D4=lb3!`qy&Tek#$-Qu~WTExy^@z6-hK!@qVcHq8(|V)^c*mJO77aR`gq5S2AAP1m``WZk-MuCR{Lb*#b;O_R4SHceylX0w4X zM46KfLDZ=rs7GP`0aF+QLGXs-`8;Qyo3w_?~FLjxH!R+>U((SSssT*^T*Q55qq1x0!G z(i_MVgnv^>XHX_N%t@spE!r5`D(X0zAo!@Ii&6n1G6(aDCQx5rtW%^S3)Dn7$t3lD zIIRrL8E|ZFBrVMqq=-yKd;Gk`VS*w=B54&>&EzbBa(FqswzmOAIuKM4DECsCWvQ*{PXAIS0mL&jHScDofL68oD-FU1-O36q$H%YO-~?YLdwV)#dV(sL9sls!1jfRF}(Bq9$9Ht0tK|(7)vJ z?+mO^!*f#^kE3t5?y7i{y^@IcrLE1}*7kPP$1)GrUlT*C3x@Aq``Tphy?p!wG5)gk z#(~GN*7=V|E;LX2Zs+dD8rqljh*ura&y8n(tlC3$Vqhfx IJeIxs8<>zT!vFvP literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-th-ascending.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-th-ascending.png new file mode 100644 index 0000000000000000000000000000000000000000..24dda0afaa01512fb8678af2fca0346ce5b87129 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CG!3HG1zpHNqQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jil%zHIEGZ*is|3T+iW1>lG{Cv*M@Q7K~Ys+U$KId0bfJ{ z483M8Ic-sPPg5b$&+6`X`}zC#pS7GVZ0NRlbFts8rBm)*Y5bME_HXqwCexILhIL#` zQ|m1LDi!Q`q-nmzRepo&j)ie`f()i-S#uNk_p?;rIKX=C`vD&J9?n|X;HAQQ1M5on qo}I+}xcu+$ZL_~s2JzW5vN2qU_l!NfB)k&nKn71&KbLh*2~7Z(L0s$r literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-th-descending.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-th-descending.png new file mode 100644 index 0000000000000000000000000000000000000000..32fb3fb82ec63098b2bb541ba387705ed1034a69 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CG!3HG1zpHNqQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiY9rwIEGZ*ikYyHx4}Swd9r*vYr;ehsh|tSBC^&?7A{%D zl*MJXz<$%Fe$kS6}&kI|DPre^(p(#pZLwfv#ilboFyt=akR{0J9-k<^TWy literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-timepicker-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-timepicker-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..a0610633dfad3c75f12da8890fca6035fccd306e GIT binary patch literal 3214 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 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-add-handler-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-add-handler-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..48a23a18afbe9cbffe751626e398fef63f317be1 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GW}YsNAr-fhe*FJ$&unEjWAA@^0sRAN$B#HDNwi2wILAg2=|7QhK31@3Y;+vtJ&P# z+%B0sU{=XaC@Cq4VJKocb2s4m5$2D+3U-ZZ=MFHX9BF3RxFcG&E0DQa>tL6DM&U8$ lbqiE2 zq{SEtnF2P*cPCAVU<%=laaI(FXL!W4povB0s6rWI2;Y*nMnSPP4xWq(Tje`=8!QA@ zrQ3yUeEjb2Zu6?F;mbqYk2fGz|e;`qf2<9gtM@)*-?jd9fri5SqWxeoK@8vM4K3=*fMHe?_ZAzI zR)1%oW2T^K*6`?WfT0g>MwjqH31?wpv!f2_It+<9vl7g{IIF5Th&C}!v1Qb{-oHkX yvBPnh*dlhOkQ~MkUS?$tqYNp2m23tM1BOqLzJ*Ha`PYFqGkCiCxvX}1{rUgjo>{X&Ft+*O9A+kmEc+?1E9{OwWcK6r z=;B@AB!0p4py>ilzm`+y-LJD;Ygi|tv6CUogK3wV*b2|T0Y`-!DwqQvR?d)bh>-8# zUXUe}DCMBm=#%U6`EcC|HO3XQTyFhtyhfZ@zKE mz=LlI+mSRC(@X{y35LJ&mF40hK4L)UF?hQAxvX}1{rUgjo>{YjHTJ;OtDy`YZ`+Gx%irJo%NRM2 zvptDf;~u~0;VTWxECjm@O$-x*c}k8k2^?F-`K-Ne#Ss>Tdkj--_&+lXyk;(B4DnU+ zab^-|_Q`SC)X8{?EmNprm1jx|tG1YZ!+{!weGM{ED!&^!@A3zH=O#aoXzl? sam4}wTcw3b+zYZKBs_hk7#P_YSX{mACrtVF9_UI2Pgg&ebxsLQ0H-ojs{jB1 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-delete-handler-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-delete-handler-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..90ce640805367321e8fdd287be6cdba678aa952c GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GnVv3=Ar-fh{`~)M&+N&tByoS^!Fq*x{7K1&6)Y!63C!kP zmCq=kE@NOar$0|2M2B%z8{=V-l-V0P4V8W~9yZaq{qWCEml;xSCH~5pNe4#?NMf$^!_H$QU*^~KbLh*2~7Ysu|f9$ literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-delete-handler.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-delete-handler.png new file mode 100644 index 0000000000000000000000000000000000000000..7708b402daa532feaf95e0b20107b75be944bc8e GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GS)MMAAr-f#Ot{E-z<`5QxV*T(WK$V``)04D9bW^LX7oRq zdt~-1tFo>?329sH0#Dqx`OFkH{p+g*JEA96G6-5)X|yXFr`=oVxB4M}z=FWTmF>3P v54_iMIB_cpw&W;Ox8#%rWWQXW$H>Nz?d20&>$vOz&{hUdS3j3^P6MFLJN!L_;Ipc1F^6Kw)@|-*idM1jTbYYm`5!NK>(6#m2mD4jlHoSVM(wBA2 zanbdA48NDy*7Tk8W;coa^>4b$@sq-jmL2~SzR#a+Bl8er* literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-open-handler-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-open-handler-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..655d944c16d303984beb208b5c07db92113b1e4e GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GD?D8sLn>}1{rUgjp4pRO$-#tg|NcAJ$R9b@=2)a)s$eD@ za-T`T&tOjR0{OcRDzYVF)e6fQ8}tm#u&o4q^(i#8T*1I3=?kgA7OKt z!*SJEe$|bSHC>0M~7NTJMjlYGR4 zKM4$_?_C#owq5zk9JGQX;WM+3VH=x?FVBmvjadpT3`{%>2e%YV{$8xZ3v@Gsr>mdK II;Vst06|M#0{{R3 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-open-handler.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-open-handler.png new file mode 100644 index 0000000000000000000000000000000000000000..241699257e0cbffe03f38de728f25d9b3a470804 GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1Gi#%N%Ln>}1{rUgjo>{Yj(`Co5UH{l0{oEna_{1UWfmA~R zqkuXC>+g*kY@MnOR}YwqFnwfI&|}c@a0uc_5_fp&kR>6JSjXVS#jx_PLk`1{&H&rb z3%g{?-{1Soc$D9PD`l&4$ibSFqY9QY~2pwoG%|~SSR7kJWGwOW$<+Mb6Mw<&;$TP CJ6ur! literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-remove-handler-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-remove-handler-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..c10c90b67d387db217e56b9fed38e2b645b50470 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1Gnw~C>Ar-fh{`~)M&#c+d+2~@xVY)%az$C_D5}QJwx-0Wz e51z0F24;pyrW|G&&gQN_O$?r{elF{r5}E)8!6f$p literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-remove-handler.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-remove-handler.png new file mode 100644 index 0000000000000000000000000000000000000000..eefa1459f8ef1a9e24dd38c98b7f0faba252c0a1 GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GR-P`7Ar-fh{`~)M&#c+d+2~@xVY

(o#1eB_*YyQtlYr wMTG_(zH1CAN0hZ4rn#^ulqwrWFf#ElY^V@>5ZZm<63`R|Pgg&ebxsLQ04BICc>n+a literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-trash-handler-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-trash-handler-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..4eeec6f848196a5601fce12b9ea4a5c7b4a001b3 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$3?vg*uel1OBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%i3a$DxSsFn*`J!a(!k*Enl%TFj21{q{r~^JqU+{bpaS-i zAirQB7YG=nyqVpALJpoTjv*DdQhK|&7!){|=U)EzfAZ%*l@f(F4s+Ku9uZiT&|NVx z^CCabLD7~K-?wIW@iv-nJ*K_p`rN1bwKWS)Eft-+pAl#lgQu&X%Q~loCIF5G BO}795 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-trash-handler.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-trash-handler.png new file mode 100644 index 0000000000000000000000000000000000000000..7d4a6f78743b13b2aa526ba0a4acb8b4d4da2820 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$3?vg*uel1OBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%i3a$DxGr3{aL=ASO-)TO-pp=5AqP(v$B>F!DZSlX38_ZV zd61vup=jHR?_0CGco&*(ZPQ+HeeP5J+8jnUh6{I@mgc_K2>_bK;OXk;vd$@?2>|D8g)qZi klR31Gbz~+nI5aRayvs7)+~V?Y70@mQPgg&ebxsLQ0L&plLjV8( literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-viewsite-link.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-tools-viewsite-link.png new file mode 100644 index 0000000000000000000000000000000000000000..9f678a864160092a30ff7353210def576843f47a GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GZJsWUAr-fh{`~)M&#c+NI`i?HH+v-JKiXUU{n(}joj;p6 zCamr0>3Q)bZGw#OEKVi|F9r?HWsMb*yC%=v5W#)S!GO18al@?X53e$O<&H2s!M5O; z&V+`Ito`gxYRyi(QUV%&hhFkLS&*t?n#sT- Z!C)uqekMh%N(Ja522WQ%mvv4FO#o9DQ<4Ax literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-trash-list-toggle-handler-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-trash-list-toggle-handler-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..220578336421b5d39080a7e7cf0d62592be40021 GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XVm)0PLn>}1l@t~lCL|<8@E_sgS<=YvAalZHSsL4ld0%}} zvf88%9dS@hXuQ;u^6J08sd&QyNujT^7Dy);y=q$cib*YFU6z8gzQ=jy35<;nGW=fC hRFWplb7){-X2{Nx`fz4jTtCnv22WQ%mvv4FO#qdOK7arK literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-trash-list-toggle-handler.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-trash-list-toggle-handler.png new file mode 100644 index 0000000000000000000000000000000000000000..81593993a38c4f9ff523a375ed11f8478462c25d GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XdOTemLn>}1natRGzoD@)(N;j)U;>*QL!pB3%vq8Ps;(JN zTq&8yAqKh fJePzy1QHnT%(Z9bE?j8~bQgoCtDnm{r-UW|BwA2s literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-unknown.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-unknown.png new file mode 100644 index 0000000000000000000000000000000000000000..0b7d18097849e7e2708c88b439f4ab063fba30b6 GIT binary patch literal 406 zcmV;H0crk;P)!GOK5;0q{QDG1^pu@WD^E*KC~31Te>+6xlDBWLAu*~Ed5yWD$c z=G>XtB+v7S$d*kV7T^*3aBKc74Zf?;gR literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon-yes.png b/ddtcms/grappelli/static/grappelli/img/icons/icon-yes.png new file mode 100644 index 0000000000000000000000000000000000000000..2f14079483139797a98b90e826baf67337bb4222 GIT binary patch literal 396 zcmV;70dxL|P)H;IMjbQfdGdTLyg0EbQgq!G)ED#%2pwr;pLZ`=)$o~(7?b6I9PZY)I}T_ zPCZ$ME@jLF4P`j6kxyl?Q^-IBwM;a_k3XLoF22}=u33l)7VI$a`R7ZZ=5z*MjYhDo zW-?I>hab$u=BRg|cs>P96kq_d0b~Q2Z;5cCK9qy4`vY)k_0H! qgP^Y1iWCd4q5M#&JUn&)0t^7eWlzwc+im>-0000f4NtU=qlmzFem6RtIr7}3CgxXrM;#6{ z@Hcn-Kcc~=ePpQwi-AZ|a8Iz}uB4P!ofrE=L`7LIhp&%gUD?vk#=T9UQIl;ZPw*KI zlWmM1*OM=Q`1LhA;6vk8L&nat4tF|Erx+Rf4NtU=qlmzFem6RtIr7}3C*h@1p?I1(n8e#bz)#crBvq8_{`^jfI1e`!4^IoMkkcHh34?|pCHH}CLP zrzS5a;%DO&MI{R3`4X|my!U7a`3`(qn;_;49Z>!}Bt`x8EvZ*tYhhbdZBGD8j47rvh*AWI)R8tL+{`u-P4OB&>XEH^$XpNvb zb$rQ2(@T?Od8saE6?$keF1S1)&=Hn^t80eCyCUuL^5oxJhBWXYxGvJcp(@2GFk;#W z^fDa7C1tiR4Kisao#Fbp-V1gU-E-W)GL_$Q&TpZ=;t+Ng|d-T7as{>Cl%M>=pdBw?^duAFomY_?liX4n~r zW&CD1Eb@rAog`ACCEJ#(C7B{nTdqinmTX(DmSl=RZMh;PTC#1qT9PRO{Y$R+{=kY1 zGB-8IIQo8fO(UZ$D&%uzce}c~w>K2qTt5CdD+pa1pNrsH?8}Yer}vmm``bjvd7Yi4bO$q$^5fRH*fz24ecgF literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/icon_inline-item-tools_closehandler.png b/ddtcms/grappelli/static/grappelli/img/icons/icon_inline-item-tools_closehandler.png new file mode 100644 index 0000000000000000000000000000000000000000..c3183bf3d584466122020142ebea46d58dc99c6a GIT binary patch literal 3046 zcmeAS@N?(olHy`uVBq!ia0vp^{2JM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)C80k)DxmvVobgf~m2d zv8j=nk%^9ik%57QzJa;Ev4O6kg_VJ+m5HGO6e!toDcBUHq*(>IxIwK0@@$ndN=gc> z^!3Zj%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUl|e>8%y3C9PA<)LWmeJ%7Lj(AD-Nx-h`$MT2bJ{Kr6#x z=8jqd3kjm=(cmH~m|%)Vg9{cCMA4(cMN}}s6paQKEF_4cM}v!~V1g;a7hGJ325V{_ zu-#M+Y>uA#Gc^a;lwIWM;uunKE9uYw|Mtu~8(62iR8;JcpOD4=XxCKj@O4L*wF%BX z>(Hy_kYy!M&zcmcaE?)`KqgjJSgg0oAxlgkpEb!}A&&ouapR-53R7m$9gHhm9cqL+ zq8ql=vR}$|sNqoIoAUiYdNHHGeTGLd3g4Kt_Hiv?UifHw!;TD#-;ygn@_R6N{8v7C y{s@yA8y5rjtoi9eml(ddS%u~-J8_JM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)C80k)DxmvVobgf~m2d zv8j=nk%^9ik%57QzJa;Ev4O6kg_VJ+m5HGO6e!toDcBUHq*(>IxIwK0@@$ndN=gc> z^!3Zj%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUl|e>8%y3C9PA<)LWmeJ%7Lj(AD-Nx-h`$MT2bJ{Kr6#x z=8jqd3kjm=(cmH~m|%)Vg9{cCMA4(cMN}}s6paQKEF_4cM}v!~V1g;a7hGJ325V{_ zu-#M+Y>uA#Gc^a;lwITL;uunKE9uYw|Mtu~8(3!w%gNbIp3pW`JAB#U8$LWD3~pX? zd?%iLQFo7Ri5*j+&V~H?2}c}Xi7{-H2)M&L{j6|91apVFvuT5gk>k;?4LkVP&u{Gd zx?o!l(<46xJ+?;%3VrOis^%p$F!CBO23>Cap)K&4sgN(=ap9hYy>HSLzA-&2Q&`9R zs8{8uWXEf4NtU=qlmzFem6RtIr7}3CcRWA*f4NtU=qlmzFem6RtIr7}3C?8EwmHRg&6Mb1c@pV6CH;dY6LS)?jKTp1)ufEY Ua&H;_0gYzxboFyt=akR{0QjCe0ssI2 literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/ui-datepicker-prev-hover.png b/ddtcms/grappelli/static/grappelli/img/icons/ui-datepicker-prev-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..8ca2c4026c901b0757e3844279ab6d9945822e35 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3CY8yhAtwiWZ8VGrVT z*u$W9j3cPm`{GZLc9%6=g_=%*9sYtG38l(r4!f?ZRI;s4N@A8#IKc4eR!-!L)#nO< P#xi)i`njxgN@xNAC4n~j literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/icons/ui-datepicker-prev.png b/ddtcms/grappelli/static/grappelli/img/icons/ui-datepicker-prev.png new file mode 100644 index 0000000000000000000000000000000000000000..adbc08acf466bb6e0015d41280bdeb3df6220b27 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3CFVdQ&MBb@0GRSXNdN!< literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/img/input-throbber.gif b/ddtcms/grappelli/static/grappelli/img/input-throbber.gif new file mode 100644 index 0000000000000000000000000000000000000000..19c2e0a36f3fba9415f38253f03fddb914ff3b97 GIT binary patch literal 1737 zcmaLXX;2eq7{Kv0&>Vn}$SzURh5#0jGqQAZhb##j2pT|Fst8EHAjSxl;?Zkb-(|O# zE!$3y>DXHBZHrW-n%0X;0R;g?L_ri(6ct4jQBZ4ZYriplKECtJJHMI#%wtX_lq#DL z5<=q;^!V{(`R1D58+U#>dGU?fQ~A|xD|WZPd$^~%=gNg!cX#((nZLa$?dRr<9Y>e$ zY|X1~qYs^Fym*87{_v)z-jVT%(R-7}E{}ZOG4Rsf6R+2tIy!js^ziLvRmbpe4{bX> z@JHX(R}Xf5($aV3&b=?&`!!qZ%NkBsb`OI3(+vZ|g?l=bTj~y;zqY;WlJUDkabMLA z-@Si#^1(+(&Teiye{b^P7st;3es*Z`;iHF-9<>bK?7TWU@!(umk+HFf2mK>=KR()5H*meS|N83RkC*K2+;Fh#&AM*; zZ|%9ejjKt>=E|ytwo9<+b}ye%E=y={oLkb)@{%w5NASyRBaJb=|&m zSJ5wPD!K=)+nWvFG-U5={jj-rQN>YgOYM7&J;^^dmhS6(`|z31ThBrNP2gisYa+SO zh^HmSM$6r%{rw*Jr@yhpZY#Afm#tq}S}3zQY#W@#w&l?)iwcUNzzKJO$KP9#Pkwk3 z5#oLD76hm=nwA95iDGE}v$Mma0j5^a9-hxV9}xo-aver-xHF^-2E(60Zl1oIAYHr; zxO<7JP(wU;W;$F2X%Yd~8>v#@dcgDXtAZ0WfX@|I>5V2J5Y7x>G!cFTC7LA*k;qYj zlCSM6^A8N=&5e^rY6Y8u(sr@~+lUWy>t}E|QwcXc6>8jGTjy#xV5=O3zu5g@kW)#|(! zC|Ss_CJl8^ym)~>6T>kb0IJxyWPw^8lb9>%r0|f8$jktX(MGbQD%nvX{1{>?DTp&| zD&V_MfdUWTmE4?24g(o^DO?}#>0S;et;|_bn2sRE1*^RHRM2v(mMM%%lYo3-0SgIN zXM;#zy~|SM0I^AO7a1J|q;aT=enD*RD9g1QU6`7J0}5(rwXU5qzYu_v3WXewK``22 z3^OL+8bi!kh7d?f?#pKUnz`FBm9G4$Eabd9JUGcIA#@4Z zKB-!Y42e}T1I1AJ+c*Y`7>}+Dm=SqN|HqT{QodV2Z zdY3gk7!bM2Aoiu{I2Dtt3X%iG7_^3l6FGt)QioziSGURtuV-dXE1vT#%%95mUt-u+ zY?p?J;u%N~vBoZrOY)8NqfJ^5KLd(#Jf0W&Q-o5hVJtFV12E)ESjfKA3G_VB5|!7V+ChQ;Pb@d6!XiXC%s?cr%(n#a*Ldh@M3QSJF?EoCMg~q{27L^Z5NFQ= zI>8RMc!3CzCX|Kryuy9EYKR;jK*}5EhXOgFs7aW&9AIcCo9%E?ie5Uz$7*KWBSQK`MI42_clZgefnnHvIP!*lj$ z@z<<+xP#) zF$y(-AOyxx7)ro-CXGK@BST8D3hAkCA*_s{$VAxn*H literal 0 HcmV?d00001 diff --git a/ddtcms/grappelli/static/grappelli/jquery/i18n/ui.datepicker-de.js b/ddtcms/grappelli/static/grappelli/jquery/i18n/ui.datepicker-de.js new file mode 100644 index 0000000..a100aa1 --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/jquery/i18n/ui.datepicker-de.js @@ -0,0 +1,20 @@ +/* German initialisation for the jQuery UI date picker plugin. */ +/* Written by Milian Wolff (mail@milianw.de). */ +jQuery(function($){ + $.datepicker.regional['de'] = { + closeText: 'schließen', + prevText: '<zurück', + nextText: 'Vor>', + currentText: 'heute', + monthNames: ['Januar','Februar','März','April','Mai','Juni', + 'Juli','August','September','Oktober','November','Dezember'], + monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dez'], + dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], + dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'], + dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'], + dateFormat: 'yy-mm-dd', firstDay: 1, + isRTL: false}; + $.datepicker.setDefaults($.datepicker.regional['de']); +}); + diff --git a/ddtcms/grappelli/static/grappelli/jquery/i18n/ui.datepicker-fr.js b/ddtcms/grappelli/static/grappelli/jquery/i18n/ui.datepicker-fr.js new file mode 100644 index 0000000..2652968 --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/jquery/i18n/ui.datepicker-fr.js @@ -0,0 +1,19 @@ +/* French initialisation for the jQuery UI date picker plugin. */ +/* Written by Keith Wood (kbwood@virginbroadband.com.au) and Stéphane Nahmani (sholby@sholby.net). */ +jQuery(function($){ + $.datepicker.regional['fr'] = { + closeText: 'Fermer', + prevText: '<Préc', + nextText: 'Suiv>', + currentText: 'Courant', + monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin', + 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], + monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun', + 'Jul','Aoû','Sep','Oct','Nov','Déc'], + dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], + dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'], + dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'], + dateFormat: 'yy-mm-dd', firstDay: 1, + isRTL: false}; + $.datepicker.setDefaults($.datepicker.regional['fr']); +}); diff --git a/ddtcms/grappelli/static/grappelli/jquery/jquery-1.4.2.min.js b/ddtcms/grappelli/static/grappelli/jquery/jquery-1.4.2.min.js new file mode 100644 index 0000000..7c24308 --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/jquery/jquery-1.4.2.min.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/ddtcms/grappelli/static/grappelli/jquery/jquery-1.6.2.min.js b/ddtcms/grappelli/static/grappelli/jquery/jquery-1.6.2.min.js new file mode 100644 index 0000000..48590ec --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/jquery/jquery-1.6.2.min.js @@ -0,0 +1,18 @@ +/*! + * jQuery JavaScript Library v1.6.2 + * 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: Thu Jun 30 14:16:56 2011 -0400 + */ +(function(a,b){function cv(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cs(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"":"")+""),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cr(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cq(){cn=b}function cp(){setTimeout(cq,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bx(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bm(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(be,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bl(a){f.nodeName(a,"input")?bk(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bk)}function bk(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bj(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bi(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bh(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(a,b){return(a&&a!=="*"?a+".":"")+b.replace(z,"`").replace(A,"&")}function M(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function K(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function E(){return!0}function D(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z])/ig,x=function(a,b){return b.toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.done(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(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!A){A=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||D.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0},m&&f.extend(p,{position:"absolute",left:-1e3,top:-1e3});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]||i[c]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=w:v&&c!=="className"&&(f.nodeName(a,"form")||u.test(c))&&(i=v)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}},value:{get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return f.prop(a,c)?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.attrHooks.title=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=/\.(.*)$/,y=/^(?:textarea|input|select)$/i,z=/\./g,A=/ /g,B=/[^\w\s.|`]/g,C=function(a){return a.replace(B,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=D;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=D);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),C).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i. +shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},J=function(c){var d=c.target,e,g;if(!!y.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=I(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:J,beforedeactivate:J,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&J.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&J.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",I(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in H)f.event.add(this,c+".specialChange",H[c]);return y.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return y.test(this.nodeName)}},H=f.event.special.change.filters,H.focus=H.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=T.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var X=/ jQuery\d+="(?:\d+|null)"/g,Y=/^\s+/,Z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,$=/<([\w:]+)/,_=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};bf.optgroup=bf.option,bf.tbody=bf.tfoot=bf.colgroup=bf.caption=bf.thead,bf.th=bf.td,f.support.htmlSerialize||(bf._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(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,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(X,""):null;if(typeof a=="string"&&!bb.test(a)&&(f.support.leadingWhitespace||!Y.test(a))&&!bf[($.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Z,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j +)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bi(a,d),e=bj(a),g=bj(d);for(h=0;e[h];++h)bi(e[h],g[h])}if(b){bh(a,d);if(c){e=bj(a),g=bj(d);for(h=0;e[h];++h)bh(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!ba.test(k))k=b.createTextNode(k);else{k=k.replace(Z,"<$1>");var l=($.exec(k)||["",""])[1].toLowerCase(),m=bf[l]||bf._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=_.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Y.test(k)&&o.insertBefore(b.createTextNode(Y.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bo.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bn.test(g)?g.replace(bn,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bx(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(by=function(a,c){var d,e,g;c=c.replace(bp,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bz=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bq.test(d)&&br.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bx=by||bz,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bB=/%20/g,bC=/\[\]$/,bD=/\r?\n/g,bE=/#.*$/,bF=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bG=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bH=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bI=/^(?:GET|HEAD)$/,bJ=/^\/\//,bK=/\?/,bL=/)<[^<]*)*<\/script>/gi,bM=/^(?:select|textarea)/i,bN=/\s+/,bO=/([?&])_=[^&]*/,bP=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bQ=f.fn.load,bR={},bS={},bT,bU;try{bT=e.href}catch(bV){bT=c.createElement("a"),bT.href="",bT=bT.href}bU=bP.exec(bT.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bQ)return bQ.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bL,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bM.test(this.nodeName)||bG.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bD,"\r\n")}}):{name:b.name,value:c.replace(bD,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bT,isLocal:bH.test(bU[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,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":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bW(bR),ajaxTransport:bW(bS),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?bZ(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=b$(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bF.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bE,"").replace(bJ,bU[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bN),d.crossDomain==null&&(r=bP.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bU[1]&&r[2]==bU[2]&&(r[3]||(r[1]==="http:"?80:443))==(bU[3]||(bU[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bX(bR,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bI.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bK.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bO,"$1_="+x);d.url=y+(y===d.url?(bK.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bX(bS,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bB,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn,co=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cr("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b
";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cu.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cu.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cv(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cv(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/ddtcms/grappelli/static/grappelli/jquery/jquery.cookie.min.js b/ddtcms/grappelli/static/grappelli/jquery/jquery.cookie.min.js new file mode 100644 index 0000000..bde034a --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/jquery/jquery.cookie.min.js @@ -0,0 +1,7 @@ +// Copyright (c) 2006 Klaus Hartl (stilbuero.de) + +jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options.expires=-1;} +var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){var date;if(typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000));}else{date=options.expires;} +expires='; expires='+date.toUTCString();} +var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; domain='+(options.domain):'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('');}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i= 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/36395b7ab510dd5d + if (options.closeKeepAlive) { + $.get(options.closeKeepAlive, function() { fileUpload(a); }); + } + else { + fileUpload(a); + } + } + 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(a) { + var form = $form[0], i, s, g, id, $io, io, xhr, sub, n, timedOut, timeoutHandle; + + if (a) { + // ensure that every serialized input is still enabled + for (i=0; i < a.length; i++) { + $(form[a[i].name]).attr('disabled', false); + } + } + + 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; + } + + s = $.extend(true, {}, $.ajaxSettings, options); + s.context = s.context || s; + id = 'jqFormIO' + (new Date().getTime()); + if (s.iframeTarget) { + $io = $(s.iframeTarget); + n = $io.attr('name'); + if (n == null) + $io.attr('name', id); + else + id = n; + } + else { + $io = $('': +"");a._keyEvent=false;return w},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='
',o="";if(h||!j)o+=''+i[b]+"";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='"}u||(k+=o+(h||!(j&&l)?" ":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+=''+c+"";else{g=this._get(a,"yearRange").split(":");var s=(new Date).getFullYear();i=function(q){q=q.match(/c[+-].*/)?c+parseInt(q.substring(1),10):q.match(/[+-].*/)?s+parseInt(q,10):parseInt(q,10);return isNaN(q)?s:q};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b, +e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='";k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?" ":"")+o;k+="
";return k},_adjustInstDate:function(a,b,c){var e=a.drawYear+(c=="Y"?b:0),f=a.drawMonth+ +(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&ba?a:b},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");if(b)b.apply(a.input? +a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);c=this._daylightSavingAdjust(new Date(c, +e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a, +"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=function(a){if(!this.length)return this; +if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));return this.each(function(){typeof a== +"string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new M;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.15";window["DP_jQuery_"+B]=d})(jQuery); +; \ No newline at end of file diff --git a/ddtcms/grappelli/static/grappelli/jquery/ui/js/jquery-ui-1.8.5.custom.min.js b/ddtcms/grappelli/static/grappelli/jquery/ui/js/jquery-ui-1.8.5.custom.min.js new file mode 100644 index 0000000..827b5f0 --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/jquery/ui/js/jquery-ui-1.8.5.custom.min.js @@ -0,0 +1,778 @@ +/*! + * jQuery UI 1.8.5 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.5",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106, +NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this, +"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position"); +if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"));if(!isNaN(b)&&b!=0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind("mousedown.ui-disableSelection selectstart.ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f, +"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c.style(this,h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c.style(this, +h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}}); +c(function(){var a=document.createElement("div"),b=document.body;c.extend(a.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.appendChild(a).offsetHeight===100;b.removeChild(a).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); +;/* + * jQuery UI Position 1.8.5 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Position + */ +(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.scrollTo&&d.document){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j= +{top:b.of.pageY,left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/ +2;if(b.at[1]==="bottom")j.top+=k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+parseInt(c.curCSS(this,"marginRight",true))||0,w=m+q+parseInt(c.curCSS(this,"marginBottom",true))||0,i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]=== +"center")i.top-=m/2;i.left=parseInt(i.left);i.top=parseInt(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft(); +b.left=d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0]; +b.left+=a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d= +c(b),g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery); +;/* + * jQuery UI Draggable 1.8.5 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== +"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b= +this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top- +this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions(); +d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis|| +this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if(!this.element[0]||!this.element[0].parentNode)return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element, +b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this== +a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]|| +0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], +this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top- +(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment== +"parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&& +a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"), +10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], +this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft(): +f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.leftthis.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?e:!(e-this.offset.click.left').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})},stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options; +if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!= +"HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e=j&&f<=l||h>=j&&h<=l||fl)&&(e>= +i&&e<=k||g>=i&&g<=k||ek);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), +top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= +this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", +nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== +String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection(); +this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){e(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()}; +if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(), +d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset= +this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio: +this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize", +b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height; +f={width:c.size.width-(f?0:c.sizeDiff.width),height:c.size.height-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop", +b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(d=="nw"){b.top= +a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidthb.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height, +k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+ +a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this, +arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable, +{version:"1.8.5"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize, +function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n= +(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition= +false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left- +a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize", +b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top", +"Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset, +f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left= +a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+ +a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&& +e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative", +height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width= +d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery); +;/* + * jQuery UI Selectable 1.8.5 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), +selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("
")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, +c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting", +c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d= +this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.righti||a.bottomb&&a.rightg&&a.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable"); +this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this, +arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem= +c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset, +{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment(); +if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start", +a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute"); +if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a, +c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]== +document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp();this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate", +null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem): +d(this.domPosition.parent).prepend(this.currentItem);return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute|| +"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+jg&&b+la[this.floating?"width":"height"]?j:g0?"down":"up")}, +_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!= +this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a= +this.currentItem.find(":data(sortable-item)"),b=0;b=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable"); +if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h= +0;b--){var c=this.items[b],e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width= +this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f}, +update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b= +null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this)); +this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-f)this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])? +g:!(g-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive", +g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over= +0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",a,this._uiHash());for(e=0;e li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"); +a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); +if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var f=d.closest(".ui-accordion-header");a.active=f.length?f:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion",function(g){return a._keydown(g)}).next().attr("role", +"tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(g){a._clickHandler.call(a,g,this);g.preventDefault()})},_createIcons:function(){var a=this.options;if(a.icons){c("").addClass("ui-icon "+a.icons.header).prependTo(this.headers); +this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex"); +this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons(); +b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,f=this.headers.index(a.target),g=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:g=this.headers[(f+1)%d];break;case b.LEFT:case b.UP:g=this.headers[(f-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target); +a.preventDefault()}if(g){c(a.target).attr("tabIndex",-1);c(g).attr("tabIndex",0);g.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+ +c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options; +if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected); +a.next().addClass("ui-accordion-content-active")}h=a.next();f=this.active.next();g={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):h,oldContent:f};d=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(h,f,g,b,d)}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); +this.active.next().addClass("ui-accordion-content-active");var f=this.active.next(),g={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:f},h=this.active=c([]);this._toggle(h,f,g)}},_toggle:function(a,b,d,f,g){var h=this,e=h.options;h.toShow=a;h.toHide=b;h.data=d;var j=function(){if(h)return h._completed.apply(h,arguments)};h._trigger("changestart",null,h.data);h.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&f?{toShow:c([]),toHide:b,complete:j, +down:g,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:g,autoHeight:e.autoHeight||e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;f=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!f[k]&&!c.easing[k])k="slide";f[k]||(f[k]=function(l){this.slide(l,{easing:k,duration:i||700})}); +f[k](d)}else{if(e.collapsible&&f)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.5",animations:{slide:function(a, +b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),f=0,g={},h={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){h[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/);g[i]={value:j[1], +unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(h,{step:function(j,i){if(i.prop=="height")f=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=f*g[i.prop].value+g[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide",paddingTop:"hide", +paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery); +;/* + * jQuery UI Autocomplete 1.8.5 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Autocomplete + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.position.js + */ +(function(e){e.widget("ui.autocomplete",{options:{appendTo:"body",delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},_create:function(){var a=this,b=this.element[0].ownerDocument;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!a.options.disabled){var d=e.ui.keyCode;switch(c.keyCode){case d.PAGE_UP:a._move("previousPage", +c);break;case d.PAGE_DOWN:a._move("nextPage",c);break;case d.UP:a._move("previous",c);c.preventDefault();break;case d.DOWN:a._move("next",c);c.preventDefault();break;case d.ENTER:case d.NUMPAD_ENTER:a.menu.element.is(":visible")&&c.preventDefault();case d.TAB:if(!a.menu.active)return;a.menu.select(c);break;case d.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!=a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay); +break}}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)};this.menu=e("
    ").addClass("ui-autocomplete").appendTo(e(this.options.appendTo||"body",b)[0]).mousedown(function(c){var d=a.menu.element[0]; +c.target===d&&setTimeout(function(){e(document).one("mousedown",function(f){f.target!==a.element[0]&&f.target!==d&&!e.ui.contains(d,f.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,d){d=d.item.data("item.autocomplete");false!==a._trigger("focus",null,{item:d})&&/^key/.test(c.originalEvent.type)&&a.element.val(d.value)},selected:function(c,d){d=d.item.data("item.autocomplete");var f=a.previous;if(a.element[0]!==b.activeElement){a.element.focus(); +a.previous=f}if(false!==a._trigger("select",c,{item:d})){a.term=d.value;a.element.val(d.value)}a.close(c);a.selectedItem=d},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");e.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"); +this.menu.element.remove();e.Widget.prototype.destroy.call(this)},_setOption:function(a,b){e.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(e(b||"body",this.element[0].ownerDocument)[0])},_initSource:function(){var a=this,b,c;if(e.isArray(this.options.source)){b=this.options.source;this.source=function(d,f){f(e.ui.autocomplete.filter(b,d.term))}}else if(typeof this.options.source==="string"){c=this.options.source;this.source= +function(d,f){a.xhr&&a.xhr.abort();a.xhr=e.getJSON(c,d,function(g,i,h){h===a.xhr&&f(g);a.xhr=null})}}else this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length").data("item.autocomplete",b).append(e("").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});e.extend(e.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}, +filter:function(a,b){var c=new RegExp(e.ui.autocomplete.escapeRegex(b),"i");return e.grep(a,function(d){return c.test(d.label||d.value||d)})}})})(jQuery); +(function(e){e.widget("ui.menu",{_create:function(){var a=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(b){if(e(b.target).closest(".ui-menu-item a").length){b.preventDefault();a.select(b)}});this.refresh()},refresh:function(){var a=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", +-1).mouseenter(function(b){a.activate(b,e(this).parent())}).mouseleave(function(){a.deactivate()})},activate:function(a,b){this.deactivate();if(this.hasScroll()){var c=b.offset().top-this.element.offset().top,d=this.element.attr("scrollTop"),f=this.element.height();if(c<0)this.element.attr("scrollTop",d+c);else c>=f&&this.element.attr("scrollTop",d+c-f+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",a,{item:b})}, +deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,c){if(this.active){a=this.active[a+"All"](".ui-menu-item").eq(0); +a.length?this.activate(c,a):this.activate(c,this.element.children(b))}else this.activate(c,this.element.children(b))},nextPage:function(a){if(this.hasScroll())if(!this.active||this.last())this.activate(a,this.element.children(":first"));else{var b=this.active.offset().top,c=this.element.height(),d=this.element.children("li").filter(function(){var f=e(this).offset().top-b-c+e(this).height();return f<10&&f>-10});d.length||(d=this.element.children(":last"));this.activate(a,d)}else this.activate(a,this.element.children(!this.active|| +this.last()?":first":":last"))},previousPage:function(a){if(this.hasScroll())if(!this.active||this.first())this.activate(a,this.element.children(":last"));else{var b=this.active.offset().top,c=this.element.height();result=this.element.children("li").filter(function(){var d=e(this).offset().top-b+c-e(this).height();return d<10&&d>-10});result.length||(result=this.element.children(":first"));this.activate(a,result)}else this.activate(a,this.element.children(!this.active||this.first()?":last":":first"))}, +hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary;if(d.primary||d.secondary){b.addClass("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary"));d.primary&&b.prepend("");d.secondary&&b.append("");if(!this.options.text){b.addClass(e?"ui-button-icons-only":"ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary"); +this.hasTitle||b.attr("title",c)}}else b.addClass("ui-button-text-only")}}});a.widget("ui.buttonset",{_create:function(){this.element.addClass("ui-buttonset");this._init()},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(":button, :submit, :reset, :checkbox, :radio, a, :data(button)").filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":visible").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end().end()}, +destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");a.Widget.prototype.destroy.call(this)}})})(jQuery); +;/* + * jQuery UI Dialog 1.8.5 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.button.js + * jquery.ui.draggable.js + * jquery.ui.mouse.js + * jquery.ui.position.js + * jquery.ui.resizable.js + */ +(function(c,j){c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",of:window,collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title"); +if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||" ",f=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("
    ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog", +"aria-labelledby":f}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var e=(a.uiDialogTitlebar=c("
    ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),h=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i); +return false}).appendTo(e);(a.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("").addClass("ui-dialog-title").attr("id",f).html(d).prependTo(e);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;e.find("*").add(e).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&& +g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog"); +b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==b.uiDialog[0])d=Math.max(d,c(this).css("z-index"))});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,f=d.options;if(f.modal&&!a||!f.stack&&!f.modal)return d._trigger("focus",b);if(f.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ= +f.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;d.next().length&&d.appendTo("body");a._size();a._position(b.position);d.show(b.show); +a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(f){if(f.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),e=g.filter(":first");g=g.filter(":last");if(f.target===g[0]&&!f.shiftKey){e.focus(1);return false}else if(f.target===e[0]&&f.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false, +f=c("
    ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("
    ").addClass("ui-dialog-buttonset").appendTo(f);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a,function(e,h){h=c.isFunction(h)?{click:h,text:e}:h;e=c("",h).unbind("click").click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.fn.button&&e.button()});f.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(e){return{position:e.position, +offset:e.offset}}var b=this,d=b.options,f=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(e,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",e,a(h))},drag:function(e,h){b._trigger("drag",e,a(h))},stop:function(e,h){d.position=[h.position.left-f.scrollLeft(),h.position.top-f.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g); +b._trigger("dragStop",e,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}a=a===j?this.options.resizable:a;var d=this,f=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:f.maxWidth,maxHeight:f.maxHeight,minWidth:f.minWidth,minHeight:d._minHeight(), +handles:a,start:function(e,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",e,b(h))},resize:function(e,h){d._trigger("resize",e,b(h))},stop:function(e,h){c(this).removeClass("ui-dialog-resizing");f.height=c(this).height();f.width=c(this).width();d._trigger("resizeStop",e,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight, +a.height)},_position:function(a){var b=[],d=[0,0],f;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,e){if(+b[g]===b[g]){d[g]=b[g];b[g]=e}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(f=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(a); +f||this.uiDialog.hide()},_setOption:function(a,b){var d=this,f=d.uiDialog,g=f.is(":data(resizable)"),e=false;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);e=true;break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":f.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?f.addClass("ui-dialog-disabled"):f.removeClass("ui-dialog-disabled");break;case "draggable":b? +d._makeDraggable():f.draggable("destroy");break;case "height":e=true;break;case "maxHeight":g&&f.resizable("option","maxHeight",b);e=true;break;case "maxWidth":g&&f.resizable("option","maxWidth",b);e=true;break;case "minHeight":g&&f.resizable("option","minHeight",b);e=true;break;case "minWidth":g&&f.resizable("option","minWidth",b);e=true;break;case "position":d._position(b);break;case "resizable":g&&!b&&f.resizable("destroy");g&&typeof b==="string"&&f.resizable("option","handles",b);!g&&b!==false&& +d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||" "));break;case "width":e=true;break}c.Widget.prototype._setOption.apply(d,arguments);e&&d._size()},_size:function(){var a=this.options,b;this.element.css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();this.element.css(a.height==="auto"?{minHeight:Math.max(a.minHeight-b,0),height:c.support.minHeight?"auto":Math.max(a.minHeight- +b,0)}:{minHeight:0,height:Math.max(a.height-b,0)}).show();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.5",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","), +function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){this.oldInstances.push(this.instances.splice(c.inArray(a,this.instances),1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var b=0;c.each(this.instances,function(){b=Math.max(b,this.css("z-index"))});this.maxZ=b},height:function(){var a, +b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a");if(!b.values)b.values=[this._valueMin(),this._valueMin()];if(b.values.length&&b.values.length!==2)b.values=[b.values[0],b.values[0]]}else this.range=d("
    ");this.range.appendTo(this.element).addClass("ui-slider-range");if(b.range==="min"||b.range==="max")this.range.addClass("ui-slider-range-"+b.range);this.range.addClass("ui-widget-header")}d(".ui-slider-handle",this.element).length===0&&d("").appendTo(this.element).addClass("ui-slider-handle"); +if(b.values&&b.values.length)for(;d(".ui-slider-handle",this.element).length").appendTo(this.element).addClass("ui-slider-handle");this.handles=d(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(c){c.preventDefault()}).hover(function(){b.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(b.disabled)d(this).blur(); +else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(c){d(this).data("index.ui-slider-handle",c)});this.handles.keydown(function(c){var e=true,f=d(this).data("index.ui-slider-handle"),h,g,i;if(!a.options.disabled){switch(c.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:e= +false;if(!a._keySliding){a._keySliding=true;d(this).addClass("ui-state-active");h=a._start(c,f);if(h===false)return}break}i=a.options.step;h=a.options.values&&a.options.values.length?(g=a.values(f)):(g=a.value());switch(c.keyCode){case d.ui.keyCode.HOME:g=a._valueMin();break;case d.ui.keyCode.END:g=a._valueMax();break;case d.ui.keyCode.PAGE_UP:g=a._trimAlignValue(h+(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:g=a._trimAlignValue(h-(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(h=== +a._valueMax())return;g=a._trimAlignValue(h+i);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(h===a._valueMin())return;g=a._trimAlignValue(h-i);break}a._slide(c,f,g);return e}}).keyup(function(c){var e=d(this).data("index.ui-slider-handle");if(a._keySliding){a._keySliding=false;a._stop(c,e);a._change(c,e);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"); +this._mouseDestroy();return this},_mouseCapture:function(a){var b=this.options,c,e,f,h,g;if(b.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:a.pageX,y:a.pageY});e=this._valueMax()-this._valueMin()+1;h=this;this.handles.each(function(i){var j=Math.abs(c-h.values(i));if(e>j){e=j;f=d(this);g=i}});if(b.range===true&&this.values(1)===b.min){g+=1;f=d(this.handles[g])}if(this._start(a, +g)===false)return false;this._mouseSliding=true;h._handleIndex=g;f.addClass("ui-state-active").focus();b=f.offset();this._clickOffset=!d(a.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:a.pageX-b.left-f.width()/2,top:a.pageY-b.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};this._slide(a,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(a){var b= +this._normValueFromMouse({x:a.pageX,y:a.pageY});this._slide(a,this._handleIndex,b);return false},_mouseStop:function(a){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(a,this._handleIndex);this._change(a,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b;if(this.orientation==="horizontal"){b= +this.elementSize.width;a=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{b=this.elementSize.height;a=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}b=a/b;if(b>1)b=1;if(b<0)b=0;if(this.orientation==="vertical")b=1-b;a=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+b*a)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b); +c.values=this.values()}return this._trigger("start",a,c)},_slide:function(a,b,c){var e;if(this.options.values&&this.options.values.length){e=this.values(b?0:1);if(this.options.values.length===2&&this.options.range===true&&(b===0&&c>e||b===1&&c1){this.options.values[a]=this._trimAlignValue(b);this._refreshValue();this._change(null,a)}if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;fthis._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=a%b;a=a-c;if(Math.abs(c)*2>=b)a+=c>0?b:-b;return parseFloat(a.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var a= +this.options.range,b=this.options,c=this,e=!this._animateOff?b.animate:false,f,h={},g,i,j,l;if(this.options.values&&this.options.values.length)this.handles.each(function(k){f=(c.values(k)-c._valueMin())/(c._valueMax()-c._valueMin())*100;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";d(this).stop(1,1)[e?"animate":"css"](h,b.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(k===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},b.animate);if(k===1)c.range[e?"animate":"css"]({width:f- +g+"%"},{queue:false,duration:b.animate})}else{if(k===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},b.animate);if(k===1)c.range[e?"animate":"css"]({height:f-g+"%"},{queue:false,duration:b.animate})}g=f});else{i=this.value();j=this._valueMin();l=this._valueMax();f=l!==j?(i-j)/(l-j)*100:0;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](h,b.animate);if(a==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"}, +b.animate);if(a==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:b.animate});if(a==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},b.animate);if(a==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:b.animate})}}});d.extend(d.ui.slider,{version:"1.8.5"})})(jQuery); +;/* + * jQuery UI Tabs 1.8.5 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
    ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
  • #{label}
  • "},_create:function(){this._tabify(true)},_setOption:function(a,e){if(a=="selected")this.options.collapsible&& +e==this.options.selected||this.select(e);else{this.options[a]=e;this._tabify()}},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")},_cookie:function(){var a=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[a].concat(d.makeArray(arguments)))},_ui:function(a,e){return{tab:a,panel:e,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var a= +d(this);a.html(a.data("label.tabs")).removeData("label.tabs")})},_tabify:function(a){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var b=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]|| +(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))b.panels=b.panels.add(b._sanitizeSelector(i));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=b._tabId(f);f.href="#"+i;f=d("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(b.panels[g-1]||b.list);f.data("destroy.tabs",true)}b.panels=b.panels.add(f)}else c.disabled.push(g)});if(a){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); +this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(b._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected= +this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return b.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); +if(c.selected>=0&&this.anchors.length){this.panels.eq(c.selected).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");b.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[c.selected],b.panels[c.selected]))});this.load(c.selected)}d(window).bind("unload",function(){b.lis.add(b.anchors).unbind(".tabs");b.lis=b.anchors=b.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));this.element[c.collapsible?"addClass": +"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);a=0;for(var j;j=this.lis[a];a++)d(j)[d.inArray(a,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+g)};this.lis.bind("mouseover.tabs", +function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",function(){e(f,o);b._trigger("show", +null,b._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");b._trigger("show",null,b._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){b.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);b.element.dequeue("tabs")})}:function(g,f){b.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");b.element.dequeue("tabs")};this.anchors.bind(c.event+".tabs", +function(){var g=this,f=d(g).closest("li"),i=b.panels.filter(":not(.ui-tabs-hide)"),l=d(b._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||b.panels.filter(":animated").length||b._trigger("select",null,b._ui(this,l[0]))===false){this.blur();return false}c.selected=b.anchors.index(this);b.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected=-1;c.cookie&&b._cookie(c.selected,c.cookie);b.element.queue("tabs", +function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&b._cookie(c.selected,c.cookie);b.element.queue("tabs",function(){r(g,l)});b.load(b.anchors.index(this));this.blur();return false}c.cookie&&b._cookie(c.selected,c.cookie);if(l.length){i.length&&b.element.queue("tabs",function(){s(g,i)});b.element.queue("tabs",function(){r(g,l)});b.load(b.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";d.browser.msie&&this.blur()});this.anchors.bind("click.tabs", +function(){return false})},_getIndex:function(a){if(typeof a=="string")a=this.anchors.index(this.anchors.filter("[href$="+a+"]"));return a},destroy:function(){var a=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e=d.data(this,"href.tabs");if(e)this.href= +e;var b=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){b.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});a.cookie&&this._cookie(null,a.cookie);return this},add:function(a,e,b){if(b===p)b=this.anchors.length; +var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,a).replace(/#\{label\}/g,e));a=!a.indexOf("#")?a.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=d("#"+a);j.length||(j=d(h.panelTemplate).attr("id",a).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(b>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[b]); +j.insertBefore(this.panels[b])}h.disabled=d.map(h.disabled,function(k){return k>=b?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[b],this.panels[b]));return this},remove:function(a){a=this._getIndex(a);var e=this.options,b=this.lis.eq(a).remove(),c=this.panels.eq(a).remove(); +if(b.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(a+(a+1=a?--h:h});this._tabify();this._trigger("remove",null,this._ui(b.find("a")[0],c[0]));return this},enable:function(a){a=this._getIndex(a);var e=this.options;if(d.inArray(a,e.disabled)!=-1){this.lis.eq(a).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(b){return b!=a});this._trigger("enable",null, +this._ui(this.anchors[a],this.panels[a]));return this}},disable:function(a){a=this._getIndex(a);var e=this.options;if(a!=e.selected){this.lis.eq(a).addClass("ui-state-disabled");e.disabled.push(a);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a]))}return this},select:function(a){a=this._getIndex(a);if(a==-1)if(this.options.collapsible&&this.options.selected!=-1)a=this.options.selected;else return this;this.anchors.eq(a).trigger(this.options.event+".tabs");return this}, +load:function(a){a=this._getIndex(a);var e=this,b=this.options,c=this.anchors.eq(a)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(a).addClass("ui-state-processing");if(b.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(b.spinner)}this.xhr=d.ajax(d.extend({},b.ajaxOptions,{url:h,success:function(k,n){d(e._sanitizeSelector(c.hash)).html(k);e._cleanup();b.cache&&d.data(c,"cache.tabs", +true);e._trigger("load",null,e._ui(e.anchors[a],e.panels[a]));try{b.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[a],e.panels[a]));try{b.ajaxOptions.error(k,n,a,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},url:function(a, +e){this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.5"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(a,e){var b=this,c=this.options,h=b._rotate||(b._rotate=function(j){clearTimeout(b.rotation);b.rotation=setTimeout(function(){var k=c.selected;b.select(++k')}function E(a,b){d.extend(a, +b);for(var c in b)if(b[c]==null||b[c]==G)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.5"}});var y=(new Date).getTime();d.extend(L.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){E(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]= +f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:d('
    ')}}, +_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&& +b.append.remove();if(c){b.append=d(''+c+"");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('').addClass(this._triggerClass).html(f== +""?c:d("").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;gh){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a, +c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b), +true);this._updateDatepicker(b);this._updateAlternate(b)}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}E(a.settings,e||{});b=b&&b.constructor== +Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]); +d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}}, +_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b= +d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false; +for(var b=0;b-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target|| +a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);d.datepicker._curInst&&d.datepicker._curInst!=b&&d.datepicker._curInst.dpDiv.stop(true,true);var c=d.datepicker._get(b,"beforeShow");E(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a); +d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&& +d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){d.datepicker._datepickerShowing=true;var i=d.datepicker._getBorders(b.dpDiv);b.dpDiv.find("iframe.ui-datepicker-cover").css({left:-i[0],top:-i[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})};b.dpDiv.zIndex(d(a).zIndex()+1);d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f, +h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=this,c=d.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a)).find("iframe.ui-datepicker-cover").css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){d(this).removeClass("ui-state-hover"); +this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!b._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");d(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).addClass("ui-datepicker-prev-hover"); +this.className.indexOf("ui-datepicker-next")!=-1&&d(this).addClass("ui-datepicker-next-hover")}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();c=this._getNumberOfMonths(a);var e=c[1];e>1?a.dpDiv.addClass("ui-datepicker-multi-"+e).css("width",17*e+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(c[0]!=1||c[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"); +a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input.focus()},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(), +k=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>k&&k>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1);)a=a[b?"previousSibling":"nextSibling"]; +a=d(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();if(a=this._get(b,"onClose"))a.apply(b.input?b.input[0]:null,[b.input?b.input.val(): +"",b]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&& +!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth; +b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b= +this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear=!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a= +d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a, +"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b== +"object"?b.toString():b+"";if(b=="")return null;for(var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff,f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,k=c=-1,l=-1,u=-1,j=false,o=function(p){(p=z+1 +-1){k=1;l=u;do{e=this._getDaysInMonth(c,k-1);if(l<=e)break;k++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c,k-1,l));if(v.getFullYear()!=c||v.getMonth()+1!=k||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24* +60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=j+112?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e? +"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),k= +this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),j=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=j&&nn;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a, +"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-k,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?''+n+"":f?"":''+ +n+"";var r=this._get(a,"nextText");r=!h?r:this.formatDate(r,this._daylightSavingAdjust(new Date(m,g+k,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?''+r+"":f?"":''+r+"";k=this._get(a,"currentText");r=this._get(a,"gotoCurrent")&&a.currentDay?u:b;k=!h?k:this.formatDate(k,r,this._getFormatConfig(a));h=!a.inline?'":"";e=e?'
    '+(c?h:"")+(this._isInRange(a,r)?'":"")+(c?"":h)+"
    ":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;k=this._get(a,"showWeek");r=this._get(a,"dayNames");this._get(a,"dayNamesShort");var s=this._get(a,"dayNamesMin"),z=this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),w=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var M=this._getDefaultDate(a),I="",C=0;C1)switch(D){case 0:x+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-1:x+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:x+=" ui-datepicker-group-middle";t="";break}x+='">'}x+='
    '+(/all|left/.test(t)&&C==0?c? +f:n:"")+(/all|right/.test(t)&&C==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,j,o,C>0||D>0,z,v)+'
    ';var A=k?'":"";for(t=0;t<7;t++){var q=(t+h)%7;A+="=5?' class="ui-datepicker-week-end"':"")+'>'+s[q]+""}x+=A+"";A=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay, +A);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;A=l?6:Math.ceil((t+A)/7);q=this._daylightSavingAdjust(new Date(m,g,1-t));for(var O=0;O";var P=!k?"":'";for(t=0;t<7;t++){var F=p?p.apply(a.input?a.input[0]:null,[q]):[true,""],B=q.getMonth()!=g,K=B&&!H||!F[0]||j&&qo;P+='";q.setDate(q.getDate()+1);q=this._daylightSavingAdjust(q)}x+=P+""}g++;if(g>11){g=0;m++}x+="
    '+this._get(a,"weekHeader")+"
    '+this._get(a,"calculateWeek")(q)+""+(B&&!w?" ":K?''+q.getDate()+ +"":''+q.getDate()+"")+"
    "+(l?""+(i[0]>0&&D==i[1]-1?'
    ':""):"");N+=x}I+=N}I+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'': +"");a._keyEvent=false;return I},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var k=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),j='
    ',o="";if(h||!k)o+=''+i[b]+"";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='"}u||(j+=o+(h||!(k&&l)?" ":""));if(h||!l)j+=''+c+"";else{g=this._get(a,"yearRange").split(":");var r=(new Date).getFullYear();i=function(s){s=s.match(/c[+-].*/)?c+parseInt(s.substring(1),10):s.match(/[+-].*/)?r+parseInt(s,10):parseInt(s,10);return isNaN(s)?r:s};b=i(g[0]);g=Math.max(b, +i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(j+='"}j+=this._get(a,"yearSuffix");if(u)j+=(h||!(k&&l)?" ":"")+o;j+="
    ";return j},_adjustInstDate:function(a,b,c){var e= +a.drawYear+(c=="Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&ba?a:b},_notifyChange:function(a){var b=this._get(a, +"onChangeMonthYear");if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a); +c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a, +"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker= +function(a){if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b)); +return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new L;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.5";window["DP_jQuery_"+y]=d})(jQuery); +;/* + * jQuery UI Progressbar 1.8.5 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(b,c){b.widget("ui.progressbar",{options:{value:0},min:0,max:100,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.max,"aria-valuenow":this._value()});this.valueDiv=b("
    ").appendTo(this.element);this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); +this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===c)return this._value();this._setOption("value",a);return this},_setOption:function(a,d){if(a==="value"){this.options.value=d;this._refreshValue();this._trigger("change")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.max,Math.max(this.min,a))},_refreshValue:function(){var a=this.value();this.valueDiv.toggleClass("ui-corner-right", +a===this.max).width(a+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.5"})})(jQuery); +;/* + * jQuery UI Effects 1.8.5 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/ + */ +jQuery.effects||function(f,j){function l(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1], +16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return m.transparent;return m[f.trim(c).toLowerCase()]}function r(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return l(b)}function n(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle, +a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function o(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in s||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function t(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d= +a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:f.fx.speeds[b]||f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=r(b.elem,a);b.end=l(b.end);b.colorInit= +true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var m={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189, +183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255, +165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},p=["add","remove","toggle"],s={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,d){if(f.isFunction(b)){d=b;b=null}return this.each(function(){var e=f(this),g=e.attr("style")||" ",h=o(n.call(this)),q,u=e.attr("className");f.each(p,function(v, +i){c[i]&&e[i+"Class"](c[i])});q=o(n.call(this));e.attr("className",u);e.animate(t(h,q),a,b,function(){f.each(p,function(v,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments)})})};f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a? +f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this,[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.5",save:function(c,a){for(var b=0;b").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"}); +c.css({position:"relative",top:0,left:0})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments);a={options:a[1],duration:a[2],callback:a[3]};var b=f.effects[c];return b&&!f.fx.off?b.call(this,a):this},_show:f.fn.show,show:function(c){if(!c|| +typeof c=="number"||f.fx.speeds[c]||!f.effects[c])return this._show.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(!c||typeof c=="number"||f.fx.speeds[c]||!f.effects[c])return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(!c||typeof c=="number"||f.fx.speeds[c]||!f.effects[c]||typeof c== +"boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c, +a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/= +e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+ +b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/ +2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+ +e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery); +;/* + * jQuery UI Effects Fade 1.8.5 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Fade + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Fold 1.8.5 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Fold + * + * Depends: + * jquery.effects.core.js + */ +(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","left"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1],10)/100* +f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery); +;/* + * jQuery UI Effects Highlight 1.8.5 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Highlight + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&& +this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Pulsate 1.8.5 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Pulsate + * + * Depends: + * jquery.effects.core.js + */ +(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments); +b.dequeue()})})}})(jQuery); +; \ No newline at end of file diff --git a/ddtcms/grappelli/static/grappelli/js/LICENSE-JQUERY.txt b/ddtcms/grappelli/static/grappelli/js/LICENSE-JQUERY.txt new file mode 100644 index 0000000..a4c5bd7 --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/js/LICENSE-JQUERY.txt @@ -0,0 +1,20 @@ +Copyright (c) 2010 John Resig, http://jquery.com/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/ddtcms/grappelli/static/grappelli/js/SelectBox.js b/ddtcms/grappelli/static/grappelli/js/SelectBox.js new file mode 100644 index 0000000..f28c861 --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/js/SelectBox.js @@ -0,0 +1,111 @@ +var SelectBox = { + cache: new Object(), + init: function(id) { + var box = document.getElementById(id); + var node; + SelectBox.cache[id] = new Array(); + var cache = SelectBox.cache[id]; + for (var i = 0; (node = box.options[i]); i++) { + cache.push({value: node.value, text: node.text, displayed: 1}); + } + }, + redisplay: function(id) { + // Repopulate HTML select box from cache + var box = document.getElementById(id); + box.options.length = 0; // clear all options + for (var i = 0, j = SelectBox.cache[id].length; i < j; i++) { + var node = SelectBox.cache[id][i]; + if (node.displayed) { + box.options[box.options.length] = new Option(node.text, node.value, false, false); + } + } + }, + filter: function(id, text) { + // Redisplay the HTML select box, displaying only the choices containing ALL + // the words in text. (It's an AND search.) + var tokens = text.toLowerCase().split(/\s+/); + var node, token; + for (var i = 0; (node = SelectBox.cache[id][i]); i++) { + node.displayed = 1; + for (var j = 0; (token = tokens[j]); j++) { + if (node.text.toLowerCase().indexOf(token) == -1) { + node.displayed = 0; + } + } + } + SelectBox.redisplay(id); + }, + delete_from_cache: function(id, value) { + var node, delete_index = null; + for (var i = 0; (node = SelectBox.cache[id][i]); i++) { + if (node.value == value) { + delete_index = i; + break; + } + } + var j = SelectBox.cache[id].length - 1; + for (var i = delete_index; i < j; i++) { + SelectBox.cache[id][i] = SelectBox.cache[id][i+1]; + } + SelectBox.cache[id].length--; + }, + add_to_cache: function(id, option) { + SelectBox.cache[id].push({value: option.value, text: option.text, displayed: 1}); + }, + cache_contains: function(id, value) { + // Check if an item is contained in the cache + var node; + for (var i = 0; (node = SelectBox.cache[id][i]); i++) { + if (node.value == value) { + return true; + } + } + return false; + }, + move: function(from, to) { + var from_box = document.getElementById(from); + var to_box = document.getElementById(to); + var option; + for (var i = 0; (option = from_box.options[i]); i++) { + if (option.selected && SelectBox.cache_contains(from, option.value)) { + SelectBox.add_to_cache(to, {value: option.value, text: option.text, displayed: 1}); + SelectBox.delete_from_cache(from, option.value); + } + } + SelectBox.redisplay(from); + SelectBox.redisplay(to); + }, + move_all: function(from, to) { + var from_box = document.getElementById(from); + var to_box = document.getElementById(to); + var option; + for (var i = 0; (option = from_box.options[i]); i++) { + if (SelectBox.cache_contains(from, option.value)) { + SelectBox.add_to_cache(to, {value: option.value, text: option.text, displayed: 1}); + SelectBox.delete_from_cache(from, option.value); + } + } + SelectBox.redisplay(from); + SelectBox.redisplay(to); + }, + sort: function(id) { + SelectBox.cache[id].sort( function(a, b) { + a = a.text.toLowerCase(); + b = b.text.toLowerCase(); + try { + if (a > b) return 1; + if (a < b) return -1; + } + catch (e) { + // silently fail on IE 'unknown' exception + } + return 0; + } ); + }, + select_all: function(id) { + var box = document.getElementById(id); + for (var i = 0; i < box.options.length; i++) { + box.options[i].selected = 'selected'; + } + } +} diff --git a/ddtcms/grappelli/static/grappelli/js/SelectFilter2.js b/ddtcms/grappelli/static/grappelli/js/SelectFilter2.js new file mode 100644 index 0000000..9b50cb9 --- /dev/null +++ b/ddtcms/grappelli/static/grappelli/js/SelectFilter2.js @@ -0,0 +1,117 @@ +/* +SelectFilter2 - Turns a multiple-select box into a filter interface. + +Different than SelectFilter because this is coupled to the admin framework. + +Requires core.js, SelectBox.js and addevent.js. +*/ + +function findForm(node) { + // returns the node of the form containing the given node + if (node.tagName.toLowerCase() != 'form') { + return findForm(node.parentNode); + } + return node; +} + +var SelectFilter = { + init: function(field_id, field_name, is_stacked, admin_media_prefix) { + if (field_id.match(/__prefix__/)){ + // Don't intialize on empty forms. + return; + } + var from_box = document.getElementById(field_id); + from_box.id += '_from'; // change its ID + from_box.className = 'filtered'; + + // Remove

    , because it just gets in the way. + var ps = from_box.parentNode.getElementsByTagName('p'); + for (var i=0; i or

    + var selector_div = quickElement('div', from_box.parentNode); + selector_div.className = is_stacked ? 'selector stacked' : 'selector'; + + //
    + var selector_available = quickElement('div', selector_div, ''); + selector_available.className = 'selector-available'; + quickElement('h2', selector_available, interpolate(gettext('Available %s'), [field_name])); + var filter_p = quickElement('p', selector_available, ''); + filter_p.className = 'selector-filter'; + quickElement('img', filter_p, '', 'src', admin_media_prefix + 'img/admin/selector-search.gif'); + filter_p.appendChild(document.createTextNode(' ')); + var filter_input = quickElement('input', filter_p, '', 'type', 'text'); + filter_input.id = field_id + '_input'; + selector_available.appendChild(from_box); + var choose_all = quickElement('a', selector_available, gettext('Choose all'), 'href', 'javascript: (function(){ SelectBox.move_all("' + field_id + '_from", "' + field_id + '_to"); })()'); + choose_all.className = 'selector-chooseall'; + + //