AAAAdatepicker_dashboard/Thumbs.db000066600000015000151400175610012437 0ustar00ࡱ>  Root EntryG256_3c74af06d052af2a*A256_b960989648c08347*   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF)\ &i JFIFC  !"$"$C&" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?/ٟ͟ŝjt?\֭.pUUxtOG/@5-7S 7ל F狮uAgU0;Y\mda [X.ט^ͦ^o{kW/I m-HB €=>_CYk:mңY0Gm!T㞴 6.!Yڏiyov:\DV)#ngo%),O\PԐxS%(%cAQV*g/Ԫw:~ 0ڦi)Z߀|5i>|AcYu+Ǵc^дO_.,.5KŦش*g1vI!I5PY]Le.Y5wz}kAMz?״=kY]h^(#;"8YDR0%\!INw^eEo;9V sCЉPNG  IHDRkQsRGBgAMA a IDATx^kT|h+4⽈xSA ^^x$@Jo /? 9֋+~@ "xbhmMyšfwlXd&3{>kޏ7C` @h1&KoavlWؘ̢˦7ӌzuՌ>˛|5HV]1,+vj?Ygj?ގŦQk[: #7훯>踲cbZK5MizES {E_o}?]UſF{mϪN@T85p9rd"Z sss?~уΟ?ϥ1h:I"kQcWǾ+W\8}_CooolI`aa!χpϝ;w)?5_i]^ =4m`||'N|sʁ3% 7~`` ~:<}4LNN~366]lFDk"-/5퓉o?۳gOo߾/SdϦnY֭[+/O_E4Mj#@^ ?iA>m͛?ă={í[Ç+g>N:޽{+ٿ"c:hiVDs hNMMomٲ"k׮w8g blبVVVlyy95u8~x8sL`޽ ?D%R;kn D d( zj.] /_԰TnA Mr!޽;\pI[z*Cjitoͅ@-5$i.8q&YnL /|H9*6x&^So+bw@8H!@ vq$B#@ IhGرdzAюcg$b I"D;Ď=@ Dv{<; @$ ;xv@8H!@ vq$B#@ IhGرdzAюcg$b I"D;Ď=@ Dv{<; @$ ;xv@8H!@ vq$B#@ IhGرdzAюcg$b I"D;Ď=@ Dv{<; @$ ;xv@8H!@ vq$B#@ IhGرdzAюcg$b I"D;Ď=@ Dv{<; @$ ;xv@8H!@ vq$B#@ IhGرdzAюcg$b I"D;Ď=@ Dv鈡z3J@WK/$kk85_O +1dFm%аI_\-5DAj]5f`h4Kvm%ZOY嘳Xmμ@ 2Fm%@ڊg o#޶@ mō3o]I @Au{\͆?r2;8s9[lsѐM @ia+o#uWBL=@ 6$' 9o W~'\ãoIENDB`datepicker_dashboard/datepicker_dashboard.css000066600000012522151400175610015530 0ustar00.datepicker_dashboard { position: absolute; font-size: 10px; font-family: "Lucida Grande", LucidaGrande, "Lucida Sans", Geneva, Verdana, sans-serif; color: #fff; line-height: normal; width: 172px; height: 135px; padding: 14px; background: url(frame.png) no-repeat; } /* header ********************************************************/ .datepicker_dashboard .header { position: relative; height: 15px; margin-bottom: 5px; padding-top: 1px; } .datepicker_dashboard .header .title { text-align: center; margin: 2px 18px 0 18px; } .datepicker_dashboard .header .titleText { color: #ccff00; } .datepicker_dashboard .header .previous, .datepicker_dashboard .header .next, .datepicker_dashboard .header .closeButton { position: absolute; cursor: pointer; text-indent: -40px; overflow: hidden; width: 12px; height: 12px; top: 2px; background-image: url(buttons.png); background-position: left top; background-repeat: no-repeat; } .datepicker_dashboard .header .previous { left: 4px; } .datepicker_dashboard .header .previous:hover { background-position: left bottom; } .datepicker_dashboard .header .next { right: 4px; background-position: -13px top; } .datepicker_dashboard .header .next:hover { background-position: -13px bottom; } .datepicker_dashboard .header .closeButton { display: none; right: 0px; top: 0px; background-position: right top; } .datepicker_dashboard .header .closeButton:hover { background-position: right bottom; } /* body ********************************************************/ .datepicker_dashboard .body { position: relative; top: 0px; left: 2px; width: 168px; height: 112px; overflow: hidden; } /* time ********************************************************/ .datepicker_dashboard .time { position: relative; width: 100%; height: 100%; } .datepicker_dashboard .time .hour, .datepicker_dashboard .time .separator, .datepicker_dashboard .time .minutes { background: #333; border: 0px; width: 50px; font-size: 32px; color: #fff; position: absolute; top: 10px; text-align: center; padding: 2px; } .datepicker_dashboard .time .hour { left: 15px; } .datepicker_dashboard .time .separator { background: transparent; width: 10px; left: 76px; } .datepicker_dashboard .time .minutes { left: 95px; } .datepicker_dashboard .time .ok { position: absolute; top: 65px; height: 32px; width: 136px; left: 15px; font-size: 20px; } /* days-grid ********************************************************/ .datepicker_dashboard .days .day { float: left; text-align: center; overflow: hidden; width: 23px; padding-top: 1px; height: 14px; margin: 0 1px 1px 0; font-weight: normal; } .datepicker_dashboard .days .titles { height: 15px; margin-bottom: 2px; text-transform: uppercase; color: #aaa; } .datepicker_dashboard .days .day0 { margin-right: 0; } .datepicker_dashboard .days .week5 .day { margin-bottom: 0; } /* days-colors ********************************************************/ .datepicker_dashboard .days .week .day { cursor: pointer; } .datepicker_dashboard .days .week .day:hover { color: #ccff00; } .datepicker_dashboard .days .otherMonth { color: #444444; } .datepicker_dashboard .days .selected { color: #ccff00; } /* months-grid ********************************************************/ .datepicker_dashboard .months .month { float: left; cursor: pointer; text-align: center; padding-top: 6px; width: 55px; overflow: hidden; height: 21px; margin: 0 1px 1px 0; } .datepicker_dashboard .months .month3, .datepicker_dashboard .months .month6, .datepicker_dashboard .months .month9, .datepicker_dashboard .months .month12 { margin-right: 0; } .datepicker_dashboard .months .month10, .datepicker_dashboard .months .month11, .datepicker_dashboard .months .month12 { margin-bottom: 0; } /* months-colors ********************************************************/ .datepicker_dashboard .months .month:hover { color: #ccff00; } .datepicker_dashboard .months .selected { color: #ccff00; } /* years-grid ********************************************************/ .datepicker_dashboard .years .year { float: left; cursor: pointer; text-align: center; padding-top: 6px; width: 32px; overflow: hidden; height: 21px; margin: 0 1px 1px 0; } .datepicker_dashboard .years .year4, .datepicker_dashboard .years .year9, .datepicker_dashboard .years .year14, .datepicker_dashboard .years .year19 { margin-right: 0; } .datepicker_dashboard .years .year15, .datepicker_dashboard .years .year16, .datepicker_dashboard .years .year17, .datepicker_dashboard .years .year18, .datepicker_dashboard .years .year19 { margin-bottom: 0; } /* years-colors ********************************************************/ .datepicker_dashboard .years .year:hover { color: #ccff00; } .datepicker_dashboard .years .selected { color: #ccff00 } /* global ********************************************************/ .datepicker_dashboard .unavailable { color: #533 !important; cursor: default !important; text-decoration: line-through; } .datepicker_dashboard table { border-spacing: 0; } .datepicker_dashboard th, .datepicker_dashboard tr, .datepicker_dashboard td { padding: 0; border: none; } datepicker_dashboard/.htaccess000066600000000177151400175610012475 0ustar00 Order allow,deny Deny from all datepicker_dashboard/frame.png000066600000002447151400175610012501 0ustar00PNG  IHDR5tEXtSoftwareAdobe ImageReadyqe<;PLTEź """$$$%%%&&&(((+++,,,---...///111222999???ZZZ[[[^^^```]?tRNS !"&*,./01239::BGHJKLMNOPQRSTDp7IDATxyO@p9]9rH9DTnsWQE{u'u) ׄ<S2~)2<##?f.cXXZk=ۡ7r6)":%l2*c(5]af9^qL]ryS>~ȁ`(Cʺ²oݳdM]~Ec}&fR'Hgx!N*  =+: na茼Y\E,k37A=X^_vNB ˱:##$ޠBVWxk5T=[ F2jD]|^A(r펭G8:a[WU={TU!KE =PǴt2z3e-U滲SS0#V~ٵh-Z !HZ(w(h{RDBȈAh-ZĴ.#ȃ=61<|)!AʈKEȚ(2l ;NE"TP*>Zai-ZZZ"T֢h-]h~0@k |"i-f֢h-Z֢BUafdMvvC#EVVTDnx'rzt)6"ACF2#AaȊK᭻{qQaf8lR4d61H˟uqp~/&_7Ty7B̚}s3G/c^uf>a,VP~*b 4? tRj]DZ\<+Y,~+{IENDB`datepicker_vista/datepicker_vista.css000066600000012426151400175610014131 0ustar00.datepicker_vista { position: absolute; font-size: 10px; font-family: Tahoma, sans-serif; color: #000; line-height: normal; width: 172px; height: 135px; padding: 14px; background: url(frame.png) no-repeat; } /* header ********************************************************/ .datepicker_vista .header { position: relative; height: 15px; margin-bottom: 5px; padding-top: 1px; } .datepicker_vista .header .title { text-align: center; margin: 0 18px 0 18px; } .datepicker_vista .header .titleText { } .datepicker_vista .header .previous, .datepicker_vista .header .next, .datepicker_vista .header .closeButton { position: absolute; cursor: pointer; text-indent: -40px; overflow: hidden; width: 12px; height: 12px; top: 2px; background-image: url(buttons.png); background-position: left top; background-repeat: no-repeat; } .datepicker_vista .header .previous { left: 4px; } .datepicker_vista .header .previous:hover { background-position: left bottom; } .datepicker_vista .header .next { right: 4px; background-position: -13px top; } .datepicker_vista .header .next:hover { background-position: -13px bottom; } .datepicker_vista .header .closeButton { display: none; right: 0px; top: 0px; background-position: right top; } .datepicker_vista .header .closeButton:hover { background-position: right bottom; } /* body ********************************************************/ .datepicker_vista .body { position: relative; top: 0px; left: 2px; width: 168px; height: 112px; overflow: hidden; } /* time ********************************************************/ .datepicker_vista .time { position: relative; width: 100%; height: 100%; } .datepicker_vista .time .hour, .datepicker_vista .time .separator, .datepicker_vista .time .minutes { border: 1px solid #ccc; background: #fff; width: 50px; font-size: 32px; position: absolute; top: 10px; text-align: center; padding: 2px; } .datepicker_vista .time .hour { left: 15px; } .datepicker_vista .time .separator { background: transparent; border: 0px; width: 10px; left: 76px; } .datepicker_vista .time .minutes { left: 95px; } .datepicker_vista .time .ok { position: absolute; top: 65px; width: 136px; left: 15px; font-size: 20px; } /* days-grid ********************************************************/ .datepicker_vista .days .day { float: left; text-align: center; overflow: hidden; width: 23px; height: 15px; margin: 0 1px 1px 0; } .datepicker_vista .days .titles { height: 15px; border-bottom: 1px solid #e0e0e0; margin-bottom: 1px; } .datepicker_vista .days .day0 { margin-right: 0; } .datepicker_vista .days .week5 .day { margin-bottom: 0; } /* days-colors ********************************************************/ .datepicker_vista .days .week .day { cursor: pointer; } .datepicker_vista .days .week .day:hover { background: url(days.png) left top no-repeat; color: #0084AA; } .datepicker_vista .days .otherMonth { color: #aaa; } .datepicker_vista .days .selected { background: url(days.png) left bottom no-repeat; color: #316879; } /* months-grid ********************************************************/ .datepicker_vista .months .month { float: left; cursor: pointer; text-align: center; padding-top: 6px; width: 55px; overflow: hidden; height: 21px; margin: 0 1px 1px 0; } .datepicker_vista .months .month3, .datepicker_vista .months .month6, .datepicker_vista .months .month9, .datepicker_vista .months .month12 { margin-right: 0; } .datepicker_vista .months .month10, .datepicker_vista .months .month11, .datepicker_vista .months .month12 { margin-bottom: 0; } /* months-colors ********************************************************/ .datepicker_vista .months .month:hover { background: url(months.png) left top no-repeat; color: #0084AA; } .datepicker_vista .months .selected { background: url(months.png) left bottom no-repeat; color: #316879; } /* years-grid ********************************************************/ .datepicker_vista .years .year { float: left; cursor: pointer; text-align: center; padding-top: 6px; width: 32px; overflow: hidden; height: 21px; margin: 0 1px 1px 0; } .datepicker_vista .years .year4, .datepicker_vista .years .year9, .datepicker_vista .years .year14, .datepicker_vista .years .year19 { margin-right: 0; } .datepicker_vista .years .year15, .datepicker_vista .years .year16, .datepicker_vista .years .year17, .datepicker_vista .years .year18, .datepicker_vista .years .year19 { margin-bottom: 0; } /* years-colors ********************************************************/ .datepicker_vista .years .year:hover { background: url(years.png) left top no-repeat; color: #0084AA; } .datepicker_vista .years .selected { background: url(years.png) left bottom no-repeat; color: #316879; } /* global ********************************************************/ .datepicker_vista .unavailable { background: none !important; color: #fbb !important; cursor: default !important; } .datepicker_vista table { border-spacing: 0; } .datepicker_vista th, .datepicker_vista tr, .datepicker_vista td { padding: 0; border: none; } datepicker_vista/buttons.png000066600000001274151400175610012301 0ustar00PNG  IHDR&jϬYPLTE<Cз}@Y!\#)eS83pRN)͵DZkIENDB`datepicker_vista/.htaccess000066600000000177151400175610011674 0ustar00 Order allow,deny Deny from all datepicker_vista/days.png000066600000000713151400175610011540 0ustar00PNG  IHDR;PLTE煦鏭Ӣ󒯸鐮ֈԶ21IDATxmE1wp3ۼt- 4a4ݶM)lٖq6v@VŸ%i LŸιa;;FU״ 0=zBDי2ͮLzq ojWmڅJJTF$Q ^_(mmd1'h><(a8?W-EpǑ|IENDB`datepicker_vista/years.png000066600000001140151400175610011716 0ustar00PNG  IHDR 7ZwPLTE煦􇨲ڒ򈨲YIDATx}SbQv2\Vxk/ &âKE;Y#> ~NRbX$Ea^bI ñp 1I úp#1J Åİ&1H?~>BчŨ?T}A=e0A W8g6ҞҍA^(pBօ3'9pf$aVbXN% aSb$ILbؕ$JbX%mɁx.aY|(6 ?0\ձ)RzIENDB`datepicker_vista/Thumbs.db000066600000025000151400175610011637 0ustar00ࡱ>  Root Entry`G256_3c74af06d052af2a*256_1ccdaa82cd83bc6(256_b960989648c08347*$   !"#%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRTUVWXYZ[\]^_`abcdefghjklmnopqrstuvwxyzȋJFIFC  !"$"$C&" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?_/|(OfkW+y:Gz..|9q47;5'ɫ:t|9ᩬʓ*ϫPیzk9M4MlZ̏A 瀘r1n57]uG~}+1~|O5][Lv햱E(h~UI=ڦ$:ˏ 0kG‘6ZH.`KUXRB# #W6Ҍ;/?Ig~͟%hW]2e#3_}lWO[|#j,S: ,U\mz7n?+ls/UH!?G| Hmf)YI HB%ddHEzErHSU>9 JFIFC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ssK"fCqARy:wߥ ŞŻxIo,m `8 i4 Ou`*xlrvt%:Bh-(1h98h\xÚ6+}5nzQR𒎒&\pFiz4u&=]\“I%BFqpp i W;~ #UZƱcc0pPx gyÿ25rˡ֧-,}[F*TEp {Eg^OF'Z]I X;NH<{sw {źSPNG  IHDRkQsRGBgAMA a *IDATx^o{f+Y"+ ="GA9EX)nFk표VH@(B"pdqd&`clgܦܞtW}ZzrSާU'I @<thO_Oџ;ϳ4/4g?'i'41g-c$nxF ci"hr3v QZ%H*~MOĆIzܛ4;rն5i&DůqDlDll~~뙙KCCC_jϼNc#zo~S{+n7It۲ N49FϜ9ivv7hr䈾rx]%ϟ?~yyϏ=QtdoM=t 5*vʕ+ߜ>}2z^C "ɓ'Oy׻IӭQU /_N:T*,Z4ӧǏpHb[nv}Z MMMNVIZI i@$.Fi/'Ccb RK&Z۰A$>KNsX닋g兟TZl,;qڵ'Νט5;E 'O ^B@<{,{nEv޽o/t )V4;V+luu5x"ɁJG@vUY]x0Th}P]pVQdo&Ӡ RhKdV C KtM X ɃI4$  #HMVbp5y[5YsXa #`5X1]%&qU)G+1\WӺ q@! 9@/˼b! `?XNީ>-A z6C?\Mg B! ҟ,}%@7'+ "JVjehEմw) "=@}D=uEVAJ8zhjK; XtAYH3%"/A乼UJW!Жi:HE!s'B!!XtM u9[xKI9!/C ` @`qh|rDhݵq,MF",bE#H4%Hմm R7",bESz#i8J"i~דc!"佼ٵPq,f7DS.o˼EyB\ I,y\M~5%E˼rIñOp5 o#<=)VYz?` % He{LޖyMYѱ,Ba}NF\B`,fk]A*Dqv28&7]Toi,=Dx~B i(Rt<\IN=:S]Xr<B}D}LcQ/Xx{! A:vwKC sCBkBc @э+$HnH zE_8x^CMۅBK +]T^{^NƱ xA, u.@ Xt"=B[n/qx `u[Mr7GM@`}e(x8C2/:$s+X%,\?oS,˷?LXtaW Gb=tA u!#8[)ށb^'_"QG@)$IٙOe7o6;w$# fU6Ej@T2Xcb nGK'j6Q @CFuWRIffOn...\^Iػl|"/z?_/E0p 'G}zƍOVÀNjsss_iֱA T'>xĨ&T+ :U s##g߾ qELZw֭ ؾZ7矟>~e@Y ԤvINQ7_^^ /wGn셗A)Z=33sIkgTY7+++.-- D(׺C C%H:$Ѣ}1]-]n`F )t5NR59}K&DqM#}h $dp-}uln"0r 2pGtQ @*IENDB`HeJJFIFC  !"$"$C77" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJ256_8873c61f5121430c*S`256_4fff5836210663d5*iWSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?+kX.aie@.{sҤ>V¨Mq/?^ V'>Vk~*?ޏ?ޗ$C?K}O+_PyyrH=; '8eػCd:\ +XR^LDR\[D=Ҥ-O$iRY rǼg)?A_ ߉ƺL?Z#/h{{W"+7o cM4~/W~' _;ޏ;޲A_ ߉ƏE#Woa?wR8bY>[ eH"U)_ݚ"oO&V?I'cGDžNPĘ֖?V^CZ񖈽QU66^(*GE6?J*ćςsыEtVÉw]5;@Ig6XX8Q<34g?(4ԕ:q]?G ?#dhA ?#dhß24QG{y]ZmH2HTݓ8Z(NjǚG?y[Ό8JFIFC  !"$"$C7 " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?+kX.aie@.{sҤ>V¨Mq/?^ V'>V£[hcXkstyٱ#B֍3ŴC*O;޲DM曨}-e%g,{~Q+OQN“kT)/h{wRQ~o cM4xN"R|>bM?x2cC@jִ@(?VX9 kkSՌE2ki:T6 0X}x%ME\P%datepicker_vista/months.png000066600000001151151400175610012105 0ustar00PNG  IHDR77"tPLTE煦鏭ՒڟӶҋ0[ IDATxڝSbQ۶tض2-:næn9ĒݏWn2H.AyoAw;T(| sߤo_U]+|W ߺTLHήwTpr6raL7M;Du~“]!` + (size.x + scroll.x)) x = (size.x + scroll.x) - pickersize.x; if ((y + pickersize.y) > (size.y + scroll.y)) y = (size.y + scroll.y) - pickersize.y; if (x < 0) x = 0; if (y < 0) y = 0; this.picker.setStyles({ left: x, top: y }); if (this.shim) this.shim.position(); return this; }, setBodySize: function(){ var bodysize = this.bodysize = this.body.getSize(); this.slider.setStyles({ width: 2 * bodysize.x, height: bodysize.y }); this.oldContents.setStyles({ left: bodysize.x, width: bodysize.x, height: bodysize.y }); this.newContents.setStyles({ width: bodysize.x, height: bodysize.y }); }, setColumnContent: function(column, content){ var columnElement = this.columns[column]; if (!columnElement) return this; var type = typeOf(content); if (['string', 'number'].contains(type)) columnElement.set('text', content); else columnElement.empty().adopt(content); return this; }, setColumnsContent: function(content, fx){ var old = this.columns; this.columns = this.newColumns; this.newColumns = old; content.forEach(function(_content, i){ this.setColumnContent(i, _content); }, this); return this.setContent(null, fx); }, setColumns: function(columns){ var _columns = this.columns = new Elements, _newColumns = this.newColumns = new Elements; for (var i = columns; i--;){ _columns.push(new Element('div.column').addClass('column_' + (columns - i))); _newColumns.push(new Element('div.column').addClass('column_' + (columns - i))); } var oldClass = 'column_' + this.options.columns, newClass = 'column_' + columns; this.picker.removeClass(oldClass).addClass(newClass); this.options.columns = columns; return this; }, setContent: function(content, fx){ if (content) return this.setColumnsContent([content], fx); // swap contents so we can fill the newContents again and animate var old = this.oldContents; this.oldContents = this.newContents; this.newContents = old; this.newContents.empty(); this.newContents.adopt(this.columns); this.setBodySize(); if (fx){ this.fx(fx); } else { this.slider.setStyle('left', 0); this.oldContents.setStyles({left: 0, opacity: 0}); this.newContents.setStyles({left: 0, opacity: 1}); } return this; }, fx: function(fx){ var oldContents = this.oldContents, newContents = this.newContents, slider = this.slider, bodysize = this.bodysize; if (fx == 'right'){ oldContents.setStyles({left: 0, opacity: 1}); newContents.setStyles({left: bodysize.x, opacity: 1}); slider.setStyle('left', 0).tween('left', 0, -bodysize.x); } else if (fx == 'left'){ oldContents.setStyles({left: bodysize.x, opacity: 1}); newContents.setStyles({left: 0, opacity: 1}); slider.setStyle('left', -bodysize.x).tween('left', -bodysize.x, 0); } else if (fx == 'fade'){ slider.setStyle('left', 0); oldContents.setStyle('left', 0).set('tween', { duration: this.options.animationDuration / 2 }).tween('opacity', 1, 0).get('tween').chain(function(){ oldContents.setStyle('left', bodysize.x); }); newContents.setStyles({opacity: 0, left: 0}).set('tween', { duration: this.options.animationDuration }).tween('opacity', 0, 1); } }, toElement: function(){ return this.picker; }, setTitle: function(content, fn){ if (!fn) fn = Function.from; this.titleText.empty().adopt( Array.from(content).map(function(item, i){ return typeOf(item) == 'element' ? item : new Element('div.column', {text: fn(item, this.options)}).addClass('column_' + (i + 1)); }, this) ); return this; }, setTitleEvent: function(fn){ this.titleText.removeEvents('click'); if (fn) this.titleText.addEvent('click', fn); this.titleText.setStyle('cursor', fn ? 'pointer' : ''); return this; } }); Locale.pt-BR.DatePicker.js000066600000000652151400175610011245 0ustar00/* --- name: Locale.pt-BR.DatePicker description: Portuguese Language File for DatePicker authors: Jonnathan Soares requires: [More/Locale] provides: Locale.pt-BR.DatePicker ... */ Locale.define('pt-BR', 'DatePicker', { select_a_time: 'Selecione uma hora', use_mouse_wheel: 'Use a roda do mouse para rapidamente trocar de valor', time_confirm_button: 'OK', apply_range: 'Aplicar', cancel: 'Cancelar', week: 'Sem.' }); Locale.he-IL.DatePicker.js000066600000000660151400175610011216 0ustar00/* --- name: Locale.he-IL.DatePicker description: Hebrew Language File for DatePicker authors: Amitay Horwitz requires: [More/Locale] provides: Locale.he-IL.DatePicker ... */ Locale.define('he-IL', 'DatePicker', { select_a_time: 'בחר זמן', use_mouse_wheel: 'השתמש בגלגלת העכבר לשינוי מהיר', time_confirm_button: 'אישור', apply_range: 'החל', cancel: 'ביטול', week: 'שבוע' }); Locale.cs-CZ.DatePicker.js000066600000000542151400175610011236 0ustar00/* --- name: Locale.cs-CZ.DatePicker description: Czech Language File for DatePicker authors: Jan Cerny requires: [More/Locale] provides: Locale.cs-CZ.DatePicker ... */ Locale.define('cs-CZ', 'DatePicker', { select_a_time: 'Vyberte čas', use_mouse_wheel: 'Použijte kolečko myši k rychlé změně hodnoty', time_confirm_button: 'Zvolte čas' }); datepicker.css000066600000011605151400175610007400 0ustar00.datepicker { position: absolute; border: 2px solid #1C3262; font-size: 11px; width: 194px; padding: 3px; height: 221px; background: #fff; line-height: normal; z-index: 3003; } .datepicker.column_2 { width: 393px; } .datepicker.column_3 { width: 592px; } .datepicker.column_4 { width: 791px; } .datepicker.column_5 { width: 990px; } /* header ********************************************************/ .datepicker .header { position: relative; background: #1C3262; height: 21px; padding-top: 4px; margin-bottom: 3px; overflow: hidden; } .datepicker .header .title { text-align: center; padding-top: 1px; position: absolute; color: #fff; font-weight: bold; width: 99999px; } .datepicker .header .titleText { } .datepicker .header .next, .datepicker .header .previous, .datepicker .header .closeButton { position: absolute; width: 15px; height: 15px; background: #fff; text-align: center; color: #666; top: 5px; cursor: pointer; } .datepicker .header .previous { left: 5px; } .datepicker .header .next { right: 28px; } .datepicker .header .closeButton { right: 5px; } /* body ********************************************************/ .datepicker .body { position: relative; top: 0px; left: 0px; height: 193px; overflow: hidden; } /* Columns */ .datepicker .body .column { float: left; width: 194px; min-height: 193px; margin-left: 5px; } .datepicker .body .column.column_1 { margin-left: 0; } .datepicker .titleText .column { float: left; width: 194px; margin-left: 5px; } .datepicker .titleText .column.column_1 { margin-left: 0; } /* Footer */ .datepicker.footer { height: 280px; } .datepicker .footer { margin-top: 3px; padding: 15px 5px; height: 26px; } /* time ********************************************************/ .datepicker .time { width: 100%; height: 100%; background: #eee; } .datepicker .time .hour, .datepicker .time .separator, .datepicker .time .minutes { border: 1px solid #ccc; background: #fff; width: 50px; font-size: 32px; position: absolute; top: 50px; text-align: center; padding: 2px; } .datepicker .time .hour { left: 30px; } .datepicker .time .separator { background: transparent; border: 0px; width: 10px; left: 91px; } .datepicker .time .minutes { left: 110px; } .datepicker .time .ok { position: absolute; top: 105px; width: 136px; left: 30px; font-size: 20px; } /* days-grid ********************************************************/ .datepicker .days .day { float: left; background: #ccc; cursor: pointer; text-align: center; padding-top: 4px; width: 25px; overflow: hidden; height: 21px; margin: 0 3px 3px 0; } .datepicker .days .day0 { margin-right: 0; } .datepicker .days .week5 .day { margin-bottom: 0; } /* days-colors ********************************************************/ .datepicker .days .title { background: #5D6E95; font-weight: bold; color: #fff; cursor: default; } .datepicker .days .otherMonth { background: #eee; color: #aaa; } /* months ********************************************************/ .datepicker .months .month { float: left; background: #eee; cursor: pointer; text-align: center; overflow: hidden; width: 62px; height: 31px; padding-top: 15px; margin: 0 3px 3px 0; } .datepicker .months .month3, .datepicker .months .month6, .datepicker .months .month9, .datepicker .months .month12 { margin-right: 0; width: 64px; } .datepicker .months .month10, .datepicker .months .month11, .datepicker .months .month12 { margin-bottom: 0; } /* years ********************************************************/ .datepicker .years .year { float: left; background: #eee; cursor: pointer; text-align: center; padding-top: 11px; width: 46px; overflow: hidden; height: 25px; margin: 0 3px 3px 0; } .datepicker .years .year3, .datepicker .years .year7, .datepicker .years .year11, .datepicker .years .year15, .datepicker .years .year19 { margin-right: 0; width: 47px; } .datepicker .years .year16, .datepicker .years .year17, .datepicker .years .year18, .datepicker .years .year19 { margin-bottom: 0; height: 26px; } /* global ********************************************************/ .datepicker .selected { background: #8C929F !important; color: #fff !important; } .datepicker .days .otherMonth.selected { background: #bbbfc8 !important; } .datepicker .unavailable, .datepicker .body .days .week .day.unavailable:hover { background: #edd !important; color: #b88 !important; cursor: default !important; } .datepicker .days .week .day:hover, .datepicker .months .month:hover, .datepicker .years .year:hover { background: #5D6E95 !important; color: #fff !important; } .datepicker .days.weeknumbers .day { width: 22px; } .datepicker .days.weeknumbers .day.weeknumber, .datepicker .days.weeknumbers .day.weeknumber:hover { color: #AAA !important; width: 16px !important; background: #EEE !important; } .datepicker table { border-spacing: 0; } .datepicker th, .datepicker td { padding: 0; } Picker.Date.js000066600000046317151400175610007212 0ustar00/* --- name: Picker.Date description: Creates a DatePicker, can be used for picking years/months/days and time, or all of them authors: Arian Stolwijk requires: [Picker, Picker.Attach, Locale.en-US.DatePicker, More/Locale, More/Date] provides: Picker.Date ... */ (function(){ this.DatePicker = Picker.Date = new Class({ Extends: Picker.Attach, options: {/* onSelect: function(date){}, minDate: new Date('3/4/2010'), // Date object or a string maxDate: new Date('3/4/2011'), // same as minDate availableDates: {}, // invertAvailable: false, format: null,*/ timePicker: false, timePickerOnly: false, // deprecated, use onlyView = 'time' timeWheelStep: 1, // 10,15,20,30 yearPicker: true, yearsPerPage: 20, startDay: 1, // Sunday (0) through Saturday (6) - be aware that this may affect your layout, since the days on the right might have a different margin rtl: false, startView: 'days', // allowed values: {time, days, months, years} openLastView: false, pickOnly: false, // 'years', 'months', 'days', 'time' canAlwaysGoUp: ['months', 'days'], updateAll : false, //whether or not to update all inputs when selecting a date weeknumbers: false, // if you like to use your own translations months_abbr: null, days_abbr: null, years_title: function(date, options){ var year = date.get('year'); return year + '-' + (year + options.yearsPerPage - 1); }, months_title: function(date, options){ return date.get('year'); }, days_title: function(date, options){ return date.format('%b %Y'); }, time_title: function(date, options){ return (options.pickOnly == 'time') ? Locale.get('DatePicker.select_a_time') : date.format('%d %B, %Y'); } }, initialize: function(attachTo, options){ this.parent(attachTo, options); this.setOptions(options); options = this.options; // If we only want to use one picker / backwards compatibility ['year', 'month', 'day', 'time'].some(function(what){ if (options[what + 'PickerOnly']){ options.pickOnly = what; return true; } return false; }); if (options.pickOnly){ options[options.pickOnly + 'Picker'] = true; options.startView = options.pickOnly; } // backward compatibility for startView var newViews = ['days', 'months', 'years']; ['month', 'year', 'decades'].some(function(what, i){ return (options.startView == what) && (options.startView = newViews[i]); }); options.canAlwaysGoUp = options.canAlwaysGoUp ? Array.from(options.canAlwaysGoUp) : []; // Set the min and max dates as Date objects if (options.minDate){ if (!(options.minDate instanceof Date)) options.minDate = Date.parse(options.minDate); options.minDate.clearTime(); } if (options.maxDate){ if (!(options.maxDate instanceof Date)) options.maxDate = Date.parse(options.maxDate); options.maxDate.clearTime(); } if (!options.format){ options.format = (options.pickOnly != 'time') ? Locale.get('Date.shortDate') : ''; if (options.timePicker) options.format = (options.format) + (options.format ? ' ' : '') + Locale.get('Date.shortTime'); } // Some link or input has fired an event! this.addEvent('attached', function(event, element){ // This is where we store the selected date if (!this.currentView || !options.openLastView) this.currentView = options.startView; this.date = limitDate(new Date(), options.minDate, options.maxDate); var tag = element.get('tag'), input; if (tag == 'input') input = element; else { var index = this.toggles.indexOf(element); if (this.inputs[index]) input = this.inputs[index]; } this.getInputDate(input); this.input = input; this.setColumns(this.originalColumns); }.bind(this), true); }, getInputDate: function(input){ this.date = new Date(); if (!input) return; var date = Date.parse(input.get('value')); if (date == null || !date.isValid()){ var storeDate = input.retrieve('datepicker:value'); if (storeDate) date = Date.parse(storeDate); } if (date != null && date.isValid()) this.date = date; }, // Control the previous and next elements constructPicker: function(){ this.parent(); if (!this.options.rtl){ this.previous = new Element('div.previous[html=#171;]').inject(this.header); this.next = new Element('div.next[html=#187;]').inject(this.header); } else { this.next = new Element('div.previous[html=#171;]').inject(this.header); this.previous = new Element('div.next[html=#187;]').inject(this.header); } }, hidePrevious: function(_next, _show){ this[_next ? 'next' : 'previous'].setStyle('display', _show ? 'block' : 'none'); return this; }, showPrevious: function(_next){ return this.hidePrevious(_next, true); }, setPreviousEvent: function(fn, _next){ this[_next ? 'next' : 'previous'].removeEvents('click'); if (fn) this[_next ? 'next' : 'previous'].addEvent('click', fn); return this; }, hideNext: function(){ return this.hidePrevious(true); }, showNext: function(){ return this.showPrevious(true); }, setNextEvent: function(fn){ return this.setPreviousEvent(fn, true); }, setColumns: function(columns, view, date, viewFx){ var ret = this.parent(columns), method; if ((view || this.currentView) && (method = 'render' + (view || this.currentView).capitalize()) && this[method] ) this[method](date || this.date.clone(), viewFx); return ret; }, // Render the Pickers renderYears: function(date, fx){ var options = this.options, pages = options.columns, perPage = options.yearsPerPage, _columns = [], _dates = []; this.dateElements = []; // start neatly at interval (eg. 1980 instead of 1987) date = date.clone().decrement('year', date.get('year') % perPage); var iterateDate = date.clone().decrement('year', Math.floor((pages - 1) / 2) * perPage); for (var i = pages; i--;){ var _date = iterateDate.clone(); _dates.push(_date); _columns.push(renderers.years( timesSelectors.years(options, _date.clone()), options, this.date.clone(), this.dateElements, function(date){ if (options.pickOnly == 'years') this.select(date); else this.renderMonths(date, 'fade'); this.date = date; }.bind(this) )); iterateDate.increment('year', perPage); } this.setColumnsContent(_columns, fx); this.setTitle(_dates, options.years_title); // Set limits var limitLeft = (options.minDate && date.get('year') <= options.minDate.get('year')), limitRight = (options.maxDate && (date.get('year') + options.yearsPerPage) >= options.maxDate.get('year')); this[(limitLeft ? 'hide' : 'show') + 'Previous'](); this[(limitRight ? 'hide' : 'show') + 'Next'](); this.setPreviousEvent(function(){ this.renderYears(date.decrement('year', perPage), 'left'); }.bind(this)); this.setNextEvent(function(){ this.renderYears(date.increment('year', perPage), 'right'); }.bind(this)); // We can't go up! this.setTitleEvent(null); this.currentView = 'years'; }, renderMonths: function(date, fx){ var options = this.options, years = options.columns, _columns = [], _dates = [], iterateDate = date.clone().decrement('year', Math.floor((years - 1) / 2)); this.dateElements = []; for (var i = years; i--;){ var _date = iterateDate.clone(); _dates.push(_date); _columns.push(renderers.months( timesSelectors.months(options, _date.clone()), options, this.date.clone(), this.dateElements, function(date){ if (options.pickOnly == 'months') this.select(date); else this.renderDays(date, 'fade'); this.date = date; }.bind(this) )); iterateDate.increment('year', 1); } this.setColumnsContent(_columns, fx); this.setTitle(_dates, options.months_title); // Set limits var year = date.get('year'), limitLeft = (options.minDate && year <= options.minDate.get('year')), limitRight = (options.maxDate && year >= options.maxDate.get('year')); this[(limitLeft ? 'hide' : 'show') + 'Previous'](); this[(limitRight ? 'hide' : 'show') + 'Next'](); this.setPreviousEvent(function(){ this.renderMonths(date.decrement('year', years), 'left'); }.bind(this)); this.setNextEvent(function(){ this.renderMonths(date.increment('year', years), 'right'); }.bind(this)); var canGoUp = options.yearPicker && (options.pickOnly != 'months' || options.canAlwaysGoUp.contains('months')); var titleEvent = (canGoUp) ? function(){ this.renderYears(date, 'fade'); }.bind(this) : null; this.setTitleEvent(titleEvent); this.currentView = 'months'; }, renderDays: function(date, fx){ var options = this.options, months = options.columns, _columns = [], _dates = [], iterateDate = date.clone().decrement('month', Math.floor((months - 1) / 2)); this.dateElements = []; for (var i = months; i--;){ _date = iterateDate.clone(); _dates.push(_date); _columns.push(renderers.days( timesSelectors.days(options, _date.clone()), options, this.date.clone(), this.dateElements, function(date){ if (options.pickOnly == 'days' || !options.timePicker) this.select(date) else this.renderTime(date, 'fade'); this.date = date; }.bind(this) )); iterateDate.increment('month', 1); } this.setColumnsContent(_columns, fx); this.setTitle(_dates, options.days_title); var yearmonth = date.format('%Y%m').toInt(), limitLeft = (options.minDate && yearmonth <= options.minDate.format('%Y%m')), limitRight = (options.maxDate && yearmonth >= options.maxDate.format('%Y%m')); this[(limitLeft ? 'hide' : 'show') + 'Previous'](); this[(limitRight ? 'hide' : 'show') + 'Next'](); this.setPreviousEvent(function(){ this.renderDays(date.decrement('month', months), 'left'); }.bind(this)); this.setNextEvent(function(){ this.renderDays(date.increment('month', months), 'right'); }.bind(this)); var canGoUp = options.pickOnly != 'days' || options.canAlwaysGoUp.contains('days'); var titleEvent = (canGoUp) ? function(){ this.renderMonths(date, 'fade'); }.bind(this) : null; this.setTitleEvent(titleEvent); this.currentView = 'days'; }, renderTime: function(date, fx){ var options = this.options; this.setTitle(date, options.time_title); var originalColumns = this.originalColumns = options.columns; this.currentView = null; // otherwise you'd get crazy recursion if (originalColumns != 1) this.setColumns(1); this.setContent(renderers.time( options, date.clone(), function(date){ this.select(date); }.bind(this) ), fx); // Hide « and » buttons this.hidePrevious() .hideNext() .setPreviousEvent(null) .setNextEvent(null); var canGoUp = options.pickOnly != 'time' || options.canAlwaysGoUp.contains('time'); var titleEvent = (canGoUp) ? function(){ this.setColumns(originalColumns, 'days', date, 'fade'); }.bind(this) : null; this.setTitleEvent(titleEvent); this.currentView = 'time'; }, select: function(date, all){ this.date = date; var formatted = date.format(this.options.format), time = date.strftime(), inputs = (!this.options.updateAll && !all && this.input) ? [this.input] : this.inputs; inputs.each(function(input){ input.set('value', formatted).store('datepicker:value', time).fireEvent('change'); }, this); this.fireEvent('select', [date].concat(inputs)); this.close(); return this; } }); // Renderers only output elements and calculate the limits! var timesSelectors = { years: function(options, date){ var times = []; for (var i = 0; i < options.yearsPerPage; i++){ times.push(+date); date.increment('year', 1); } return times; }, months: function(options, date){ var times = []; date.set('month', 0); for (var i = 0; i <= 11; i++){ times.push(+date); date.increment('month', 1); } return times; }, days: function(options, date){ var times = []; date.set('date', 1); while (date.get('day') != options.startDay) date.set('date', date.get('date') - 1); for (var i = 0; i < 42; i++){ times.push(+date); date.increment('day', 1); } return times; } }; var renderers = { years: function(years, options, currentDate, dateElements, fn){ var container = new Element('div.years'), today = new Date(), element, classes; years.each(function(_year, i){ var date = new Date(_year), year = date.get('year'); classes = '.year.year' + i; if (year == today.get('year')) classes += '.today'; if (year == currentDate.get('year')) classes += '.selected'; element = new Element('div' + classes, {text: year}).inject(container); dateElements.push({element: element, time: _year}); if (isUnavailable('year', date, options)) element.addClass('unavailable'); else element.addEvent('click', fn.pass(date)); }); return container; }, months: function(months, options, currentDate, dateElements, fn){ var today = new Date(), month = today.get('month'), thisyear = today.get('year'), selectedyear = currentDate.get('year'), container = new Element('div.months'), monthsAbbr = options.months_abbr || Locale.get('Date.months_abbr'), element, classes; months.each(function(_month, i){ var date = new Date(_month), year = date.get('year'); classes = '.month.month' + (i + 1); if (i == month && year == thisyear) classes += '.today'; if (i == currentDate.get('month') && year == selectedyear) classes += '.selected'; element = new Element('div' + classes, {text: monthsAbbr[i]}).inject(container); dateElements.push({element: element, time: _month}); if (isUnavailable('month', date, options)) element.addClass('unavailable'); else element.addEvent('click', fn.pass(date)); }); return container; }, days: function(days, options, currentDate, dateElements, fn){ var month = new Date(days[14]).get('month'), todayString = new Date().toDateString(), currentString = currentDate.toDateString(), weeknumbers = options.weeknumbers, container = new Element('table.days' + (weeknumbers ? '.weeknumbers' : ''), { role: 'grid', 'aria-labelledby': this.titleID }), header = new Element('thead').inject(container), body = new Element('tbody').inject(container), titles = new Element('tr.titles').inject(header), localeDaysShort = options.days_abbr || Locale.get('Date.days_abbr'), day, classes, element, weekcontainer, dateString, where = options.rtl ? 'top' : 'bottom'; if (weeknumbers) new Element('th.title.day.weeknumber', { text: Locale.get('DatePicker.week') }).inject(titles); for (day = options.startDay; day < (options.startDay + 7); day++){ new Element('th.title.day.day' + (day % 7), { text: localeDaysShort[(day % 7)], role: 'columnheader' }).inject(titles, where); } days.each(function(_date, i){ var date = new Date(_date); if (i % 7 == 0){ weekcontainer = new Element('tr.week.week' + (Math.floor(i / 7))).set('role', 'row').inject(body); if (weeknumbers) new Element('th.day.weeknumber', {text: date.get('week'), scope: 'row', role: 'rowheader'}).inject(weekcontainer); } dateString = date.toDateString(); classes = '.day.day' + date.get('day'); if (dateString == todayString) classes += '.today'; if (date.get('month') != month) classes += '.otherMonth'; element = new Element('td' + classes, {text: date.getDate(), role: 'gridcell'}).inject(weekcontainer, where); if (dateString == currentString) element.addClass('selected').set('aria-selected', 'true'); else element.set('aria-selected', 'false'); dateElements.push({element: element, time: _date}); if (isUnavailable('date', date, options)) element.addClass('unavailable'); else element.addEvent('click', fn.pass(date.clone())); }); return container; }, time: function(options, date, fn){ var container = new Element('div.time'), // make sure that the minutes are timeWheelStep * k initMinutes = (date.get('minutes') / options.timeWheelStep).round() * options.timeWheelStep if (initMinutes >= 60) initMinutes = 0; date.set('minutes', initMinutes); var hoursInput = new Element('input.hour[type=text]', { title: Locale.get('DatePicker.use_mouse_wheel'), value: date.format('%H'), events: { click: function(event){ event.target.focus(); event.stop(); }, mousewheel: function(event){ event.stop(); hoursInput.focus(); var value = hoursInput.get('value').toInt(); value = (event.wheel > 0) ? ((value < 23) ? value + 1 : 0) : ((value > 0) ? value - 1 : 23) date.set('hours', value); hoursInput.set('value', date.format('%H')); }.bind(this) }, maxlength: 2 }).inject(container); var minutesInput = new Element('input.minutes[type=text]', { title: Locale.get('DatePicker.use_mouse_wheel'), value: date.format('%M'), events: { click: function(event){ event.target.focus(); event.stop(); }, mousewheel: function(event){ event.stop(); minutesInput.focus(); var value = minutesInput.get('value').toInt(); value = (event.wheel > 0) ? ((value < 59) ? (value + options.timeWheelStep) : 0) : ((value > 0) ? (value - options.timeWheelStep) : (60 - options.timeWheelStep)); if (value >= 60) value = 0; date.set('minutes', value); minutesInput.set('value', date.format('%M')); }.bind(this) }, maxlength: 2 }).inject(container); new Element('div.separator[text=:]').inject(container); new Element('input.ok[type=submit]', { value: Locale.get('DatePicker.time_confirm_button'), events: {click: function(event){ event.stop(); date.set({ hours: hoursInput.get('value').toInt(), minutes: minutesInput.get('value').toInt() }); fn(date.clone()); }} }).inject(container); return container; } }; Picker.Date.defineRenderer = function(name, fn){ renderers[name] = fn; return this; }; var limitDate = function(date, min, max){ if (min && date < min) return min; if (max && date > max) return max; return date; }; var isUnavailable = function(type, date, options){ var minDate = options.minDate, maxDate = options.maxDate, availableDates = options.availableDates, year, month, day, ms; if (!minDate && !maxDate && !availableDates) return false; date.clearTime(); if (type == 'year'){ year = date.get('year'); return ( (minDate && year < minDate.get('year')) || (maxDate && year > maxDate.get('year')) || ( (availableDates != null && !options.invertAvailable) && ( availableDates[year] == null || Object.getLength(availableDates[year]) == 0 || Object.getLength( Object.filter(availableDates[year], function(days){ return (days.length > 0); }) ) == 0 ) ) ); } if (type == 'month'){ year = date.get('year'); month = date.get('month') + 1; ms = date.format('%Y%m').toInt(); return ( (minDate && ms < minDate.format('%Y%m').toInt()) || (maxDate && ms > maxDate.format('%Y%m').toInt()) || ( (availableDates != null && !options.invertAvailable) && ( availableDates[year] == null || availableDates[year][month] == null || availableDates[year][month].length == 0 ) ) ); } // type == 'date' year = date.get('year'); month = date.get('month') + 1; day = date.get('date'); var dateAllow = (minDate && date < minDate) || (minDate && date > maxDate); if (availableDates != null){ dateAllow = dateAllow || availableDates[year] == null || availableDates[year][month] == null || !availableDates[year][month].contains(day); if (options.invertAvailable) dateAllow = !dateAllow; } return dateAllow; }; })(); Locale.ru-RU.DatePicker.js000066600000000645151400175610011275 0ustar00/* --- name: Locale.ru-RU.DatePicker description: Russian Language File for DatePicker authors: https://github.com/rwz requires: [More/Locale] provides: Locale.ru-RU.DatePicker ... */ Locale.define('ru-RU', 'DatePicker', { select_a_time: 'Выберите время', use_mouse_wheel: 'Используйте колесо мышки для быстрой смены значения', time_confirm_button: 'OK' }); Locale.fr-FR.DatePicker.js000066600000000702151400175610011231 0ustar00/* --- name: Locale.fr-FR.DatePicker description: French Language File for DatePicker authors: ["Arian Stolwijk", "charlouze", "Abric Armand"] requires: [More/Locale] provides: Locale.fr-FR.DatePicker ... */ Locale.define('fr-FR', 'DatePicker', { select_a_time: 'Choisir l\'heure', use_mouse_wheel: 'Utiliser la molette pour changer l\'heure rapidement', time_confirm_button: 'OK', apply_range: 'Appliquer', cancel: 'Annuler', week: 'Sem' }); Picker.Date.Range.js000066600000006755151400175610010247 0ustar00/* --- name: Picker.Date.Range description: Select a Range of Dates authors: Arian Stolwijk requires: [Picker, Picker.Date] provides: Picker.Date.Range ... */ Picker.Date.Range = new Class({ Extends: Picker.Date, options: { getStartEndDate: function(input){ return input.get('value').split('-').map(function(date){ var parsed = Date.parse(date); return Date.isValid(parsed) ? parsed : null; }).clean(); }, setStartEndDate: function(input, dates){ input.set('value', dates.map(function(date){ return date.format(this.options.format); }, this).join(' - ')); }, footer: true, columns: 3 }, getInputDate: function(input){ if (!input) return; var dates = input.retrieve('datepicker:value'); if (dates && dates.length) dates = dates.map(Date.parse); if (!dates || !dates.length || dates.some(function(date){ return !Date.isValid(date); })){ dates = this.options.getStartEndDate.call(this, input); if (!dates.length || !dates.every(function(date){ return Date.isValid(date); })) dates = [this.date]; } if (dates.length == 1) this.date = this.startDate = this.endDate = dates[0]; else if (dates.length == 2){ this.date = this.startDate = dates[0]; this.endDate = dates[1]; } }, constructPicker: function(){ this.parent(); var footer = this.footer, self = this; if (!footer) return; var events = { click: function(){ this.focus(); }, blur: function(){ var date = Date.parse(this.get('value')); if (date.isValid) self[(this == startInput ? 'start' : 'end') + 'Date'] = date; self.updateRangeSelection(); }, keydown: function(event){ if (event.key == 'enter') self.selectRange(); } }; var startInput = this.startInput = new Element('input', {events: events}).inject(footer); new Element('span', {text: ' - '}).inject(footer); var endInput = this.endInput = new Element('input', {events: events}).inject(footer); this.applyButton = new Element('button.apply', { text: Locale.get('DatePicker.apply_range'), events: {click: self.selectRange.pass([], self)} }).inject(footer); this.cancelButton = new Element('button.cancel', { text: Locale.get('DatePicker.cancel'), events: {click: self.close.pass(false, self)} }).inject(footer); }, renderDays: function(){ this.parent.apply(this, arguments); this.updateRangeSelection(); }, select: function(date){ if (this.startDate && (this.endDate == this.startDate || date > this.endDate) && date >= this.startDate) this.endDate = date; else { this.startDate = date; this.endDate = date; } this.updateRangeSelection(); }, selectRange: function(){ this.date = this.startDate; var dates = [this.startDate, this.endDate], input = this.input; this.options.setStartEndDate.call(this, input, dates); input.store('datepicker:value', dates.map(function(date){ return date.strftime(); })).fireEvent('change'); this.fireEvent('select', dates, input); this.close(); return this; }, updateRangeSelection: function(){ var start = this.startDate, end = this.endDate || start; if (this.dateElements) for (var i = this.dateElements.length; i--;){ var el = this.dateElements[i]; if (el.time >= start && el.time <= end) el.element.addClass('selected'); else el.element.removeClass('selected'); } var formattedFirst = start.format(this.options.format) formattedEnd = end.format(this.options.format); this.startInput.set('value', formattedFirst); this.endInput.set('value', formattedEnd); return this; } }); index.html000066600000000000151400175610006533 0ustar00.htaccess000066600000000177151400175610006353 0ustar00 Order allow,deny Deny from all datepicker_jqui/.htaccess000066600000000177151400175610011516 0ustar00 Order allow,deny Deny from all datepicker_jqui/arrows.png000066600000000367151400175610011744 0ustar00PNG  IHDR!!WoIDATx @/_a1\$f`p }Xρ @=m u͐W!Sb&M) ύDV%lV<y ,asN'lI.a Xb݉l%62x&ك{Ω#GEuH"%)twCFCFFFFFFX4EPIENDB`datepicker_jqui/Thumbs.db000066600000011000151400175610011454 0ustar00ࡱ> Root Entry.G@ 256_b460c1ce23e67747*256_b960989648c08347*E  !"#$T' PNG  IHDR!!WosRGBgAMA a-IDATXGV 0DEEX (؂ @H "/,"]w)uU4KWV%XؿJbs?[c p}O7 MC>o<;J g'#/;qU  6[ Kİ~%yq~#pN+G>ב@L5حL0'i;ZB";!,L'$ VT]ҸGˢM,vVHS#Myr5ԤԤSߡ<IENDB`-,l(LPNG  IHDRc~sRGBgAMA aIDATx^kcUߤ$WҦUFh2"wA\t!Zn] .+BpXmӦIaڤsO;ip<{9I1wܗ}\@wݟFsX,Vr\\.W7AV$6l3w\@n2,>8Nxqq_M(Hjѧ" Xi-ygKBpn%h&^kz%˾!_, UAo;!X\99rH~t 0fN;A:~ x} gʄ@jُ"_:_BpP~KPȯ}j~Z;t:<* 4wL] ACB@kCBBSCBP (M۸. D[CBP=?fP D!! vꂀ'mo  4hgj'|wyM@qv-IFahމǞ]M0Q DԛJg@qth>ϧd]xr'AzM0戬 d]{+tm<Ӷ1NA yΝv-+/^C; ~jNmA* p5g-/zEz5B( &:ht4Kj<"@A!W y@p@!W y;sss$-:ƒ#O)LB!W y@p@!WOPV!If>S4}  O+B 8 O f"Nj .  <B   fff I;;; $GS!<B   <E:==-vww"z$t y@p@!W ySSS$=#O)LB!W y@p@"Mlj=U`: 8 O+B}J H888O 9"t! y@p@!W -r,"z$t y@p@!W yR $jHAX$ m#O pX<B   <'( I>S5[8 A!W y@p@!W Ą<h8>>c9TM @ cl'@!y@^'@yH@@@ӡc,9"t! y@p@!W y@p@!W yr9H@@@Ey@`k|'DZ<𾓄^G \x󓓓S LR&/߸$(R@boI IENDB`datepicker_jqui/index.html000066600000000000151400175610011676 0ustar00datepicker_jqui/datepicker_jqui.css000066600000013420151400175610013570 0ustar00.datepicker_jqui { position: absolute; font-size: 10px; font-family: "Trebuchet MS", Tahoma, Verdana, Arial, sans-serif; color: #333; line-height: normal; width: 185px; height: 158px; padding: 4px; background: url(frame.png) no-repeat; } /* header ********************************************************/ .datepicker_jqui .header { position: relative; height: 15px; margin-bottom: 5px; padding-top: 1px; } .datepicker_jqui .header .title { text-align: center; margin: 3px 18px 0 18px; } .datepicker_jqui .header .titleText { font-size: 11px; color: #fff; } .datepicker_jqui .header .previous, .datepicker_jqui .header .next, .datepicker_jqui .header .closeButton { position: absolute; cursor: pointer; text-indent: -40px; overflow: hidden; width: 16px; height: 16px; top: 4px; background-image: url(arrows.png); background-position: left top; background-repeat: no-repeat; } .datepicker_jqui .header .previous { left: 4px; } .datepicker_jqui .header .previous:hover { background-position: left bottom; } .datepicker_jqui .header .next { right: 4px; background-position: -17px top; } .datepicker_jqui .header .next:hover { background-position: -17px bottom; } .datepicker_jqui .header .closeButton { display: none; right: 0px; top: 0px; background-position: right top; } .datepicker_jqui .header .closeButton:hover { background-position: right bottom; } /* body ********************************************************/ .datepicker_jqui .body { position: relative; top: 6px; left: 2px; width: 185px; height: 131px; overflow: hidden; } /* time ********************************************************/ .datepicker_jqui .time { position: relative; width: 100%; height: 100%; } .datepicker_jqui .time .hour, .datepicker_jqui .time .separator, .datepicker_jqui .time .minutes { background: #fff; border: 0px; width: 50px; font-size: 32px; color: #333; border: 1px solid #aaa; position: absolute; top: 18px; text-align: center; padding: 2px; } .datepicker_jqui .time .hour { left: 23px; } .datepicker_jqui .time .separator { background: transparent; border: 0px; width: 10px; left: 84px; } .datepicker_jqui .time .minutes { left: 103px; } .datepicker_jqui .time .ok { position: absolute; top: 80px; height: 32px; width: 136px; left: 23px; font-size: 20px; } /* days-grid ********************************************************/ .datepicker_jqui .days .day { float: left; overflow: hidden; width: 19px; padding-top: 1px; padding-right: 3px; height: 13px; border: 1px solid #aaa; text-align: right; margin: 0 2px 2px 0; } .datepicker_jqui .days .titles { margin-bottom: 1px; } .datepicker_jqui .days .titles .title { border: 1px solid transparent; text-align: center; height: 16px; padding-right: 0px; width: 22px; padding-top: 2px; } .datepicker_jqui .days .day0 { margin-right: 0; } .datepicker_jqui .days .week5 .day { margin-bottom: 0; } /* days-colors ********************************************************/ .datepicker_jqui .days .week .day { background: #fcfcfc; cursor: pointer; color: #1C94C4; } .datepicker_jqui .days .week .day:hover { background: #fdf5ce; color: #c77405; border: 1px solid #fbcb09; } .datepicker_jqui .days .week .otherMonth { background: #f2f2f2; color: #94B2BE; border: 1px solid #aaa; } .datepicker_jqui .days .week .selected { background: #fff; color: #c77405; border: 1px solid #fbcb09; } /* months-grid ********************************************************/ .datepicker_jqui .months .month { float: left; text-align: center; overflow: hidden; width: 57px; cursor: pointer; background: #fcfcfc; padding-top: 7px; height: 22px; border: 1px solid #aaa; margin: 0 2px 2px 0; } .datepicker_jqui .months .month3, .datepicker_jqui .months .month6, .datepicker_jqui .months .month9, .datepicker_jqui .months .month12 { margin-right: 0; } .datepicker_jqui .months .month10, .datepicker_jqui .months .month11, .datepicker_jqui .months .month12 { margin-bottom: 0; } /* months-colors ********************************************************/ .datepicker_jqui .months .month:hover { background: #fdf5ce; color: #c77405; border: 1px solid #fbcb09; } .datepicker_jqui .months .selected { background: #fff; color: #c77405; border: 1px solid #fbcb09; } /* years-grid ********************************************************/ .datepicker_jqui .years .year { float: left; text-align: center; overflow: hidden; background: #fcfcfc; width: 32px; cursor: pointer; padding-top: 7px; height: 22px; border: 1px solid #aaa; margin: 0 2px 2px 0; } .datepicker_jqui .years .year4, .datepicker_jqui .years .year9, .datepicker_jqui .years .year14, .datepicker_jqui .years .year19 { margin-right: 0; width: 34px; } .datepicker_jqui .years .year15, .datepicker_jqui .years .year16, .datepicker_jqui .years .year17, .datepicker_jqui .years .year18, .datepicker_jqui .years .year19 { margin-bottom: 0; } /* years-colors ********************************************************/ .datepicker_jqui .years .year:hover { background: #fdf5ce; color: #c77405; border: 1px solid #fbcb09; } .datepicker_jqui .years .selected { background: #fff; color: #c77405; border: 1px solid #fbcb09; } /* global ********************************************************/ .datepicker_jqui .unavailable { cursor: default !important; background: #f0f0f0 !important; color: #ccc !important; border: 1px solid #ccc !important; } .datepicker_jqui table { border-spacing: 0; } .datepicker_jqui th, .datepicker_jqui th, .datepicker_jqui td { padding: 0; border:none; } datepicker_jqui/frame.png000066600000001403151400175610011511 0ustar00PNG  IHDRTmLgAMAOX2tEXtSoftwareAdobe ImageReadyqe<PLTE NPNQT!#$8998:<>@!$'*-025  G tRNS'*YrIDATx[N0%jz/}bkjH'!a= i=\q]zy* PrlNRlpmto4vscnǤjO4;IQҰ6A3)Y@Fˊ*ҳ܉`O]P- *St7d]F [)}Gy || T7Ere}Ee @K'dS2@>@p2E @@0E 6% ܦd @}@ @@ @@'3E @N& @"2@9199 bVe*\[IENDB`Locale.nl-NL.DatePicker.js000066600000000630151400175610011235 0ustar00/* --- name: Locale.nl-NL.DatePicker description: Dutch Language File for DatePicker authors: Arian Stolwijk requires: [More/Locale] provides: Locale.nl-NL.DatePicker ... */ Locale.define('nl-NL', 'DatePicker', { select_a_time: 'Selecteer een tijd', use_mouse_wheel: 'Gebruik uw scrollwiel om door de tijd te scrollen', time_confirm_button: 'OK', apply_range: 'OK', cancel: 'Annuleer', week: 'W' });