123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706 |
- (function($) {
- $.fn.clockTimePicker = function(K) {
- var L = $.extend({
- afternoonHoursInOuterCircle: false,
- colors: {
- buttonTextColor: '#0797FF',
- clockFaceColor: '#EEEEEE',
- clockInnerCircleTextColor: '#888888',
- clockOuterCircleTextColor: '#000000',
- hoverCircleColor: '#DDDDDD',
- popupBackgroundColor: '#FFFFFF',
- popupHeaderBackgroundColor: '#0797FF',
- popupHeaderTextColor: '#FFFFFF',
- selectorColor: '#0797FF',
- selectorNumberColor: '#FFFFFF'
- },
- fonts: {
- fontFamily: 'Arial',
- clockOuterCircleFontSize: 14,
- clockInnerCircleFontSize: 12,
- buttonFontSize: 20
- },
- i18n: {
- okButton: 'OK',
- cancelButton: 'Cancel'
- },
- modeSwitchSpeed: 500,
- onChange: function(a, b) {},
- onClose: function() {},
- onModeSwitch: function() {},
- onOpen: function() {},
- popupWidthOnDesktop: 200,
- vibrate: true
- }, K);
- if (isMobile()) {
- var M = '.clock-timepicker input::selection { background:rgba(255,255,255,0.6); }' + '.clock-timepicker input::-moz-selection { background:rgba(255,255,255,0.6); }';
- var N = document.createElement('style');
- N.type = 'text/css';
- if (N.styleSheet) N.styleSheet.cssText = M;
- else N.appendChild(document.createTextNode(M));
- (document.head || document.getElementsByTagName('head')[0]).appendChild(N)
- }
- return this.each(function() {
- if (!('vibrate' in navigator)) L.vibrate = false;
- var j = $(this);
- j.val(formatTime(j.val()));
- var k = j.val();
- var l = j[0].onchange;
- j[0].onchange = '';
- var n = 'HOUR';
- var o = false;
- var p = false;
- var q = isMobile() ? $(document).width() - 80 : L.popupWidthOnDesktop;
- var r = q - (isMobile() ? 50 : 20);
- var t = parseInt(r / 2);
- var u = parseInt(r / 2);
- var v = parseInt(r / 2);
- var w = t - 16;
- var z = w - 29;
- j.wrap('<div class="clock-timepicker" style="display:inline-block; position:relative">');
- var A;
- if (isMobile()) {
- A = $('<div>');
- A.css('zIndex', 99998).css('display', 'none').css('position', 'fixed').css('top', '0px').css('left', '0px').css('width', '100%').css('height', '100%').css('backgroundColor', 'rgba(0,0,0,0.6)');
- A.on('touchmove', function(a) {
- a.preventDefault()
- });
- A.on('click', function(a) {
- a.preventDefault();
- a.stopImmediatePropagation();
- if (n == 'HOUR') selectHourOnInputElement();
- else selectMinuteOnInputElement();
- return false
- });
- $('body').append(A)
- }
- var B = $('<div>');
- B.css('display', 'none').css('zIndex', 99999).css('cursor', 'default').css('position', 'absolute').css('width', q + 'px').css('backgroundColor', L.colors.popupBackgroundColor).css('box-shadow', '0 4px 20px 0px rgba(0, 0, 0, 0.14)').css('border-radius', '5px');
- if (isMobile()) {
- B.css('position', 'fixed').css('left', '40px').css('top', '40px')
- }
- if (isMobile()) {
- B.on('touchmove', function(a) {
- a.preventDefault()
- });
- B.on('click', function(a) {
- a.stopImmediatePropagation();
- if (n == 'HOUR') selectHourOnInputElement();
- else selectMinuteOnInputElement();
- return false
- })
- }
- j.parent().append(B);
- $(window).on('click', function(a) {
- if (!isMobile() && B.css('display') != 'none' && !($(a.target)[0] == C[0] || $.contains(C.parent()[0], $(a.target)[0]))) {
- hideTimePicker()
- }
- });
- var C = j;
- if (isMobile()) {
- C = $('<input type="text">');
- C.css('display', 'inline-block').css('width', '100%').css('border', '0px').css('outline', '0px').css('fontSize', isMobile() ? '40px' : '20px').css('padding', '10px 0px').css('textAlign', 'center').css('color', L.colors.popupHeaderTextColor).css('backgroundColor', L.colors.popupHeaderBackgroundColor);
- C.prop('readonly', true);
- B.append(C)
- }
- C.on('dragenter', function(a) {
- a.stopImmediatePropagation();
- a.preventDefault();
- return false
- });
- C.on('dragover', function(a) {
- a.stopImmediatePropagation();
- a.preventDefault();
- return false
- });
- C.on('drop', function(a) {
- a.stopImmediatePropagation();
- a.preventDefault();
- return false
- });
- C.on('keyup', function(a) {
- var b = formatTime(C.val());
- if ((a.keyCode >= 48 && a.keyCode <= 57) && (C[0].selectionStart == 2 || (new RegExp('^[0-9]{2}:$').test(C.val())) || C.val().length == 5)) {
- C.val(b);
- switchToMinuteMode();
- selectMinuteOnInputElement()
- } else if ((a.keyCode == 8 || a.keyCode == 46) && C.val() && C.val()[C.val().length - 1] == ':') {
- b = formatTime(C.val() + '00');
- C.val(b);
- selectMinuteOnInputElement()
- } else if ((a.keyCode == 8 || a.keyCode == 46) && C.val() && C.val()[0] == ':') {
- b = formatTime('00' + C.val());
- C.val(b);
- selectHourOnInputElement()
- }
- if (k != b) {
- repaintClock();
- L.onChange(b, k);
- if (l) l(a)
- }
- });
- C.on('keydown', function(a) {
- k = formatTime(C.val());
- if (a.keyCode >= 48 && a.keyCode <= 57) {
- if (C.val().length == 5 && C[0].selectionStart == 5 && a.keyCode != 8) {
- a.preventDefault();
- return false
- }
- } else if (a.keyCode == 9) {} else if (a.keyCode == 13) {
- hideTimePicker();
- C.trigger('blur')
- } else if (a.keyCode == 27) {
- hideTimePicker();
- C.trigger('blur')
- } else if (a.keyCode == 8 || a.keyCode == 46) {
- if (C[0].selectionStart == 0 && C[0].selectionEnd == 2) {
- a.preventDefault();
- if (C.val().substring(0, 2) == '00') {
- C.val('');
- switchToHourMode()
- } else {
- C.val('00:' + C.val().substring(3));
- selectHourOnInputElement()
- }
- } else if (C[0].selectionStart == 3 && C[0].selectionEnd == 5) {
- a.preventDefault();
- if (C.val().substring(3) == '00') {
- if (C.val() == '00:00') C.val('');
- switchToHourMode();
- selectHourOnInputElement()
- } else {
- C.val(C.val().substring(0, 2) + ':00');
- selectMinuteOnInputElement()
- }
- }
- } else if ((a.keyCode == 36 || a.keyCode == 37) && C.val() != '') {
- C.val(formatTime(C.val()));
- selectHourOnInputElement();
- switchToHourMode()
- } else if ((a.keyCode == 35 || a.keyCode == 39) && C.val() != '') {
- C.val(formatTime(C.val()));
- selectMinuteOnInputElement();
- switchToMinuteMode()
- } else if (a.keyCode == 190) {
- a.preventDefault();
- if (C.val().length == 0) C.val('0');
- C.val(formatTime(C.val()));
- selectMinuteOnInputElement();
- switchToMinuteMode()
- } else if (a.keyCode == 38 || a.keyCode == 40) {
- a.preventDefault();
- if (k == '') return;
- (new RegExp('^([0-9]{1,2})(:([0-9]{1,2}))?$')).test(C.val());
- var h = parseInt(RegExp.$1);
- var m = RegExp.$3 ? parseInt(RegExp.$3) : 0;
- if (n == 'HOUR') {
- if (a.keyCode == 38) h -= 1;
- else h += 1;
- if (h == -1) h = 23;
- if (h == 24) h = 0
- } else {
- if (a.keyCode == 38) m -= 1;
- else m += 1;
- if (m == -1) m = 59;
- if (m == 60) m = 0
- }
- C.val((h < 10 ? '0' : '') + h + ':' + (m < 10 ? '0' : '') + m);
- repaintClock();
- if (n == 'HOUR') selectHourOnInputElement();
- else selectMinuteOnInputElement()
- } else {
- a.preventDefault()
- }
- });
- j.on('mousewheel', function(a) {
- processMouseWheelEvent(a)
- });
- j.on('blur', function(a) {
- setTimeout(function() {
- if ($(document.activeElement)[0] != $('body')[0] && !$.contains(j.parent()[0], $(document.activeElement)[0])) {
- hideTimePicker()
- }
- }, 1)
- });
- j.on('focus', function(a) {
- if (B.css('display') == 'none') {
- p = true;
- setTimeout(function() {
- p = false
- }, 500);
- showTimePicker();
- selectHourOnInputElement()
- }
- });
- j.on('change', function(a) {
- if (B.css('display') == 'none') return;
- repaintClock();
- if (n == 'HOUR') selectHourOnInputElement();
- else selectMinuteOnInputElement()
- });
- C.on('click', function(a) {
- processClick(a)
- });
- C.on('contextmenu', function(a) {
- a.stopImmediatePropagation();
- a.preventDefault();
- processClick(a);
- return false
- });
- var D = $('<div>');
- D.css('position', 'relative').css('width', r + 'px').css('height', r + 'px').css('margin', '10px ' + (isMobile() ? 25 : 10) + 'px');
- B.append(D);
- var E = $('<canvas>');
- E.css('cursor', 'default').css('position', 'absolute').css('top', '0px').css('left', '0px');
- E.attr('width', r);
- E.attr('height', r);
- registerDraggingEventsOnCanvas(E);
- D.append(E);
- var F = $('<canvas>');
- F.css('cursor', 'default').css('position', 'absolute').css('top', '0px').css('left', '0px').css('display', 'none');
- F.attr('width', r);
- F.attr('height', r);
- registerDraggingEventsOnCanvas(F);
- D.append(F);
- if (isMobile()) {
- var G = $('<div>');
- G.css('text-align', 'right').css('padding', '15px 30px');
- G.html('<div id="log"></div>');
- var H = '<a style="text-decoration:none; color:' + L.colors.buttonTextColor + '; font-family:Arial; font-size:' + L.fonts.buttonFontSize + 'px; padding-left:30px">';
- var I = $(H);
- I.html(L.i18n.cancelButton);
- I.on('click', function() {
- hideTimePicker()
- });
- G.append(I);
- var J = $(H);
- J.html(L.i18n.okButton);
- J.on('click', function() {
- if (isMobile()) j.val(C.val());
- if (L.vibrate) navigator.vibrate(10);
- hideTimePicker()
- });
- G.append(J);
- B.append(G)
- }
- function registerDraggingEventsOnCanvas(b) {
- if (!isMobile()) {
- b.on('mousedown', function(a) {
- var x = a.pageX - $(this).offset().left;
- var y = a.pageY - $(this).offset().top;
- processTimeSelection(x, y);
- o = true
- });
- b.on('mouseup', function(a) {
- o = false;
- var x = a.pageX - $(this).offset().left;
- var y = a.pageY - $(this).offset().top;
- if (!processTimeSelection(x, y, true)) return false;
- if (n == 'MINUTE') {
- hideTimePicker()
- } else {
- switchToMinuteMode();
- selectMinuteOnInputElement()
- }
- });
- b.on('mousemove', function(a) {
- var x = a.pageX - $(this).offset().left;
- var y = a.pageY - $(this).offset().top;
- processTimeSelection(x, y)
- });
- b.on('mouseleave', function(a) {
- if (n == 'HOUR') repaintClockHourCanvas();
- else repaintClockMinuteCanvas()
- });
- b.on('mousewheel', function(a) {
- processMouseWheelEvent(a)
- })
- } else {
- b.on('touchstart', function(a) {
- a.preventDefault();
- var x = a.originalEvent.touches[0].pageX - $(this).offset().left;
- var y = a.originalEvent.touches[0].pageY - $(this).offset().top;
- processTimeSelection(x, y);
- o = true
- });
- b.on('touchend', function(a) {
- a.preventDefault();
- o = false;
- switchToMinuteMode();
- selectMinuteOnInputElement()
- });
- b.on('touchmove', function(a) {
- a.preventDefault();
- if (o) {
- var x = a.originalEvent.touches[0].pageX - $(this).offset().left;
- var y = a.originalEvent.touches[0].pageY - $(this).offset().top;
- processTimeSelection(x, y)
- }
- })
- }
- }
- function processClick(a) {
- if (p) return;
- if (C[0].selectionStart >= 3) {
- if (n == 'HOUR' && L.vibrate) navigator.vibrate(10);
- switchToMinuteMode();
- selectMinuteOnInputElement()
- } else {
- if (n == 'MINUTE' && L.vibrate) navigator.vibrate(10);
- switchToHourMode();
- selectHourOnInputElement()
- }
- }
- function processMouseWheelEvent(a) {
- if (!((C[0].selectionStart == 0 && C[0].selectionEnd == 2) || (C[0].selectionStart == 3 && C[0].selectionEnd == 5))) return;
- var e = window.event || a;
- var b = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));
- (new RegExp('^([0-9]{1,2})(:([0-9]{1,2}))?$')).test(C.val());
- var h = parseInt(RegExp.$1);
- var m = RegExp.$3 ? parseInt(RegExp.$3) : 0;
- if (n == 'HOUR') {
- h += b;
- if (h == -1) h = 23;
- if (h == 24) h = 0
- } else {
- m += b;
- if (m == -1) m = 59;
- if (m == 60) m = 0
- }
- C.val((h < 10 ? '0' : '') + h + ':' + (m < 10 ? '0' : '') + m);
- repaintClock();
- if (n == 'HOUR') selectHourOnInputElement();
- else selectMinuteOnInputElement()
- }
- function processTimeSelection(x, y, a) {
- var b = (360 * Math.atan((y - v) / (x - u)) / (2 * Math.PI)) + 90;
- var c = Math.sqrt(Math.pow(Math.abs(x - u), 2) + Math.pow(Math.abs(y - v), 2));
- var d = 0;
- var e = 0;
- if ((new RegExp('^([0-9]{2}):([0-9]{2})$')).test(C.val())) {
- d = parseInt(RegExp.$1);
- e = parseInt(RegExp.$2)
- }
- if (n == 'HOUR') {
- b = Math.round(b / 30);
- var h = -1;
- if (c < t + 10 && c > t - 28) {
- if (x - u >= 0) {
- if (b == 0) h = 12;
- else h = b
- } else if (x - u < 0) {
- h = b + 6
- }
- } else if (c < t - 28 && c > t - 65) {
- if (x - u >= 0) {
- if (b != 0) h = b + 12;
- else h = 0
- } else if (x - u < 0) {
- h = b + 18;
- if (h == 24) h = 0
- }
- }
- if (h > -1) {
- var f = (h < 10 ? '0' : '') + h + ':' + (e < 10 ? '0' : '') + e;
- if (o || a) {
- var g = C.val();
- if (f != g && L.vibrate) navigator.vibrate(10);
- C.val(f);
- if (f != g) {
- setTimeout(function() {
- L.onChange(f, g);
- if (l) l(event)
- }, 10)
- }
- }
- repaintClockHourCanvas(h == 0 ? 24 : h);
- return true
- } else {
- repaintClockHourCanvas();
- return false
- }
- } else if (n == 'MINUTE') {
- b = Math.round(b / 6);
- var m = -1;
- if (c < t + 10 && c > t - 40) {
- if (x - u >= 0) {
- m = b
- } else if (x - u < 0) {
- m = b + 30;
- if (m == 60) m = 0
- }
- }
- if (m > -1) {
- var f = (d < 10 ? '0' : '') + d + ':' + (m < 10 ? '0' : '') + m;
- if (o || a) {
- var g = C.val();
- if (f != g && L.vibrate) navigator.vibrate(10);
- C.val(f);
- if (f != g) {
- setTimeout(function() {
- L.onChange(f, g);
- if (l) l(event)
- }, 10)
- }
- }
- repaintClockMinuteCanvas(m == 0 ? 60 : m);
- return true
- } else {
- repaintClockMinuteCanvas();
- return false
- }
- }
- }
- function repaintClock() {
- if (n == 'HOUR') {
- repaintClockHourCanvas()
- } else {
- repaintClockMinuteCanvas()
- }
- }
- function repaintClockHourCanvas(a) {
- var b = E.get(0).getContext('2d');
- (new RegExp('^([0-9]{1,2}):([0-9]{1,2})$')).test(C.val());
- var c = parseInt(RegExp.$1);
- if (c == 0) c = 24;
- if (!C.val()) c = -1;
- b.clearRect(0, 0, r, r);
- b.beginPath();
- b.arc(u, v, t, 0, 2 * Math.PI, false);
- b.fillStyle = L.colors.clockFaceColor;
- b.fill();
- if (!isMobile() && a) {
- b.beginPath();
- b.arc(u + Math.cos(Math.PI / 6 * ((a % 12) - 3)) * (a > 12 ? (L.afternoonHoursInOuterCircle ? w : z) : (L.afternoonHoursInOuterCircle ? z : w)), v + Math.sin(Math.PI / 6 * ((a % 12) - 3)) * (a > 12 ? (L.afternoonHoursInOuterCircle ? w : z) : (L.afternoonHoursInOuterCircle ? z : w)), 15, 0, 2 * Math.PI, false);
- b.fillStyle = L.colors.hoverCircleColor;
- b.fill()
- }
- b.beginPath();
- b.arc(u, v, 3, 0, 2 * Math.PI, false);
- b.fillStyle = L.colors.selectorColor;
- b.fill();
- if (c > -1) {
- b.beginPath();
- b.moveTo(u, v);
- b.lineTo(u + Math.cos(Math.PI / 6 * ((c % 12) - 3)) * (c > 12 ? (L.afternoonHoursInOuterCircle ? w : z) : (L.afternoonHoursInOuterCircle ? z : w)), v + Math.sin(Math.PI / 6 * ((c % 12) - 3)) * (c > 12 ? (L.afternoonHoursInOuterCircle ? w : z) : (L.afternoonHoursInOuterCircle ? z : w)));
- b.lineWidth = 1;
- b.strokeStyle = L.colors.selectorColor;
- b.stroke();
- b.beginPath();
- b.arc(u + Math.cos(Math.PI / 6 * ((c % 12) - 3)) * (c > 12 ? (L.afternoonHoursInOuterCircle ? w : z) : (L.afternoonHoursInOuterCircle ? z : w)), v + Math.sin(Math.PI / 6 * ((c % 12) - 3)) * (c > 12 ? (L.afternoonHoursInOuterCircle ? w : z) : (L.afternoonHoursInOuterCircle ? z : w)), 15, 0, 2 * Math.PI, false);
- b.fillStyle = L.colors.selectorColor;
- b.fill()
- }
- b.font = L.fonts.clockOuterCircleFontSize + 'px ' + L.fonts.fontFamily;
- for (i = 1; i <= 12; i++) {
- var d = Math.PI / 6 * (i - 3);
- var s = i;
- if (L.afternoonHoursInOuterCircle) {
- s = i + 12;
- if (c == i + 12) b.fillStyle = L.colors.selectorNumberColor;
- else b.fillStyle = L.colors.clockInnerCircleTextColor;
- if (s == 24) s = '00'
- } else {
- if (c == i) b.fillStyle = L.colors.selectorNumberColor;
- else b.fillStyle = L.colors.clockOuterCircleTextColor
- }
- b.fillText(s, u + Math.cos(d) * w - (b.measureText(s).width / 2), v + Math.sin(d) * w + (L.fonts.clockOuterCircleFontSize / 3))
- }
- b.font = L.fonts.clockInnerCircleFontSize + 'px ' + L.fonts.fontFamily;
- for (i = 1; i <= 12; i++) {
- var d = Math.PI / 6 * (i - 3);
- var s = i;
- if (!L.afternoonHoursInOuterCircle) {
- s = i + 12;
- if (c == i + 12) b.fillStyle = L.colors.selectorNumberColor;
- else b.fillStyle = L.colors.clockInnerCircleTextColor;
- if (s == 24) s = '00'
- } else {
- if (c == i) b.fillStyle = L.colors.selectorNumberColor;
- else b.fillStyle = L.colors.clockOuterCircleTextColor
- }
- b.fillText(s, u + Math.cos(d) * z - (b.measureText(s).width / 2), v + Math.sin(d) * z + (L.fonts.clockInnerCircleFontSize / 3))
- }
- }
- function repaintClockMinuteCanvas(a) {
- var b = F.get(0).getContext('2d');
- (new RegExp('^([0-9]{1,2}):([0-9]{1,2})$')).test(C.val());
- var c = parseInt(RegExp.$2);
- if (!C.val()) c = -1;
- b.clearRect(0, 0, r, r);
- b.beginPath();
- b.arc(u, v, t, 0, 2 * Math.PI, false);
- b.fillStyle = L.colors.clockFaceColor;
- b.fill();
- if (!isMobile() && a) {
- if (a == 60) a = 0;
- b.beginPath();
- b.arc(u + Math.cos(Math.PI / 6 * ((a / 5) - 3)) * w, v + Math.sin(Math.PI / 6 * ((a / 5) - 3)) * w, 15, 0, 2 * Math.PI, false);
- b.fillStyle = L.colors.hoverCircleColor;
- b.fill()
- }
- b.beginPath();
- b.arc(u, v, 3, 0, 2 * Math.PI, false);
- b.fillStyle = L.colors.selectorColor;
- b.fill();
- if (c > -1) {
- b.beginPath();
- b.moveTo(u, v);
- b.lineTo(u + Math.cos(Math.PI / 6 * ((c / 5) - 3)) * w, v + Math.sin(Math.PI / 6 * ((c / 5) - 3)) * w);
- b.lineWidth = 1;
- b.strokeStyle = L.colors.selectorColor;
- b.stroke();
- b.beginPath();
- b.arc(u + Math.cos(Math.PI / 6 * ((c / 5) - 3)) * w, v + Math.sin(Math.PI / 6 * ((c / 5) - 3)) * w, 15, 0, 2 * Math.PI, false);
- b.fillStyle = L.colors.selectorColor;
- b.fill()
- }
- b.font = L.fonts.clockOuterCircleFontSize + 'px ' + L.fonts.fontFamily;
- for (i = 1; i <= 12; i++) {
- var d = Math.PI / 6 * (i - 3);
- if (c == i * 5 || (c == 0 && i == 12)) b.fillStyle = L.colors.selectorNumberColor;
- else b.fillStyle = L.colors.clockOuterCircleTextColor;
- var s = i * 5 == 5 ? '05' : i * 5;
- if (s == 60) s = '00';
- b.fillText(s, u + Math.cos(d) * w - (b.measureText(s).width / 2), v + Math.sin(d) * w + (L.fonts.clockOuterCircleFontSize / 3))
- }
- if (c > -1 && c % 5 != 0) {
- b.beginPath();
- b.arc(u + Math.cos(Math.PI / 6 * ((c / 5) - 3)) * w, v + Math.sin(Math.PI / 6 * ((c / 5) - 3)) * w, 2, 0, 2 * Math.PI, false);
- b.fillStyle = 'white';
- b.fill()
- }
- }
- function showTimePicker() {
- C.val(j.val());
- repaintClockHourCanvas();
- switchToHourMode(true);
- B.css('display', 'block');
- if (isMobile()) {
- A.stop().css('opacity', 0).css('display', 'block').animate({
- opacity: 1
- }, 300)
- } else {
- if (B.outerWidth() > j.outerWidth()) {
- var a = parseInt((B.outerWidth() - j.outerWidth()) / 2);
- if (a < j.offset().left) {
- B.css('left', -a + 'px')
- }
- }
- var b = j.offset().top - $(window).scrollTop();
- var c = window.innerHeight - b - j.outerHeight();
- if (c < B.outerHeight() && j.offset().top > B.outerHeight()) {
- if (b < B.outerHeight()) {
- if (b > c + j.outerHeight()) {
- B.css('top', -B.outerHeight() + 'px')
- } else {
- B.css('top', j.outerHeight() + 'px')
- }
- } else {
- B.css('top', -B.outerHeight() + 'px')
- }
- } else {
- B.css('top', j.outerHeight() + 'px')
- }
- }
- L.onOpen()
- }
- function hideTimePicker() {
- B.css('display', 'none');
- if (isMobile()) {
- A.stop().animate({
- opacity: 0
- }, 300, function() {
- A.css('display', 'none')
- })
- } else {
- j.val(formatTime(j.val()))
- }
- L.onClose()
- }
- function switchToHourMode(a) {
- if (n == 'HOUR') return;
- repaintClockHourCanvas();
- if (a) {
- F.css('display', 'none')
- } else {
- F.css('zIndex', 2).stop().animate({
- opacity: 0,
- zoom: '80%',
- left: '10%',
- top: '10%'
- }, L.modeSwitchSpeed, function() {
- F.css('display', 'none')
- })
- }
- E.stop().css('zoom', '100%').css('left', '0px').css('top', '0px').css('display', 'block').css('opacity', 1).css('zIndex', 1);
- n = 'HOUR';
- L.onModeSwitch(n)
- }
- function switchToMinuteMode() {
- if (n == 'MINUTE') return;
- repaintClockMinuteCanvas();
- F.stop().css('display', 'block').css('zoom', '80%').css('left', '10%').css('top', '10%').css('opacity', 0).css('zIndex', 1).animate({
- opacity: 1,
- zoom: '100%',
- left: '0px',
- top: '0px'
- });
- n = 'MINUTE';
- L.onModeSwitch(n)
- }
- function selectHourOnInputElement() {
- C.focus();
- setTimeout(function() {
- C.get(0).setSelectionRange(0, 2)
- }, 1)
- }
- function selectMinuteOnInputElement() {
- C.focus();
- setTimeout(function() {
- C.get(0).setSelectionRange(3, 5)
- }, 1)
- }
- function formatTime(a) {
- if (a == '') return a;
- if ((new RegExp('^([0-9]{1,2})(:([0-9]{1,2}))?')).test(a)) {
- var b = parseInt(RegExp.$1);
- var c = parseInt(RegExp.$3);
- if (b >= 24) b = b % 24;
- if (c >= 60) c = c % 60;
- a = (b < 10 ? '0' : '') + b + ':' + (RegExp.$3 ? (c < 10 ? '0' : '') + c : '00')
- } else if ((new RegExp('^:([0-9]{1,2})')).test(a)) {
- var c = parseInt(RegExp.$1);
- if (c >= 60) c = c % 60;
- a = '00:' + (c < 10 ? '0' : '') + c
- } else {
- a = '00:00'
- }
- return a
- }
- });
- function isMobile() {
- var b = false;
- (function(a) {
- if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) b = true
- })(navigator.userAgent || navigator.vendor || window.opera);
- return b
- }
- }
- }(jQuery));
|