/* http://keith-wood.name/datepick.html
   Datepicker for jQuery 3.6.1.
   Written by Marc Grabanski (m@marcgrabanski.com) and
              Keith Wood (kbwood{at}iinet.com.au).
   Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and
   MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses.
   Please attribute the authors if you use it. */
(function($){
	var bn='datepick';
	function Datepick(){
		this._uuid=new Date().getTime();
		this._curInst=null;
		this._keyEvent=false;
		this._disabledInputs=[];
		this._datepickerShowing=false;
		this._inDialog=false;
		this.regional=[];
		this.regional['']={
			clearText:'Clear',
			clearStatus:'Erase the current date',
			closeText:'Close',
			closeStatus:'Close without change',
			prevText:'&#x3c;Prev',
			prevStatus:'Show the previous month',
			prevBigText:'&#x3c;&#x3c;',
			prevBigStatus:'Show the previous year',
			nextText:'Next&#x3e;',
			nextStatus:'Show the next month',
			nextBigText:'&#x3e;&#x3e;',
			nextBigStatus:'Show the next year',
			currentText:'Today',
			currentStatus:'Show the current month',
			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'],
			monthStatus:'Show a different month',
			yearStatus:'Show a different year',
			weekHeader:'Wk',
			weekStatus:'Week of the year',
			dayNames:['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
			dayNamesShort:['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],
			dayNamesMin:['Su','Mo','Tu','We','Th','Fr','Sa'],
			dayStatus:'Set DD as first week day',
			dateStatus:'Select DD, M d',
			dateFormat:'mm/dd/yy',
			firstDay:0,
			initStatus:'Select a date',
			isRTL:false,
			showMonthAfterYear:false,
			yearSuffix:''
		};

		this._defaults={
			showOn:'focus',
			showAnim:'show',
			showOptions:{},
			duration:'normal',
			buttonText:'...',
			buttonImage:'',
			buttonImageOnly:false,
			defaultDate:null,
			showDefault:false,
			appendText:'',
			closeAtTop:true,
			mandatory:false,
			hideIfNoPrevNext:false,
			navigationAsDateFormat:false,
			showBigPrevNext:false,
			stepMonths:1,
			stepBigMonths:12,
			gotoCurrent:false,
			changeMonth:true,
			changeYear:true,
			yearRange:'-10:+10',
			changeFirstDay:false,
			showOtherMonths:false,
			selectOtherMonths:false,
			highlightWeek:false,
			showWeeks:false,
			calculateWeek:this.iso8601Week,
			shortYearCutoff:'+10',
			showStatus:false,
			statusForDate:this.dateStatus,
			minDate:null,
			maxDate:null,
			numberOfMonths:1,
			showCurrentAtPos:0,
			rangeSelect:false,
			rangeSeparator:' - ',
			multiSelect:0,
			multiSeparator:',',
			beforeShow:null,
			beforeShowDay:null,
			onChangeMonthYear:null,
			onHover:null,
			onSelect:null,
			onClose:null,
			altField:'',
			altFormat:'',
			constrainInput:true,
			leftOffset:0
		};

		$.extend(this._defaults,this.regional['']);
		this.dpDiv=$('<div id="'+this._mainDivId+'" style="display: none;"></div>')
	}
	$.extend(Datepick.prototype,{
		version:'3.6.0',
		markerClassName:'hasDatepick',
		_mainDivId:'datepick-div',
		_inlineClass:'datepick-inline',
		_appendClass:'datepick-append',
		_triggerClass:'datepick-trigger',
		_dialogClass:'datepick-dialog',
		_promptClass:'datepick-prompt',
		_disableClass:'datepick-disabled',
		_oneMonthClass:'datepick-one-month',
		_unselectableClass:'datepick-unselectable',
		_currentClass:'datepick-current-day',
		_dayOverClass:'datepick-days-cell-over',
		_weekOverClass:'datepick-week-over',
		_coverClass:'datepick-cover',
		setDefaults:function(a){
			extendRemove(this._defaults,a||{});
			return this
		},
		_attachDatepick:function(a,b){
			var c=null;
			for(var d in this._defaults){
				var e=a.getAttribute('date:'+d);
				if(e){
					c=c||{};

					try{
						c[d]=eval(e)
					}catch(err){
						c[d]=e
					}
				}
			}
			var f=a.nodeName.toLowerCase();
			var g=(f=='div'||f=='span');
			if(!a.id)a.id='dp'+(++this._uuid);
			var h=this._newInst($(a),g);
			h.settings=$.extend({},b||{},c||{});
			if(f=='input')this._connectDatepick(a,h);
			else if(g)this._inlineDatepick(a,h)
		},
		_newInst:function(a,b){
			var c=a[0].id.replace(/([:\[\]\.])/g,'\\\\$1');
			return{
				id:c,
				input:a,
				cursorDate:this._daylightSavingAdjust(new Date()),
				drawMonth:0,
				drawYear:0,
				dates:[],
				inline:b,
				dpDiv:(!b?this.dpDiv:$('<div class="'+this._inlineClass+'"></div>')),
				siblings:$([])
			}
		},
		_connectDatepick:function(a,b){
			var c=$(a);
			if(c.hasClass(this.markerClassName))return;
			var d=this._get(b,'appendText');
			var e=this._get(b,'isRTL');
			if(d){
				var f=$('<span class="'+this._appendClass+'">'+d+'</span>');
				c[e?'before':'after'](f);
				b.siblings=b.siblings.add(f)
			}
			var g=this._get(b,'showOn');
			if(g=='focus'||g=='both')c.focus(this._showDatepick);
			if(g=='button'||g=='both'){
				var h=this._get(b,'buttonText');
				var i=this._get(b,'buttonImage');
				var j=$(this._get(b,'buttonImageOnly')?$('<img/>').addClass(this._triggerClass).attr({
					src:i,
					alt:h,
					title:h
				}):$('<button type="button"></button>').addClass(this._triggerClass).html(i==''?h:$('<img/>').attr({
					src:i,
					alt:h,
					title:h
				})));
				c[e?'before':'after'](j);
				b.siblings=b.siblings.add(j);
				j.click(function(){
					if($.datepick._datepickerShowing&&$.datepick._lastInput==a)$.datepick._hideDatepick();else $.datepick._showDatepick(a);
					return false
				})
			}
			c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp);
			if(this._get(b,'showDefault')&&!b.input.val()){
				b.dates=[this._getDefaultDate(b)];
				this._showDate(b)
			}
			$.data(a,bn,b)
		},
		_inlineDatepick:function(a,b){
			var c=$(a);
			if(c.hasClass(this.markerClassName))return;
			c.addClass(this.markerClassName);
			$.data(a,bn,b);
			b.drawMonth=b.cursorDate.getMonth();
			b.drawYear=b.cursorDate.getFullYear();
			$('body').append(b.dpDiv);
			this._updateDatepick(b);
			b.dpDiv.width(this._getNumberOfMonths(b)[1]*$('.'+this._oneMonthClass,b.dpDiv)[0].offsetWidth);
			c.append(b.dpDiv);
			this._updateAlternate(b)
		},
		_dialogDatepick:function(a,b,c,d,e){
			var f=this._dialogInst;
			if(!f){
				var g='dp'+(++this._uuid);
				this._dialogInput=$('<input type="text" id="'+g+'" size="1" style="position: absolute; top: -100px;"/>');
				this._dialogInput.keydown(this._doKeyDown);
				$('body').append(this._dialogInput);
				f=this._dialogInst=this._newInst(this._dialogInput,false);
				f.settings={};

				$.data(this._dialogInput[0],bn,f)
			}
			extendRemove(f.settings,d||{});
			this._dialogInput.val(b);
			this._pos=(e?(isArray(e)?e:[e.pageX,e.pageY]):null);
			if(!this._pos){
				var h=document.documentElement.scrollLeft||document.body.scrollLeft;
				var i=document.documentElement.scrollTop||document.body.scrollTop;
				this._pos=[(document.documentElement.clientWidth/2)-100+h,(document.documentElement.clientHeight/2)-150+i]
			}
			this._dialogInput.css('left',this._pos[0]+'px').css('top',this._pos[1]+'px');
			f.settings.onSelect=c;
			this._inDialog=true;
			this.dpDiv.addClass(this._dialogClass);
			this._showDatepick(this._dialogInput[0]);
			if($.blockUI)$.blockUI(this.dpDiv);
			$.data(this._dialogInput[0],bn,f)
		},
		_destroyDatepick:function(a){
			var b=$(a);
			if(!b.hasClass(this.markerClassName)){
				return
			}
			var c=a.nodeName.toLowerCase();
			var d=$.data(a,bn);
			$.removeData(a,bn);
			if(c=='input'){
				$(d.siblings).remove();
				b.removeClass(this.markerClassName).unbind('focus',this._showDatepick).unbind('keydown',this._doKeyDown).unbind('keypress',this._doKeyPress).unbind('keyup',this._doKeyUp)
			}else if(c=='div'||c=='span')b.removeClass(this.markerClassName).empty()
		},
		_enableDatepick:function(b){
			var c=$(b);
			if(!c.hasClass(this.markerClassName)){
				return
			}
			var d=b.nodeName.toLowerCase();
			var e=$.data(b,bn);
			if(d=='input'){
				b.disabled=false;
				e.siblings.filter('button.'+this._triggerClass).each(function(){
					this.disabled=false
				}).end().filter('img.'+this._triggerClass).css({
					opacity:'1.0',
					cursor:''
				})
			}else if(d=='div'||d=='span'){
				c.children('.'+this._disableClass).remove().end().find('select').attr('disabled','')
			}
			this._disabledInputs=$.map(this._disabledInputs,function(a){
				return(a==b?null:a)
			})
		},
		_disableDatepick:function(b){
			var c=$(b);
			if(!c.hasClass(this.markerClassName)){
				return
			}
			var d=b.nodeName.toLowerCase();
			var e=$.data(b,bn);
			if(d=='input'){
				b.disabled=true;
				e.siblings.filter('button.'+this._triggerClass).each(function(){
					this.disabled=true
				}).end().filter('img.'+this._triggerClass).css({
					opacity:'0.5',
					cursor:'default'
				})
			}else if(d=='div'||d=='span'){
				var f=c.children('.'+this._inlineClass);
				var g=f.offset();
				var h={
					left:0,
					top:0
				};

				f.parents().each(function(){
					if($(this).css('position')=='relative'){
						h=$(this).offset();
						return false
					}
				});
				c.prepend('<div class="'+this._disableClass+'" style="'+'width: '+f.width()+'px; height: '+f.height()+'px; left: '+(g.left-h.left)+'px; top: '+(g.top-h.top)+'px;"></div>').find('select').attr('disabled','disabled')
			}
			this._disabledInputs=$.map(this._disabledInputs,function(a){
				return(a==b?null:a)
			});
			this._disabledInputs.push(b)
		},
		_isDisabledDatepick:function(a){
			return(!a?false:$.inArray(a,this._disabledInputs)>-1)
		},
		_getInst:function(a){
			try{
				return $.data(a,bn)
			}catch(err){
				throw'Missing instance data for this datepicker';
			}
		},
		_optionDatepick:function(a,b,c){
			var d=this._getInst(a);
			if(arguments.length==2&&typeof b=='string'){
				return(b=='defaults'?$.extend({},$.datepick._defaults):(d?(b=='all'?$.extend({},d.settings):this._get(d,b)):null))
			}
			var e=b||{};

			if(typeof b=='string'){
				e={};

				e[b]=c
			}
			if(d){
				if(this._curInst==d){
					this._hideDatepick(null)
				}
				var f=this._getDateDatepick(a);
				extendRemove(d.settings,e);
				extendRemove(d,{
					dates:[]
				});
				var g=(!f||isArray(f));
				if(isArray(f))for(var i=0;i<f.length;i++)if(f[i]){
					g=false;
					break
				}
				if(!g)this._setDateDatepick(a,f);
				this._updateDatepick(d)
			}
		},
		_changeDatepick:function(a,b,c){
			this._optionDatepick(a,b,c)
		},
		_refreshDatepick:function(a){
			var b=this._getInst(a);
			if(b){
				this._updateDatepick(b)
			}
		},
		_setDateDatepick:function(a,b,c){
			var d=this._getInst(a);
			if(d){
				this._setDate(d,b,c);
				this._updateDatepick(d);
				this._updateAlternate(d)
			}
		},
		_getDateDatepick:function(a){
			var b=this._getInst(a);
			if(b&&!b.inline)this._setDateFromField(b);
			return(b?this._getDate(b):null)
		},
		_doKeyDown:function(a){
			var b=$.datepick._getInst(a.target);
			b._keyEvent=true;
			var c=true;
			var d=$.datepick._get(b,'isRTL');
			if($.datepick._datepickerShowing)switch(a.keyCode){
				case 9:
					$.datepick._hideDatepick(null,'');
					break;
				case 13:
					var e=$('td.'+$.datepick._dayOverClass,b.dpDiv);
					if(e.length==0)e=$('td.'+$.datepick._currentClass+':first',b.dpDiv);
					if(e[0])$.datepick._selectDay(a.target,b.cursorDate.getTime(),e[0]);else $.datepick._hideDatepick(null,$.datepick._get(b,'duration'));
					break;
				case 27:
					$.datepick._hideDatepick(null,$.datepick._get(b,'duration'));
					break;
				case 33:
					$.datepick._adjustDate(a.target,(a.ctrlKey?-$.datepick._get(b,'stepBigMonths'):-$.datepick._get(b,'stepMonths')),'M');
					break;
				case 34:
					$.datepick._adjustDate(a.target,(a.ctrlKey?+$.datepick._get(b,'stepBigMonths'):+$.datepick._get(b,'stepMonths')),'M');
					break;
				case 35:
					if(a.ctrlKey||a.metaKey)$.datepick._clearDate(a.target);
					c=a.ctrlKey||a.metaKey;
					break;
				case 36:
					if(a.ctrlKey||a.metaKey)$.datepick._gotoToday(a.target);
					c=a.ctrlKey||a.metaKey;
					break;
				case 37:
					if(a.ctrlKey||a.metaKey)$.datepick._adjustDate(a.target,(d?+1:-1),'D');
					c=a.ctrlKey||a.metaKey;
					if(a.originalEvent.altKey)$.datepick._adjustDate(a.target,(a.ctrlKey?-$.datepick._get(b,'stepBigMonths'):-$.datepick._get(b,'stepMonths')),'M');
					break;
				case 38:
					if(a.ctrlKey||a.metaKey)$.datepick._adjustDate(a.target,-7,'D');
					c=a.ctrlKey||a.metaKey;
					break;
				case 39:
					if(a.ctrlKey||a.metaKey)$.datepick._adjustDate(a.target,(d?-1:+1),'D');
					c=a.ctrlKey||a.metaKey;
					if(a.originalEvent.altKey)$.datepick._adjustDate(a.target,(a.ctrlKey?+$.datepick._get(b,'stepBigMonths'):+$.datepick._get(b,'stepMonths')),'M');
					break;
				case 40:
					if(a.ctrlKey||a.metaKey)$.datepick._adjustDate(a.target,+7,'D');
					c=a.ctrlKey||a.metaKey;
					break;
				default:
					c=false
			}else if(a.keyCode==36&&a.ctrlKey)$.datepick._showDatepick(this);else c=false;
			if(c){
				a.preventDefault();
				a.stopPropagation()
			}
			return!c
		},
		_doKeyPress:function(a){
			var b=$.datepick._getInst(a.target);
			if($.datepick._get(b,'constrainInput')){
				var c=$.datepick._possibleChars(b);
				var d=String.fromCharCode(a.charCode==undefined?a.keyCode:a.charCode);
				return a.ctrlKey||(d<' '||!c||c.indexOf(d)>-1)
			}
		},
		_doKeyUp:function(a){
			var b=$.datepick._getInst(a.target);
			try{
				var c=($.datepick._get(b,'rangeSelect')?$.datepick._get(b,'rangeSeparator'):($.datepick._get(b,'multiSelect')?$.datepick._get(b,'multiSeparator'):''));
				var d=(b.input?b.input.val():'');
				d=(c?d.split(c):[d]);
				var e=true;
				for(var i=0;i<d.length;i++){
					if(!$.datepick.parseDate($.datepick._get(b,'dateFormat'),d[i],$.datepick._getFormatConfig(b))){
						e=false;
						break
					}
				}
				if(e){
					$.datepick._setDateFromField(b);
					$.datepick._updateAlternate(b);
					$.datepick._updateDatepick(b)
				}
			}catch(a){}
			return true
		},
		_possibleChars:function(a){
			var b=$.datepick._get(a,'dateFormat');
			var c=($.datepick._get(a,'rangeSelect')?$.datepick._get(a,'rangeSeparator'):($.datepick._get(a,'multiSelect')?$.datepick._get(a,'multiSeparator'):''));
			var d=false;
			for(var e=0;e<b.length;e++)if(d)if(b.charAt(e)=="'"&&!lookAhead("'"))d=false;else c+=b.charAt(e);else switch(b.charAt(e)){
				case'd':case'm':case'y':case'@':
					c+='0123456789';
					break;
				case'D':case'M':
					return null;
				case"'":
					if(lookAhead("'"))c+="'";else d=true;
					break;
				default:
					c+=b.charAt(e)
			}
			return c
		},
		_showDatepick:function(b){
			b=b.target||b;
			if(b.nodeName.toLowerCase()!='input')b=$('input',b.parentNode)[0];
			if($.datepick._isDisabledDatepick(b)||$.datepick._lastInput==b)return;
			var c=$.datepick._getInst(b);
			var d=$.datepick._get(c,'beforeShow');

			extendRemove(c.settings,(d?d.apply(b,[b,c]):{}));

			$.datepick._hideDatepick(null,'');
			$.datepick._lastInput=b;
			$.datepick._setDateFromField(c);
			if($.datepick._inDialog)b.value='';
			if(!$.datepick._pos){
				$.datepick._pos=$.datepick._findPos(b);
				$.datepick._pos[1]+=b.offsetHeight
			}
			var e=false;
			$(b).parents().each(function(){
				e|=$(this).css('position')=='fixed';
				return!e
			});
			if(e&&$.browser.opera){
				$.datepick._pos[0]-=document.documentElement.scrollLeft;
				$.datepick._pos[1]-=document.documentElement.scrollTop
			}
			var f={
				left:$.datepick._pos[0],
				top:$.datepick._pos[1]
			};

			var lo = $.datepick._get(c, 'leftOffset');

			$.datepick._pos=null;
			c.dpDiv.css({
				position:'absolute',
				display:'block',
				top:'-1000px'
			});
			$.datepick._updateDatepick(c);
			c.dpDiv.width($.datepick._getNumberOfMonths(c)[1]*$('.'+$.datepick._oneMonthClass,c.dpDiv).width());
			f=$.datepick._checkOffset(c,f,e);
			c.dpDiv.css({
				position:($.datepick._inDialog&&$.blockUI?'static':(e?'fixed':'absolute')),
				display:'none',
				left:f.left+'px',
				top:f.top+'px'
			});
			if(!c.inline){
				var g=$.datepick._get(c,'showAnim')||'show';
				var h=$.datepick._get(c,'duration');
				var i=function(){
					$.datepick._datepickerShowing=true;
					var a=$.datepick._getBorders(c.dpDiv);
					c.dpDiv.find('iframe.'+$.datepick._coverClass).css({
						left:-a[0],
						top:-a[1],
						width:c.dpDiv.outerWidth(),
						height:c.dpDiv.outerHeight()
					})
				};

				if($.effects&&$.effects[g])c.dpDiv.show(g,$.datepick._get(c,'showOptions'),h,i);else c.dpDiv[g](h,i);
				if(h=='')i();
				if(c.input[0].type!='hidden')c.input.focus();
				$.datepick._curInst=c
			}
		},
		_updateDatepick:function(a){
			var b=this._getBorders(a.dpDiv);
			a.dpDiv.empty().append(this._generateHTML(a)).find('iframe.'+this._coverClass).css({
				left:-b[0],
				top:-b[1],
				width:a.dpDiv.outerWidth(),
				height:a.dpDiv.outerHeight()
			});
			var c=this._getNumberOfMonths(a);
			a.dpDiv[(c[0]!=1||c[1]!=1?'add':'remove')+'Class']('datepick-multi');
			a.dpDiv[(this._get(a,'isRTL')?'add':'remove')+'Class']('datepick-rtl');
			if(a.input&&a.input[0].type!='hidden'&&a==$.datepick._curInst)$(a.input).focus()
		},
		_getBorders:function(c){
			var d=function(a){
				var b=($.browser.msie?1:0);
				return{
					thin:1+b,
					medium:3+b,
					thick:5+b
				}
				[a]||a
			};

			return[parseFloat(d(c.css('border-left-width'))),parseFloat(d(c.css('border-top-width')))]
		},
		_checkOffset:function(a,b,c){
			var d=a.input?this._findPos(a.input[0]):null;
			var e=document.documentElement.clientWidth;
			var f=document.documentElement.clientHeight;
			if(e==0)return b;
			var g=document.documentElement.scrollLeft||document.body.scrollLeft;
			var h=document.documentElement.scrollTop||document.body.scrollTop;
			if(this._get(a,'isRTL')||(b.left+a.dpDiv.outerWidth()-g)>e)b.left=Math.max((c?0:g),d[0]+(a.input?a.input.outerWidth():0)-(c?g:0)-a.dpDiv.outerWidth()-(c&&$.browser.opera?document.documentElement.scrollLeft:0));else b.left-=(c?g:0);
			if((b.top+a.dpDiv.outerHeight()-h)>f)b.top=Math.max((c?0:h),d[1]-(c?h:0)-(this._inDialog?0:a.dpDiv.outerHeight())-(c&&$.browser.opera?document.documentElement.scrollTop:0));else b.top-=(c?h:0);
			return b
		},
		_findPos:function(a){
			while(a&&(a.type=='hidden'||a.nodeType!=1)){
				a=a.nextSibling
			}
			var b=$(a).offset();
			return[b.left,b.top]
		},
		_hideDatepick:function(a,b){
			var c=this._curInst;
			if(!c||(a&&c!=$.data(a,bn)))return false;
			var d=this._get(c,'rangeSelect');
			if(d&&c.stayOpen)this._updateInput('#'+c.id);
			c.stayOpen=false;
			if(this._datepickerShowing){
				b=(b!=null?b:this._get(c,'duration'));
				var e=this._get(c,'showAnim');
				var f=function(){
					$.datepick._tidyDialog(c)
				};

				if(b!=''&&$.effects&&$.effects[e])c.dpDiv.hide(e,$.datepick._get(c,'showOptions'),b,f);else c.dpDiv[(b==''?'hide':(e=='slideDown'?'slideUp':(e=='fadeIn'?'fadeOut':'hide')))](b,f);
				if(b=='')this._tidyDialog(c);
				var g=this._get(c,'onClose');
				if(g)g.apply((c.input?c.input[0]:null),[(c.input?c.input.val():''),this._getDate(c),c]);
				this._datepickerShowing=false;
				this._lastInput=null;
				c.settings.prompt=null;
				if(this._inDialog){
					this._dialogInput.css({
						position:'absolute',
						left:'0',
						top:'-100px'
					});
					if($.blockUI){
						$.unblockUI();
						$('body').append(this.dpDiv)
					}
				}
				this._inDialog=false
			}
			this._curInst=null;
			return false
		},
		_tidyDialog:function(a){
			a.dpDiv.removeClass(this._dialogClass).unbind('.datepick');
			$('.'+this._promptClass,a.dpDiv).remove()
		},
		_checkExternalClick:function(a){
			if(!$.datepick._curInst)return;
			var b=$(a.target);
			if(!b.parents().andSelf().is('#'+$.datepick._mainDivId)&&!b.hasClass($.datepick.markerClassName)&&!b.parents().andSelf().hasClass($.datepick._triggerClass)&&$.datepick._datepickerShowing&&!($.datepick._inDialog&&$.blockUI))$.datepick._hideDatepick(null,'')
		},
		_adjustDate:function(a,b,c){
			var d=this._getInst($(a)[0]);
			this._adjustInstDate(d,b+(c=='M'?this._get(d,'showCurrentAtPos'):0),c);
			this._updateDatepick(d);
			return false
		},
		_gotoToday:function(a){
			var b=$(a);
			var c=this._getInst(b[0]);
			if(this._get(c,'gotoCurrent')&&c.dates[0])c.cursorDate=new Date(c.dates[0].getTime());else c.cursorDate=this._daylightSavingAdjust(new Date());
			c.drawMonth=c.cursorDate.getMonth();
			c.drawYear=c.cursorDate.getFullYear();
			this._notifyChange(c);
			this._adjustDate(b);
			return false
		},
		_selectMonthYear:function(a,b,c){
			var d=$(a);
			var e=this._getInst(d[0]);
			e._selectingMonthYear=false;
			var f=parseInt(b.options[b.selectedIndex].value,10);
			e['selected'+(c=='M'?'Month':'Year')]=e['draw'+(c=='M'?'Month':'Year')]=f;
			e.cursorDate.setDate(Math.min(e.cursorDate.getDate(),$.datepick._getDaysInMonth(e.drawYear,e.drawMonth)));
			e.cursorDate['set'+(c=='M'?'Month':'FullYear')](f);
			this._notifyChange(e);
			this._adjustDate(d)
		},
		_clickMonthYear:function(a){
			var b=this._getInst($(a)[0]);
			if(b.input&&b._selectingMonthYear&&!$.browser.msie)b.input.focus();
			b._selectingMonthYear=!b._selectingMonthYear
		},
		_changeFirstDay:function(a,b){
			var c=this._getInst($(a)[0]);
			c.settings.firstDay=b;
			this._updateDatepick(c);
			return false
		},
		_doHover:function(a,b,c,d){
			if($(d).hasClass(this._unselectableClass))return;
			var e=this._getInst($(a)[0]);
			var f=this._get(e,'onHover');
			var g=(b?this._daylightSavingAdjust(new Date(b,c,$(d).text())):null);
			f.apply((e.input?e.input[0]:null),[(g?this._formatDate(e,g):''),g,e])
		},
		_selectDay:function(a,b,c){
			if($(c).hasClass(this._unselectableClass))return false;
			var d=this._getInst($(a)[0]);
			var e=this._get(d,'rangeSelect');
			var f=this._get(d,'multiSelect');
			if(e)d.stayOpen=!d.stayOpen;
			else if(f)d.stayOpen=true;
			if(d.stayOpen){
				$('.datepick td',d.dpDiv).removeClass(this._currentClass);
				$(c).addClass(this._currentClass)
			}
			d.cursorDate=this._daylightSavingAdjust(new Date(b));
			var g=new Date(d.cursorDate.getTime());
			if(e&&!d.stayOpen)d.dates[1]=g;
			else if(f){
				var h=-1;
				for(var i=0;i<d.dates.length;i++)if(d.dates[i]&&g.getTime()==d.dates[i].getTime()){
					h=i;
					break
				}
				if(h>-1)d.dates.splice(h,1);
				else if(d.dates.length<f){
					if(d.dates[0])d.dates.push(g);else d.dates=[g];
					d.stayOpen=(d.dates.length!=f)
				}
			}else d.dates=[g];
			this._updateInput(a);
			if(d.stayOpen)this._updateDatepick(d);
			else if((e||f)&&d.inline)this._updateDatepick(d);
			return false
		},
		_clearDate:function(a){
			var b=$(a);
			var c=this._getInst(b[0]);
			if(this._get(c,'mandatory'))return false;
			c.stayOpen=false;
			c.dates=(this._get(c,'showDefault')?[this._getDefaultDate(c)]:[]);
			this._updateInput(b);
			return false
		},
		_updateInput:function(a){
			var b=this._getInst($(a)[0]);
			var c=this._showDate(b);
			this._updateAlternate(b);
			var d=this._get(b,'onSelect');
			if(d)d.apply((b.input?b.input[0]:null),[c,this._getDate(b),b]);
			else if(b.input)b.input.trigger('change');
			if(b.inline)this._updateDatepick(b);
			else if(!b.stayOpen){
				this._hideDatepick(null,this._get(b,'duration'));
				this._lastInput=b.input[0];
				if(typeof(b.input[0])!='object')b.input.focus();
				this._lastInput=null
			}
			return false
		},
		_showDate:function(a){
			var b='';
			if(a.input){
				b=(a.dates.length==0?'':this._formatDate(a,a.dates[0]));
				if(b){
					if(this._get(a,'rangeSelect'))b+=this._get(a,'rangeSeparator')+this._formatDate(a,a.dates[1]||a.dates[0]);
					else if(this._get(a,'multiSelect'))for(var i=1;i<a.dates.length;i++)b+=this._get(a,'multiSeparator')+this._formatDate(a,a.dates[i])
				}
				a.input.val(b)
			}
			return b
		},
		_updateAlternate:function(a){
			var b=this._get(a,'altField');
			if(b){
				var c=this._get(a,'altFormat')||this._get(a,'dateFormat');
				var d=this._getFormatConfig(a);
				var e=this.formatDate(c,a.dates[0],d);
				if(e&&this._get(a,'rangeSelect'))e+=this._get(a,'rangeSeparator')+this.formatDate(c,a.dates[1]||a.dates[0],d);
				else if(this._get(a,'multiSelect'))for(var i=1;i<a.dates.length;i++)e+=this._get(a,'multiSeparator')+this.formatDate(c,a.dates[i],d);
				$(b).val(e)
			}
		},
		noWeekends:function(a){
			return[(a.getDay()||7)<6,'']
		},
		iso8601Week:function(a){
			var b=new Date(a.getTime());
			b.setDate(b.getDate()+4-(b.getDay()||7));
			var c=b.getTime();
			b.setMonth(0);
			b.setDate(1);
			return Math.floor(Math.round((c-b)/86400000)/7)+1
		},
		dateStatus:function(a,b){
			return $.datepick.formatDate($.datepick._get(b,'dateStatus'),a,$.datepick._getFormatConfig(b))
		},
		parseDate:function(e,f,g){
			if(e==null||f==null)throw'Invalid arguments';
			f=(typeof f=='object'?f.toString():f+'');
			if(f=='')return null;
			g=g||{};

			var h=g.shortYearCutoff||this._defaults.shortYearCutoff;
			h=(typeof h!='string'?h:new Date().getFullYear()%100+parseInt(h,10));
			var j=g.dayNamesShort||this._defaults.dayNamesShort;
			var k=g.dayNames||this._defaults.dayNames;
			var l=g.monthNamesShort||this._defaults.monthNamesShort;
			var m=g.monthNames||this._defaults.monthNames;
			var n=-1;
			var o=-1;
			var p=-1;
			var q=-1;
			var r=false;
			var s=function(a){
				var b=(x+1<e.length&&e.charAt(x+1)==a);
				if(b)x++;
				return b
			};

			var t=function(a){
				s(a);
				var b=(a=='@'?14:(a=='!'?20:(a=='y'?4:(a=='o'?3:2))));
				var c=new RegExp('^\\d{1,'+b+'}');
				var d=f.substring(w).match(c);
				if(!d)throw'Missing number at position '+w;
				w+=d[0].length;
				return parseInt(d[0],10)
			};

			var u=function(a,b,c){
				var d=(s(a)?c:b);
				for(var i=0;i<d.length;i++){
					if(f.substr(w,d[i].length)==d[i]){
						w+=d[i].length;
						return i+1
					}
				}
				throw'Unknown name at position '+w;
			};

			var v=function(){
				if(f.charAt(w)!=e.charAt(x))throw'Unexpected literal at position '+w;
				w++
			};

			var w=0;
			for(var x=0;x<e.length;x++){
				if(r)if(e.charAt(x)=="'"&&!s("'"))r=false;else v();else switch(e.charAt(x)){
					case'd':
						p=t('d');
						break;
					case'D':
						u('D',j,k);
						break;
					case'o':
						q=t('o');
						break;
					case'm':
						o=t('m');
						break;
					case'M':
						o=u('M',l,m);
						break;
					case'y':
						n=t('y');
						break;
					case'@':
						var y=new Date(t('@'));
						n=y.getFullYear();
						o=y.getMonth()+1;
						p=y.getDate();
						break;
					case'!':
						var y=new Date((t('!')-this._ticksTo1970)/10000);
						n=y.getFullYear();
						o=y.getMonth()+1;
						p=y.getDate();
						break;
					case"'":
						if(s("'"))v();else r=true;
						break;
					default:
						v()
				}
			}
			if(w<f.length)throw'Additional text found at end';
			if(n==-1)n=new Date().getFullYear();
			else if(n<100)n+=(h==-1?1900:new Date().getFullYear()-new Date().getFullYear()%100-(n<=h?0:100));
			if(q>-1){
				o=1;
				p=q;
				do{
					var z=this._getDaysInMonth(n,o-1);
					if(p<=z)break;
					o++;
					p-=z
				}while(true)
			}
			var y=this._daylightSavingAdjust(new Date(n,o-1,p));
			if(y.getFullYear()!=n||y.getMonth()+1!=o||y.getDate()!=p)throw'Invalid date';
			return y
		},
		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:(((1970-1)*365+Math.floor(1970/4)-Math.floor(1970/100)+Math.floor(1970/400))*24*60*60*10000000),
		formatDate:function(e,f,g){
			if(!f)return'';
			var h=(g?g.dayNamesShort:null)||this._defaults.dayNamesShort;
			var i=(g?g.dayNames:null)||this._defaults.dayNames;
			var j=(g?g.monthNamesShort:null)||this._defaults.monthNamesShort;
			var k=(g?g.monthNames:null)||this._defaults.monthNames;
			var l=function(a){
				var b=(q+1<e.length&&e.charAt(q+1)==a);
				if(b)q++;
				return b
			};

			var m=function(a,b,c){
				var d=''+b;
				if(l(a))while(d.length<c)d='0'+d;
				return d
			};

			var n=function(a,b,c,d){
				return(l(a)?d[b]:c[b])
			};

			var o='';
			var p=false;
			if(f)for(var q=0;q<e.length;q++){
				if(p)if(e.charAt(q)=="'"&&!l("'"))p=false;else o+=e.charAt(q);else switch(e.charAt(q)){
					case'd':
						o+=m('d',f.getDate(),2);
						break;
					case'D':
						o+=n('D',f.getDay(),h,i);
						break;
					case'o':
						o+=m('o',(f.getTime()-new Date(f.getFullYear(),0,0).getTime())/86400000,3);
						break;
					case'm':
						o+=m('m',f.getMonth()+1,2);
						break;
					case'M':
						o+=n('M',f.getMonth(),j,k);
						break;
					case'y':
						o+=(l('y')?f.getFullYear():(f.getFullYear()%100<10?'0':'')+f.getFullYear()%100);
						break;
					case'@':
						o+=f.getTime();
						break;
					case'!':
						o+=f.getTime()*10000+this._ticksTo1970;
						break;
					case"'":
						if(l("'"))o+="'";else p=true;
						break;
					default:
						o+=e.charAt(q)
				}
			}
			return o
		},
		_get:function(a,b){
			return a.settings[b]!==undefined?a.settings[b]:this._defaults[b]
		},
		_setDateFromField:function(a){
			var b=this._get(a,'dateFormat');
			var c=this._get(a,'rangeSelect');
			var d=this._get(a,'multiSelect');
			var e=(a.input?a.input.val():'');
			e=(c?e.split(this._get(a,'rangeSeparator')):(d?e.split(this._get(a,'multiSeparator')):[e]));
			a.dates=[];
			var f=this._getFormatConfig(a);
			for(var i=0;i<e.length;i++)try{
				a.dates[i]=this.parseDate(b,e[i],f)
			}catch(event){
				a.dates[i]=null
			}
			for(var i=a.dates.length-1;i>=0;i--)if(!a.dates[i])a.dates.splice(i,1);if(c&&a.dates.length<2)a.dates[1]=a.dates[0];
			if(d&&a.dates.length>d)a.dates.splice(d,a.dates.length);
			a.cursorDate=new Date((a.dates[0]||this._getDefaultDate(a)).getTime());
			a.drawMonth=a.cursorDate.getMonth();
			a.drawYear=a.cursorDate.getFullYear();
			this._adjustInstDate(a)
		},
		_getDefaultDate:function(a){
			return this._restrictMinMax(a,this._determineDate(this._get(a,'defaultDate'),new Date()))
		},
		_determineDate:function(h,i){
			var j=function(a){
				var b=new Date();
				b.setDate(b.getDate()+a);
				return b
			};

			var k=function(a){
				var b=new Date();
				var c=b.getFullYear();
				var d=b.getMonth();
				var e=b.getDate();
				var f=/([+-]?[0-9]+)\s*(d|w|m|y)?/g;
				var g=f.exec(a.toLowerCase());
				while(g){
					switch(g[2]||'d'){
						case'd':
							e+=parseInt(g[1],10);
							break;
						case'w':
							e+=parseInt(g[1],10)*7;
							break;
						case'm':
							d+=parseInt(g[1],10);
							e=Math.min(e,$.datepick._getDaysInMonth(c,d));
							break;
						case'y':
							c+=parseInt(g[1],10);
							e=Math.min(e,$.datepick._getDaysInMonth(c,d));
							break
					}
					g=f.exec(a.toLowerCase())
				}
				return new Date(c,d,e)
			};

			h=(h==null?i:(typeof h=='string'?k(h):(typeof h=='number'?(isNaN(h)||h==Infinity||h==-Infinity?i:j(h)):h)));
			h=(h&&(h.toString()=='Invalid Date'||h.toString()=='NaN')?i:h);
			if(h){
				h.setHours(0);
				h.setMinutes(0);
				h.setSeconds(0);
				h.setMilliseconds(0)
			}
			return this._daylightSavingAdjust(h)
		},
		_daylightSavingAdjust:function(a){
			if(!a)return null;
			a.setHours(a.getHours()>12?a.getHours()+2:0);
			return a
		},
		_setDate:function(a,b,c){
			b=(!b?[]:(isArray(b)?b:[b]));
			if(c)b.push(c);
			var d=(b.length==0);
			var e=a.cursorDate.getMonth();
			var f=a.cursorDate.getFullYear();
			a.dates=[];
			a.dates[0]=this._restrictMinMax(a,this._determineDate(b[0],new Date()));
			a.cursorDate=new Date(a.dates[0].getTime());
			a.drawMonth=a.cursorDate.getMonth();
			a.drawYear=a.cursorDate.getFullYear();
			if(this._get(a,'rangeSelect'))a.dates[1]=(b.length<1?a.dates[0]:this._restrictMinMax(a,this._determineDate(b[1],null)));
			else if(this._get(a,'multiSelect'))for(var i=1;i<b.length;i++)a.dates[i]=this._restrictMinMax(a,this._determineDate(b[i],null));
			if(e!=a.cursorDate.getMonth()||f!=a.cursorDate.getFullYear())this._notifyChange(a);
			this._adjustInstDate(a);
			this._showDate(a)
		},
		_getDate:function(a){
			var b=(a.input&&a.input.val()==''?null:a.dates[0]);
			if(this._get(a,'rangeSelect'))return(b?[a.dates[0],a.dates[1]||a.dates[0]]:[null,null]);
			else if(this._get(a,'multiSelect'))return a.dates.slice(0,a.dates.length);else return b
		},
		_generateHTML:function(a){
			var b=new Date();
			b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));
			var c=this._get(a,'showStatus');
			var d=this._get(a,'initStatus')||'&#xa0;';
			var e=this._get(a,'isRTL');
			var f=(this._get(a,'mandatory')?'':'<div class="datepick-clear"><a href="javascript:void(0)" onclick="jQuery.datepick._clearDate(\'#'+a.id+'\');"'+this._addStatus(c,a.id,this._get(a,'clearStatus'),d)+'>'+this._get(a,'clearText')+'</a></div>');
			var g='<div class="datepick-control">'+(e?'':f)+'<div class="datepick-close"><a href="javascript:void(0)" onclick="jQuery.datepick._hideDatepick();"'+this._addStatus(c,a.id,this._get(a,'closeStatus'),d)+'>'+this._get(a,'closeText')+'</a></div>'+(e?f:'')+'</div>';
			var h=this._get(a,'prompt');
			var j=this._get(a,'closeAtTop');
			var k=this._get(a,'hideIfNoPrevNext');
			var l=this._get(a,'navigationAsDateFormat');
			var m=this._get(a,'showBigPrevNext');
			var n=this._getNumberOfMonths(a);
			var o=this._get(a,'showCurrentAtPos');
			var p=this._get(a,'stepMonths');
			var q=this._get(a,'stepBigMonths');
			var r=(n[0]!=1||n[1]!=1);
			var s=this._getMinMaxDate(a,'min',true);
			var t=this._getMinMaxDate(a,'max');
			var u=a.drawMonth-o;
			var v=a.drawYear;
			if(u<0){
				u+=12;
				v--
			}
			if(t){
				var w=this._daylightSavingAdjust(new Date(t.getFullYear(),t.getMonth()-n[1]+1,t.getDate()));
				w=(s&&w<s?s:w);
				while(this._daylightSavingAdjust(new Date(v,u,1))>w){
					u--;
					if(u<0){
						u=11;
						v--
					}
				}
			}
			a.drawMonth=u;
			a.drawYear=v;
			var x=this._get(a,'prevText');
			x=(!l?x:this.formatDate(x,this._daylightSavingAdjust(new Date(v,u-p,1)),this._getFormatConfig(a)));
			var y=(m?this._get(a,'prevBigText'):'');
			y=(!l?y:this.formatDate(y,this._daylightSavingAdjust(new Date(v,u-q,1)),this._getFormatConfig(a)));
			var z='<div class="datepick-prev">'+(this._canAdjustMonth(a,-1,v,u)?(m?'<a href="javascript:void(0)" onclick="jQuery.datepick._adjustDate(\'#'+a.id+'\', -'+q+', \'M\');"'+this._addStatus(c,a.id,this._get(a,'prevBigStatus'),d)+'>'+y+'</a>':'')+'<a href="javascript:void(0)" onclick="jQuery.datepick._adjustDate(\'#'+a.id+'\', -'+p+', \'M\');"'+this._addStatus(c,a.id,this._get(a,'prevStatus'),d)+'>'+x+'</a>':(k?'&#xa0;':(m?'<label>'+y+'</label>':'')+'<label>'+x+'</label>'))+'</div>';
			var A=this._get(a,'nextText');
			A=(!l?A:this.formatDate(A,this._daylightSavingAdjust(new Date(v,u+p,1)),this._getFormatConfig(a)));
			var B=(m?this._get(a,'nextBigText'):'');
			B=(!l?B:this.formatDate(B,this._daylightSavingAdjust(new Date(v,u+q,1)),this._getFormatConfig(a)));
			var C='<div class="datepick-next">'+(this._canAdjustMonth(a,+1,v,u)?'<a href="javascript:void(0)" onclick="jQuery.datepick._adjustDate(\'#'+a.id+'\', +'+p+', \'M\');"'+this._addStatus(c,a.id,this._get(a,'nextStatus'),d)+'>'+A+'</a>'+(m?'<a href="javascript:void(0)" onclick="jQuery.datepick._adjustDate(\'#'+a.id+'\', +'+q+', \'M\');"'+this._addStatus(c,a.id,this._get(a,'nextBigStatus'),d)+'>'+B+'</a>':''):(k?'&#xa0;':'<label>'+A+'</label>'+(m?'<label>'+B+'</label>':'')))+'</div>';
			var D=this._get(a,'currentText');
			var E=(this._get(a,'gotoCurrent')&&a.dates[0]?a.dates[0]:b);
			D=(!l?D:this.formatDate(D,E,this._getFormatConfig(a)));
			var F=(j&&!a.inline?g:'')+'<div class="datepick-links">'+(e?C:z)+(this._isInRange(a,E)?'<div class="datepick-current">'+'<a href="javascript:void(0)" onclick="jQuery.datepick._gotoToday(\'#'+a.id+'\');"'+this._addStatus(c,a.id,this._get(a,'currentStatus'),d)+'>'+D+'</a></div>':'')+(e?z:C)+'</div>'+(h?'<div class="'+this._promptClass+'"><span>'+h+'</span></div>':'');
			var G=parseInt(this._get(a,'firstDay'),10);
			G=(isNaN(G)?0:G);
			var H=this._get(a,'changeFirstDay');
			var I=this._get(a,'dayNames');
			var J=this._get(a,'dayNamesShort');
			var K=this._get(a,'dayNamesMin');
			var L=this._get(a,'monthNames');
			var M=this._get(a,'beforeShowDay');
			var N=this._get(a,'highlightWeek');
			var O=this._get(a,'showOtherMonths');
			var P=this._get(a,'selectOtherMonths');
			var Q=this._get(a,'showWeeks');
			var R=this._get(a,'calculateWeek')||this.iso8601Week;
			var S=this._get(a,'weekStatus');
			var T=(c?this._get(a,'dayStatus')||d:'');
			var U=this._get(a,'statusForDate')||this.dateStatus;
			var V=this._get(a,'onHover');
			var W=this._getDefaultDate(a);
			for(var X=0;X<n[0];X++)for(var Y=0;Y<n[1];Y++){
				var Z=this._daylightSavingAdjust(new Date(v,u,a.cursorDate.getDate()));
				F+='<div class="'+this._oneMonthClass+(Y==0?' datepick-new-row':'')+'">'+this._generateMonthYearHeader(a,u,v,s,t,Z,X>0||Y>0,c,d,L)+'<table class="datepick" cellpadding="0" cellspacing="0"><thead>'+'<tr class="datepick-title-row">'+(Q?'<th'+this._addStatus(c,a.id,S,d)+'>'+this._get(a,'weekHeader')+'</th>':'');
				for(var bo=0;bo<7;bo++){
					var bp=(bo+G)%7;
					var bq=(!c||!H?'':T.replace(/DD/,I[bp]).replace(/D/,J[bp]));
					F+='<th'+((bo+G+6)%7<5?'':' class="datepick-week-end-cell"')+'>'+(!H?'<span'+this._addStatus(c,a.id,I[bp],d):'<a href="javascript:void(0)" onclick="jQuery.datepick._changeFirstDay(\'#'+a.id+'\', '+bp+');"'+this._addStatus(c,a.id,bq,d))+' title="'+I[bp]+'">'+K[bp]+(H?'</a>':'</span>')+'</th>'
				}
				F+='</tr></thead><tbody>';
				var br=this._getDaysInMonth(v,u);
				if(v==a.cursorDate.getFullYear()&&u==a.cursorDate.getMonth())a.cursorDate.setDate(Math.min(a.cursorDate.getDate(),br));
				var bs=(this._getFirstDayOfMonth(v,u)-G+7)%7;
				var bt=(r?6:Math.ceil((bs+br)/7));
				var bu=this._daylightSavingAdjust(new Date(v,u,1-bs));
				for(var bv=0;bv<bt;bv++){
					F+='<tr class="datepick-days-row">'+(Q?'<td class="datepick-week-col"'+this._addStatus(c,a.id,S,d)+'>'+R(bu)+'</td>':'');
					for(var bo=0;bo<7;bo++){
						var bw=(M?M.apply((a.input?a.input[0]:null),[bu]):[true,'']);
						var bx=(bu.getMonth()!=u);
						var by=(bx&&!P)||!bw[0]||(s&&bu<s)||(t&&bu>t);
						var bz=(this._get(a,'rangeSelect')&&a.dates[0]&&bu.getTime()>=a.dates[0].getTime()&&bu.getTime()<=(a.dates[1]||a.dates[0]).getTime());
						for(var i=0;i<a.dates.length;i++)bz=bz||(a.dates[i]&&bu.getTime()==a.dates[i].getTime());
						var bA=bx&&!O;
						F+='<td class="datepick-days-cell'+((bo+G+6)%7>=5?' datepick-week-end-cell':'')+(bx?' datepick-other-month':'')+((bu.getTime()==Z.getTime()&&u==a.cursorDate.getMonth()&&a._keyEvent)||(W.getTime()==bu.getTime()&&W.getTime()==Z.getTime())?' '+$.datepick._dayOverClass:'')+(by?' '+this._unselectableClass:'')+(bA?'':' '+bw[1]+(bz?' '+this._currentClass:'')+(bu.getTime()==b.getTime()?' datepick-today':''))+'"'+(!bA&&bw[2]?' title="'+bw[2]+'"':'')+' onmouseover="'+(by?'':'jQuery(this).parents(\'tbody\').'+'find(\'td\').removeClass(\''+this._dayOverClass+'\').end().end().'+'addClass(\''+this._dayOverClass+'\');')+(N?'jQuery(this).parent().parent().'+'find(\'tr\').removeClass(\''+this._weekOverClass+'\').end().end().'+'addClass(\''+this._weekOverClass+'\');':'')+(!c||bA?'':'jQuery(\'#datepick-status-'+a.id+'\').html(\''+(U.apply((a.input?a.input[0]:null),[bu,a])||d)+'\');')+(V&&!bA?'jQuery.datepick._doHover(\'#'+a.id+'\','+bu.getFullYear()+','+bu.getMonth()+', this);':'')+'"'+' onmouseout="'+(by?'':'jQuery(this).removeClass(\''+this._dayOverClass+'\');')+(!c||bA?'':'jQuery(\'#datepick-status-'+a.id+'\').'+'html(\''+d+'\');')+(V&&!bA?'jQuery.datepick._doHover(\'#'+a.id+'\');':'')+'"'+(by?'':' onclick="jQuery.datepick._selectDay(\'#'+a.id+'\''+','+bu.getTime()+',this);"')+'>'+(bA?'&#xa0;':(by?bu.getDate():'<a>'+bu.getDate()+'</a>'))+'</td>';
						bu.setDate(bu.getDate()+1);
						bu=this._daylightSavingAdjust(bu)
					}
					F+='</tr>'
				}
				u++;
				if(u>11){
					u=0;
					v++
				}
				F+='</tbody></table></div>'
			}
			F+=(c?'<div style="clear: both;"></div><div id="datepick-status-'+a.id+'" class="datepick-status">'+d+'</div>':'')+(!j&&!a.inline?g:'')+'<div style="clear: both;"></div>'+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="'+this._coverClass+'"></iframe>':'');
			a._keyEvent=false;
			return F
		},
		_generateMonthYearHeader:function(a,b,c,d,e,f,g,h,i,j){
			var k=this._daylightSavingAdjust(new Date(c,b,1));
			d=(d<k?d:k);
			var l=this._get(a,'changeMonth');
			var m=this._get(a,'changeYear');
			var n=this._get(a,'showMonthAfterYear');
			var o='<div class="datepick-header">';
			var p='';
			if(g||!l)p+='<span>'+j[b]+'</span>';
			else{
				var q=(d&&d.getFullYear()==c);
				var r=(e&&e.getFullYear()==c);
				p+='<select class="datepick-new-month" '+'onchange="jQuery.datepick._selectMonthYear(\'#'+a.id+'\', this, \'M\');" '+'onclick="jQuery.datepick._clickMonthYear(\'#'+a.id+'\');"'+this._addStatus(h,a.id,this._get(a,'monthStatus'),i)+'>';
				for(var s=0;s<12;s++){
					if((!q||s>=d.getMonth())&&(!r||s<=e.getMonth()))p+='<option value="'+s+'"'+(s==b?' selected="selected"':'')+'>'+j[s]+'</option>'
				}
				p+='</select>'
			}
			if(!n)o+=p+(g||!l||!m?'&#xa0;':'');
			if(g||!m)o+='<span>'+c+'</span>';
			else{
				var t=this._get(a,'yearRange').split(':');
				var u=0;
				var v=0;
				if(t.length!=2){
					u=c-10;
					v=c+10
				}else if(t[0].charAt(0)=='+'||t[0].charAt(0)=='-'){
					u=c+parseInt(t[0],10);
					v=c+parseInt(t[1],10)
				}else{
					u=parseInt(t[0],10);
					v=parseInt(t[1],10)
				}
				u=(d?Math.max(u,d.getFullYear()):u);
				v=(e?Math.min(v,e.getFullYear()):v);
				o+='<select class="datepick-new-year" '+'onchange="jQuery.datepick._selectMonthYear(\'#'+a.id+'\', this, \'Y\');" '+'onclick="jQuery.datepick._clickMonthYear(\'#'+a.id+'\');"'+this._addStatus(h,a.id,this._get(a,'yearStatus'),i)+'>';
				for(;u<=v;u++){
					o+='<option value="'+u+'"'+(u==c?' selected="selected"':'')+'>'+u+'</option>'
				}
				o+='</select>'
			}
			o+=this._get(a,'yearSuffix');
			if(n)o+=(g||!l||!m?'&#xa0;':'')+p;
			o+='</div>';
			return o
		},
		_addStatus:function(a,b,c,d){
			return(a?' onmouseover="jQuery(\'#datepick-status-'+b+'\').html(\''+(c||d)+'\');" '+'onmouseout="jQuery(\'#datepick-status-'+b+'\').html(\''+d+'\');"':'')
		},
		_adjustInstDate:function(a,b,c){
			var d=a.drawYear+(c=='Y'?b:0);
			var e=a.drawMonth+(c=='M'?b:0);
			var f=Math.min(a.cursorDate.getDate(),this._getDaysInMonth(d,e))+(c=='D'?b:0);
			a.cursorDate=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));
			a.drawMonth=a.cursorDate.getMonth();
			a.drawYear=a.cursorDate.getFullYear();
			if(c=='M'||c=='Y')this._notifyChange(a)
		},
		_restrictMinMax:function(a,b){
			var c=this._getMinMaxDate(a,'min',true);
			var d=this._getMinMaxDate(a,'max');
			b=(c&&b<c?c:b);
			b=(d&&b>d?d:b);
			return b
		},
		_notifyChange:function(a){
			var b=this._get(a,'onChangeMonthYear');
			if(b)b.apply((a.input?a.input[0]:null),[a.cursorDate.getFullYear(),a.cursorDate.getMonth()+1,this._daylightSavingAdjust(new Date(a.cursorDate.getFullYear(),a.cursorDate.getMonth(),1)),a])
		},
		_getNumberOfMonths:function(a){
			var b=this._get(a,'numberOfMonths');
			return(b==null?[1,1]:(typeof b=='number'?[1,b]:b))
		},
		_getMinMaxDate:function(a,b,c){
			var d=this._determineDate(this._get(a,b+'Date'),null);
			var e=this._getRangeMin(a);
			return(c&&e&&(!d||e>d)?e:d)
		},
		_getRangeMin:function(a){
			return(this._get(a,'rangeSelect')&&a.dates[0]&&!a.dates[1]?a.dates[0]:null)
		},
		_getDaysInMonth:function(a,b){
			return 32-new Date(a,b,32).getDate()
		},
		_getFirstDayOfMonth:function(a,b){
			return new Date(a,b,1).getDay()
		},
		_canAdjustMonth:function(a,b,c,d){
			var e=this._getNumberOfMonths(a);
			var f=this._daylightSavingAdjust(new Date(c,d+(b<0?b:e[1]),1));
			if(b<0)f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth()));
			return this._isInRange(a,f)
		},
		_isInRange:function(a,b){
			var c=this._getRangeMin(a)||this._getMinMaxDate(a,'min');
			var d=this._getMinMaxDate(a,'max');
			return((!c||b>=c)&&(!d||b<=d))
		},
		_getFormatConfig:function(a){
			return{
				shortYearCutoff:this._get(a,'shortYearCutoff'),
				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){
			if(!b)a.dates[0]=new Date(a.cursorDate.getTime());
			var e=(b?(typeof b=='object'?b:this._daylightSavingAdjust(new Date(b,c,d))):a.dates[0]);
			return this.formatDate(this._get(a,'dateFormat'),e,this._getFormatConfig(a))
		}
	});
	function extendRemove(a,b){
		$.extend(a,b);
		for(var c in b)if(b[c]==null||b[c]==undefined)a[c]=b[c];return a
	};

	function isArray(a){
		return(a&&a.constructor==Array)
	};

	$.fn.datepick=function(a){
		var b=Array.prototype.slice.call(arguments,1);
		if(typeof a=='string'&&(a=='isDisabled'||a=='getDate'||a=='settings'))return $.datepick['_'+a+'Datepick'].apply($.datepick,[this[0]].concat(b));
		if(a=='option'&&arguments.length==2&&typeof arguments[1]=='string')return $.datepick['_'+a+'Datepick'].apply($.datepick,[this[0]].concat(b));
		return this.each(function(){
			typeof a=='string'?$.datepick['_'+a+'Datepick'].apply($.datepick,[this].concat(b)):$.datepick._attachDatepick(this,a)
		})
	};

	$.datepick=new Datepick();
	$(function(){
		$(document).mousedown($.datepick._checkExternalClick).find('body').append($.datepick.dpDiv)
	})
})(jQuery);

