zebra-datepicker-rails 1.8.7 → 1.8.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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