6 lines
34 KiB
JavaScript
6 lines
34 KiB
JavaScript
/*! Month Picker - v1.10.3 - 2013-09-17
|
|
* Marc Teyssier
|
|
* Modification code of datepicker to change fonctionality. Display a month picker.
|
|
* Copyright 2013 jQuery Foundation and other contributors; Licensed MIT */
|
|
!function(a,b){function e(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._monthpickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-monthpicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/yy",isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeYear:!1,yearRange:"c-10:c+10",selectOtherMonths:!1,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfYears:1,showCurrentAtPos:0,stepYears:1,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},a.extend(this._defaults,this.regional[""]),this.dpDiv=f(a("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function f(b){var c="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return b.delegate(c,"mouseout",function(){a(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&a(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&a(this).removeClass("ui-datepicker-next-hover")}).delegate(c,"mouseover",function(){a.monthpicker._isDisabledMonthpicker(d.inline?b.parent()[0]:d.input[0])||(a(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),a(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&a(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&a(this).addClass("ui-datepicker-next-hover"))})}function g(b,c){a.extend(b,c);for(var d in c)null==c[d]&&(b[d]=c[d]);return b}a.extend(a.ui,{monthpicker:{version:"1.10.3"}});var d,c="monthpicker";a.extend(e.prototype,{markerClassName:"hasMonthpicker",maxRows:4,_widgetMonthpicker:function(){return this.dpDiv},setDefaults:function(a){return g(this._defaults,a||{}),this},_attachMonthpicker:function(b,c){var d,e,f;d=b.nodeName.toLowerCase(),e="div"===d||"span"===d,b.id||(this.uuid+=1,b.id="dp"+this.uuid),f=this._newInst(a(b),e),f.settings=a.extend({},c||{}),"input"===d?this._connectMonthpicker(b,f):e&&this._inlineMonthpicker(b,f)},_newInst:function(b,c){var d=b[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:d,input:b,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:c,dpDiv:c?f(a("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectMonthpicker:function(b,d){var e=a(b);d.append=a([]),d.trigger=a([]),e.hasClass(this.markerClassName)||(this._attachments(e,d),e.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp),this._autoSize(d),a.data(b,c,d),d.settings.disabled&&this._disableMonthpicker(b))},_attachments:function(b,c){var d,e,f,g=this._get(c,"appendText"),h=this._get(c,"isRTL");c.append&&c.append.remove(),g&&(c.append=a("<span class='"+this._appendClass+"'>"+g+"</span>"),b[h?"before":"after"](c.append)),b.unbind("focus",this._showMonthpicker),c.trigger&&c.trigger.remove(),d=this._get(c,"showOn"),("focus"===d||"both"===d)&&b.focus(this._showMonthpicker),("button"===d||"both"===d)&&(e=this._get(c,"buttonText"),f=this._get(c,"buttonImage"),c.trigger=a(this._get(c,"buttonImageOnly")?a("<img/>").addClass(this._triggerClass).attr({src:f,alt:e,title:e}):a("<button type='button'></button>").addClass(this._triggerClass).html(f?a("<img/>").attr({src:f,alt:e,title:e}):e)),b[h?"before":"after"](c.trigger),c.trigger.click(function(){return a.monthpicker._monthpickerShowing&&a.monthpicker._lastInput===b[0]?a.monthpicker._hideMonthpicker():a.monthpicker._monthpickerShowing&&a.monthpicker._lastInput!==b[0]?(a.monthpicker._hideMonthpicker(),a.monthpicker._showMonthpicker(b[0])):a.monthpicker._showMonthpicker(b[0]),!1}))},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b,c,d,e,f=new Date(2009,11,20),g=this._get(a,"dateFormat");g.match(/[DM]/)&&(b=function(a){for(c=0,d=0,e=0;e<a.length;e++)a[e].length>c&&(c=a[e].length,d=e);return d},f.setMonth(b(this._get(a,g.match(/MM/)?"monthNames":"monthNamesShort"))),f.setDate(b(this._get(a,g.match(/DD/)?"dayNames":"dayNamesShort"))+20-f.getDay())),a.input.attr("size",this._formatDate(a,f).length)}},_inlineMonthpicker:function(b,d){var e=a(b);e.hasClass(this.markerClassName)||(e.addClass(this.markerClassName).append(d.dpDiv),a.data(b,c,d),this._setDate(d,this._getDefaultDate(d),!0),this._updateMonthpicker(d),this._updateAlternate(d),d.settings.disabled&&this._disableMonthpicker(b),d.dpDiv.css("display","block"))},_dialogMonthpicker:function(b,d,e,f,h){var i,j,k,l,m,n=this._dialogInst;return n||(this.uuid+=1,i="dp"+this.uuid,this._dialogInput=a("<input type='text' id='"+i+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.keydown(this._doKeyDown),a("body").append(this._dialogInput),n=this._dialogInst=this._newInst(this._dialogInput,!1),n.settings={},a.data(this._dialogInput[0],c,n)),g(n.settings,f||{}),d=d&&d.constructor===Date?this._formatDate(n,d):d,this._dialogInput.val(d),this._pos=h?h.length?h:[h.pageX,h.pageY]:null,this._pos||(j=document.documentElement.clientWidth,k=document.documentElement.clientHeight,l=document.documentElement.scrollLeft||document.body.scrollLeft,m=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[j/2-100+l,k/2-150+m]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),n.settings.onSelect=e,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showMonthpicker(this._dialogInput[0]),a.blockUI&&a.blockUI(this.dpDiv),a.data(this._dialogInput[0],c,n),this},_destroyMonthpicker:function(b){var d,e=a(b),f=a.data(b,c);e.hasClass(this.markerClassName)&&(d=b.nodeName.toLowerCase(),a.removeData(b,c),"input"===d?(f.append.remove(),f.trigger.remove(),e.removeClass(this.markerClassName).unbind("focus",this._showMonthpicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"===d||"span"===d)&&e.removeClass(this.markerClassName).empty())},_enableMonthpicker:function(b){var d,e,f=a(b),g=a.data(b,c);f.hasClass(this.markerClassName)&&(d=b.nodeName.toLowerCase(),"input"===d?(b.disabled=!1,g.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===d||"span"===d)&&(e=f.children("."+this._inlineClass),e.children().removeClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=a.map(this._disabledInputs,function(a){return a===b?null:a}))},_disableMonthpicker:function(b){var d,e,f=a(b),g=a.data(b,c);f.hasClass(this.markerClassName)&&(d=b.nodeName.toLowerCase(),"input"===d?(b.disabled=!0,g.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===d||"span"===d)&&(e=f.children("."+this._inlineClass),e.children().addClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=a.map(this._disabledInputs,function(a){return a===b?null:a}),this._disabledInputs[this._disabledInputs.length]=b)},_isDisabledMonthpicker:function(a){if(!a)return!1;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]===a)return!0;return!1},_getInst:function(b){try{return a.data(b,c)}catch(d){throw"Missing instance data for this monthpicker"}},_optionMonthpicker:function(c,d,e){var f,h,i,j,k=this._getInst(c);return 2===arguments.length&&"string"==typeof d?"defaults"===d?a.extend({},a.monthpicker._defaults):k?"all"===d?a.extend({},k.settings):this._get(k,d):null:(f=d||{},"string"==typeof d&&(f={},f[d]=e),k&&(this._curInst===k&&this._hideMonthpicker(),h=this._getDateMonthpicker(c,!0),i=this._getMinMaxDate(k,"min"),j=this._getMinMaxDate(k,"max"),g(k.settings,f),null!==i&&f.dateFormat!==b&&f.minDate===b&&(k.settings.minDate=this._formatDate(k,i)),null!==j&&f.dateFormat!==b&&f.maxDate===b&&(k.settings.maxDate=this._formatDate(k,j)),"disabled"in f&&(f.disabled?this._disableMonthpicker(c):this._enableMonthpicker(c)),this._attachments(a(c),k),this._autoSize(k),this._setDate(k,h),this._updateAlternate(k),this._updateMonthpicker(k)),void 0)},_changeMonthpicker:function(a,b,c){this._optionMonthpicker(a,b,c)},_refreshMonthpicker:function(a){var b=this._getInst(a);b&&this._updateMonthpicker(b)},_setDateMonthpicker:function(a,b){var c=this._getInst(a);c&&(this._setDate(c,b),this._updateMonthpicker(c),this._updateAlternate(c))},_getDateMonthpicker:function(a,b){var c=this._getInst(a);return c&&!c.inline&&this._setDateFromField(c,b),c?this._getDate(c):null},_doKeyDown:function(b){var c,d,e,f=a.monthpicker._getInst(b.target),g=!0,h=f.dpDiv.is(".ui-datepicker-rtl");if(f._keyEvent=!0,a.monthpicker._monthpickerShowing)switch(b.keyCode){case 9:a.monthpicker._hideMonthpicker(),g=!1;break;case 13:return e=a("td."+a.monthpicker._dayOverClass+":not(."+a.monthpicker._currentClass+")",f.dpDiv),e[0]&&a.monthpicker._selectDay(b.target,f.selectedMonth,f.selectedYear,e[0]),c=a.monthpicker._get(f,"onSelect"),c?(d=a.monthpicker._formatDate(f),c.apply(f.input?f.input[0]:null,[d,f])):a.monthpicker._hideMonthpicker(),!1;case 27:a.monthpicker._hideMonthpicker();break;case 33:a.monthpicker._adjustDate(b.target,b.ctrlKey?-12:-a.monthpicker._get(f,"stepYears"),"Y");break;case 34:a.monthpicker._adjustDate(b.target,b.ctrlKey?12:+a.monthpicker._get(f,"stepYears"),"Y");break;case 35:(b.ctrlKey||b.metaKey)&&a.monthpicker._clearDate(b.target),g=b.ctrlKey||b.metaKey;break;case 36:(b.ctrlKey||b.metaKey)&&a.monthpicker._gotoToday(b.target),g=b.ctrlKey||b.metaKey;break;case 37:(b.ctrlKey||b.metaKey)&&a.monthpicker._adjustDate(b.target,h?1:-1,"M"),g=b.ctrlKey||b.metaKey,b.originalEvent.altKey&&a.monthpicker._adjustDate(b.target,b.ctrlKey?-12:-a.monthpicker._get(f,"stepYears"),"M");break;case 38:(b.ctrlKey||b.metaKey)&&a.monthpicker._adjustDate(b.target,-4,"M"),g=b.ctrlKey||b.metaKey;break;case 39:(b.ctrlKey||b.metaKey)&&a.monthpicker._adjustDate(b.target,h?-1:1,"M"),g=b.ctrlKey||b.metaKey,b.originalEvent.altKey&&a.monthpicker._adjustDate(b.target,b.ctrlKey?12:+a.monthpicker._get(f,"stepYears"),"Y");break;case 40:(b.ctrlKey||b.metaKey)&&a.monthpicker._adjustDate(b.target,4,"M"),g=b.ctrlKey||b.metaKey;break;default:g=!1}else 36===b.keyCode&&b.ctrlKey?a.monthpicker._showMonthpicker(this):g=!1;g&&(b.preventDefault(),b.stopPropagation())},_doKeyPress:function(b){var c,d,e=a.monthpicker._getInst(b.target);return a.monthpicker._get(e,"constrainInput")?(c=a.monthpicker._possibleChars(a.monthpicker._get(e,"dateFormat")),d=String.fromCharCode(null==b.charCode?b.keyCode:b.charCode),b.ctrlKey||b.metaKey||" ">d||!c||c.indexOf(d)>-1):void 0},_doKeyUp:function(b){var c,d=a.monthpicker._getInst(b.target);if(d.input.val()!==d.lastVal)try{c=a.monthpicker.parseDate(a.monthpicker._get(d,"dateFormat"),d.input?d.input.val():null,a.monthpicker._getFormatConfig(d)),c&&(a.monthpicker._setDateFromField(d),a.monthpicker._updateAlternate(d),a.monthpicker._updateMonthpicker(d))}catch(e){}return!0},_showMonthpicker:function(b){if(b=b.target||b,"input"!==b.nodeName.toLowerCase()&&(b=a("input",b.parentNode)[0]),!a.monthpicker._isDisabledMonthpicker(b)&&a.monthpicker._lastInput!==b){var c,d,e,f,h,i,j;c=a.monthpicker._getInst(b),a.monthpicker._curInst&&a.monthpicker._curInst!==c&&(a.monthpicker._curInst.dpDiv.stop(!0,!0),c&&a.monthpicker._monthpickerShowing&&a.monthpicker._hideMonthpicker(a.monthpicker._curInst.input[0])),d=a.monthpicker._get(c,"beforeShow"),e=d?d.apply(b,[b,c]):{},e!==!1&&(g(c.settings,e),c.lastVal=null,a.monthpicker._lastInput=b,a.monthpicker._setDateFromField(c),a.monthpicker._inDialog&&(b.value=""),a.monthpicker._pos||(a.monthpicker._pos=a.monthpicker._findPos(b),a.monthpicker._pos[1]+=b.offsetHeight),f=!1,a(b).parents().each(function(){return f|="fixed"===a(this).css("position"),!f}),h={left:a.monthpicker._pos[0],top:a.monthpicker._pos[1]},a.monthpicker._pos=null,c.dpDiv.empty(),c.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),a.monthpicker._updateMonthpicker(c),h=a.monthpicker._checkOffset(c,h,f),c.dpDiv.css({position:a.monthpicker._inDialog&&a.blockUI?"static":f?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),c.inline||(i=a.monthpicker._get(c,"showAnim"),j=a.monthpicker._get(c,"duration"),c.dpDiv.zIndex(a(b).zIndex()+1),a.monthpicker._monthpickerShowing=!0,a.effects&&a.effects.effect[i]?c.dpDiv.show(i,a.monthpicker._get(c,"showOptions"),j):c.dpDiv[i||"show"](i?j:null),a.monthpicker._shouldFocusInput(c)&&c.input.focus(),a.monthpicker._curInst=c))}},_updateMonthpicker:function(b){this.maxRows=4,d=b,b.dpDiv.empty().append(this._generateHTML(b)),this._attachHandlers(b),b.dpDiv.find("."+this._dayOverClass+" a").mouseover();var c,e=this._getnumberOfYears(b),f=e[1],g=17;b.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),f>1&&b.dpDiv.addClass("ui-datepicker-multi-"+f).css("width",g*f+"em"),b.dpDiv[(1!==e[0]||1!==e[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),b.dpDiv[(this._get(b,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),b===a.monthpicker._curInst&&a.monthpicker._monthpickerShowing&&a.monthpicker._shouldFocusInput(b)&&b.input.focus(),b.yearshtml&&(c=b.yearshtml,setTimeout(function(){c===b.yearshtml&&b.yearshtml&&b.dpDiv.find("select.ui-datepicker-year:first").replaceWith(b.yearshtml),c=b.yearshtml=null},0))},_shouldFocusInput:function(a){return a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&!a.input.is(":focus")},_checkOffset:function(b,c,d){var e=b.dpDiv.outerWidth(),f=b.dpDiv.outerHeight(),g=b.input?b.input.outerWidth():0,h=b.input?b.input.outerHeight():0,i=document.documentElement.clientWidth+(d?0:a(document).scrollLeft()),j=document.documentElement.clientHeight+(d?0:a(document).scrollTop());return c.left-=this._get(b,"isRTL")?e-g:0,c.left-=d&&c.left===b.input.offset().left?a(document).scrollLeft():0,c.top-=d&&c.top===b.input.offset().top+h?a(document).scrollTop():0,c.left-=Math.min(c.left,c.left+e>i&&i>e?Math.abs(c.left+e-i):0),c.top-=Math.min(c.top,c.top+f>j&&j>f?Math.abs(f+h):0),c},_findPos:function(b){for(var c,d=this._getInst(b),e=this._get(d,"isRTL");b&&("hidden"===b.type||1!==b.nodeType||a.expr.filters.hidden(b));)b=b[e?"previousSibling":"nextSibling"];return c=a(b).offset(),[c.left,c.top]},_hideMonthpicker:function(b){var d,e,f,g,h=this._curInst;!h||b&&h!==a.data(b,c)||this._monthpickerShowing&&(d=this._get(h,"showAnim"),e=this._get(h,"duration"),f=function(){a.monthpicker._tidyDialog(h)},a.effects&&(a.effects.effect[d]||a.effects[d])?h.dpDiv.hide(d,a.monthpicker._get(h,"showOptions"),e,f):h.dpDiv["slideDown"===d?"slideUp":"fadeIn"===d?"fadeOut":"hide"](d?e:null,f),d||f(),this._monthpickerShowing=!1,g=this._get(h,"onClose"),g&&g.apply(h.input?h.input[0]:null,[h.input?h.input.val():"",h]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),a.blockUI&&(a.unblockUI(),a("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(b){if(a.monthpicker._curInst){var c=a(b.target),d=a.monthpicker._getInst(c[0]);(c[0].id!==a.monthpicker._mainDivId&&0===c.parents("#"+a.monthpicker._mainDivId).length&&!c.hasClass(a.monthpicker.markerClassName)&&!c.closest("."+a.monthpicker._triggerClass).length&&a.monthpicker._monthpickerShowing&&(!a.monthpicker._inDialog||!a.blockUI)||c.hasClass(a.monthpicker.markerClassName)&&a.monthpicker._curInst!==d)&&a.monthpicker._hideMonthpicker()}},_adjustDate:function(b,c,d){var e=a(b),f=this._getInst(e[0]);this._isDisabledMonthpicker(e[0])||(this._adjustInstDate(f,c+("Y"===d?this._get(f,"showCurrentAtPos"):0),d),this._updateMonthpicker(f))},_gotoToday:function(b){var c,d=a(b),e=this._getInst(d[0]);this._get(e,"gotoCurrent")&&e.currentDay?(e.selectedDay=e.currentDay,e.drawMonth=e.selectedMonth=e.currentMonth,e.drawYear=e.selectedYear=e.currentYear):(c=new Date,e.selectedDay=c.getDate(),e.drawMonth=e.selectedMonth=c.getMonth(),e.drawYear=e.selectedYear=c.getFullYear()),this._notifyChange(e),this._adjustDate(d)},_selectMonthYear:function(b,c,d){var e=a(b),f=this._getInst(e[0]);f["selected"+("M"===d?"Month":"Year")]=f["draw"+("M"===d?"Month":"Year")]=parseInt(c.options[c.selectedIndex].value,10),this._notifyChange(f),this._adjustDate(e)},_selectDay:function(b,c,d,e){var f,g=a(b);a(e).hasClass(this._unselectableClass)||this._isDisabledMonthpicker(g[0])||(f=this._getInst(g[0]),f.selectedDay=1,f.selectedMonth=f.currentMonth=c,f.selectedYear=f.currentYear=d,this._selectDate(b,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear)))},_clearDate:function(b){var c=a(b);this._selectDate(c,"")},_selectDate:function(b,c){var d,e=a(b),f=this._getInst(e[0]);c=null!=c?c:this._formatDate(f),f.input&&f.input.val(c),this._updateAlternate(f),d=this._get(f,"onSelect"),d?d.apply(f.input?f.input[0]:null,[c,f]):f.input&&f.input.trigger("change"),f.inline?this._updateMonthpicker(f):(this._hideMonthpicker(),this._lastInput=f.input[0],"object"!=typeof f.input[0]&&f.input.focus(),this._lastInput=null)},_updateAlternate:function(b){var c,d,e,f=this._get(b,"altField");f&&(c=this._get(b,"altFormat")||this._get(b,"dateFormat"),d=this._getDate(b),e=this.formatDate(c,d,this._getFormatConfig(b)),a(f).each(function(){a(this).val(e)}))},noWeekends:function(a){var b=a.getDay();return[b>0&&6>b,""]},parseDate:function(b,c,d){if(null==b||null==c)throw"Invalid arguments";if(c="object"==typeof c?c.toString():c+"",""===c)return null;var e,f,g,t,h=0,i=(d?d.shortYearCutoff:null)||this._defaults.shortYearCutoff,j="string"!=typeof i?i:(new Date).getFullYear()%100+parseInt(i,10),k=(d?d.dayNamesShort:null)||this._defaults.dayNamesShort,l=(d?d.dayNames:null)||this._defaults.dayNames,m=(d?d.monthNamesShort:null)||this._defaults.monthNamesShort,n=(d?d.monthNames:null)||this._defaults.monthNames,o=-1,p=-1,q=1,r=-1,s=!1,u=function(a){var c=e+1<b.length&&b.charAt(e+1)===a;return c&&e++,c},v=function(a){var b=u(a),d="@"===a?14:"!"===a?20:"y"===a&&b?4:"o"===a?3:2,e=new RegExp("^\\d{1,"+d+"}"),f=c.substring(h).match(e);if(!f)throw"Missing number at position "+h;return h+=f[0].length,parseInt(f[0],10)},w=function(b,d,e){var f=-1,g=a.map(u(b)?e:d,function(a,b){return[[b,a]]}).sort(function(a,b){return-(a[1].length-b[1].length)});if(a.each(g,function(a,b){var d=b[1];return c.substr(h,d.length).toLowerCase()===d.toLowerCase()?(f=b[0],h+=d.length,!1):void 0}),-1!==f)return f+1;throw"Unknown name at position "+h},x=function(){if(c.charAt(h)!==b.charAt(e))throw"Unexpected literal at position "+h;h++};for(e=0;e<b.length;e++)if(s)"'"!==b.charAt(e)||u("'")?x():s=!1;else switch(b.charAt(e)){case"d":q=v("d");break;case"D":w("D",k,l);break;case"o":r=v("o");break;case"m":p=v("m");break;case"M":p=w("M",m,n);break;case"y":o=v("y");break;case"@":t=new Date(v("@")),o=t.getFullYear(),p=t.getMonth()+1,q=t.getDate();break;case"!":t=new Date((v("!")-this._ticksTo1970)/1e4),o=t.getFullYear(),p=t.getMonth()+1,q=t.getDate();break;case"'":u("'")?x():s=!0;break;default:x()}if(h<c.length&&(g=c.substr(h),!/^\s+/.test(g)))throw"Extra/unparsed characters found in date: "+g;if(-1===o?o=(new Date).getFullYear():100>o&&(o+=(new Date).getFullYear()-(new Date).getFullYear()%100+(j>=o?0:-100)),r>-1)for(p=1,q=r;;){if(f=this._getDaysInMonth(o,p-1),f>=q)break;p++,q-=f}if(t=this._daylightSavingAdjust(new Date(o,p-1,q)),t.getFullYear()!==o||t.getMonth()+1!==p||t.getDate()!==q)throw"Invalid date";return t},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(a,b,c){if(!b)return"";var d,e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=function(b){var c=d+1<a.length&&a.charAt(d+1)===b;return c&&d++,c},j=function(a,b,c){var d=""+b;if(i(a))for(;d.length<c;)d="0"+d;return d},k=function(a,b,c,d){return i(a)?d[b]:c[b]},l="",m=!1;if(b)for(d=0;d<a.length;d++)if(m)"'"!==a.charAt(d)||i("'")?l+=a.charAt(d):m=!1;else switch(a.charAt(d)){case"d":l+=j("d",b.getDate(),2);break;case"D":l+=k("D",b.getDay(),e,f);break;case"o":l+=j("o",Math.round((new Date(b.getFullYear(),b.getMonth(),b.getDate()).getTime()-new Date(b.getFullYear(),0,0).getTime())/864e5),3);break;case"m":l+=j("m",b.getMonth()+1,2);break;case"M":l+=k("M",b.getMonth(),g,h);break;case"y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case"@":l+=b.getTime();break;case"!":l+=1e4*b.getTime()+this._ticksTo1970;break;case"'":i("'")?l+="'":m=!0;break;default:l+=a.charAt(d)}return l},_possibleChars:function(a){var b,c="",d=!1,e=function(c){var d=b+1<a.length&&a.charAt(b+1)===c;return d&&b++,d};for(b=0;b<a.length;b++)if(d)"'"!==a.charAt(b)||e("'")?c+=a.charAt(b):d=!1;else switch(a.charAt(b)){case"d":case"m":case"y":case"@":c+="0123456789";break;case"D":case"M":return null;case"'":e("'")?c+="'":d=!0;break;default:c+=a.charAt(b)}return c},_get:function(a,c){return a.settings[c]!==b?a.settings[c]:this._defaults[c]},_setDateFromField:function(a,b){if(a.input.val()!==a.lastVal){var c=this._get(a,"dateFormat"),d=a.lastVal=a.input?a.input.val():null,e=this._getDefaultDate(a),f=e,g=this._getFormatConfig(a);try{f=this.parseDate(c,d,g)||e}catch(h){d=b?"":d}a.selectedDay=f.getDate(),a.drawMonth=a.selectedMonth=f.getMonth(),a.drawYear=a.selectedYear=f.getFullYear(),a.currentDay=d?f.getDate():0,a.currentMonth=d?f.getMonth():0,a.currentYear=d?f.getFullYear():0,this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(b,c,d){var e=function(a){var b=new Date;return b.setDate(b.getDate()+a),b},f=function(c){try{return a.monthpicker.parseDate(a.monthpicker._get(b,"dateFormat"),c,a.monthpicker._getFormatConfig(b))}catch(d){}for(var e=(c.toLowerCase().match(/^c/)?a.monthpicker._getDate(b):null)||new Date,f=e.getFullYear(),g=e.getMonth(),h=e.getDate(),i=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,j=i.exec(c);j;){switch(j[2]||"d"){case"d":case"D":h+=parseInt(j[1],10);break;case"w":case"W":h+=7*parseInt(j[1],10);break;case"m":case"M":g+=parseInt(j[1],10),h=Math.min(h,a.monthpicker._getDaysInMonth(f,g));break;case"y":case"Y":f+=parseInt(j[1],10),h=Math.min(h,a.monthpicker._getDaysInMonth(f,g))}j=i.exec(c)}return new Date(f,g,h)},g=null==c||""===c?d:"string"==typeof c?f(c):"number"==typeof c?isNaN(c)?d:e(c):new Date(c.getTime());return g=g&&"Invalid Date"===g.toString()?d:g,g&&(g.setHours(0),g.setMinutes(0),g.setSeconds(0),g.setMilliseconds(0)),this._daylightSavingAdjust(g)},_daylightSavingAdjust:function(a){return a?(a.setHours(a.getHours()>12?a.getHours()+2:0),a):null},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),e===a.selectedMonth&&f===a.selectedYear||c||this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?"":this._formatDate(a))},_getDate:function(a){var b=!a.currentYear||a.input&&""===a.input.val()?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_attachHandlers:function(b){var c=this._get(b,"stepYears"),d="#"+b.id.replace(/\\\\/g,"\\");b.dpDiv.find("[data-handler]").map(function(){var b={prev:function(){a.monthpicker._adjustDate(d,-c,"Y")},next:function(){a.monthpicker._adjustDate(d,+c,"Y")},hide:function(){a.monthpicker._hideMonthpicker()},today:function(){a.monthpicker._gotoToday(d)},selectDay:function(){return a.monthpicker._selectDay(d,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return a.monthpicker._selectMonthYear(d,this,"M"),!1},selectYear:function(){return a.monthpicker._selectMonthYear(d,this,"Y"),!1}};a(this).bind(this.getAttribute("data-event"),b[this.getAttribute("data-handler")])})},_generateHTML:function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,D,E,F,G,H,I,J,K=new Date,L=this._daylightSavingAdjust(new Date(K.getFullYear(),K.getMonth(),K.getDate())),M=this._get(a,"isRTL"),N=this._get(a,"showButtonPanel"),O=this._get(a,"hideIfNoPrevNext"),P=this._get(a,"navigationAsDateFormat"),Q=this._getnumberOfYears(a),R=this._get(a,"showCurrentAtPos"),S=this._get(a,"stepYears"),T=1!==Q[0]||1!==Q[1],U=this._daylightSavingAdjust(a.currentMonth?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),V=this._getMinMaxDate(a,"min"),W=this._getMinMaxDate(a,"max"),X=a.drawMonth,Y=a.drawYear-R;if(0>X&&(X+=12,Y--),W)for(b=this._daylightSavingAdjust(new Date(W.getFullYear(),W.getMonth()-Q[0]*Q[1]+1,W.getDate())),b=V&&V>b?V:b;this._daylightSavingAdjust(new Date(Y,X,1))>b;)X--,0>X&&(X=11,Y--);for(a.drawMonth=X,a.drawYear=Y,c=this._get(a,"prevText"),c=P?this.formatDate(c,this._daylightSavingAdjust(new Date(Y-setpYears,1,1)),this._getFormatConfig(a)):c,d=this._canAdjustMonth(a,-1,Y,X)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+c+"'><span class='ui-icon ui-icon-circle-triangle-"+(M?"e":"w")+"'>"+c+"</span></a>":O?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+c+"'><span class='ui-icon ui-icon-circle-triangle-"+(M?"e":"w")+"'>"+c+"</span></a>",e=this._get(a,"nextText"),e=P?this.formatDate(e,this._daylightSavingAdjust(new Date(Y+S,1,1)),this._getFormatConfig(a)):e,f=this._canAdjustMonth(a,1,Y,X)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+e+"'><span class='ui-icon ui-icon-circle-triangle-"+(M?"w":"e")+"'>"+e+"</span></a>":O?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+e+"'><span class='ui-icon ui-icon-circle-triangle-"+(M?"w":"e")+"'>"+e+"</span></a>",g=this._get(a,"currentText"),h=this._get(a,"gotoCurrent")&&a.currentDay?U:L,g=P?this.formatDate(g,h,this._getFormatConfig(a)):g,i=a.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(a,"closeText")+"</button>",j=N?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(M?i:"")+(this._isInRange(a,h)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+g+"</button>":"")+(M?"":i)+"</div>":"",k=this._get(a,"dayNames"),l=this._get(a,"dayNamesMin"),m=this._get(a,"monthNames"),n=this._get(a,"monthNamesShort"),o=this._get(a,"beforeShowDay"),p=this._get(a,"selectOtherMonths"),q=this._getDefaultDate(a),r="",t=0;t<Q[0];t++){for(u="",this.maxRows=4,v=0;v<Q[1];v++){if(w=this._daylightSavingAdjust(new Date(Y,X,a.selectedDay)),x=" ui-corner-all",y="",T){if(y+="<div class='ui-datepicker-group",Q[1]>1)switch(v){case 0:y+=" ui-datepicker-group-first",x=" ui-corner-"+(M?"right":"left");break;case Q[1]-1:y+=" ui-datepicker-group-last",x=" ui-corner-"+(M?"left":"right");break;default:y+=" ui-datepicker-group-middle",x=""}y+="'>"}for(y+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+x+"'>"+(/all|left/.test(x)&&0===t?M?f:d:"")+(/all|right/.test(x)&&0===t?M?d:f:"")+this._generateMonthYearHeader(a,X,Y,V,W,t>0||v>0,m,n)+"</div><table class='ui-datepicker-calendar'><thead></thead><tbody>",leadMonth=X,D=3,E=3,this.maxRows=E,F=this._daylightSavingAdjust(new Date(Y,X-leadMonth,1)),G=0;E>G;G++){for(y+="<tr>",H="",s=0;4>s;s++)I=o?o.apply(a.input?a.input[0]:null,[F]):[!0,""],J=V&&V>F||W&&F>W,H+="<td class='"+(F.getYear()===w.getYear()&&F.getMonth()===w.getMonth()&&Y===a.selectedYear&&X===a.selectedMonth&&a._keyEvent||q.getYear()===F.getYear()&&q.getMonth()===F.getMonth()&&q.getMonth()===w.getMonth()&&q.getMonth()===w.getMonth()?" "+this._dayOverClass:"")+(J?" "+this._unselectableClass+" ui-state-disabled":"")+(" "+I[1]+(F.getMonth()===U.getMonth()&&F.getYear()===U.getYear()?" "+this._currentClass:"")+(F.getMonth()===L.getMonth()&&F.getYear()===L.getYear()?" ui-datepicker-today":""))+"'"+(I[2]?" title='"+I[2].replace(/'/g,"'")+"'":"")+(J?"":" data-handler='selectDay' data-event='click' data-month='"+F.getMonth()+"' data-year='"+F.getFullYear()+"'")+">"+(J?"<span class='ui-state-default'>"+n[F.getMonth()]+"</span>":"<a class='ui-state-default"+(F.getMonth()===L.getMonth()&&F.getYear()===L.getYear()?" ui-state-highlight":"")+(F.getMonth()===U.getMonth()&&F.getYear()===U.getYear()?" ui-state-active":"")+"' href='#'>"+n[F.getMonth()]+"</a>")+"</td>",F.setMonth(F.getMonth()+1),F=this._daylightSavingAdjust(F);y+=H+"</tr>"}Y++,y+="</tbody></table>"+(T?"</div>"+(Q[0]>0&&v===Q[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),u+=y}r+=u}return r+=j,a._keyEvent=!1,r},_generateMonthYearHeader:function(a,b,c,d,e,f){var l,m,n,o,p,q=this._get(a,"changeYear"),r=this._get(a,"showMonthAfterYear"),s="<div class='ui-datepicker-title'>",t="";if(!a.yearshtml)if(a.yearshtml="",f||!q)s+="<span class='ui-datepicker-year'>"+c+"</span>";else{for(l=this._get(a,"yearRange").split(":"),m=(new Date).getFullYear(),n=function(a){var b=a.match(/c[+\-].*/)?c+parseInt(a.substring(1),10):a.match(/[+\-].*/)?m+parseInt(a,10):parseInt(a,10);return isNaN(b)?m:b},o=n(l[0]),p=Math.max(o,n(l[1]||"")),o=d?Math.max(o,d.getFullYear()):o,p=e?Math.min(p,e.getFullYear()):p,a.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";p>=o;o++)a.yearshtml+="<option value='"+o+"'"+(o===c?" selected='selected'":"")+">"+o+"</option>";a.yearshtml+="</select>",s+=a.yearshtml,a.yearshtml=null}return s+=this._get(a,"yearSuffix"),r&&(s+=(f||!q?" ":"")+t),s+="</div>"},_adjustInstDate:function(a,b,c){var d=a.drawYear+("Y"===c?b:0),e=a.drawMonth+("M"===c?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+("D"===c?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),("M"===c||"Y"===c)&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&c>b?c:b;return d&&e>d?d:e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getnumberOfYears:function(a){var b=this._get(a,"numberOfYears");return null==b?[1,1]:"number"==typeof b?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)
|
|
},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_canAdjustMonth:function(a,b,c,d){var e=this._getnumberOfYears(a),f=this._daylightSavingAdjust(new Date(c+(0>b?b:e[0]*e[1]),d,1));return 0>b&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth())),this._isInRange(a,f)},_isInRange:function(a,b){var c,d,e=this._getMinMaxDate(a,"min"),f=this._getMinMaxDate(a,"max"),g=null,h=null,i=this._get(a,"yearRange");return i&&(c=i.split(":"),d=(new Date).getFullYear(),g=parseInt(c[0],10),h=parseInt(c[1],10),c[0].match(/[+\-].*/)&&(g+=d),c[1].match(/[+\-].*/)&&(h+=d)),(!e||b.getYear()>=e.getYear())&&(!f||b.getYear()<=f.getYear())&&(!g||b.getFullYear()>=g)&&(!h||b.getFullYear()<=h)},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");return b="string"!=typeof b?b:(new Date).getFullYear()%100+parseInt(b,10),{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth,a.currentYear=a.selectedYear);var e=b?"object"==typeof b?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),a.fn.monthpicker=function(b){if(!this.length)return this;a.monthpicker.initialized||(a(document).mousedown(a.monthpicker._checkExternalClick),a.monthpicker.initialized=!0),0===a("#"+a.monthpicker._mainDivId).length&&a("body").append(a.monthpicker.dpDiv);var c=Array.prototype.slice.call(arguments,1);return"string"!=typeof b||"isDisabled"!==b&&"getDate"!==b&&"widget"!==b?"option"===b&&2===arguments.length&&"string"==typeof arguments[1]?a.monthpicker["_"+b+"Monthpicker"].apply(a.monthpicker,[this[0]].concat(c)):this.each(function(){"string"==typeof b?a.monthpicker["_"+b+"Monthpicker"].apply(a.monthpicker,[this].concat(c)):a.monthpicker._attachMonthpicker(this,b)}):a.monthpicker["_"+b+"Monthpicker"].apply(a.monthpicker,[this[0]].concat(c))},a.monthpicker=new e,a.monthpicker.initialized=!1,a.monthpicker.uuid=(new Date).getTime(),a.monthpicker.version="1.10.3"}(jQuery); |