(function(a){a.extend(a.ui,{timepicker:{version:"0.9.3"}});function b(){this.regional=[];this.regional[""]={currentText:"Now",closeText:"Done",ampm:false,timeFormat:"hh:mm tt",timeOnlyTitle:"Choose Time",timeText:"Time",hourText:"Hour",minuteText:"Minute",secondText:"Second"};this._defaults={showButtonPanel:true,timeOnly:false,showHour:true,showMinute:true,showSecond:false,showTime:true,stepHour:.05,stepMinute:.05,stepSecond:.05,hour:0,minute:0,second:0,hourMin:0,minuteMin:0,secondMin:0,hourMax:23,minuteMax:59,secondMax:59,minDateTime:null,maxDateTime:null,hourGrid:0,minuteGrid:0,secondGrid:0,alwaysSetTime:true,separator:" ",altFieldTimeOnly:true,showTimepicker:true};a.extend(this._defaults,this.regional[""])}a.extend(b.prototype,{$input:null,$altInput:null,$timeObj:null,inst:null,hour_slider:null,minute_slider:null,second_slider:null,hour:0,minute:0,second:0,hourMinOriginal:null,minuteMinOriginal:null,secondMinOriginal:null,hourMaxOriginal:null,minuteMaxOriginal:null,secondMaxOriginal:null,ampm:"",formattedDate:"",formattedTime:"",formattedDateTime:"",setDefaults:function(a){c(this._defaults,a||{});return this},_newInst:function(e,d){var c=new b,f={};c.hour=c._defaults.hour;c.minute=c._defaults.minute;c.second=c._defaults.second;c.ampm="";c.$input=e;for(var h in this._defaults){var g=e.attr("time:"+h);if(g)try{f[h]=eval(g)}catch(i){f[h]=g}}c._defaults=a.extend({},this._defaults,f,d,{beforeShow:function(e,b){a.isFunction(d.beforeShow)&&d.beforeShow(e,b,c)},onChangeMonthYear:function(f,e,b){c._updateDateTime(b);if(a.isFunction(d.onChangeMonthYear))d.onChangeMonthYear(f,e,b,c)},onClose:function(f,b){c.timeDefined===true&&e.val()!=""&&c._updateDateTime(b);if(a.isFunction(d.onClose))d.onClose(f,b,c)},timepicker:c});if(d.altField)c.$altInput=a(d.altField).css({cursor:"pointer"}).focus(function(){e.trigger("focus")});if(c._defaults.minDate!==undefined&&c._defaults.minDate instanceof Date)c._defaults.minDateTime=new Date(c._defaults.minDate.getTime());if(c._defaults.minDateTime!==undefined&&c._defaults.minDateTime instanceof Date)c._defaults.minDate=new Date(c._defaults.minDateTime.getTime());if(c._defaults.maxDate!==undefined&&c._defaults.maxDate instanceof Date)c._defaults.maxDateTime=new Date(c._defaults.maxDate.getTime());if(c._defaults.maxDateTime!==undefined&&c._defaults.maxDateTime instanceof Date)c._defaults.maxDate=new Date(c._defaults.maxDateTime.getTime());return c},_addTimePicker:function(a){var b=this.$altInput&&this._defaults.altFieldTimeOnly?this.$input.val()+" "+this.$altInput.val():this.$input.val();this.timeDefined=this._parseTime(b);this._limitMinMaxDateTime(a,false);this._injectTimePicker()},_parseTime:function(f,g){var d=this._defaults.timeFormat.toString().replace(/h{1,2}/ig,"(\\d?\\d)").replace(/m{1,2}/ig,"(\\d?\\d)").replace(/s{1,2}/ig,"(\\d?\\d)").replace(/t{1,2}/ig,"(am|pm|a|p)?").replace(/\s/g,"\\s?")+"$",b=this._getFormatPositions(),c;if(!this.inst)this.inst=a.datepicker._getInst(this.$input[0]);if(g||!this._defaults.timeOnly){var e=a.datepicker._get(this.inst,"dateFormat");d=".{"+e.length+",}"+this._defaults.separator+d}c=f.match(new RegExp(d,"i"));if(c){if(b.t!==-1)this.ampm=(c[b.t]===undefined||c[b.t].length===0?"":c[b.t].charAt(0).toUpperCase()=="A"?"AM":"PM").toUpperCase();if(b.h!==-1)if(this.ampm=="AM"&&c[b.h]=="12")this.hour=0;else if(this.ampm=="PM"&&c[b.h]!="12")this.hour=(parseFloat(c[b.h])+12).toFixed(0);else this.hour=Number(c[b.h]);if(b.m!==-1)this.minute=Number(c[b.m]);if(b.s!==-1)this.second=Number(c[b.s]);return true}return false},_getFormatPositions:function(){var b=this._defaults.timeFormat.toLowerCase().match(/(h{1,2}|m{1,2}|s{1,2}|t{1,2})/g),c={h:-1,m:-1,s:-1,t:-1};if(b)for(var a=0;a<b.length;a++)if(c[b[a].toString().charAt(0)]==-1)c[b[a].toString().charAt(0)]=a+1;return c},_injectTimePicker:function(){var l=this.inst.dpDiv,b=this._defaults,c=this,q=(b.hourMax-b.hourMax%b.stepHour).toFixed(0),r=(b.minuteMax-b.minuteMax%b.stepMinute).toFixed(0),u=(b.secondMax-b.secondMax%b.stepSecond).toFixed(0),d=this.inst.id.toString().replace(/([^A-Za-z0-9_])/g,"");if(l.find("div#ui-timepicker-div-"+d).length===0&&b.showTimepicker){var f=' style="display:none;"',e='<div class="ui-timepicker-div" id="ui-timepicker-div-'+d+'"><dl><dt class="ui_tpicker_time_label" id="ui_tpicker_time_label_'+d+'"'+(b.showTime?"":f)+">"+b.timeText+'</dt><dd class="ui_tpicker_time" id="ui_tpicker_time_'+d+'"'+(b.showTime?"":f)+'></dd><dt class="ui_tpicker_hour_label" id="ui_tpicker_hour_label_'+d+'"'+(b.showHour?"":f)+">"+b.hourText+"</dt>",k=0,j=0,p=0,g;if(b.showHour&&b.hourGrid>0){e+='<dd class="ui_tpicker_hour"><div id="ui_tpicker_hour_'+d+'"'+(b.showHour?"":f)+'></div><div style="padding-left: 1px"><table><tr>';for(var i=b.hourMin;i<q;i+=b.hourGrid){k++;var h=b.ampm&&i>12?i-12:i;if(h<10)h="0"+h;if(b.ampm)if(i==0)h=12+"a";else if(i<12)h+="a";else h+="p";e+="<td>"+h+"</td>"}e+="</tr></table></div></dd>"}else e+='<dd class="ui_tpicker_hour" id="ui_tpicker_hour_'+d+'"'+(b.showHour?"":f)+"></dd>";e+='<dt class="ui_tpicker_minute_label" id="ui_tpicker_minute_label_'+d+'"'+(b.showMinute?"":f)+">"+b.minuteText+"</dt>";if(b.showMinute&&b.minuteGrid>0){e+='<dd class="ui_tpicker_minute ui_tpicker_minute_'+b.minuteGrid+'"><div id="ui_tpicker_minute_'+d+'"'+(b.showMinute?"":f)+'></div><div style="padding-left: 1px"><table><tr>';for(var m=b.minuteMin;m<r;m+=b.minuteGrid){j++;e+="<td>"+(m<10?"0":"")+m+"</td>"}e+="</tr></table></div></dd>"}else e+='<dd class="ui_tpicker_minute" id="ui_tpicker_minute_'+d+'"'+(b.showMinute?"":f)+"></dd>";e+='<dt class="ui_tpicker_second_label" id="ui_tpicker_second_label_'+d+'"'+(b.showSecond?"":f)+">"+b.secondText+"</dt>";if(b.showSecond&&b.secondGrid>0){e+='<dd class="ui_tpicker_second ui_tpicker_second_'+b.secondGrid+'"><div id="ui_tpicker_second_'+d+'"'+(b.showSecond?"":f)+'></div><div style="padding-left: 1px"><table><tr>';for(var n=b.secondMin;n<u;n+=b.secondGrid){p++;e+="<td>"+(n<10?"0":"")+n+"</td>"}e+="</tr></table></div></dd>"}else e+='<dd class="ui_tpicker_second" id="ui_tpicker_second_'+d+'"'+(b.showSecond?"":f)+"></dd>";e+="</dl></div>";$tp=a(e);if(b.timeOnly===true){$tp.prepend('<div class="ui-widget-header ui-helper-clearfix ui-corner-all"><div class="ui-datepicker-title">'+b.timeOnlyTitle+"</div></div>");l.find(".ui-datepicker-header, .ui-datepicker-calendar").hide()}this.hour_slider=$tp.find("#ui_tpicker_hour_"+d).slider({orientation:"horizontal",value:this.hour,min:b.hourMin,max:q,step:b.stepHour,slide:function(b,a){c.hour_slider.slider("option","value",a.value);c._onTimeChange()}});this.minute_slider=$tp.find("#ui_tpicker_minute_"+d).slider({orientation:"horizontal",value:this.minute,min:b.minuteMin,max:r,step:b.stepMinute,slide:function(b,a){c.minute_slider.slider("option","value",a.value);c._onTimeChange()}});this.second_slider=$tp.find("#ui_tpicker_second_"+d).slider({orientation:"horizontal",value:this.second,min:b.secondMin,max:u,step:b.stepSecond,slide:function(b,a){c.second_slider.slider("option","value",a.value);c._onTimeChange()}});if(b.showHour&&b.hourGrid>0){g=100*k*b.hourGrid/(q-b.hourMin);$tp.find(".ui_tpicker_hour table").css({width:g+"%",marginLeft:g/(-2*k)+"%",borderCollapse:"collapse"}).find("td").each(function(){a(this).click(function(){var d=a(this).html();if(b.ampm){var f=d.substring(2).toLowerCase(),e=parseInt(d.substring(0,2));if(f=="a")if(e==12)d=0;else d=e;else if(e==12)d=12;else d=e+12}c.hour_slider.slider("option","value",d);c._onTimeChange()}).css({cursor:"pointer",width:100/k+"%",textAlign:"center",overflow:"hidden"})})}if(b.showMinute&&b.minuteGrid>0){g=100*j*b.minuteGrid/(r-b.minuteMin);$tp.find(".ui_tpicker_minute table").css({width:g+"%",marginLeft:g/(-2*j)+"%",borderCollapse:"collapse"}).find("td").each(function(){a(this).click(function(){c.minute_slider.slider("option","value",a(this).html());c._onTimeChange()}).css({cursor:"pointer",width:100/j+"%",textAlign:"center",overflow:"hidden"})})}b.showSecond&&b.secondGrid>0&&$tp.find(".ui_tpicker_second table").css({width:g+"%",marginLeft:g/(-2*p)+"%",borderCollapse:"collapse"}).find("td").each(function(){a(this).click(function(){c.second_slider.slider("option","value",a(this).html());c._onTimeChange()}).css({cursor:"pointer",width:100/p+"%",textAlign:"center",overflow:"hidden"})});var s=l.find(".ui-datepicker-buttonpane");if(s.length)s.before($tp);else l.append($tp);this.$timeObj=a("#ui_tpicker_time_"+d);if(this.inst!==null){var v=this.timeDefined;this._onTimeChange();this.timeDefined=v}var t=c._defaults.onSelect;if(t){var w=c.$input?c.$input[0]:null,o=function(){t.apply(w,[c.formattedDateTime,c])};this.hour_slider.bind("slidestop",o);this.minute_slider.bind("slidestop",o);this.second_slider.bind("slidestop",o)}}},_limitMinMaxDateTime:function(c,f){var d=this._defaults,e=new Date(c.selectedYear,c.selectedMonth,c.selectedDay),i=new Date(c.selectedYear,c.selectedMonth,c.selectedDay,this.hour,this.minute,this.second,0);if(this._defaults.minDateTime!==null&&e){var b=this._defaults.minDateTime,h=new Date(b.getFullYear(),b.getMonth(),b.getDate(),0,0,0,0);if(this.hourMinOriginal===null||this.minuteMinOriginal===null||this.secondMinOriginal===null){this.hourMinOriginal=d.hourMin;this.minuteMinOriginal=d.minuteMin;this.secondMinOriginal=d.secondMin}if(h.getTime()==e.getTime()){this._defaults.hourMin=b.getHours();this._defaults.minuteMin=b.getMinutes();this._defaults.secondMin=b.getSeconds();if(this.hour<this._defaults.hourMin)this.hour=this._defaults.hourMin;if(this.minute<this._defaults.minuteMin)this.minute=this._defaults.minuteMin;if(this.second<this._defaults.secondMin)this.second=this._defaults.secondMin}else{this._defaults.hourMin=this.hourMinOriginal;this._defaults.minuteMin=this.minuteMinOriginal;this._defaults.secondMin=this.secondMinOriginal}}if(this._defaults.maxDateTime!==null&&e){var a=this._defaults.maxDateTime,g=new Date(a.getFullYear(),a.getMonth(),a.getDate(),0,0,0,0);if(this.hourMaxOriginal===null||this.minuteMaxOriginal===null||this.secondMaxOriginal===null){this.hourMaxOriginal=d.hourMax;this.minuteMaxOriginal=d.minuteMax;this.secondMaxOriginal=d.secondMax}if(g.getTime()==e.getTime()){this._defaults.hourMax=a.getHours();this._defaults.minuteMax=a.getMinutes();this._defaults.secondMax=a.getSeconds();if(this.hour>this._defaults.hourMax)this.hour=this._defaults.hourMax;if(this.minute>this._defaults.minuteMax)this.minute=this._defaults.minuteMax;if(this.second>this._defaults.secondMax)this.second=this._defaults.secondMax}else{this._defaults.hourMax=this.hourMaxOriginal;this._defaults.minuteMax=this.minuteMaxOriginal;this._defaults.secondMax=this.secondMaxOriginal}}if(f!==undefined&&f===true){this.hour_slider.slider("option",{min:this._defaults.hourMin,max:this._defaults.hourMax}).slider("value",this.hour);this.minute_slider.slider("option",{min:this._defaults.minuteMin,max:this._defaults.minuteMax}).slider("value",this.minute);this.second_slider.slider("option",{min:this._defaults.secondMin,max:this._defaults.secondMax}).slider("value",this.second)}},_onTimeChange:function(){var a=this.hour_slider?this.hour_slider.slider("value"):false,b=this.minute_slider?this.minute_slider.slider("value"):false,c=this.second_slider?this.second_slider.slider("value"):false;if(a!==false)a=parseInt(a,10);if(b!==false)b=parseInt(b,10);if(c!==false)c=parseInt(c,10);var e=a<12?"AM":"PM",d=a!=this.hour||b!=this.minute||c!=this.second||this.ampm.length>0&&this.ampm!=e;if(d){if(a!==false)this.hour=a;if(b!==false)this.minute=b;if(c!==false)this.second=c}if(this._defaults.ampm)this.ampm=e;this._formatTime();this.$timeObj&&this.$timeObj.text(this.formattedTime);this.timeDefined=true;d&&this._updateDateTime()},_formatTime:function(b,f,e){if(e==undefined)e=this._defaults.ampm;b=b||{hour:this.hour,minute:this.minute,second:this.second,ampm:this.ampm};var c=f||this._defaults.timeFormat.toString();if(e){var d=b.ampm=="AM"?b.hour:b.hour%12;d=Number(d)===0?12:d;c=c.toString().replace(/hh/g,(d<10?"0":"")+d).replace(/h/g,d).replace(/mm/g,(b.minute<10?"0":"")+b.minute).replace(/m/g,b.minute).replace(/ss/g,(b.second<10?"0":"")+b.second).replace(/s/g,b.second).replace(/TT/g,b.ampm.toUpperCase()).replace(/tt/g,b.ampm.toLowerCase()).replace(/T/g,b.ampm.charAt(0).toUpperCase()).replace(/t/g,b.ampm.charAt(0).toLowerCase())}else{c=c.toString().replace(/hh/g,(b.hour<10?"0":"")+b.hour).replace(/h/g,b.hour).replace(/mm/g,(b.minute<10?"0":"")+b.minute).replace(/m/g,b.minute).replace(/ss/g,(b.second<10?"0":"")+b.second).replace(/s/g,b.second);c=a.trim(c.replace(/t/gi,""))}if(arguments.length)return c;else this.formattedTime=c},_updateDateTime:function(b){b=this.inst||b,dt=new Date(b.selectedYear,b.selectedMonth,b.selectedDay),dateFmt=a.datepicker._get(b,"dateFormat"),formatCfg=a.datepicker._getFormatConfig(b),timeAvailable=dt!==null&&this.timeDefined;this.formattedDate=a.datepicker.formatDate(dateFmt,dt===null?new Date:dt,formatCfg);var c=this.formattedDate;if(b.lastVal!==undefined&&(b.lastVal.length>0&&this.$input.val().length===0))return;if(this._defaults.timeOnly===true)c=this.formattedTime;else if(this._defaults.timeOnly!==true&&(this._defaults.alwaysSetTime||timeAvailable))c+=this._defaults.separator+this.formattedTime;this.formattedDateTime=c;if(!this._defaults.showTimepicker)this.$input.val(this.formattedDate);else if(this.$altInput&&this._defaults.altFieldTimeOnly===true){this.$altInput.val(this.formattedTime);this.$input.val(this.formattedDate)}else if(this.$altInput){this.$altInput.val(c);this.$input.val(c)}else this.$input.val(c);this.$input.trigger("change")}});a.fn.extend({timepicker:function(b){b=b||{};var c=arguments;if(typeof b=="object")c[0]=a.extend(b,{timeOnly:true});return a(this).each(function(){a.fn.datetimepicker.apply(a(this),c)})},datetimepicker:function(b){b=b||{};var d=this,c=arguments;return typeof b=="string"?b=="getDate"?a.fn.datepicker.apply(a(this[0]),c):this.each(function(){var b=a(this);b.datepicker.apply(b,c)}):this.each(function(){var c=a(this);c.datepicker(a.timepicker._newInst(c,b)._defaults)})}});a.datepicker._base_selectDate=a.datepicker._selectDate;a.datepicker._selectDate=function(d,e){var b=this._getInst(a(d)[0]),c=this._get(b,"timepicker");if(c){c._limitMinMaxDateTime(b,true);b.inline=b.stay_open=true;this._base_selectDate(d,e+c._defaults.separator+c.formattedTime);b.inline=b.stay_open=false;this._notifyChange(b);this._updateDatepicker(b)}else this._base_selectDate(d,e)};a.datepicker._base_updateDatepicker=a.datepicker._updateDatepicker;a.datepicker._updateDatepicker=function(a){if(typeof a.stay_open!=="boolean"||a.stay_open===false){this._base_updateDatepicker(a);var b=this._get(a,"timepicker");b&&b._addTimePicker(a)}};a.datepicker._base_doKeyPress=a.datepicker._doKeyPress;a.datepicker._doKeyPress=function(b){var e=a.datepicker._getInst(b.target),c=a.datepicker._get(e,"timepicker");if(c)if(a.datepicker._get(e,"constrainInput")){var d=c._defaults.ampm,f=c._defaults.timeFormat.toString().replace(/[hms]/g,"").replace(/TT/g,d?"APM":"").replace(/T/g,d?"AP":"").replace(/tt/g,d?"apm":"").replace(/t/g,d?"ap":"")+" "+c._defaults.separator+a.datepicker._possibleChars(a.datepicker._get(e,"dateFormat")),g=String.fromCharCode(b.charCode===undefined?b.keyCode:b.charCode);return b.ctrlKey||(g<" "||!f||f.indexOf(g)>-1)}return a.datepicker._base_doKeyPress(b)};a.datepicker._base_doKeyUp=a.datepicker._doKeyUp;a.datepicker._doKeyUp=function(d){var b=a.datepicker._getInst(d.target),c=a.datepicker._get(b,"timepicker");if(c)if(c._defaults.timeOnly&&b.input.val()!=b.lastVal)try{a.datepicker._updateDatepicker(b)}catch(e){a.datepicker.log(e)}return a.datepicker._base_doKeyUp(d)};a.datepicker._base_gotoToday=a.datepicker._gotoToday;a.datepicker._gotoToday=function(b){this._base_gotoToday(b);this._setTime(this._getInst(a(b)[0]),new Date)};a.datepicker._disableTimepickerDatepicker=function(c){var b=this._getInst(c),a=this._get(b,"timepicker");if(a){a._defaults.showTimepicker=false;a._onTimeChange();a._updateDateTime(b)}};a.datepicker._enableTimepickerDatepicker=function(c){var b=this._getInst(c),a=this._get(b,"timepicker");if(a){a._defaults.showTimepicker=true;a._onTimeChange();a._updateDateTime(b)}};a.datepicker._setTime=function(g,c){var a=this._get(g,"timepicker");if(a){var b=a._defaults,f=c?c.getHours():b.hour,d=c?c.getMinutes():b.minute,e=c?c.getSeconds():b.second;if(f<b.hourMin||f>b.hourMax||(d<b.minuteMin||d>b.minuteMax)||(e<b.secondMin||e>b.secondMax)){f=b.hourMin;d=b.minuteMin;e=b.secondMin}if(a.hour_slider)a.hour_slider.slider("value",f);else a.hour=f;if(a.minute_slider)a.minute_slider.slider("value",d);else a.minute=d;if(a.second_slider)a.second_slider.slider("value",e);else a.second=e;a._onTimeChange();a._updateDateTime(g)}};a.datepicker._setTimeDatepicker=function(f,c,e){var d=this._getInst(f),b=this._get(d,"timepicker");if(b){this._setDateFromField(d);var a;if(c){if(typeof c=="string"){b._parseTime(c,e);a=new Date;a.setHours(b.hour,b.minute,b.second)}else a=new Date(c.getTime());if(a.toString()=="Invalid Date")a=undefined}this._setTime(d,a)}};a.datepicker._base_setDateDatepicker=a.datepicker._setDateDatepicker;a.datepicker._setDateDatepicker=function(b,a){var d=this._getInst(b),c=a instanceof Date?new Date(a.getTime()):a;this._updateDatepicker(d);this._base_setDateDatepicker.apply(this,arguments);this._setTimeDatepicker(b,c,true)};a.datepicker._base_getDateDatepicker=a.datepicker._getDateDatepicker;a.datepicker._getDateDatepicker=function(c,f){var e=this._getInst(c),b=this._get(e,"timepicker");if(b){this._setDateFromField(e,f);var d=this._getDate(e);d&&b._parseTime(a(c).val(),true)&&d.setHours(b.hour,b.minute,b.second);return d}return this._base_getDateDatepicker(c,f)};function c(d,b){a.extend(d,b);for(var c in b)if(b[c]===null||b[c]===undefined)d[c]=b[c];return d}a.timepicker=new b;a.timepicker.version="0.9.3"})(jQuery)
