zebra-datepicker-rails 1.8.7 → 1.8.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 59788182ff6bd589f820e7a50c0332d8bb8bc0b3
4
- data.tar.gz: 9a66e3fcfceac5c82301885d543d90839b0c990e
3
+ metadata.gz: be056c8cd0e7e7e6717bdda3883c456e0ccce09f
4
+ data.tar.gz: e2d3dca9a10f5e1b87804a129f3707396387298d
5
5
  SHA512:
6
- metadata.gz: 7a78d8d34d3b3fab0536ae8fb1b0f008cea68925678bc4705c9dabd3b5b3a5a4db29e2bc21564607f2f99d7226e587278d9f707ca048751857f32b17b008b2f6
7
- data.tar.gz: 5f86c45d3fdc51d1556ca6d95e04cab81800b4f92ccbc46761797938396f32853422e73a2f39f88a2b8082bf97eb414624de7e6da97c8b9a9b6ac5a05eebe922
6
+ metadata.gz: df1df9a18b1758af528cbfe037bdf71a142310aacb153384a49c29975f33200e3b17e4c285113681aea579617e9522a4b8cc76340b0612d66f2cde0e93810c37
7
+ data.tar.gz: 417bf42d47ed75260fa728cc6d7de7365203ae4a8a55a8f365af181c197cd1450534087316da1ba3e6571ae40aaf8f630c44708a830c81a0c2c95c030136286e
data/Rakefile CHANGED
@@ -3,11 +3,30 @@ require "bundler/gem_tasks"
3
3
  desc "Change css url calls to use sass-rails' asset-url"
4
4
  task :change_css_url do
5
5
  Dir.chdir('vendor/assets/stylesheets/zebra-datepicker/')
6
- Dir.glob('*.css').each do |filename|
6
+ Dir.glob('*.css.scss').each do |filename|
7
7
  content = File.read(filename).gsub!(" url('", " asset-url('zebra-datepicker/")
8
8
  file = File.open(filename, 'w')
9
9
  file.write(content)
10
10
  file.close
11
11
  end
12
-
13
12
  end
13
+
14
+ desc 'Copy Assets from Zebra_Datepicker'
15
+
16
+ task :copy do
17
+ {
18
+ 'public/css/bootstrap.css' => 'vendor/assets/stylesheets/zebra-datepicker/bootstrap.css.scss',
19
+ 'public/css/default.css' => 'vendor/assets/stylesheets/zebra-datepicker/default.css.scss',
20
+ 'public/css/metallic.css' => 'vendor/assets/stylesheets/zebra-datepicker/metallic.css.scss',
21
+
22
+ 'public/css/metallic/' => 'vendor/assets/images/zebra-datepicker/',
23
+ 'public/css/calendar-disabled.png' => 'vendor/assets/images/zebra-datepicker/',
24
+ 'public/css/calendar.png' => 'vendor/assets/images/zebra-datepicker/',
25
+
26
+ 'public/javascript/zebra_datepicker.js' => 'vendor/assets/javascripts/zebra-datepicker/',
27
+ 'public/javascript/zebra_datepicker.src.js' => 'vendor/assets/javascripts/zebra-datepicker/'
28
+ }.each do |src, dest|
29
+ FileUtils.cp_r("../Zebra_Datepicker/#{src}", dest)
30
+ end
31
+ end
32
+
@@ -1,5 +1,5 @@
1
1
  module ZebraDatepickerRails
2
2
  module Rails
3
- VERSION = "1.8.7"
3
+ VERSION = "1.8.9"
4
4
  end
5
5
  end
