/*

 jQuery Tools @VERSION Dateinput - <input type="date" /> for humans

 NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.

 http://flowplayer.org/tools/form/dateinput/

 Since: Mar 2010
 Date: @DATE
*/
(function(c,D){function M(a,b){a=""+a;for(b=b||2;a.length<b;)a="0"+a;return a}function N(a,b,c){var u=a.getDate(),g=a.getDay(),o=a.getMonth(),a=a.getFullYear(),j={d:u,dd:M(u),ddd:p[c].shortDays[g],dddd:p[c].days[g],m:o+1,mm:M(o+1),mmm:p[c].shortMonths[o],mmmm:p[c].months[o],yy:(""+a).slice(2),yyyy:a},b=b.replace(S,function(a){return a in j?j[a]:a.slice(1,a.length-1)});return T.html(b).html()}function r(a){return parseInt(a,10)}function O(a,b){return a.getFullYear()===b.getFullYear()&&a.getMonth()==
b.getMonth()&&a.getDate()==b.getDate()}function v(a){if(a!==D){if(a.constructor==Date)return a;if("string"==typeof a){var b=a.split("-");if(3==b.length)return new Date(r(b[0]),r(b[1])-1,r(b[2]));if(!/^-?\d+$/.test(a))return;a=r(a)}b=new Date;b.setDate(b.getDate()+a);return b}}function U(a,b){function h(d,b,i){m=d;z=d.getFullYear();B=d.getMonth();A=d.getDate();i&&"click"==i.type&&!c.browser.msie&&a.focus();i=i||c.Event("api");i.type="beforeChange";C.trigger(i,[d]);if(!i.isDefaultPrevented())a.val(N(d,
b.format,b.lang)),i.type="change",C.trigger(i),a.data("date",d),g.hide(i)}function u(b){b.type="onShow";C.trigger(b);c(document).bind("keydown.d",function(b){if(b.ctrlKey)return!0;var d=b.keyCode;if(8==d||46==d)return a.val(""),g.hide(b);if(27==d||9==d)return g.hide(b);if(0<=c(P).index(d)){if(!s)return g.show(b),b.preventDefault();var Q=c("#"+e.weeks+" a"),f=c("."+e.focus),h=Q.index(f);f.removeClass(e.focus);if(74==d||40==d)h+=7;else if(75==d||38==d)h-=7;else if(76==d||39==d)h+=1;else if(72==d||37==
d)h-=1;41<h?(g.addMonth(),f=c("#"+e.weeks+" a:eq("+(h-42)+")")):0>h?(g.addMonth(-1),f=c("#"+e.weeks+" a:eq("+(h+42)+")")):f=Q.eq(h);f.addClass(e.focus);return b.preventDefault()}if(34==d)return g.addMonth();if(33==d)return g.addMonth(-1);if(36==d)return g.today();13==d&&(c(b.target).is("select")||c("."+e.focus).click());return 0<=c([16,17,18,9]).index(d)});c(document).bind("click.d",function(d){var b=d.target;!c(b).parents("#"+e.root).length&&b!=a[0]&&(!F||b!=F[0])&&g.hide(d)})}var g=this,o=new Date,
j=o.getFullYear(),e=b.css,G=p[b.lang],f=c("#"+e.root),y=f.find("#"+e.title),F,H,I,z,B,A,m=a.attr("data-value")||b.value||a.val(),l=a.attr("min")||b.min,n=a.attr("max")||b.max,s,J;0===l&&(l="0");m=v(m)||o;l=v(l||new Date(j+b.yearRange[0],1,1));n=v(n||new Date(j+b.yearRange[1]+1,1,-1));if(!G)throw"Dateinput: invalid language: "+b.lang;"date"==a.attr("type")&&(J=a.clone(),j=J.wrap("<div/>").parent().html(),j=c(j.replace(/type/i,"type=text data-orig-type")),b.value&&j.val(b.value),a.replaceWith(j),a=
j);a.addClass(e.input);var C=a.add(g);if(!f.length){f=c("<div><div><a/><div/><a/></div><div><div/><div/></div></div>").hide().css({position:"absolute"}).attr("id",e.root);f.children().eq(0).attr("id",e.head).end().eq(1).attr("id",e.body).children().eq(0).attr("id",e.days).end().eq(1).attr("id",e.weeks).end().end().end().find("a").eq(0).attr("id",e.prev).end().eq(1).attr("id",e.next);y=f.find("#"+e.head).find("div").attr("id",e.title);if(b.selectors){var w=c("<select/>").attr("id",e.month),x=c("<select/>").attr("id",
e.year);y.html(w.add(x))}for(var j=f.find("#"+e.days),L=0;7>L;L++)j.append(c("<span/>").text(G.shortDays[(L+b.firstDay)%7]));c("body").append(f)}b.trigger&&(F=c("<a/>").attr("href","#").addClass(e.trigger).click(function(d){b.toggle?g.toggle():g.show();return d.preventDefault()}).insertAfter(a));var K=f.find("#"+e.weeks),x=f.find("#"+e.year),w=f.find("#"+e.month);c.extend(g,{show:function(d){if(!a.attr("readonly")&&!a.attr("disabled")&&!s&&(d=d||c.Event(),d.type="onBeforeShow",C.trigger(d),!d.isDefaultPrevented())){c.each(R,
function(){this.hide()});s=!0;w.unbind("change").change(function(){g.setValue(x.val(),c(this).val())});x.unbind("change").change(function(){g.setValue(c(this).val(),w.val())});H=f.find("#"+e.prev).unbind("click").click(function(){H.hasClass(e.disabled)||g.addMonth(-1);return!1});I=f.find("#"+e.next).unbind("click").click(function(){I.hasClass(e.disabled)||g.addMonth();return!1});g.setValue(m);var E=a.offset();/iPad/i.test(navigator.userAgent)&&(E.top-=c(window).scrollTop());f.css({top:E.top+a.outerHeight({margins:!0})+
b.offset[0],left:E.left+b.offset[1]});b.speed?f.show(b.speed,function(){u(d)}):(f.show(),u(d));return g}},setValue:function(d,a,i){var f=-1<=r(a)?new Date(r(d),r(a),r(i==D||isNaN(i)?1:i)):d||m;f<l?f=l:f>n&&(f=n);"string"==typeof d&&(f=v(d));d=f.getFullYear();a=f.getMonth();i=f.getDate();-1==a?(a=11,d--):12==a&&(a=0,d++);if(!s)return h(f,b),g;B=a;z=d;A=i;var i=(new Date(d,a,1-b.firstDay)).getDay(),j=(new Date(d,a+1,0)).getDate(),u=(new Date(d,a-1+1,0)).getDate(),p;if(b.selectors){w.empty();c.each(G.months,
function(a,b){l<new Date(d,a+1,1)&&n>new Date(d,a,0)&&w.append(c("<option/>").html(b).attr("value",a))});x.empty();for(var f=o.getFullYear(),k=f+b.yearRange[0];k<f+b.yearRange[1];k++)l<new Date(k+1,0,1)&&n>new Date(k,0,0)&&x.append(c("<option/>").text(k));w.val(a);x.val(d)}else y.html(G.months[a]+" "+d);K.empty();H.add(I).removeClass(e.disabled);for(var k=!i?-7:0,q,t;k<(!i?35:42);k++)q=c("<a/>"),0===k%7&&(p=c("<div/>").addClass(e.week),K.append(p)),k<i?(q.addClass(e.off),t=u-i+k+1,f=new Date(d,a-
1,t)):k>=i+j?(q.addClass(e.off),t=k-j-i+1,f=new Date(d,a+1,t)):(t=k-i+1,f=new Date(d,a,t),O(m,f)?q.attr("id",e.current).addClass(e.focus):O(o,f)&&q.attr("id",e.today)),l&&f<l&&q.add(H).addClass(e.disabled),n&&f>n&&q.add(I).addClass(e.disabled),q.attr("href","#"+t).text(t).data("date",f),p.append(q);K.find("a").click(function(a){var d=c(this);d.hasClass(e.disabled)||(c("#"+e.current).removeAttr("id"),d.attr("id",e.current),h(d.data("date"),b,a));return!1});e.sunday&&K.find(e.week).each(function(){var a=
b.firstDay?7-b.firstDay:0;c(this).children().slice(a,a+1).addClass(e.sunday)});return g},setMin:function(a,b){l=v(a);b&&m<l&&g.setValue(l);return g},setMax:function(a,b){n=v(a);b&&m>n&&g.setValue(n);return g},today:function(){return g.setValue(o)},addDay:function(a){return this.setValue(z,B,A+(a||1))},addMonth:function(a){var a=B+(a||1),b=(new Date(z,a+1,0)).getDate();return this.setValue(z,a,A<=b?A:b)},addYear:function(a){return this.setValue(z+(a||1),B,A)},destroy:function(){a.add(document).unbind("click.d").unbind("keydown.d");
f.add(F).remove();a.removeData("dateinput").removeClass(e.input);J&&a.replaceWith(J)},hide:function(a){if(s){a=c.Event();a.type="onHide";C.trigger(a);if(a.isDefaultPrevented())return;c(document).unbind("click.d").unbind("keydown.d");f.hide();s=!1}return g},toggle:function(){return g.isOpen()?g.hide():g.show()},getConf:function(){return b},getInput:function(){return a},getCalendar:function(){return f},getValue:function(a){return a?N(m,a,b.lang):m},isOpen:function(){return s}});c.each(["onBeforeShow",
"onShow","change","onHide"],function(a,e){c.isFunction(b[e])&&c(g).bind(e,b[e]);g[e]=function(a){a&&c(g).bind(e,a);return g}});b.editable||a.bind("focus.d click.d",g.show).keydown(function(b){var e=b.keyCode;if(!s&&0<=c(P).index(e))return g.show(b),b.preventDefault();(8==e||46==e)&&a.val("");return b.shiftKey||b.ctrlKey||b.altKey||9==e?!0:b.preventDefault()});v(a.val())&&h(m,b)}c.tools=c.tools||{version:"1.2.6"};var R=[],y,P=[75,76,38,39,74,72,40,37],p={};y=c.tools.dateinput={conf:{format:"mm/dd/yy",
selectors:!1,yearRange:[-5,5],lang:"en",offset:[0,0],speed:0,firstDay:0,min:D,max:D,trigger:0,toggle:0,editable:0,css:{prefix:"cal",input:"date",root:0,head:0,title:0,prev:0,next:0,month:0,year:0,days:0,body:0,weeks:0,today:0,current:0,week:0,off:0,sunday:0,focus:0,disabled:0,trigger:0}},localize:function(a,b){c.each(b,function(a,c){b[a]=c.split(",")});p[a]=b}};y.localize("en",{months:"January,February,March,April,May,June,July,August,September,October,November,December",shortMonths:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",
days:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday",shortDays:"Sun,Mon,Tue,Wed,Thu,Fri,Sat"});var S=/d{1,4}|m{1,4}|yy(?:yy)?|"[^"]*"|'[^']*'/g,T=c("<a/>");c.expr[":"].date=function(a){var b=a.getAttribute("type");return b&&"date"==b||!!c(a).data("dateinput")};c.fn.dateinput=function(a){if(this.data("dateinput"))return this;a=c.extend(!0,{},y.conf,a);c.each(a.css,function(b,c){!c&&"prefix"!=b&&(a.css[b]=(a.css.prefix||"")+(c||b))});var b;this.each(function(){var h=new U(c(this),a);R.push(h);
h=h.getInput().data("dateinput",h);b=b?b.add(h):h});return b?b:this}})(jQuery);

