(function(c){function n(a,b,g){a.value=c(b).text();c(a).change();c.browser.msie||a.focus();g.hide()}function m(a,b){var g=a.getHours(),j=b.show24Hours?g:(g+11)%12+1;a=a.getMinutes();return o(j)+b.separator+o(a)+(b.show24Hours?"":g<12?" AM":" PM")}function o(a){return(a<10?"0":"")+a}function p(a,b){if(a){b=a.split(b.separator);a=parseFloat(b[0]);b=parseFloat(b[1]);return l(new Date(0,0,0,a,b,0))}return null}function l(a){a.setFullYear(2001);a.setMonth(0);a.setDate(0);return a}c.fn.timePicker=function(a){var b=
c.extend({},c.fn.timePicker.defaults,a);return this.each(function(){c.timePicker(this,b)})};c.timePicker=function(a,b){a=c(a)[0];return a.timePicker=new jQuery._timePicker(a,b)};c._timePicker=function(a,b){var g=false,j=l(b.startTime),q=l(b.endTime);c(a).attr("autocomplete","OFF");for(var h=[],i=new Date(j);i<=q;){h[h.length]=m(i,b);i=new Date(i.setMinutes(i.getMinutes()+b.step))}var f=c('<div class="time-picker'+(b.show24Hours?"":" time-picker-12hours")+'"></div>'),k=c("<ul></ul>");for(i=0;i<h.length;i++)k.append("<li>"+
h[i]+"</li>");f.append(k);h=c(a).offset();f.appendTo("body").css({top:h.top,left:h.left}).hide();c("li",k).unbind().mouseover(function(){c("li.selected",f).removeClass("selected");c(this).addClass("selected")}).mousedown(function(){g=true}).click(function(){n(a,this,f,b);g=false});h=function(){f.show();f.mouseover(function(){g=true}).mouseout(function(){g=false});c("li",f).removeClass("selected");var d=this.value?p(this.value,b):j,e=j.getHours()*60+j.getMinutes();d=d.getHours()*60+d.getMinutes()-
e;d=Math.round(d/b.step);e=l(new Date(2001,0,0,0,d*b.step+e,0));e=j<e&&e<q?e:j;e=c("li:contains("+m(e,b)+")",f);if(e.length){e.addClass("selected");f[0].scrollTop=e[0].offsetTop}};c(a).unbind().focus(h).click(h).blur(function(){!g&&f[0].parentNode&&f.hide()}).keypress(function(d){switch(d.keyCode){case 38:case 63232:d=c("li.selected",k);var e=d.prev().addClass("selected")[0];if(e){d.removeClass("selected");f[0].scrollTop=e.offsetTop}return false;case 40:case 63233:d=c("li.selected",k);if(e=d.length?
d.next().addClass("selected")[0]:c("li:first").addClass("selected")[0]){d.removeClass("selected");f[0].scrollTop=e.offsetTop}return false;case 13:if(!f.is(":hidden")){d=c("li.selected",k)[0];n(a,d,f,b);return false}break}});this.getTime=function(){return p(a.value,b)};this.setTime=function(d){a.value=m(l(d),b);c(a).change()}};c.fn.timePicker.defaults={step:30,startTime:new Date(0,0,0,0,0,0),endTime:new Date(0,0,0,23,30,0),separator:":",show24Hours:true}})(jQuery);