@@ -1 +1 @@
1
- (function(c){c.Zebra_DatePicker=function(ga,ha){var ka={always_visible:!1,days:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),days_abbr:!1,direction:0,disabled_dates:!1,enabled_dates:!1,first_day_of_week:1,format:"Y-m-d",header_navigation:["&#171;","&#187;"],inside:!0,lang_clear_date:"Clear date",months:"January February March April May June July August September October November December".split(" "),months_abbr:!1,offset:[5,-5],pair:!1,readonly_element:!0,select_other_months:!1, show_clear_date:0,show_icon:!0,show_other_months:!0,show_select_today:"Today",show_week_number:!1,start_date:!1,strict:!1,view:"days",weekend_days:[0,6],zero_pad:!1,onChange:null,onClear:null,onSelect:null},t,h,w,C,D,G,H,S,T,N,Z,g,q,y,u,p,U,J,K,V,F,$,r,v,aa,O,W,la,ma,na,A,ia,ba,X,ca,oa,a=this;a.settings={};var d=c(ga),ra=function(e){if(!e){a.settings=c.extend({},ka,ha);for(var b in d.data())0===b.indexOf("zdp_")&&(b=b.replace(/^zdp\_/,""),void 0!==ka[b]&&(a.settings[b]=d.data("zdp_"+b)))}a.settings.readonly_element&& d.attr("readonly","readonly");b={days:["d","j","D"],months:["F","m","M","n","t"],years:["o","Y","y"]};var z=!1,f=!1,k=!1,E=null;for(E in b)c.each(b[E],function(c,b){-1<a.settings.format.indexOf(b)&&("days"==E?z=!0:"months"==E?f=!0:"years"==E&&(k=!0))});A=z&&f&&k?["years","months","days"]:!z&&f&&k?["years","months"]:z||f||!k?z||!f||k?["years","months","days"]:["months"]:["years"];-1==c.inArray(a.settings.view,A)&&(a.settings.view=A[A.length-1]);F=[];V=[];for(var n=0;2>n;n++)b=0===n?a.settings.disabled_dates: a.settings.enabled_dates,c.isArray(b)&&0<b.length&&c.each(b,function(){for(var a=this.split(" "),b=0;4>b;b++){a[b]||(a[b]="*");a[b]=-1<a[b].indexOf(",")?a[b].split(","):Array(a[b]);for(var e=0;e<a[b].length;e++)if(-1<a[b][e].indexOf("-")){var z=a[b][e].match(/^([0-9]+)\-([0-9]+)/);if(null!==z){for(var f=s(z[1]);f<=s(z[2]);f++)-1==c.inArray(f,a[b])&&a[b].push(f+"");a[b].splice(e,1)}}for(e=0;e<a[b].length;e++)a[b][e]=isNaN(s(a[b][e]))?a[b][e]:s(a[b][e])}0===n?F.push(a):V.push(a)});b=new Date;var m= a.settings.reference_date?a.settings.reference_date:d.data("zdp_reference_date")&&void 0!==d.data("zdp_reference_date")?d.data("zdp_reference_date"):b,l,L;v=r=void 0;g=m.getMonth();T=b.getMonth();q=m.getFullYear();N=b.getFullYear();y=m.getDate();Z=b.getDate();if(!0===a.settings.direction)r=m;else if(!1===a.settings.direction)v=m,W=v.getMonth(),O=v.getFullYear(),aa=v.getDate();else if(!c.isArray(a.settings.direction)&&Y(a.settings.direction)&&0<s(a.settings.direction)||c.isArray(a.settings.direction)&& ((l=da(a.settings.direction[0]))||!0===a.settings.direction[0]||Y(a.settings.direction[0])&&0<a.settings.direction[0])&&((L=da(a.settings.direction[1]))||!1===a.settings.direction[1]||Y(a.settings.direction[1])&&0<=a.settings.direction[1]))r=l?l:new Date(q,g,y+(c.isArray(a.settings.direction)?s(!0===a.settings.direction[0]?0:a.settings.direction[0]):s(a.settings.direction))),g=r.getMonth(),q=r.getFullYear(),y=r.getDate(),L&&+L>=+r?v=L:!L&&!1!==a.settings.direction[1]&&c.isArray(a.settings.direction)&& (v=new Date(q,g,y+s(a.settings.direction[1]))),v&&(W=v.getMonth(),O=v.getFullYear(),aa=v.getDate());else if(!c.isArray(a.settings.direction)&&Y(a.settings.direction)&&0>s(a.settings.direction)||c.isArray(a.settings.direction)&&(!1===a.settings.direction[0]||Y(a.settings.direction[0])&&0>a.settings.direction[0])&&((l=da(a.settings.direction[1]))||Y(a.settings.direction[1])&&0<=a.settings.direction[1]))v=new Date(q,g,y+(c.isArray(a.settings.direction)?s(!1===a.settings.direction[0]?0:a.settings.direction[0]): s(a.settings.direction))),W=v.getMonth(),O=v.getFullYear(),aa=v.getDate(),l&&+l<+v?r=l:!l&&c.isArray(a.settings.direction)&&(r=new Date(O,W,aa-s(a.settings.direction[1]))),r&&(g=r.getMonth(),q=r.getFullYear(),y=r.getDate());else if(c.isArray(a.settings.disabled_dates)&&0<a.settings.disabled_dates.length)for(var P in F)if("*"==F[P][0]&&"*"==F[P][1]&&"*"==F[P][2]&&"*"==F[P][3]){var fa=[];c.each(V,function(){"*"!=this[2][0]&&fa.push(parseInt(this[2][0]+("*"==this[1][0]?"12":x(this[1][0],2))+("*"==this[0][0]? "*"==this[1][0]?"31":(new Date(this[2][0],this[1][0],0)).getDate():x(this[0][0],2)),10))});fa.sort();if(0<fa.length){var Q=(fa[0]+"").match(/([0-9]{4})([0-9]{2})([0-9]{2})/);q=parseInt(Q[1],10);g=parseInt(Q[2],10)-1;y=parseInt(Q[3],10)}break}if(B(q,g,y)){for(;B(q);)r?(q++,g=0):(q--,g=11);for(;B(q,g);)r?(g++,y=1):(g--,y=(new Date(q,g+1,0)).getDate()),11<g?(q++,g=0,y=1):0>g&&(q--,g=11,y=(new Date(q,g+1,0)).getDate());for(;B(q,g,y);)r?y++:y--,b=new Date(q,g,y),q=b.getFullYear(),g=b.getMonth(),y=b.getDate(); b=new Date(q,g,y);q=b.getFullYear();g=b.getMonth();y=b.getDate()}(l=da(d.val()||(a.settings.start_date?a.settings.start_date:"")))&&a.settings.strict&&B(l.getFullYear(),l.getMonth(),l.getDate())&&d.val("");e||pa(r);if(!a.settings.always_visible&&(e||(a.settings.show_icon?("firefox"==M.name&&d.is('input[type="text"]')&&"inline"==d.css("display")&&d.css("display","inline-block"),l=jQuery('<span class="Zebra_DatePicker_Icon_Wrapper"></span>').css({display:d.css("display"),position:"static"==d.css("position")? "relative":d.css("position"),"float":d.css("float"),top:d.css("top"),right:d.css("right"),bottom:d.css("bottom"),left:d.css("left")}),d.wrap(l).css({position:"relative",top:"auto",right:"auto",bottom:"auto",left:"auto"}),w=jQuery('<button type="button" class="Zebra_DatePicker_Icon'+("disabled"==d.attr("disabled")?" Zebra_DatePicker_Icon_Disabled":"")+'">Pick a date</button>'),a.icon=w,ia=w.add(d)):ia=d,ia.bind("click",function(b){b.preventDefault();d.attr("disabled")||("none"!=h.css("display")?a.hide(): a.show())}),void 0!==w&&w.insertAfter(d)),void 0!==w)){w.attr("style","");a.settings.inside&&w.addClass("Zebra_DatePicker_Icon_Inside");l=d.outerWidth();L=d.outerHeight();P=parseInt(d.css("marginLeft"),10)||0;b=parseInt(d.css("marginTop"),10)||0;var m=w.outerWidth(),qa=w.outerHeight(),ua=parseInt(w.css("marginLeft"),10)||0,va=parseInt(w.css("marginRight"),10)||0;a.settings.inside?w.css({top:b+(L-qa)/2,left:P+(l-m-va)}):w.css({top:b+(L-qa)/2,left:P+l+ua})}ca=!1!==a.settings.show_select_today&&-1<c.inArray("days", A)&&!B(N,T,Z)?a.settings.show_select_today:!1;e||(c(window).bind("resize.Zebra_DatePicker",function(){a.hide();void 0!==w&&(clearTimeout(oa),oa=setTimeout(function(){a.update()},100))}),h=c('<div class="Zebra_DatePicker"><table class="dp_header"><tr><td class="dp_previous">'+a.settings.header_navigation[0]+'</td><td class="dp_caption">&#032;</td><td class="dp_next">'+a.settings.header_navigation[1]+'</td></tr></table><table class="dp_daypicker"></table><table class="dp_monthpicker"></table><table class="dp_yearpicker"></table><table class="dp_footer"><tr><td class="dp_today"'+ (!1!==a.settings.show_clear_date?' style="width:50%"':"")+">"+ca+'</td><td class="dp_clear"'+(!1!==ca?' style="width:50%"':"")+">"+a.settings.lang_clear_date+"</td></tr></table></div>"),a.datepicker=h,C=c("table.dp_header",h),D=c("table.dp_daypicker",h),G=c("table.dp_monthpicker",h),H=c("table.dp_yearpicker",h),X=c("table.dp_footer",h),ba=c("td.dp_today",X),S=c("td.dp_clear",X),a.settings.always_visible?d.attr("disabled")||(a.settings.always_visible.append(h),a.show()):c("body").append(h),h.delegate("td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_blocked, .dp_week_number)", "mouseover",function(){c(this).addClass("dp_hover")}).delegate("td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_blocked, .dp_week_number)","mouseout",function(){c(this).removeClass("dp_hover")}),wa(c("td",C)),c(".dp_previous",C).bind("click",function(){c(this).hasClass("dp_blocked")||("months"==t?p--:"years"==t?p-=12:0>--u&&(u=11,p--),R())}),c(".dp_caption",C).bind("click",function(){t="days"==t?-1<c.inArray("months",A)?"months":-1<c.inArray("years",A)?"years":"days":"months"==t? -1<c.inArray("years",A)?"years":-1<c.inArray("days",A)?"days":"months":-1<c.inArray("days",A)?"days":-1<c.inArray("months",A)?"months":"years";R()}),c(".dp_next",C).bind("click",function(){c(this).hasClass("dp_blocked")||("months"==t?p++:"years"==t?p+=12:12==++u&&(u=0,p++),R())}),D.delegate("td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_week_number)","click",function(){a.settings.select_other_months&&null!==(Q=c(this).attr("class").match(/date\_([0-9]{4})(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])/))? ea(Q[1],Q[2]-1,Q[3],"days",c(this)):ea(p,u,s(c(this).html()),"days",c(this))}),G.delegate("td:not(.dp_disabled)","click",function(){var b=c(this).attr("class").match(/dp\_month\_([0-9]+)/);u=s(b[1]);-1==c.inArray("days",A)?ea(p,u,1,"months",c(this)):(t="days",a.settings.always_visible&&d.val(""),R())}),H.delegate("td:not(.dp_disabled)","click",function(){p=s(c(this).html());-1==c.inArray("months",A)?ea(p,1,1,"years",c(this)):(t="months",a.settings.always_visible&&d.val(""),R())}),c(ba).bind("click", function(b){b.preventDefault();ea(N,T,Z,"days",c(".dp_current",D));a.settings.always_visible&&a.show();a.hide()}),c(S).bind("click",function(b){b.preventDefault();d.val("");a.settings.always_visible?(K=J=U=null,c("td.dp_selected",h).removeClass("dp_selected")):p=u=K=J=U=null;a.hide();if(a.settings.onClear&&"function"==typeof a.settings.onClear)a.settings.onClear(d)}),a.settings.always_visible||c(document).bind({"mousedown.Zebra_DatePicker":function(b){if("block"==h.css("display")){if(a.settings.show_icon&& c(b.target).get(0)===w.get(0))return!0;0===c(b.target).parents().filter(".Zebra_DatePicker").length&&a.hide()}},"keyup.Zebra_DatePicker":function(b){"block"!=h.css("display")&&27!=b.which||a.hide()}}),R())};a.destroy=function(){void 0!==a.icon&&a.icon.remove();a.datepicker.remove();c(document).unbind("keyup.Zebra_DatePicker");c(document).unbind("mousedown.Zebra_DatePicker");c(window).unbind("resize.Zebra_DatePicker");d.removeData("Zebra_DatePicker");delete a};a.hide=function(){a.settings.always_visible|| (sa("hide"),h.hide())};a.show=function(){t=a.settings.view;var e=da(d.val()||(a.settings.start_date?a.settings.start_date:""));e?(J=e.getMonth(),u=e.getMonth(),K=e.getFullYear(),p=e.getFullYear(),U=e.getDate(),B(K,J,U)&&(a.settings.strict&&d.val(""),u=g,p=q)):(u=g,p=q);R();if(a.settings.always_visible)h.show();else{var e=h.outerWidth(),b=h.outerHeight(),z=(void 0!==w?w.offset().left+w.outerWidth(!0):d.offset().left+d.outerWidth(!0))+a.settings.offset[0],f=(void 0!==w?w.offset().top:d.offset().top)- b+a.settings.offset[1],k=c(window).width(),E=c(window).height(),n=c(window).scrollTop(),m=c(window).scrollLeft();z+e>m+k&&(z=m+k-e);z<m&&(z=m);f+b>n+E&&(f=n+E-b);f<n&&(f=n);h.css({left:z,top:f});h.fadeIn("explorer"==M.name&&9>M.version?0:150,"linear");sa()}};a.update=function(e){a.original_direction&&(a.original_direction=a.direction);a.settings=c.extend(a.settings,e);ra(!0)};var da=function(e){e+="";if(""!==c.trim(e)){for(var b=a.settings.format.replace(/([-.,*+?^${}()|[\]\/\\])/g,"\\$1"),z="dDjlNSwFmMnYy".split(""), f=[],k=[],E=null,n=null,m=0;m<z.length;m++)-1<(E=b.indexOf(z[m]))&&f.push({character:z[m],position:E});f.sort(function(a,b){return a.position-b.position});c.each(f,function(a,b){switch(b.character){case "d":k.push("0[1-9]|[12][0-9]|3[01]");break;case "D":k.push("[a-z]{3}");break;case "j":k.push("[1-9]|[12][0-9]|3[01]");break;case "l":k.push("[a-z]+");break;case "N":k.push("[1-7]");break;case "S":k.push("st|nd|rd|th");break;case "w":k.push("[0-6]");break;case "F":k.push("[a-z]+");break;case "m":k.push("0[1-9]|1[012]+"); break;case "M":k.push("[a-z]{3}");break;case "n":k.push("[1-9]|1[012]");break;case "Y":k.push("[0-9]{4}");break;case "y":k.push("[0-9]{2}")}});if(k.length&&(f.reverse(),c.each(f,function(a,c){b=b.replace(c.character,"("+k[k.length-a-1]+")")}),k=RegExp("^"+b+"$","ig"),n=k.exec(e))){e=new Date;var l=e.getDate(),d=e.getMonth()+1,p=e.getFullYear(),g="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),h="January February March April May June July August September October November December".split(" "), q,u=!0;f.reverse();c.each(f,function(b,e){if(!u)return!0;switch(e.character){case "m":case "n":d=s(n[b+1]);break;case "d":case "j":l=s(n[b+1]);break;case "D":case "l":case "F":case "M":q="D"==e.character||"l"==e.character?a.settings.days:a.settings.months;u=!1;c.each(q,function(a,c){if(u)return!0;if(n[b+1].toLowerCase()==c.substring(0,"D"==e.character||"M"==e.character?3:c.length).toLowerCase()){switch(e.character){case "D":n[b+1]=g[a].substring(0,3);break;case "l":n[b+1]=g[a];break;case "F":n[b+ 1]=h[a];d=a+1;break;case "M":n[b+1]=h[a].substring(0,3),d=a+1}u=!0}});break;case "Y":p=s(n[b+1]);break;case "y":p="19"+s(n[b+1])}});if(u&&(f=new Date(p,(d||1)-1,l||1),f.getFullYear()==p&&f.getDate()==(l||1)&&f.getMonth()==(d||1)-1))return f}return!1}},wa=function(a){"firefox"==M.name?a.css("MozUserSelect","none"):"explorer"==M.name?a.bind("selectstart",function(){return!1}):a.mousedown(function(){return!1})},ta=function(){var e=(new Date(p,u+1,0)).getDate(),b=(new Date(p,u,1)).getDay(),z=(new Date(p, u,0)).getDate(),b=b-a.settings.first_day_of_week,b=0>b?7+b:b;ja(a.settings.months[u]+", "+p);var f="<tr>";a.settings.show_week_number&&(f+="<th>"+a.settings.show_week_number+"</th>");for(var k=0;7>k;k++)f+="<th>"+(c.isArray(a.settings.days_abbr)&&void 0!==a.settings.days_abbr[(a.settings.first_day_of_week+k)%7]?a.settings.days_abbr[(a.settings.first_day_of_week+k)%7]:a.settings.days[(a.settings.first_day_of_week+k)%7].substr(0,2))+"</th>";f+="</tr><tr>";for(k=0;42>k;k++){0<k&&0===k%7&&(f+="</tr><tr>"); if(0===k%7&&a.settings.show_week_number){var d=new Date(p,u,k-b+1),n=d.getFullYear(),m=d.getMonth()+1,d=d.getDate(),l=void 0,g=void 0,h=void 0,s=h=void 0,q=void 0,h=g=l=void 0;3>m?(l=n-1,g=(l/4|0)-(l/100|0)+(l/400|0),h=((l-1)/4|0)-((l-1)/100|0)+((l-1)/400|0),h=g-h,s=0,q=d-1+31*(m-1)):(l=n,g=(l/4|0)-(l/100|0)+(l/400|0),h=((l-1)/4|0)-((l-1)/100|0)+((l-1)/400|0),h=g-h,s=h+1,q=d+((153*(m-3)+2)/5|0)+58+h);l=(l+g)%7;d=(q+l-s)%7;g=q+3-d;h=0>g?53-((l-h)/5|0):g>364+h?1:(g/7|0)+1;f+='<td class="dp_week_number">'+ h+"</td>"}n=k-b+1;if(a.settings.select_other_months&&(k<b||n>e))var r=new Date(p,u,n),v=r.getFullYear(),t=r.getMonth(),w=r.getDate(),r=v+x(t+1,2)+x(w,2);k<b?f+='<td class="'+(a.settings.select_other_months&&!B(v,t,w)?"dp_not_in_month_selectable date_"+r:"dp_not_in_month")+'">'+(a.settings.select_other_months||a.settings.show_other_months?x(z-b+k+1,a.settings.zero_pad?2:0):"&nbsp;")+"</td>":n>e?f+='<td class="'+(a.settings.select_other_months&&!B(v,t,w)?"dp_not_in_month_selectable date_"+r:"dp_not_in_month")+ '">'+(a.settings.select_other_months||a.settings.show_other_months?x(n-e,a.settings.zero_pad?2:0):"&nbsp;")+"</td>":(m=(a.settings.first_day_of_week+k)%7,d="",B(p,u,n)?(d=-1<c.inArray(m,a.settings.weekend_days)?"dp_weekend_disabled":d+" dp_disabled",u==T&&p==N&&Z==n&&(d+=" dp_disabled_current")):(-1<c.inArray(m,a.settings.weekend_days)&&(d="dp_weekend"),u==J&&p==K&&U==n&&(d+=" dp_selected"),u==T&&p==N&&Z==n&&(d+=" dp_current")),f+="<td"+(""!==d?' class="'+c.trim(d)+'"':"")+">"+(a.settings.zero_pad? x(n,2):n)+"</td>")}D.html(c(f+"</tr>"));a.settings.always_visible&&(la=c("td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_blocked, .dp_week_number)",D));D.show()},xa=function(){ja(p);for(var e="<tr>",b=0;12>b;b++){0<b&&0===b%3&&(e+="</tr><tr>");var d="dp_month_"+b;B(p,b)?d+=" dp_disabled":!1!==J&&J==b?d+=" dp_selected":T==b&&N==p&&(d+=" dp_current");e+='<td class="'+c.trim(d)+'">'+(c.isArray(a.settings.months_abbr)&&void 0!==a.settings.months_abbr[b]?a.settings.months_abbr[b]:a.settings.months[b].substr(0, 3))+"</td>"}G.html(c(e+"</tr>"));a.settings.always_visible&&(ma=c("td:not(.dp_disabled)",G));G.show()},ya=function(){ja(p-7+" - "+(p+4));for(var e="<tr>",b=0;12>b;b++){0<b&&0===b%3&&(e+="</tr><tr>");var d="";B(p-7+b)?d+=" dp_disabled":K&&K==p-7+b?d+=" dp_selected":N==p-7+b&&(d+=" dp_current");e+="<td"+(""!==c.trim(d)?' class="'+c.trim(d)+'"':"")+">"+(p-7+b)+"</td>"}H.html(c(e+"</tr>"));a.settings.always_visible&&(na=c("td:not(.dp_disabled)",H));H.show()},sa=function(a){if("explorer"==M.name&&6==M.version){if(!$){var b= s(h.css("zIndex"))-1;$=jQuery("<iframe>",{src:'javascript:document.write("")',scrolling:"no",frameborder:0,allowtransparency:"true",css:{zIndex:b,position:"absolute",top:-1E3,left:-1E3,width:h.outerWidth(),height:h.outerHeight(),filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=0)",display:"none"}});c("body").append($)}switch(a){case "hide":$.hide();break;default:a=h.offset(),$.css({top:a.top,left:a.left,display:"block"})}}},B=function(e,b,d){if((void 0===e||isNaN(e))&&(void 0===b||isNaN(b))&& (void 0===d||isNaN(d)))return!1;if(c.isArray(a.settings.direction)||0!==s(a.settings.direction)){var f=s(I(e,"undefined"!=typeof b?x(b,2):"","undefined"!=typeof d?x(d,2):"")),k=(f+"").length;if(8==k&&("undefined"!=typeof r&&f<s(I(q,x(g,2),x(y,2)))||"undefined"!=typeof v&&f>s(I(O,x(W,2),x(aa,2))))||6==k&&("undefined"!=typeof r&&f<s(I(q,x(g,2)))||"undefined"!=typeof v&&f>s(I(O,x(W,2))))||4==k&&("undefined"!=typeof r&&f<q||"undefined"!=typeof v&&f>O))return!0}"undefined"!=typeof b&&(b+=1);var h=!1,n= !1;F&&c.each(F,function(){if(!h&&(-1<c.inArray(e,this[2])||-1<c.inArray("*",this[2]))&&("undefined"!=typeof b&&-1<c.inArray(b,this[1])||-1<c.inArray("*",this[1]))&&("undefined"!=typeof d&&-1<c.inArray(d,this[0])||-1<c.inArray("*",this[0]))){if("*"==this[3])return h=!0;var a=(new Date(e,b-1,d)).getDay();if(-1<c.inArray(a,this[3]))return h=!0}});V&&c.each(V,function(){if(!n&&(-1<c.inArray(e,this[2])||-1<c.inArray("*",this[2]))&&(n=!0,"undefined"!=typeof b))if(n=!0,-1<c.inArray(b,this[1])||-1<c.inArray("*", this[1])){if("undefined"!=typeof d){n=!0;if(-1<c.inArray(d,this[0])||-1<c.inArray("*",this[0])){if("*"==this[3])return n=!0;var a=(new Date(e,b-1,d)).getDay();if(-1<c.inArray(a,this[3]))return n=!0}n=!1}}else n=!1});return V&&n||!F||!h?!1:!0},Y=function(a){return(a+"").match(/^\-?[0-9]+$/)?!0:!1},ja=function(e){c(".dp_caption",C).html(e);if(c.isArray(a.settings.direction)||0!==s(a.settings.direction)||1==A.length&&"months"==A[0]){e=p;var b=u,d,f;if("days"==t)f=!B(0>b-1?I(e-1,"11"):I(e,x(b-1,2))), d=!B(11<b+1?I(e+1,"00"):I(e,x(b+1,2)));else if("months"==t){if(!r||r.getFullYear()<=e-1)f=!0;if(!v||v.getFullYear()>=e+1)d=!0}else if("years"==t){if(!r||r.getFullYear()<e-7)f=!0;if(!v||v.getFullYear()>e+4)d=!0}f?c(".dp_previous",C).removeClass("dp_blocked"):(c(".dp_previous",C).addClass("dp_blocked"),c(".dp_previous",C).removeClass("dp_hover"));d?c(".dp_next",C).removeClass("dp_blocked"):(c(".dp_next",C).addClass("dp_blocked"),c(".dp_next",C).removeClass("dp_hover"))}},R=function(){if(""===D.text()|| "days"==t){if(""===D.text()){a.settings.always_visible||h.css("left",-1E3);h.show();ta();var e=D.outerWidth(),b=D.outerHeight();G.css({width:e,height:b});H.css({width:e,height:b});C.css("width",e);X.css("width",e);h.hide()}else ta();G.hide();H.hide()}else"months"==t?(xa(),D.hide(),H.hide()):"years"==t&&(ya(),D.hide(),G.hide());a.settings.onChange&&"function"==typeof a.settings.onChange&&void 0!==t&&(e="days"==t?D.find("td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_blocked)"):"months"== t?G.find("td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_blocked)"):H.find("td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_blocked)"),e.each(function(){if("days"==t)if(c(this).hasClass("dp_not_in_month_selectable")){var a=c(this).attr("class").match(/date\_([0-9]{4})(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])/);c(this).data("date",a[1]+"-"+a[2]+"-"+a[3])}else c(this).data("date",p+"-"+x(u+1,2)+"-"+x(s(c(this).text()),2));else"months"==t?(a=c(this).attr("class").match(/dp\_month\_([0-9]+)/), c(this).data("date",p+"-"+x(s(a[1])+1,2))):c(this).data("date",s(c(this).text()))}),a.settings.onChange(t,e,d));X.show();!0===a.settings.show_clear_date||0===a.settings.show_clear_date&&""!==d.val()||a.settings.always_visible&&!1!==a.settings.show_clear_date?(S.show(),ca?(ba.css("width","50%"),S.css("width","50%")):(ba.hide(),S.css("width","100%"))):(S.hide(),ca?ba.show().css("width","100%"):X.hide())},ea=function(e,b,h,f,k){var g=new Date(e,b,h,12,0,0),n="days"==f?la:"months"==f?ma:na,m;m="";for(var l= g.getDate(),q=g.getDay(),s=a.settings.days[q],r=g.getMonth()+1,v=a.settings.months[r-1],t=g.getFullYear()+"",w=0;w<a.settings.format.length;w++){var y=a.settings.format.charAt(w);switch(y){case "y":t=t.substr(2);case "Y":m+=t;break;case "m":r=x(r,2);case "n":m+=r;break;case "M":v=c.isArray(a.settings.months_abbr)&&void 0!==a.settings.months_abbr[r-1]?a.settings.months_abbr[r-1]:a.settings.months[r-1].substr(0,3);case "F":m+=v;break;case "d":l=x(l,2);case "j":m+=l;break;case "D":s=c.isArray(a.settings.days_abbr)&& void 0!==a.settings.days_abbr[q]?a.settings.days_abbr[q]:a.settings.days[q].substr(0,3);case "l":m+=s;break;case "N":q++;case "w":m+=q;break;case "S":m=1==l%10&&"11"!=l?m+"st":2==l%10&&"12"!=l?m+"nd":3==l%10&&"13"!=l?m+"rd":m+"th";break;default:m+=y}}d.val(m);a.settings.always_visible&&(J=g.getMonth(),u=g.getMonth(),K=g.getFullYear(),p=g.getFullYear(),U=g.getDate(),n.removeClass("dp_selected"),k.addClass("dp_selected"),"days"==f&&k.hasClass("dp_not_in_month_selectable")&&a.show());a.hide();pa(g); if(a.settings.onSelect&&"function"==typeof a.settings.onSelect)a.settings.onSelect(m,e+"-"+x(b+1,2)+"-"+x(h,2),g,d);d.focus()},I=function(){for(var a="",b=0;b<arguments.length;b++)a+=arguments[b]+"";return a},x=function(a,b){for(a+="";a.length<b;)a="0"+a;return a},s=function(a){return parseInt(a,10)},pa=function(e){a.settings.pair&&c.each(a.settings.pair,function(){var a=c(this);a.data&&a.data("Zebra_DatePicker")?(a=a.data("Zebra_DatePicker"),a.update({reference_date:e,direction:0===a.settings.direction? 1:a.settings.direction}),a.settings.always_visible&&a.show()):a.data("zdp_reference_date",e)})},M={init:function(){this.name=this.searchString(this.dataBrowser)||"";this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion)||""},searchString:function(a){for(var b=0;b<a.length;b++){var c=a[b].string,d=a[b].prop;this.versionSearchString=a[b].versionSearch||a[b].identity;if(c){if(-1!=c.indexOf(a[b].subString))return a[b].identity}else if(d)return a[b].identity}},searchVersion:function(a){var b= a.indexOf(this.versionSearchString);if(-1!=b)return parseFloat(a.substring(b+this.versionSearchString.length+1))},dataBrowser:[{string:navigator.userAgent,subString:"Firefox",identity:"firefox"},{string:navigator.userAgent,subString:"MSIE",identity:"explorer",versionSearch:"MSIE"}]};M.init();ra()};c.fn.Zebra_DatePicker=function(ga){return this.each(function(){void 0!==c(this).data("Zebra_DatePicker")&&c(this).data("Zebra_DatePicker").destroy();var ha=new c.Zebra_DatePicker(this,ga);c(this).data("Zebra_DatePicker", ha)})}})(jQuery);
1
+ !function(a){"use strict";a.Zebra_DatePicker=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N={always_visible:!1,days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],days_abbr:!1,default_position:"above",direction:0,disabled_dates:!1,enabled_dates:!1,first_day_of_week:1,format:"Y-m-d",header_captions:{days:"F, Y",months:"Y",years:"Y1 - Y2"},header_navigation:["&#171;","&#187;"],inside:!0,lang_clear_date:"Clear date",months:["January","February","March","April","May","June","July","August","September","October","November","December"],months_abbr:!1,offset:[5,-5],pair:!1,readonly_element:!0,select_other_months:!1,show_clear_date:0,show_icon:!0,show_other_months:!0,show_select_today:"Today",show_week_number:!1,start_date:!1,strict:!1,view:"days",weekend_days:[0,6],zero_pad:!1,onChange:null,onClear:null,onOpen:null,onSelect:null},O=this;O.settings={};var P=a(b),Q=function(b){if(!b){O.settings=a.extend({},N,c);for(var y in P.data())0===y.indexOf("zdp_")&&(y=y.replace(/^zdp\_/,""),void 0!==N[y]&&(O.settings[y]="pair"==y?a(P.data("zdp_"+y)):P.data("zdp_"+y)))}O.settings.readonly_element&&P.attr("readonly","readonly");var E={days:["d","j","D"],months:["F","m","M","n","t"],years:["o","Y","y"]},F=!1,G=!1,Q=!1,T=null;for(T in E)a.each(E[T],function(a,b){O.settings.format.indexOf(b)>-1&&("days"==T?F=!0:"months"==T?G=!0:"years"==T&&(Q=!0))});H=F&&G&&Q?["years","months","days"]:!F&&G&&Q?["years","months"]:F&&G&&!Q?["months","days"]:F||G||!Q?F||!G||Q?["years","months","days"]:["months"]:["years"],-1==a.inArray(O.settings.view,H)&&(O.settings.view=H[H.length-1]),x=[],w=[];for(var U,V=0;2>V;V++)U=0===V?O.settings.disabled_dates:O.settings.enabled_dates,a.isArray(U)&&U.length>0&&a.each(U,function(){for(var b=this.split(" "),c=0;4>c;c++){b[c]||(b[c]="*"),b[c]=b[c].indexOf(",")>-1?b[c].split(","):new Array(b[c]);for(var d=0;d<b[c].length;d++)if(b[c][d].indexOf("-")>-1){var e=b[c][d].match(/^([0-9]+)\-([0-9]+)/);if(null!==e){for(var f=eb(e[1]);f<=eb(e[2]);f++)-1==a.inArray(f,b[c])&&b[c].push(f+"");b[c].splice(d,1)}}for(d=0;d<b[c].length;d++)b[c][d]=isNaN(eb(b[c][d]))?b[c][d]:eb(b[c][d])}0===V?x.push(b):w.push(b)});var W,X,Y=new Date,_=O.settings.reference_date?O.settings.reference_date:P.data("zdp_reference_date")&&void 0!==P.data("zdp_reference_date")?P.data("zdp_reference_date"):Y;if(z=void 0,A=void 0,o=_.getMonth(),l=Y.getMonth(),p=_.getFullYear(),m=Y.getFullYear(),q=_.getDate(),n=Y.getDate(),O.settings.direction===!0)z=_;else if(O.settings.direction===!1)A=_,D=A.getMonth(),C=A.getFullYear(),B=A.getDate();else if(!a.isArray(O.settings.direction)&&$(O.settings.direction)&&eb(O.settings.direction)>0||a.isArray(O.settings.direction)&&((W=R(O.settings.direction[0]))||O.settings.direction[0]===!0||$(O.settings.direction[0])&&O.settings.direction[0]>0)&&((X=R(O.settings.direction[1]))||O.settings.direction[1]===!1||$(O.settings.direction[1])&&O.settings.direction[1]>=0))z=W?W:new Date(p,o,q+(a.isArray(O.settings.direction)?eb(O.settings.direction[0]===!0?0:O.settings.direction[0]):eb(O.settings.direction))),o=z.getMonth(),p=z.getFullYear(),q=z.getDate(),X&&+X>=+z?A=X:!X&&O.settings.direction[1]!==!1&&a.isArray(O.settings.direction)&&(A=new Date(p,o,q+eb(O.settings.direction[1]))),A&&(D=A.getMonth(),C=A.getFullYear(),B=A.getDate());else if(!a.isArray(O.settings.direction)&&$(O.settings.direction)&&eb(O.settings.direction)<0||a.isArray(O.settings.direction)&&(O.settings.direction[0]===!1||$(O.settings.direction[0])&&O.settings.direction[0]<0)&&((W=R(O.settings.direction[1]))||$(O.settings.direction[1])&&O.settings.direction[1]>=0))A=new Date(p,o,q+(a.isArray(O.settings.direction)?eb(O.settings.direction[0]===!1?0:O.settings.direction[0]):eb(O.settings.direction))),D=A.getMonth(),C=A.getFullYear(),B=A.getDate(),W&&+A>+W?z=W:!W&&a.isArray(O.settings.direction)&&(z=new Date(C,D,B-eb(O.settings.direction[1]))),z&&(o=z.getMonth(),p=z.getFullYear(),q=z.getDate());else if(a.isArray(O.settings.disabled_dates)&&O.settings.disabled_dates.length>0)for(var cb in x)if("*"==x[cb][0]&&"*"==x[cb][1]&&"*"==x[cb][2]&&"*"==x[cb][3]){var gb=[];if(a.each(w,function(){var a=this;"*"!=a[2][0]&&gb.push(parseInt(a[2][0]+("*"==a[1][0]?"12":db(a[1][0],2))+("*"==a[0][0]?"*"==a[1][0]?"31":new Date(a[2][0],a[1][0],0).getDate():db(a[0][0],2)),10))}),gb.sort(),gb.length>0){var ib=(gb[0]+"").match(/([0-9]{4})([0-9]{2})([0-9]{2})/);p=parseInt(ib[1],10),o=parseInt(ib[2],10)-1,q=parseInt(ib[3],10)}break}if(Z(p,o,q)){for(;Z(p);)z?(p++,o=0):(p--,o=11);for(;Z(p,o);)z?(o++,q=1):(o--,q=new Date(p,o+1,0).getDate()),o>11?(p++,o=0,q=1):0>o&&(p--,o=11,q=new Date(p,o+1,0).getDate());for(;Z(p,o,q);)z?q++:q--,Y=new Date(p,o,q),p=Y.getFullYear(),o=Y.getMonth(),q=Y.getDate();Y=new Date(p,o,q),p=Y.getFullYear(),o=Y.getMonth(),q=Y.getDate()}var jb=R(P.val()||(O.settings.start_date?O.settings.start_date:""));if(jb&&O.settings.strict&&Z(jb.getFullYear(),jb.getMonth(),jb.getDate())&&P.val(""),b||void 0===z&&void 0===jb||fb(void 0!==z?z:jb),!O.settings.always_visible){if(!b){if(O.settings.show_icon){"firefox"==hb.name&&P.is('input[type="text"]')&&"inline"==P.css("display")&&P.css("display","inline-block");var kb=a('<span class="Zebra_DatePicker_Icon_Wrapper"></span>').css({display:P.css("display"),position:"static"==P.css("position")?"relative":P.css("position"),"float":P.css("float"),top:P.css("top"),right:P.css("right"),bottom:P.css("bottom"),left:P.css("left")});P.wrap(kb).css({position:"relative",top:"auto",right:"auto",bottom:"auto",left:"auto"}),f=a('<button type="button" class="Zebra_DatePicker_Icon'+("disabled"==P.attr("disabled")?" Zebra_DatePicker_Icon_Disabled":"")+'">Pick a date</button>'),O.icon=f,I=f.add(P)}else I=P;I.bind("click",function(a){a.preventDefault(),P.attr("disabled")||(e.hasClass("dp_visible")?O.hide():O.show())}),void 0!==f&&f.insertAfter(P)}if(void 0!==f){f.attr("style",""),O.settings.inside&&f.addClass("Zebra_DatePicker_Icon_Inside");var lb=P.outerWidth(),mb=P.outerHeight(),nb=parseInt(P.css("marginLeft"),10)||0,ob=parseInt(P.css("marginTop"),10)||0,pb=f.outerWidth(),qb=f.outerHeight(),rb=parseInt(f.css("marginLeft"),10)||0,sb=parseInt(f.css("marginRight"),10)||0;O.settings.inside?f.css({top:ob+(mb-qb)/2,left:nb+(lb-pb-sb)}):f.css({top:ob+(mb-qb)/2,left:nb+lb+rb}),f.removeClass(" Zebra_DatePicker_Icon_Disabled"),"disabled"==P.attr("disabled")&&f.addClass("Zebra_DatePicker_Icon_Disabled")}}if(L=O.settings.show_select_today!==!1&&a.inArray("days",H)>-1&&!Z(m,l,n)?O.settings.show_select_today:!1,!b){a(window).bind("resize.Zebra_DatePicker",function(){O.hide(),void 0!==f&&(clearTimeout(M),M=setTimeout(function(){O.update()},100))});var tb='<div class="Zebra_DatePicker"><table class="dp_header"><tr><td class="dp_previous">'+O.settings.header_navigation[0]+'</td><td class="dp_caption">&#032;</td><td class="dp_next">'+O.settings.header_navigation[1]+'</td></tr></table><table class="dp_daypicker"></table><table class="dp_monthpicker"></table><table class="dp_yearpicker"></table><table class="dp_footer"><tr><td class="dp_today"'+(O.settings.show_clear_date!==!1?' style="width:50%"':"")+">"+L+'</td><td class="dp_clear"'+(L!==!1?' style="width:50%"':"")+">"+O.settings.lang_clear_date+"</td></tr></table></div>";e=a(tb),O.datepicker=e,g=a("table.dp_header",e),h=a("table.dp_daypicker",e),i=a("table.dp_monthpicker",e),j=a("table.dp_yearpicker",e),K=a("table.dp_footer",e),J=a("td.dp_today",K),k=a("td.dp_clear",K),O.settings.always_visible?P.attr("disabled")||(O.settings.always_visible.append(e),O.show()):a("body").append(e),e.delegate("td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_week_number)","mouseover",function(){a(this).addClass("dp_hover")}).delegate("td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_week_number)","mouseout",function(){a(this).removeClass("dp_hover")}),S(a("td",g)),a(".dp_previous",g).bind("click",function(){"months"==d?s--:"years"==d?s-=12:--r<0&&(r=11,s--),ab()}),a(".dp_caption",g).bind("click",function(){d="days"==d?a.inArray("months",H)>-1?"months":a.inArray("years",H)>-1?"years":"days":"months"==d?a.inArray("years",H)>-1?"years":a.inArray("days",H)>-1?"days":"months":a.inArray("days",H)>-1?"days":a.inArray("months",H)>-1?"months":"years",ab()}),a(".dp_next",g).bind("click",function(){"months"==d?s++:"years"==d?s+=12:12==++r&&(r=0,s++),ab()}),h.delegate("td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_week_number)","click",function(){O.settings.select_other_months&&null!==(ib=a(this).attr("class").match(/date\_([0-9]{4})(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])/))?bb(ib[1],ib[2]-1,ib[3],"days",a(this)):bb(s,r,eb(a(this).html()),"days",a(this))}),i.delegate("td:not(.dp_disabled)","click",function(){var b=a(this).attr("class").match(/dp\_month\_([0-9]+)/);r=eb(b[1]),-1==a.inArray("days",H)?bb(s,r,1,"months",a(this)):(d="days",O.settings.always_visible&&P.val(""),ab())}),j.delegate("td:not(.dp_disabled)","click",function(){s=eb(a(this).html()),-1==a.inArray("months",H)?bb(s,1,1,"years",a(this)):(d="months",O.settings.always_visible&&P.val(""),ab())}),a(J).bind("click",function(b){b.preventDefault(),bb(m,l,n,"days",a(".dp_current",h)),O.settings.always_visible&&O.show(),O.hide()}),a(k).bind("click",function(b){b.preventDefault(),P.val(""),O.settings.always_visible?(t=null,u=null,v=null,a("td.dp_selected",e).removeClass("dp_selected")):(t=null,u=null,v=null,r=null,s=null),O.hide(),O.settings.onClear&&"function"==typeof O.settings.onClear&&O.settings.onClear.call(P,P)}),O.settings.always_visible||a(document).bind({"mousedown.Zebra_DatePicker":function(b){if(e.hasClass("dp_visible")){if(O.settings.show_icon&&a(b.target).get(0)===f.get(0))return!0;0===a(b.target).parents().filter(".Zebra_DatePicker").length&&O.hide()}},"keyup.Zebra_DatePicker":function(a){e.hasClass("dp_visible")&&27==a.which&&O.hide()}}),ab()}};O.destroy=function(){void 0!==O.icon&&O.icon.remove(),O.datepicker.remove(),a(document).unbind("keyup.Zebra_DatePicker"),a(document).unbind("mousedown.Zebra_DatePicker"),a(window).unbind("resize.Zebra_DatePicker"),P.removeData("Zebra_DatePicker")},O.hide=function(){O.settings.always_visible||(Y("hide"),e.removeClass("dp_visible").addClass("dp_hidden"))},O.show=function(){d=O.settings.view;var b=R(P.val()||(O.settings.start_date?O.settings.start_date:""));if(b?(u=b.getMonth(),r=b.getMonth(),v=b.getFullYear(),s=b.getFullYear(),t=b.getDate(),Z(v,u,t)&&(O.settings.strict&&P.val(""),r=o,s=p)):(r=o,s=p),ab(),O.settings.always_visible)e.removeClass("dp_hidden").addClass("dp_visible");else{var c=e.outerWidth(),g=e.outerHeight(),h=(void 0!==f?f.offset().left+f.outerWidth(!0):P.offset().left+P.outerWidth(!0))+O.settings.offset[0],i=(void 0!==f?f.offset().top:P.offset().top)-g+O.settings.offset[1],j=a(window).width(),k=a(window).height(),l=a(window).scrollTop(),m=a(window).scrollLeft();"below"==O.settings.default_position&&(i=(void 0!==f?f.offset().top:P.offset().top)+O.settings.offset[1]),h+c>m+j&&(h=m+j-c),m>h&&(h=m),i+g>l+k&&(i=l+k-g),l>i&&(i=l),e.css({left:h,top:i}),e.removeClass("dp_hidden").addClass("dp_visible"),Y()}O.settings.onOpen&&"function"==typeof O.settings.onOpen&&O.settings.onOpen.call(P,P)},O.update=function(b){O.original_direction&&(O.original_direction=O.direction),O.settings=a.extend(O.settings,b),Q(!0)};var R=function(b){if(b+="",""!==a.trim(b)){for(var c=T(O.settings.format),d=["d","D","j","l","N","S","w","F","m","M","n","Y","y"],e=[],f=[],g=null,h=null,i=0;i<d.length;i++)(g=c.indexOf(d[i]))>-1&&e.push({character:d[i],position:g});if(e.sort(function(a,b){return a.position-b.position}),a.each(e,function(a,b){switch(b.character){case"d":f.push("0[1-9]|[12][0-9]|3[01]");break;case"D":f.push("[a-z]{3}");break;case"j":f.push("[1-9]|[12][0-9]|3[01]");break;case"l":f.push("[a-z]+");break;case"N":f.push("[1-7]");break;case"S":f.push("st|nd|rd|th");break;case"w":f.push("[0-6]");break;case"F":f.push("[a-z]+");break;case"m":f.push("0[1-9]|1[012]+");break;case"M":f.push("[a-z]{3}");break;case"n":f.push("[1-9]|1[012]");break;case"Y":f.push("[0-9]{4}");break;case"y":f.push("[0-9]{2}")}}),f.length&&(e.reverse(),a.each(e,function(a,b){c=c.replace(b.character,"("+f[f.length-a-1]+")")}),f=new RegExp("^"+c+"$","ig"),h=f.exec(b))){var j,k=new Date,l=1,m=k.getMonth()+1,n=k.getFullYear(),o=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],p=["January","February","March","April","May","June","July","August","September","October","November","December"],q=!0;if(e.reverse(),a.each(e,function(b,c){if(!q)return!0;switch(c.character){case"m":case"n":m=eb(h[b+1]);break;case"d":case"j":l=eb(h[b+1]);break;case"D":case"l":case"F":case"M":j="D"==c.character||"l"==c.character?O.settings.days:O.settings.months,q=!1,a.each(j,function(a,d){if(q)return!0;if(h[b+1].toLowerCase()==d.substring(0,"D"==c.character||"M"==c.character?3:d.length).toLowerCase()){switch(c.character){case"D":h[b+1]=o[a].substring(0,3);break;case"l":h[b+1]=o[a];break;case"F":h[b+1]=p[a],m=a+1;break;case"M":h[b+1]=p[a].substring(0,3),m=a+1}q=!0}});break;case"Y":n=eb(h[b+1]);break;case"y":n="19"+eb(h[b+1])}}),q){var r=new Date(n,(m||1)-1,l||1);if(r.getFullYear()==n&&r.getDate()==(l||1)&&r.getMonth()==(m||1)-1)return r}}return!1}},S=function(a){"firefox"==hb.name?a.css("MozUserSelect","none"):"explorer"==hb.name?a.bind("selectstart",function(){return!1}):a.mousedown(function(){return!1})},T=function(a){return a.replace(/([-.,*+?^${}()|[\]\/\\])/g,"\\$1")},U=function(b){for(var c="",d=b.getDate(),e=b.getDay(),f=O.settings.days[e],g=b.getMonth()+1,h=O.settings.months[g-1],i=b.getFullYear()+"",j=0;j<O.settings.format.length;j++){var k=O.settings.format.charAt(j);switch(k){case"y":i=i.substr(2);case"Y":c+=i;break;case"m":g=db(g,2);case"n":c+=g;break;case"M":h=a.isArray(O.settings.months_abbr)&&void 0!==O.settings.months_abbr[g-1]?O.settings.months_abbr[g-1]:O.settings.months[g-1].substr(0,3);case"F":c+=h;break;case"d":d=db(d,2);case"j":c+=d;break;case"D":f=a.isArray(O.settings.days_abbr)&&void 0!==O.settings.days_abbr[e]?O.settings.days_abbr[e]:O.settings.days[e].substr(0,3);case"l":c+=f;break;case"N":e++;case"w":c+=e;break;case"S":c+=d%10==1&&"11"!=d?"st":d%10==2&&"12"!=d?"nd":d%10==3&&"13"!=d?"rd":"th";break;default:c+=k}}return c},V=function(){var b=new Date(s,r+1,0).getDate(),c=new Date(s,r,1).getDay(),d=new Date(s,r,0).getDate(),e=c-O.settings.first_day_of_week;e=0>e?7+e:e,_(O.settings.header_captions.days);var f="<tr>";O.settings.show_week_number&&(f+="<th>"+O.settings.show_week_number+"</th>");for(var g=0;7>g;g++)f+="<th>"+(a.isArray(O.settings.days_abbr)&&void 0!==O.settings.days_abbr[(O.settings.first_day_of_week+g)%7]?O.settings.days_abbr[(O.settings.first_day_of_week+g)%7]:O.settings.days[(O.settings.first_day_of_week+g)%7].substr(0,2))+"</th>";for(f+="</tr><tr>",g=0;42>g;g++){g>0&&g%7===0&&(f+="</tr><tr>"),g%7===0&&O.settings.show_week_number&&(f+='<td class="dp_week_number">'+gb(new Date(s,r,g-e+1))+"</td>");var i=g-e+1;if(O.settings.select_other_months&&(e>g||i>b)){var j=new Date(s,r,i),k=j.getFullYear(),o=j.getMonth(),p=j.getDate();j=k+db(o+1,2)+db(p,2)}if(e>g)f+='<td class="'+(O.settings.select_other_months&&!Z(k,o,p)?"dp_not_in_month_selectable date_"+j:"dp_not_in_month")+'">'+(O.settings.select_other_months||O.settings.show_other_months?db(d-e+g+1,O.settings.zero_pad?2:0):"&nbsp;")+"</td>";else if(i>b)f+='<td class="'+(O.settings.select_other_months&&!Z(k,o,p)?"dp_not_in_month_selectable date_"+j:"dp_not_in_month")+'">'+(O.settings.select_other_months||O.settings.show_other_months?db(i-b,O.settings.zero_pad?2:0):"&nbsp;")+"</td>";else{var q=(O.settings.first_day_of_week+g)%7,w="";Z(s,r,i)?(a.inArray(q,O.settings.weekend_days)>-1?w="dp_weekend_disabled":w+=" dp_disabled",r==l&&s==m&&n==i&&(w+=" dp_disabled_current")):(a.inArray(q,O.settings.weekend_days)>-1&&(w="dp_weekend"),r==u&&s==v&&t==i&&(w+=" dp_selected"),r==l&&s==m&&n==i&&(w+=" dp_current")),f+="<td"+(""!==w?' class="'+a.trim(w)+'"':"")+">"+(O.settings.zero_pad?db(i,2):i)+"</td>"}}f+="</tr>",h.html(a(f)),O.settings.always_visible&&(E=a("td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_week_number)",h)),h.show()},W=function(){_(O.settings.header_captions.months);for(var b="<tr>",c=0;12>c;c++){c>0&&c%3===0&&(b+="</tr><tr>");var d="dp_month_"+c;Z(s,c)?d+=" dp_disabled":u!==!1&&u==c&&s==v?d+=" dp_selected":l==c&&m==s&&(d+=" dp_current"),b+='<td class="'+a.trim(d)+'">'+(a.isArray(O.settings.months_abbr)&&void 0!==O.settings.months_abbr[c]?O.settings.months_abbr[c]:O.settings.months[c].substr(0,3))+"</td>"}b+="</tr>",i.html(a(b)),O.settings.always_visible&&(F=a("td:not(.dp_disabled)",i)),i.show()},X=function(){_(O.settings.header_captions.years);for(var b="<tr>",c=0;12>c;c++){c>0&&c%3===0&&(b+="</tr><tr>");var d="";Z(s-7+c)?d+=" dp_disabled":v&&v==s-7+c?d+=" dp_selected":m==s-7+c&&(d+=" dp_current"),b+="<td"+(""!==a.trim(d)?' class="'+a.trim(d)+'"':"")+">"+(s-7+c)+"</td>"}b+="</tr>",j.html(a(b)),O.settings.always_visible&&(G=a("td:not(.dp_disabled)",j)),j.show()},Y=function(b){if("explorer"==hb.name&&6==hb.version){if(!y){var c=eb(e.css("zIndex"))-1;y=a("<iframe>",{src:'javascript:document.write("")',scrolling:"no",frameborder:0,css:{zIndex:c,position:"absolute",top:-1e3,left:-1e3,width:e.outerWidth(),height:e.outerHeight(),filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=0)",display:"none"}}),a("body").append(y)}switch(b){case"hide":y.hide();break;default:var d=e.offset();y.css({top:d.top,left:d.left,display:"block"})}}},Z=function(b,c,d){if((void 0===b||isNaN(b))&&(void 0===c||isNaN(c))&&(void 0===d||isNaN(d)))return!1;if(a.isArray(O.settings.direction)||0!==eb(O.settings.direction)){var e=eb(cb(b,"undefined"!=typeof c?db(c,2):"","undefined"!=typeof d?db(d,2):"")),f=(e+"").length;if(8==f&&("undefined"!=typeof z&&e<eb(cb(p,db(o,2),db(q,2)))||"undefined"!=typeof A&&e>eb(cb(C,db(D,2),db(B,2)))))return!0;if(6==f&&("undefined"!=typeof z&&e<eb(cb(p,db(o,2)))||"undefined"!=typeof A&&e>eb(cb(C,db(D,2)))))return!0;if(4==f&&("undefined"!=typeof z&&p>e||"undefined"!=typeof A&&e>C))return!0}"undefined"!=typeof c&&(c+=1);var g=!1,h=!1;return x&&a.each(x,function(){if(!g){var e=this;if((a.inArray(b,e[2])>-1||a.inArray("*",e[2])>-1)&&("undefined"!=typeof c&&a.inArray(c,e[1])>-1||a.inArray("*",e[1])>-1)&&("undefined"!=typeof d&&a.inArray(d,e[0])>-1||a.inArray("*",e[0])>-1)){if("*"==e[3])return g=!0;var f=new Date(b,c-1,d).getDay();if(a.inArray(f,e[3])>-1)return g=!0}}}),w&&a.each(w,function(){if(!h){var e=this;if((a.inArray(b,e[2])>-1||a.inArray("*",e[2])>-1)&&(h=!0,"undefined"!=typeof c))if(h=!0,a.inArray(c,e[1])>-1||a.inArray("*",e[1])>-1){if("undefined"!=typeof d)if(h=!0,a.inArray(d,e[0])>-1||a.inArray("*",e[0])>-1){if("*"==e[3])return h=!0;var f=new Date(b,c-1,d).getDay();if(a.inArray(f,e[3])>-1)return h=!0;h=!1}else h=!1}else h=!1}}),w&&h?!1:x&&g?!0:!1},$=function(a){return(a+"").match(/^\-?[0-9]+$/)?!0:!1},_=function(b){!isNaN(parseFloat(r))&&isFinite(r)&&(b=b.replace(/\bm\b|\bn\b|\bF\b|\bM\b/,function(b){switch(b){case"m":return db(r+1,2);case"n":return r+1;case"F":return O.settings.months[r];case"M":return a.isArray(O.settings.months_abbr)&&void 0!==O.settings.months_abbr[r]?O.settings.months_abbr[r]:O.settings.months[r].substr(0,3);default:return b}})),!isNaN(parseFloat(s))&&isFinite(s)&&(b=b.replace(/\bY\b/,s).replace(/\by\b/,(s+"").substr(2)).replace(/\bY1\b/i,s-7).replace(/\bY2\b/i,s+4)),a(".dp_caption",g).html(b)},ab=function(){if(""===h.text()||"days"==d){if(""===h.text()){O.settings.always_visible||e.css("left",-1e3),e.css("visibility","visible"),V();var b=h.outerWidth(),c=h.outerHeight();i.css({width:b,height:c}),j.css({width:b,height:c}),g.css("width",b),K.css("width",b),e.css("visibility","").addClass("dp_hidden")}else V();i.hide(),j.hide()}else"months"==d?(W(),h.hide(),j.hide()):"years"==d&&(X(),h.hide(),i.hide());if(O.settings.onChange&&"function"==typeof O.settings.onChange&&void 0!==d){var f="days"==d?h.find("td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month)"):"months"==d?i.find("td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month)"):j.find("td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month)");f.each(function(){if("days"==d)if(a(this).hasClass("dp_not_in_month_selectable")){var b=a(this).attr("class").match(/date\_([0-9]{4})(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])/);a(this).data("date",b[1]+"-"+b[2]+"-"+b[3])}else a(this).data("date",s+"-"+db(r+1,2)+"-"+db(eb(a(this).text()),2));else if("months"==d){var b=a(this).attr("class").match(/dp\_month\_([0-9]+)/);a(this).data("date",s+"-"+db(eb(b[1])+1,2))}else a(this).data("date",eb(a(this).text()))}),O.settings.onChange.call(P,d,f,P)}K.show(),O.settings.show_clear_date===!0||0===O.settings.show_clear_date&&""!==P.val()||O.settings.always_visible&&O.settings.show_clear_date!==!1?(k.show(),L?(J.css("width","50%"),k.css("width","50%")):(J.hide(),k.css("width","100%"))):(k.hide(),L?J.show().css("width","100%"):K.hide())},bb=function(a,b,c,d,e){var f=new Date(a,b,c,12,0,0),g="days"==d?E:"months"==d?F:G,h=U(f);P.val(h),O.settings.always_visible&&(u=f.getMonth(),r=f.getMonth(),v=f.getFullYear(),s=f.getFullYear(),t=f.getDate(),g.removeClass("dp_selected"),e.addClass("dp_selected"),"days"==d&&e.hasClass("dp_not_in_month_selectable")&&O.show()),O.hide(),fb(f),O.settings.onSelect&&"function"==typeof O.settings.onSelect&&O.settings.onSelect.call(P,h,a+"-"+db(b+1,2)+"-"+db(c,2),f,P,gb(f)),P.focus()},cb=function(){for(var a="",b=0;b<arguments.length;b++)a+=arguments[b]+"";return a},db=function(a,b){for(a+="";a.length<b;)a="0"+a;return a},eb=function(a){return parseInt(a,10)},fb=function(b){O.settings.pair&&a.each(O.settings.pair,function(){var c=a(this);if(c.data&&c.data("Zebra_DatePicker")){var d=c.data("Zebra_DatePicker");d.update({reference_date:b,direction:0===d.settings.direction?1:d.settings.direction}),d.settings.always_visible&&d.show()}else c.data("zdp_reference_date",b)})},gb=function(a){var b,c,d,e,f,g,h,i,j,k=a.getFullYear(),l=a.getMonth()+1,m=a.getDate();return 3>l?(b=k-1,c=(b/4|0)-(b/100|0)+(b/400|0),d=((b-1)/4|0)-((b-1)/100|0)+((b-1)/400|0),e=c-d,f=0,g=m-1+31*(l-1)):(b=k,c=(b/4|0)-(b/100|0)+(b/400|0),d=((b-1)/4|0)-((b-1)/100|0)+((b-1)/400|0),e=c-d,f=e+1,g=m+((153*(l-3)+2)/5|0)+58+e),h=(b+c)%7,m=(g+h-f)%7,i=g+3-m,j=0>i?53-((h-e)/5|0):i>364+e?1:(i/7|0)+1},hb={init:function(){this.name=this.searchString(this.dataBrowser)||"",this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion)||""},searchString:function(a){for(var b=0;b<a.length;b++){var c=a[b].string,d=a[b].prop;if(this.versionSearchString=a[b].versionSearch||a[b].identity,c){if(-1!=c.indexOf(a[b].subString))return a[b].identity}else if(d)return a[b].identity}},searchVersion:function(a){var b=a.indexOf(this.versionSearchString);if(-1!=b)return parseFloat(a.substring(b+this.versionSearchString.length+1))},dataBrowser:[{string:navigator.userAgent,subString:"Firefox",identity:"firefox"},{string:navigator.userAgent,subString:"MSIE",identity:"explorer",versionSearch:"MSIE"}]};hb.init(),Q()},a.fn.Zebra_DatePicker=function(b){return this.each(function(){void 0!==a(this).data("Zebra_DatePicker")&&a(this).data("Zebra_DatePicker").destroy();var c=new a.Zebra_DatePicker(this,b);a(this).data("Zebra_DatePicker",c)})}}(jQuery);
@@ -8,13 +8,15 @@
8
8
  * For more resources visit {@link http://stefangabos.ro/}
9
9
  *
10
10
  * @author Stefan Gabos <contact@stefangabos.ro>
11
- * @version 1.8.7 (last revision: November 28, 2013)
12
- * @copyright (c) 2011 - 2013 Stefan Gabos
11
+ * @version 1.8.9 (last revision: August 16, 2014)
12
+ * @copyright (c) 2011 - 2014 Stefan Gabos
13
13
  * @license http://www.gnu.org/licenses/lgpl-3.0.txt GNU LESSER GENERAL PUBLIC LICENSE
14
14
  * @package Zebra_DatePicker
15
15
  */
16
16
  ;(function($) {
17
17
 
18
+ 'use strict';
19
+
18
20
  $.Zebra_DatePicker = function(element, options) {
19
21
 
20
22
  var defaults = {
@@ -34,6 +36,14 @@
34
36
  // default is FALSE
35
37
  days_abbr: false,
36
38
 
39
+ // the position of the date picker relative to the element it is attached to. note that, regardless of this
40
+ // setting, the date picker's position will be automatically adjusted to fit in the viewport, if needed.
41
+ //
42
+ // possible values are "above" and "below"
43
+ //
44
+ // default is "above"
45
+ default_position: 'above',
46
+
37
47
  // direction of the calendar
38
48
  //
39
49
  // a positive or negative integer: n (a positive integer) creates a future-only calendar beginning at n days
@@ -97,7 +107,7 @@
97
107
  // format of the returned date
98
108
  //
99
109
  // accepts the following characters for date formatting: d, D, j, l, N, w, S, F, m, M, n, Y, y borrowing
100
- // syntax from (PHP's date function)
110
+ // syntax from PHP's "date" function.
101
111
  //
102
112
  // note that when setting a date format without days ('d', 'j'), the users will be able to select only years
103
113
  // and months, and when setting a format without months and days ('F', 'm', 'M', 'n', 'd', 'j'), the
@@ -110,6 +120,41 @@
110
120
  // default is Y-m-d
111
121
  format: 'Y-m-d',
112
122
 
123
+ // captions in the datepicker's header, for the 3 possible views: days, months, years
124
+ //
125
+ // for each of the 3 views the following special characters may be used borrowing from PHP's "date" function's
126
+ // syntax: m, n, F, M, y and Y; any of these will be replaced at runtime with the appropriate date fragment,
127
+ // depending on the currently viewed date. two more special characters are also available Y1 and Y2 (upper
128
+ // case representing years with 4 digits, lowercase representing years with 2 digits) which represent
129
+ // "currently selected year - 7" and "currently selected year + 4" and which only make sense used in the
130
+ // "years" view.
131
+ //
132
+ // even though any of these special characters may be used in any of the 3 views, you should use m, n, F, M
133
+ // for the "days" view and y, Y, Y1, Y2, y1, y2 for the "months" and "years" view or you may get unexpected
134
+ // results!
135
+ //
136
+ // Text and HTML can also be used, and will be rendered as it is, as in the example below (the library is
137
+ // smart enough to not replace special characters when used in words or HTML tags):
138
+ //
139
+ // header_captions: {
140
+ // 'days': 'Departure:<br>F, Y',
141
+ // 'months': 'Departure:<br>Y',
142
+ // 'years': 'Departure:<br>Y1 - Y2'
143
+ // }
144
+ //
145
+ // Default is
146
+ //
147
+ // header_captions: {
148
+ // 'days': 'F, Y',
149
+ // 'months': 'Y',
150
+ // 'years': 'Y1 - Y2'
151
+ // }
152
+ header_captions: {
153
+ 'days': 'F, Y',
154
+ 'months': 'Y',
155
+ 'years': 'Y1 - Y2'
156
+ },
157
+
113
158
  // HTML to be used for the previous month/next month buttons
114
159
  //
115
160
  // default is ['&#171;','&#187;']
@@ -246,26 +291,44 @@
246
291
  // view (can be "days", "months" or "years"), the second argument represents an array containing the "active"
247
292
  // elements (not disabled) from the view, as jQuery elements, allowing for easy customization and interaction
248
293
  // with particular cells in the date picker's view, while the third argument is a reference to the element
249
- // the date picker is attached to, as a jQuery object
294
+ // the date picker is attached to, as a jQuery object (deprecated - use the "this" keyword inside the callback
295
+ // function to refer to the element the date picker is attached to)
250
296
  //
251
297
  // for simplifying searching for particular dates, each element in the second argument will also have a
252
298
  // "date" data attribute whose format depends on the value of the "view" argument:
253
299
  // - YYYY-MM-DD for elements in the "days" view
254
300
  // - YYYY-MM for elements in the "months" view
255
301
  // - YYYY for elements in the "years" view
302
+ //
303
+ // the "this" keyword inside the callback function refers to the element the date picker is attached to!
256
304
  onChange: null,
257
305
 
258
306
  // callback function to be executed when the user clicks the "Clear" button
259
307
  // the callback function takes a single argument:
260
- // - a reference to the element the date picker is attached to, as a jQuery object
308
+ // - a reference to the element the date picker is attached to, as a jQuery object (deprecated - use the
309
+ // "this" keyword inside the callback function to refer to the element the date picker is attached to)
310
+ //
311
+ // the "this" keyword inside the callback function refers to the element the date picker is attached to!
261
312
  onClear: null,
262
313
 
314
+ // callback function to be executed when the date picker is shown
315
+ // the callback function takes a single argument:
316
+ // - a reference to the element the date picker is attached to, as a jQuery object (deprecated - use the
317
+ // "this" keyword inside the callback function to refer to the element the date picker is attached to)
318
+ //
319
+ // the "this" keyword inside the callback function refers to the element the date picker is attached to!
320
+ onOpen: null,
321
+
263
322
  // callback function to be executed when a date is selected
264
- // the callback function takes 4 arguments:
323
+ // the callback function takes 5 arguments:
265
324
  // - the date in the format specified by the "format" attribute;
266
325
  // - the date in YYYY-MM-DD format
267
326
  // - the date as a JavaScript Date object
268
- // - a reference to the element the date picker is attached to, as a jQuery object
327
+ // - a reference to the element the date picker is attached to, as a jQuery object (deprecated - use the
328
+ // "this" keyword inside the callback function to refer to the element the date picker is attached to)
329
+ // - the ISO 8601 week number of the selected date
330
+ //
331
+ // the "this" keyword inside the callback function refers to the element the date picker is attached to!
269
332
  onSelect: null
270
333
 
271
334
  };
@@ -311,7 +374,8 @@
311
374
  if (undefined !== defaults[data])
312
375
 
313
376
  // update the property's value
314
- plugin.settings[data] = $element.data('zdp_' + data);
377
+ // (note that for the "pair" property we need to convert the property to an element)
378
+ plugin.settings[data] = (data == 'pair' ? $($element.data('zdp_' + data)) : $element.data('zdp_' + data));
315
379
 
316
380
  }
317
381
 
@@ -361,6 +425,9 @@
361
425
  // if user can cycle only through year and months, set the flag accordingly
362
426
  else if (!has_days && has_months && has_years) views = ['years', 'months'];
363
427
 
428
+ // if user can cycle only through months and days, set the flag accordingly
429
+ else if (has_days && has_months && !has_years) views = ['months', 'days'];
430
+
364
431
  // if user can only see the year picker, set the flag accordingly
365
432
  else if (!has_days && !has_months && has_years) views = ['years'];
366
433
 
@@ -803,7 +870,8 @@
803
870
  $element.val('');
804
871
 
805
872
  // updates value for the date picker whose starting date depends on the selected date (if any)
806
- if (!update) update_dependent(start_date);
873
+ if (!update && (undefined !== start_date || undefined !== default_date))
874
+ update_dependent(undefined !== start_date ? start_date : default_date);
807
875
 
808
876
  // if date picker is not always visible
809
877
  if (!plugin.settings.always_visible) {
@@ -822,7 +890,7 @@
822
890
 
823
891
  // we create a wrapper for the parent element so that we can later position the icon
824
892
  // also, make sure the wrapper inherits some important css properties of the parent element
825
- var icon_wrapper = jQuery('<span class="Zebra_DatePicker_Icon_Wrapper"></span>').css({
893
+ var icon_wrapper = $('<span class="Zebra_DatePicker_Icon_Wrapper"></span>').css({
826
894
  'display': $element.css('display'),
827
895
  'position': $element.css('position') == 'static' ? 'relative' : $element.css('position'),
828
896
  'float': $element.css('float'),
@@ -843,7 +911,7 @@
843
911
  });
844
912
 
845
913
  // create the actual calendar icon (show a disabled icon if the element is disabled)
846
- icon = jQuery('<button type="button" class="Zebra_DatePicker_Icon' + ($element.attr('disabled') == 'disabled' ? ' Zebra_DatePicker_Icon_Disabled' : '') + '">Pick a date</button>');
914
+ icon = $('<button type="button" class="Zebra_DatePicker_Icon' + ($element.attr('disabled') == 'disabled' ? ' Zebra_DatePicker_Icon_Disabled' : '') + '">Pick a date</button>');
847
915
 
848
916
  // a reference to the icon, as a global property
849
917
  plugin.icon = icon;
@@ -863,7 +931,7 @@
863
931
  if (!$element.attr('disabled'))
864
932
 
865
933
  // if the date picker is visible, hide it
866
- if (datepicker.css('display') != 'none') plugin.hide();
934
+ if (datepicker.hasClass('dp_visible')) plugin.hide();
867
935
 
868
936
  // if the date picker is not visible, show it
869
937
  else plugin.show();
@@ -918,6 +986,12 @@
918
986
  'left': element_margin_left + element_width + icon_margin_left
919
987
  });
920
988
 
989
+ // assume the datepicker is not disabled
990
+ icon.removeClass(' Zebra_DatePicker_Icon_Disabled');
991
+
992
+ // if element the datepicker is attached to became disabled, disable the calendar icon, too
993
+ if ($element.attr('disabled') == 'disabled') icon.addClass('Zebra_DatePicker_Icon_Disabled');
994
+
921
995
  }
922
996
 
923
997
  }
@@ -1009,10 +1083,10 @@
1009
1083
  // add the mouseover/mousevents to all to the date picker's cells
1010
1084
  // except those that are not selectable
1011
1085
  datepicker.
1012
- delegate('td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_blocked, .dp_week_number)', 'mouseover', function() {
1086
+ delegate('td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_week_number)', 'mouseover', function() {
1013
1087
  $(this).addClass('dp_hover');
1014
1088
  }).
1015
- delegate('td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_blocked, .dp_week_number)', 'mouseout', function() {
1089
+ delegate('td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_week_number)', 'mouseout', function() {
1016
1090
  $(this).removeClass('dp_hover');
1017
1091
  });
1018
1092
 
@@ -1023,33 +1097,28 @@
1023
1097
  // event for when clicking the "previous" button
1024
1098
  $('.dp_previous', header).bind('click', function() {
1025
1099
 
1026
- // if button is not disabled
1027
- if (!$(this).hasClass('dp_blocked')) {
1028
-
1029
- // if view is "months"
1030
- // decrement year by one
1031
- if (view == 'months') selected_year--;
1032
-
1033
- // if view is "years"
1034
- // decrement years by 12
1035
- else if (view == 'years') selected_year -= 12;
1036
-
1037
- // if view is "days"
1038
- // decrement the month and
1039
- // if month is out of range
1040
- else if (--selected_month < 0) {
1100
+ // if view is "months"
1101
+ // decrement year by one
1102
+ if (view == 'months') selected_year--;
1041
1103
 
1042
- // go to the last month of the previous year
1043
- selected_month = 11;
1044
- selected_year--;
1104
+ // if view is "years"
1105
+ // decrement years by 12
1106
+ else if (view == 'years') selected_year -= 12;
1045
1107
 
1046
- }
1108
+ // if view is "days"
1109
+ // decrement the month and
1110
+ // if month is out of range
1111
+ else if (--selected_month < 0) {
1047
1112
 
1048
- // generate the appropriate view
1049
- manage_views();
1113
+ // go to the last month of the previous year
1114
+ selected_month = 11;
1115
+ selected_year--;
1050
1116
 
1051
1117
  }
1052
1118
 
1119
+ // generate the appropriate view
1120
+ manage_views();
1121
+
1053
1122
  });
1054
1123
 
1055
1124
  // attach a click event to the caption in header
@@ -1072,33 +1141,28 @@
1072
1141
  // event for when clicking the "next" button
1073
1142
  $('.dp_next', header).bind('click', function() {
1074
1143
 
1075
- // if button is not disabled
1076
- if (!$(this).hasClass('dp_blocked')) {
1077
-
1078
- // if view is "months"
1079
- // increment year by 1
1080
- if (view == 'months') selected_year++;
1081
-
1082
- // if view is "years"
1083
- // increment years by 12
1084
- else if (view == 'years') selected_year += 12;
1085
-
1086
- // if view is "days"
1087
- // increment the month and
1088
- // if month is out of range
1089
- else if (++selected_month == 12) {
1144
+ // if view is "months"
1145
+ // increment year by 1
1146
+ if (view == 'months') selected_year++;
1090
1147
 
1091
- // go to the first month of the next year
1092
- selected_month = 0;
1093
- selected_year++;
1148
+ // if view is "years"
1149
+ // increment years by 12
1150
+ else if (view == 'years') selected_year += 12;
1094
1151
 
1095
- }
1152
+ // if view is "days"
1153
+ // increment the month and
1154
+ // if month is out of range
1155
+ else if (++selected_month == 12) {
1096
1156
 
1097
- // generate the appropriate view
1098
- manage_views();
1157
+ // go to the first month of the next year
1158
+ selected_month = 0;
1159
+ selected_year++;
1099
1160
 
1100
1161
  }
1101
1162
 
1163
+ // generate the appropriate view
1164
+ manage_views();
1165
+
1102
1166
  });
1103
1167
 
1104
1168
  // attach a click event for the cells in the day picker
@@ -1225,7 +1289,7 @@
1225
1289
  if (plugin.settings.onClear && typeof plugin.settings.onClear == 'function')
1226
1290
 
1227
1291
  // execute the callback function and pass as argument the element the plugin is attached to
1228
- plugin.settings.onClear($element);
1292
+ plugin.settings.onClear.call($element, $element);
1229
1293
 
1230
1294
  });
1231
1295
 
@@ -1239,7 +1303,7 @@
1239
1303
  'mousedown.Zebra_DatePicker': function(e) {
1240
1304
 
1241
1305
  // if the date picker is visible
1242
- if (datepicker.css('display') == 'block') {
1306
+ if (datepicker.hasClass('dp_visible')) {
1243
1307
 
1244
1308
  // if the calendar icon is visible and we clicked it, let the onClick event of the icon to handle the event
1245
1309
  // (we want it to toggle the date picker)
@@ -1259,7 +1323,7 @@
1259
1323
  // if the date picker is visible
1260
1324
  // and the pressed key is ESC
1261
1325
  // hide the date picker
1262
- if (datepicker.css('display') == 'block' || e.which == 27) plugin.hide();
1326
+ if (datepicker.hasClass('dp_visible') && e.which == 27) plugin.hide();
1263
1327
 
1264
1328
  }
1265
1329
 
@@ -1291,9 +1355,6 @@
1291
1355
  // remove association with the element
1292
1356
  $element.removeData('Zebra_DatePicker');
1293
1357
 
1294
- // completely delete object
1295
- delete plugin;
1296
-
1297
1358
  };
1298
1359
 
1299
1360
  /**
@@ -1310,7 +1371,7 @@
1310
1371
  iframeShim('hide');
1311
1372
 
1312
1373
  // hide the date picker
1313
- datepicker.hide();
1374
+ datepicker.removeClass('dp_visible').addClass('dp_hidden');
1314
1375
 
1315
1376
  }
1316
1377
 
@@ -1390,9 +1451,13 @@
1390
1451
  window_scroll_top = $(window).scrollTop(),
1391
1452
  window_scroll_left = $(window).scrollLeft();
1392
1453
 
1454
+ if (plugin.settings.default_position == 'below')
1455
+ top = (undefined !== icon ? icon.offset().top : $element.offset().top) + plugin.settings.offset[1];
1456
+
1393
1457
  // if date picker is outside the viewport, adjust its position so that it is visible
1394
1458
  if (left + datepicker_width > window_scroll_left + window_width) left = window_scroll_left + window_width - datepicker_width;
1395
1459
  if (left < window_scroll_left) left = window_scroll_left;
1460
+
1396
1461
  if (top + datepicker_height > window_scroll_top + window_height) top = window_scroll_top + window_height - datepicker_height;
1397
1462
  if (top < window_scroll_top) top = window_scroll_top;
1398
1463
 
@@ -1404,13 +1469,19 @@
1404
1469
 
1405
1470
  // fade-in the date picker
1406
1471
  // for Internet Explorer < 9 show the date picker instantly or fading alters the font's weight
1407
- datepicker.fadeIn(browser.name == 'explorer' && browser.version < 9 ? 0 : 150, 'linear');
1472
+ datepicker.removeClass('dp_hidden').addClass('dp_visible');
1408
1473
 
1409
1474
  // show the iFrameShim in Internet Explorer 6
1410
1475
  iframeShim();
1411
1476
 
1412
1477
  // if date picker is always visible, show it
1413
- } else datepicker.show();
1478
+ } else datepicker.removeClass('dp_hidden').addClass('dp_visible');
1479
+
1480
+ // if a callback function exists for when showing the date picker
1481
+ if (plugin.settings.onOpen && typeof plugin.settings.onOpen == 'function')
1482
+
1483
+ // execute the callback function and pass as argument the element the plugin is attached to
1484
+ plugin.settings.onOpen.call($element, $element);
1414
1485
 
1415
1486
  };
1416
1487
 
@@ -1533,7 +1604,7 @@
1533
1604
  // check if date is a valid date (i.e. there's no February 31)
1534
1605
 
1535
1606
  var tmpdate = new Date(),
1536
- original_day = tmpdate.getDate(),
1607
+ original_day = 1,
1537
1608
  original_month = tmpdate.getMonth() + 1,
1538
1609
  original_year = tmpdate.getFullYear(),
1539
1610
  english_days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
@@ -1828,7 +1899,7 @@
1828
1899
  days_from_previous_month = days_from_previous_month < 0 ? 7 + days_from_previous_month : days_from_previous_month;
1829
1900
 
1830
1901
  // manage header caption and enable/disable navigation buttons if necessary
1831
- manage_header(plugin.settings.months[selected_month] + ', ' + selected_year);
1902
+ manage_header(plugin.settings.header_captions['days']);
1832
1903
 
1833
1904
  // start generating the HTML
1834
1905
  var html = '<tr>';
@@ -1942,7 +2013,7 @@
1942
2013
 
1943
2014
  // cache all the cells
1944
2015
  // (we need them so that we can easily remove the "dp_selected" class from all of them when user selects a date)
1945
- daypicker_cells = $('td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_blocked, .dp_week_number)', daypicker);
2016
+ daypicker_cells = $('td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_week_number)', daypicker);
1946
2017
 
1947
2018
  // make the day picker visible
1948
2019
  daypicker.show();
@@ -1959,7 +2030,7 @@
1959
2030
  var generate_monthpicker = function() {
1960
2031
 
1961
2032
  // manage header caption and enable/disable navigation buttons if necessary
1962
- manage_header(selected_year);
2033
+ manage_header(plugin.settings.header_captions['months']);
1963
2034
 
1964
2035
  // start generating the HTML
1965
2036
  var html = '<tr>';
@@ -1976,7 +2047,7 @@
1976
2047
  if (is_disabled(selected_year, i)) class_name += ' dp_disabled';
1977
2048
 
1978
2049
  // else, if a date is already selected and this is that particular month, highlight it
1979
- else if (default_month !== false && default_month == i) class_name += ' dp_selected';
2050
+ else if (default_month !== false && default_month == i && selected_year == default_year) class_name += ' dp_selected';
1980
2051
 
1981
2052
  // else, if this the current system month, highlight it
1982
2053
  else if (current_system_month == i && current_system_year == selected_year) class_name += ' dp_current';
@@ -2014,7 +2085,7 @@
2014
2085
  var generate_yearpicker = function() {
2015
2086
 
2016
2087
  // manage header caption and enable/disable navigation buttons if necessary
2017
- manage_header(selected_year - 7 + ' - ' + (selected_year + 4));
2088
+ manage_header(plugin.settings.header_captions['years']);
2018
2089
 
2019
2090
  // start generating the HTML
2020
2091
  var html = '<tr>';
@@ -2079,11 +2150,10 @@
2079
2150
  var zIndex = to_int(datepicker.css('zIndex')) - 1;
2080
2151
 
2081
2152
  // create the iFrame
2082
- shim = jQuery('<iframe>', {
2153
+ shim = $('<iframe>', {
2083
2154
  'src': 'javascript:document.write("")',
2084
2155
  'scrolling': 'no',
2085
2156
  'frameborder': 0,
2086
- 'allowtransparency': 'true',
2087
2157
  css: {
2088
2158
  'zIndex': zIndex,
2089
2159
  'position': 'absolute',
@@ -2339,67 +2409,61 @@
2339
2409
  */
2340
2410
  var manage_header = function(caption) {
2341
2411
 
2342
- // update the caption in the header
2343
- $('.dp_caption', header).html(caption);
2344
-
2345
- // if calendar has direction restrictions or we're looking only at months
2346
- if (!(!$.isArray(plugin.settings.direction) && to_int(plugin.settings.direction) === 0) || (views.length == 1 && views[0] == 'months')) {
2412
+ // if "selected_month" has a value
2413
+ // $.isNumeric is available only from jQuery 1.7 - thanks to birla for the fix!
2414
+ if (!isNaN(parseFloat(selected_month)) && isFinite(selected_month))
2347
2415
 
2348
- // get the current year and month
2349
- var year = selected_year,
2350
- month = selected_month,
2351
- next, previous;
2416
+ caption = caption.replace(/\bm\b|\bn\b|\bF\b|\bM\b/, function (match) {
2352
2417
 
2353
- // if current view is showing days
2354
- if (view == 'days') {
2418
+ switch (match) {
2355
2419
 
2356
- // check if we can click on the "previous" button
2357
- previous = !is_disabled(month - 1 < 0 ? str_concat(year - 1, '11') : str_concat(year, str_pad(month - 1, 2)));
2420
+ // month number, prefixed with 0
2421
+ case 'm':
2422
+ return str_pad(selected_month + 1, 2);
2358
2423
 
2359
- // check if we can click on the "next" button
2360
- next = !is_disabled(month + 1 > 11 ? str_concat(year + 1, '00') : str_concat(year, str_pad(month + 1, 2)));
2424
+ // month number, not prefixed with 0
2425
+ case 'n':
2426
+ return selected_month + 1;
2361
2427
 
2362
- // if current view is showing months
2363
- } else if (view == 'months') {
2428
+ // full month name
2429
+ case 'F':
2430
+ return plugin.settings.months[selected_month];
2364
2431
 
2365
- // check if we can click on the "previous" button
2366
- if (!start_date || start_date.getFullYear() <= year - 1) previous = true;
2432
+ // month name, three letters
2433
+ case 'M':
2434
+ return ($.isArray(plugin.settings.months_abbr) && undefined !== plugin.settings.months_abbr[selected_month] ? plugin.settings.months_abbr[selected_month] : plugin.settings.months[selected_month].substr(0, 3));
2367
2435
 
2368
- // check if we can click on the "next" button
2369
- if (!end_date || end_date.getFullYear() >= year + 1) next = true;
2436
+ // unknown replace
2437
+ default:
2438
+ return match;
2370
2439
 
2371
- // if current view is showing years
2372
- } else if (view == 'years') {
2440
+ }
2373
2441
 
2374
- // check if we can click on the "previous" button
2375
- if (!start_date || start_date.getFullYear() < year - 7) previous = true;
2442
+ });
2376
2443
 
2377
- // check if we can click on the "next" button
2378
- if (!end_date || end_date.getFullYear() > year + 4) next = true;
2444
+ // if "selected_year" has a value
2445
+ // $.isNumeric is available only from jQuery 1.7 - thanks to birla for the fix!
2446
+ if (!isNaN(parseFloat(selected_year)) && isFinite(selected_year))
2379
2447
 
2380
- }
2448
+ // replace year-related patterns
2449
+ caption =
2381
2450
 
2382
- // if we cannot click on the "previous" button
2383
- if (!previous) {
2451
+ caption.
2384
2452
 
2385
- // disable the "previous" button
2386
- $('.dp_previous', header).addClass('dp_blocked');
2387
- $('.dp_previous', header).removeClass('dp_hover');
2388
-
2389
- // otherwise enable the "previous" button
2390
- } else $('.dp_previous', header).removeClass('dp_blocked');
2453
+ // year as four digits
2454
+ replace(/\bY\b/, selected_year).
2391
2455
 
2392
- // if we cannot click on the "next" button
2393
- if (!next) {
2456
+ // year as two digits
2457
+ replace(/\by\b/, (selected_year + '').substr(2)).
2394
2458
 
2395
- // disable the "next" button
2396
- $('.dp_next', header).addClass('dp_blocked');
2397
- $('.dp_next', header).removeClass('dp_hover');
2459
+ // lower limit of year as two or four digits
2460
+ replace(/\bY1\b/i, selected_year - 7).
2398
2461
 
2399
- // otherwise enable the "next" button
2400
- } else $('.dp_next', header).removeClass('dp_blocked');
2462
+ // upper limit of year as two or four digits
2463
+ replace(/\bY2\b/i, selected_year + 4);
2401
2464
 
2402
- }
2465
+ // update the caption in the header
2466
+ $('.dp_caption', header).html(caption);
2403
2467
 
2404
2468
  };
2405
2469
 
@@ -2427,7 +2491,7 @@
2427
2491
 
2428
2492
  // temporarily make the date picker visible
2429
2493
  // so that we can later grab its width and height
2430
- datepicker.show();
2494
+ datepicker.css('visibility', 'visible');
2431
2495
 
2432
2496
  // generate the day picker
2433
2497
  generate_daypicker();
@@ -2453,7 +2517,7 @@
2453
2517
  footer.css('width', width);
2454
2518
 
2455
2519
  // hide the date picker again
2456
- datepicker.hide();
2520
+ datepicker.css('visibility', '').addClass('dp_hidden');
2457
2521
 
2458
2522
  // if the day picker was previously generated at least once
2459
2523
  // generate the day picker
@@ -2490,10 +2554,10 @@
2490
2554
 
2491
2555
  // get the "active" elements in the view (ignoring the disabled ones)
2492
2556
  var elements = (view == 'days' ?
2493
- daypicker.find('td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_blocked)') :
2557
+ daypicker.find('td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month)') :
2494
2558
  (view == 'months' ?
2495
- monthpicker.find('td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_blocked)') :
2496
- yearpicker.find('td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month, .dp_blocked)')));
2559
+ monthpicker.find('td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month)') :
2560
+ yearpicker.find('td:not(.dp_disabled, .dp_weekend_disabled, .dp_not_in_month)')));
2497
2561
 
2498
2562
  // iterate through the active elements
2499
2563
  // and attach a "date" data attribute to each element in the form of
@@ -2540,7 +2604,7 @@
2540
2604
 
2541
2605
  // execute the callback function and send as arguments the current view, the elements in the view, and
2542
2606
  // the element the plugin is attached to
2543
- plugin.settings.onChange(view, elements, $element);
2607
+ plugin.settings.onChange.call($element, view, elements, $element);
2544
2608
 
2545
2609
  }
2546
2610
 
@@ -2662,8 +2726,9 @@
2662
2726
  if (plugin.settings.onSelect && typeof plugin.settings.onSelect == 'function')
2663
2727
 
2664
2728
  // execute the callback function
2665
- plugin.settings.onSelect(selected_value, year + '-' + str_pad(month + 1, 2) + '-' + str_pad(day, 2), default_date, $element);
2666
-
2729
+ // make "this" inside the callback function refer to the element the date picker is attached to
2730
+ plugin.settings.onSelect.call($element, selected_value, year + '-' + str_pad(month + 1, 2) + '-' + str_pad(day, 2), default_date, $element, getWeekNumber(default_date));
2731
+
2667
2732
  // move focus to the element the plugin is attached to
2668
2733
  $element.focus();
2669
2734
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Twitter Bootstrap theme
6
6
 
7
- copyright (c) 2011 - 2013 Stefan Gabos
7
+ copyright (c) 2011 - 2014 Stefan Gabos
8
8
  http://stefangabos.ro/jquery/zebra-datepicker/
9
9
 
10
10
  */
@@ -13,13 +13,13 @@
13
13
  .Zebra_DatePicker *:after,
14
14
  .Zebra_DatePicker *:before { -moz-box-sizing: content-box !important; -webkit-box-sizing: content-box !important; box-sizing: content-box !important }
15
15
 
16
- .Zebra_DatePicker { position: absolute; background: #FFF; border: 1px solid #999; display: none; z-index: 100; padding: 5px }
16
+ .Zebra_DatePicker { position: absolute; background: #FFF; border: 1px solid #999; z-index: 100; padding: 5px }
17
17
 
18
18
  .Zebra_DatePicker * { margin: 0; padding: 0; color: #373737; background: transparent; border: none }
19
19
 
20
20
  /* = GLOBALS
21
21
  ----------------------------------------------------------------------------------------------------------------------*/
22
- .Zebra_DatePicker table { border-collapse: collapse; border-spacing: 0 }
22
+ .Zebra_DatePicker table { border-collapse: collapse; border-spacing: 0; width: auto; table-layout: auto; }
23
23
 
24
24
  .Zebra_DatePicker td,
25
25
  .Zebra_DatePicker th { text-align: center; padding: 5px 0 }
@@ -41,6 +41,11 @@
41
41
  .Zebra_DatePicker .dp_footer .dp_hover,
42
42
  .Zebra_DatePicker td.dp_hover { -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px }
43
43
 
44
+ /* = VISIBLE/HIDDEN STATES (USE TRANSITIONS FOR EFFECTS)
45
+ ----------------------------------------------------------------------------------------------------------------------*/
46
+ .Zebra_DatePicker.dp_visible { visibility: visible; filter: alpha(opacity=100); -khtml-opacity: 1; -moz-opacity: 1; opacity: 1; transition: opacity 0.2s ease-in-out }
47
+ .Zebra_DatePicker.dp_hidden { visibility: hidden; filter: alpha(opacity=0); -khtml-opacity: 0; -moz-opacity: 0; opacity: 0 }
48
+
44
49
  /* = HEADER
45
50
  ----------------------------------------------------------------------------------------------------------------------*/
46
51
  .Zebra_DatePicker .dp_header td { }
@@ -50,7 +55,6 @@
50
55
 
51
56
  .Zebra_DatePicker .dp_header .dp_caption { font-weight: bold }
52
57
  .Zebra_DatePicker .dp_header .dp_hover { background: #DEDEDE; color: #373737 }
53
- .Zebra_DatePicker .dp_header .dp_blocked { color: #DEDEDE; cursor: default }
54
58
 
55
59
  /* = DATEPICKER
56
60
  ----------------------------------------------------------------------------------------------------------------------*/
@@ -4,7 +4,7 @@
4
4
 
5
5
  Default theme
6
6
 
7
- copyright (c) 2011 - 2013 Stefan Gabos
7
+ copyright (c) 2011 - 2014 Stefan Gabos
8
8
  http://stefangabos.ro/jquery/zebra-datepicker/
9
9
 
10
10
  */
@@ -13,13 +13,13 @@
13
13
  .Zebra_DatePicker *:after,
14
14
  .Zebra_DatePicker *:before { -moz-box-sizing: content-box !important; -webkit-box-sizing: content-box !important; box-sizing: content-box !important }
15
15
 
16
- .Zebra_DatePicker { position: absolute; background: #666; border: 3px solid #666; display: none; z-index: 100; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 13px }
16
+ .Zebra_DatePicker { position: absolute; background: #666; border: 3px solid #666; z-index: 100; font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 13px; }
17
17
 
18
18
  .Zebra_DatePicker * { margin: 0; padding: 0; color: #000; background: transparent; border: none }
19
19
 
20
20
  /* = GLOBALS
21
21
  ----------------------------------------------------------------------------------------------------------------------*/
22
- .Zebra_DatePicker table { border-collapse: collapse; border-spacing: 0 }
22
+ .Zebra_DatePicker table { border-collapse: collapse; border-spacing: 0; width: auto; table-layout: auto; }
23
23
 
24
24
  .Zebra_DatePicker td,
25
25
  .Zebra_DatePicker th { text-align: center; padding: 5px 0 }
@@ -39,6 +39,11 @@
39
39
  .Zebra_DatePicker .dp_header .dp_hover,
40
40
  .Zebra_DatePicker .dp_footer .dp_hover { -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px }
41
41
 
42
+ /* = VISIBLE/HIDDEN STATES (USE TRANSITIONS FOR EFFECTS)
43
+ ----------------------------------------------------------------------------------------------------------------------*/
44
+ .Zebra_DatePicker.dp_visible { visibility: visible; filter: alpha(opacity=100); -khtml-opacity: 1; -moz-opacity: 1; opacity: 1; transition: opacity 0.2s ease-in-out }
45
+ .Zebra_DatePicker.dp_hidden { visibility: hidden; filter: alpha(opacity=0); -khtml-opacity: 0; -moz-opacity: 0; opacity: 0 }
46
+
42
47
  /* = HEADER
43
48
  ----------------------------------------------------------------------------------------------------------------------*/
44
49
  .Zebra_DatePicker .dp_header td { color: #FFF }
@@ -48,7 +53,6 @@
48
53
 
49
54
  .Zebra_DatePicker .dp_header .dp_caption { font-weight: bold }
50
55
  .Zebra_DatePicker .dp_header .dp_hover { background: #222; color: #FFF }
51
- .Zebra_DatePicker .dp_header .dp_blocked { color: #888; cursor: default }
52
56
 
53
57
  /* = DATEPICKER
54
58
  ----------------------------------------------------------------------------------------------------------------------*/
@@ -4,7 +4,7 @@
4
4
 
5
5
  Metalic Theme
6
6
 
7
- copyright (c) 2011 - 2013 Stefan Gabos
7
+ copyright (c) 2011 - 2014 Stefan Gabos
8
8
  http://stefangabos.ro/jquery/zebra-datepicker/
9
9
 
10
10
  */
@@ -13,13 +13,13 @@
13
13
  .Zebra_DatePicker *:after,
14
14
  .Zebra_DatePicker *:before { -moz-box-sizing: content-box !important; -webkit-box-sizing: content-box !important; box-sizing: content-box !important }
15
15
 
16
- .Zebra_DatePicker { position: absolute; background: #373737; border: 3px solid #373737; display: none; z-index: 100; font-family: Geneva, 'Lucida Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif; font-size: 13px }
16
+ .Zebra_DatePicker { position: absolute; background: #373737; border: 3px solid #373737; z-index: 100; font-family: Geneva, 'Lucida Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif; font-size: 13px }
17
17
 
18
18
  .Zebra_DatePicker * { margin: 0; padding: 0; color: #666; background: transparent; border: none }
19
19
 
20
20
  /* = GLOBALS
21
21
  ----------------------------------------------------------------------------------------------------------------------*/
22
- .Zebra_DatePicker table { border-collapse: collapse; border-spacing: 0 }
22
+ .Zebra_DatePicker table { border-collapse: collapse; border-spacing: 0; width: auto; table-layout: auto; }
23
23
 
24
24
  .Zebra_DatePicker td,
25
25
  .Zebra_DatePicker th { text-align: center; padding: 5px 0 }
@@ -39,6 +39,11 @@
39
39
  .Zebra_DatePicker .dp_header .dp_hover,
40
40
  .Zebra_DatePicker .dp_footer .dp_hover { -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px }
41
41
 
42
+ /* = VISIBLE/HIDDEN STATES (USE TRANSITIONS FOR EFFECTS)
43
+ ----------------------------------------------------------------------------------------------------------------------*/
44
+ .Zebra_DatePicker.dp_visible { visibility: visible; filter: alpha(opacity=100); -khtml-opacity: 1; -moz-opacity: 1; opacity: 1; transition: opacity 0.2s ease-in-out }
45
+ .Zebra_DatePicker.dp_hidden { visibility: hidden; filter: alpha(opacity=0); -khtml-opacity: 0; -moz-opacity: 0; opacity: 0 }
46
+
42
47
  /* = HEADER
43
48
  ----------------------------------------------------------------------------------------------------------------------*/
44
49
  .Zebra_DatePicker .dp_header td { color: #E0E0E0 }
@@ -48,7 +53,6 @@
48
53
 
49
54
  .Zebra_DatePicker .dp_header .dp_caption { font-weight: bold }
50
55
  .Zebra_DatePicker .dp_header .dp_hover { background: #67AABB; color: #FFF }
51
- .Zebra_DatePicker .dp_header .dp_blocked { color: #888; cursor: default }
52
56
 
53
57
  /* = DATEPICKER
54
58
  ----------------------------------------------------------------------------------------------------------------------*/
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zebra-datepicker-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.7
4
+ version: 1.8.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marcus Derencius
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-07 00:00:00.000000000 Z
11
+ date: 2014-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: railties
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '3.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: sass-rails
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  description: Zebra Datepicker packaged for rails
@@ -73,7 +73,7 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
- - .gitignore
76
+ - ".gitignore"
77
77
  - Gemfile
78
78
  - LICENSE.txt
79
79
  - README.md
@@ -91,9 +91,9 @@ files:
91
91
  - vendor/assets/javascripts/zebra-datepicker/core.js
92
92
  - vendor/assets/javascripts/zebra-datepicker/zebra_datepicker.js
93
93
  - vendor/assets/javascripts/zebra-datepicker/zebra_datepicker.src.js
94
- - vendor/assets/stylesheets/zebra-datepicker/bootstrap.css
95
- - vendor/assets/stylesheets/zebra-datepicker/default.css
96
- - vendor/assets/stylesheets/zebra-datepicker/metallic.css
94
+ - vendor/assets/stylesheets/zebra-datepicker/bootstrap.css.scss
95
+ - vendor/assets/stylesheets/zebra-datepicker/default.css.scss
96
+ - vendor/assets/stylesheets/zebra-datepicker/metallic.css.scss
97
97
  - zebra-datepicker-rails.gemspec
98
98
  homepage: ''
99
99
  licenses:
@@ -105,17 +105,17 @@ require_paths:
105
105
  - lib
106
106
  required_ruby_version: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  required_rubygems_version: !ruby/object:Gem::Requirement
112
112
  requirements:
113
- - - '>='
113
+ - - ">="
114
114
  - !ruby/object:Gem::Version
115
115
  version: '0'
116
116
  requirements: []
117
117
  rubyforge_project:
118
- rubygems_version: 2.1.4
118
+ rubygems_version: 2.2.2
119
119
  signing_key:
120
120
  specification_version: 4
121
121
  summary: Zebra Datepicker (http://stefangabos.ro/jquery/zebra-datepicker/) packaged