You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1245 lines
48 KiB

jQuery.easing._dd_easing = function(x, t, b, c, d) {
return -c * ((t = t / d - 1) * t * t * t - 1) + b;
};
(function($) {
$.fn.dateDropper = function(options) {
return $(this).each(function() {
if ($(this).is('input') && $(this).attr('type') == "text") {
var
t_y_cur = new Date().getFullYear(),
t_d_cur = new Date().getDate(),
t_m_cur = new Date().getMonth();
var
_dd_m,
_dd_d,
_dd_y,
_dd_sub_y;
var
_dd_id = $('.dd-w').length;
var _structure = '<div class="dd-w dd-init" id="dd-w-' + _dd_id + '"><div class="dd-o"></div><div class="dd-c"><div class="dd-w-c"><div class="dd-b dd-m"><div class="dd-ul"><a class="dd-n dd-n-left"><i class="dd-icon-left" ></i></a><a class="dd-n dd-n-right"><i class="dd-icon-right" ></i></a><ul></ul></div></div><div class="dd-b dd-d"><div class="dd-ul"><a class="dd-n dd-n-left"><i class="dd-icon-left" ></i></a><a class="dd-n dd-n-right"><i class="dd-icon-right" ></i></a><ul></ul></div></div><div class="dd-b dd-y"><div class="dd-ul"><a class="dd-n dd-n-left"><i class="dd-icon-left" ></i></a><a class="dd-n dd-n-right"><i class="dd-icon-right" ></i></a><ul></ul></div></div><div class="dd-s-b dd-s-b-m dd-trans"><div class="dd-s-b-ul"><ul></ul></div></div><div class="dd-s-b dd-s-b-d dd-trans"><div class="dd-s-b-ul"><ul></ul></div></div><div class="dd-s-b dd-s-b-y dd-trans"><div class="dd-s-b-ul"><ul></ul></div></div><div class="dd-s-b dd-s-b-s-y dd-trans"><div class="dd-s-b-ul"><ul></ul></div></div><div class="dd-s-b-s"><i class="dd-icon-close" ></i></div><div class="dd-b dd-sub-y"><div class="dd-ul"><a class="dd-n dd-n-left"><i class="dd-icon-left" ></i></a><a class="dd-n dd-n-right"><i class="dd-icon-right" ></i></a><ul></ul></div></div><div class="dd-s"><a><i class="dd-icon-check" ></i></a></div></div></div></div>';
$('body').append(_structure);
var
_dd_input = $(this),
_dd = $('#dd-w-' + _dd_id),
_dd_isB = function(y) {
return !((y % 4) || (!(y % 100) && (y % 400)))
},
_dd_0 = function(n) {
return n < 10 ? '0' + n : n
},
_dd_settings = $.extend({
animate: true,
init_animation: "fadein",
format: "m/d/Y",
lang: "en",
lock: false,
maxYear: t_y_cur,
minYear: 1970,
yearsRange: 10,
//CSS PRIOPRIETIES//
dropPrimaryColor: "#01CEFF",
dropTextColor: "#333333",
dropBackgroundColor: "#FFFFFF",
dropBorder: "1px solid #08C",
dropBorderRadius: 8,
dropShadow: "0 0 10px 0 rgba(0, 136, 204, 0.45)",
dropWidth: 124,
dropTextWeight: 'bold'
}, options),
_dd_event = null,
_dd_init_state = false,
_dd_buffer = false;
var _dd_color = function (col, amt) {
var usePound = false;
if (col[0] == "#") {
col = col.slice(1);
usePound = true;
}
var num = parseInt(col,16);
var r = (num >> 16) + amt;
if (r > 255) r = 255;
else if (r < 0) r = 0;
var b = ((num >> 8) & 0x00FF) + amt;
if (b > 255) b = 255;
else if (b < 0) b = 0;
var g = (num & 0x0000FF) + amt;
if (g > 255) g = 255;
else if (g < 0) g = 0;
return (usePound?"#":"") + (g | (b << 8) | (r << 16)).toString(16);
};
var _dd_c_invert = function (hexTripletColor) {
var color = hexTripletColor;
color = color.substring(1); // remove #
color = parseInt(color, 16); // convert to integer
color = 0xFFFFFF ^ color; // invert three bytes
color = color.toString(16); // convert to hex
color = ("000000" + color).slice(-6); // pad with leading zeros
color = "#" + color; // prepend #
return color;
}
$('<style>#dd-w-' + _dd_id + ' { font-weight: ' + _dd_settings.dropTextWeight + '; } #dd-w-' + _dd_id + ' .dd-w-c,#dd-w-' + _dd_id + ' .dd-ul li,#dd-w-' + _dd_id + ' .dd-s-b-ul ul { width:' + _dd_settings.dropWidth + 'px; } #dd-w-' + _dd_id + ' .dd-w-c{color:' + _dd_settings.dropTextColor + ';background:' + _dd_settings.dropBackgroundColor + ';border:' + _dd_settings.dropBorder + ';box-shadow:' + _dd_settings.dropShadow + ';border-radius:' + _dd_settings.dropBorderRadius + 'px}#dd-w-' + _dd_id + ' .dd-w-c,#dd-w-' + _dd_id + ' .dd-s-b{background:' + _dd_settings.dropBackgroundColor + '}#dd-w-' + _dd_id + ' .dd-sun,#dd-w-' + _dd_id + ' .dd-s-b-ul li.dd-on{color:' + _dd_settings.dropPrimaryColor + '}#dd-w-' + _dd_id + ' .dd-c .dd-s,#dd-w-' + _dd_id + ' .dd-s-b-s,#dd-w-' + _dd_id + ' .dd-s-b-sub-y,#dd-w-' + _dd_id + ' .dd-sub-y{background:' + _dd_settings.dropPrimaryColor + ';color:' + _dd_settings.dropBackgroundColor + '}#dd-w-' + _dd_id + ' .dd-c .dd-s a,#dd-w-' + _dd_id + ' .dd-c .dd-s a:hover{color:' + _dd_settings.dropBackgroundColor + '}#dd-w-' + _dd_id + ' .dd-c:after{border-left:' + _dd_settings.dropBorder + ';border-top:' + _dd_settings.dropBorder + '}#dd-w-' + _dd_id + '.dd-bottom .dd-c:after{background:' + _dd_settings.dropBackgroundColor + '}#dd-w-' + _dd_id + '.dd-top .dd-c:after{background:' + _dd_settings.dropPrimaryColor + '}#dd-w-' + _dd_id + ' .dd-n,#dd-w-' + _dd_id + ' .dd-sun{color:' + _dd_settings.dropPrimaryColor + '}#dd-w-' + _dd_id + ' .dd-sub-y .dd-n{color:' + _dd_settings.dropBackgroundColor + '} #dd-w-' + _dd_id + ' .dd-c .dd-s:hover,#dd-w-' + _dd_id + ' .dd-s-b-s:hover { background:' + _dd_color(_dd_settings.dropPrimaryColor,-20) + '; }</style>').appendTo('head');
switch (_dd_settings.lang) {
//Arabic
case 'ar':
var mn = [
"جانفي",
"فيفري",
"مارس",
"أفريل",
"ماي",
"جوان",
"جويلية",
"أوت",
"سبتمبر",
"أكتوبر",
"نوفمبر",
"ديسمبر"
];
var dn = [
'الأحد',
'الإثنين',
'الثلثاء',
'الأربعاء',
'الخميس',
'الجمعة',
'السبت'
];
break;
//italian
case 'it':
var mn = [
"Gennaio",
"Febbraio",
"Marzo",
"Aprile",
"Maggio",
"Giugno",
"Luglio",
"Agosto",
"Settembre",
"Ottobre",
"Novembre",
"Dicembre"
];
var dn = [
'Domenica',
'Lunedì',
'Martedì',
'Mercoledì',
'Giovedì',
'Venerdì',
'Sabato'
];
break;
//hungarian
case 'hu':
var mn = [
"január",
"február",
"március",
"április",
"május",
"június",
"július",
"augusztus",
"szeptember",
"október",
"november",
"december"
];
var dn = [
'vasárnap',
'hétfő',
'kedd',
'szerda',
'csütörtök',
'péntek',
'szombat'
];
break;
//greek
case 'gr':
var mn = [
"Ιανουάριος",
"Φεβρουάριος",
"Μάρτιος",
"Απρίλιος",
"Μάιος",
"Ιούνιος",
"Ιούλιος",
"Αύγουστος",
"Σεπτέμβριος",
"Οκτώβριος",
"Νοέμβριος",
"Δεκέμβριος"
];
var dn = [
'Κυριακή',
'Δευτέρα',
'Τρίτη',
'Τετάρτη',
'Πέμπτη',
'Παρασκευή',
'Σάββατο'
];
break;
//espanol
case 'es':
var mn = [
"Enero",
"Febrero",
"Marzo",
"Abril",
"Mayo",
"Junio",
"Julio",
"Agosto",
"Septiembre",
"Octubre",
"Noviembre",
"Diciembre"
];
var dn = [
'Domingo',
'Lunes',
'Martes',
'Miércoles',
'Jueves',
'Viernes',
'Sábado'
];
break;
//dansk
case 'da':
var mn = [
"januar",
"februar",
"marts",
"april",
"maj",
"juni",
"juli",
"august",
"september",
"oktober",
"november",
"december"
];
var dn = [
'søndag',
'mandag',
'tirsdag',
'onsdag',
'torsdag',
'fredag',
'lørdag'
];
break;
//deutsch
case 'de':
var mn = [
"Januar",
"Februar",
"März",
"April",
"Mai",
"Juni",
"Juli",
"August",
"September",
"Oktober",
"November",
"Dezember"
];
var dn = [
'Sonntag',
'Montag',
'Dienstag',
'Mittwoch',
'Donnerstag',
'Freitag',
'Samstag'
];
break;
//dutch
case 'nl':
var mn = [
"januari",
"februari",
"maart",
"april",
"mei",
"juni",
"juli",
"augustus",
"september",
"oktober",
"november",
"december"
];
var dn = [
'zondag',
'maandag',
'dinsdag',
'woensdag',
'donderdag',
'vrijdag',
'zaterdag'
];
break;
//francais
case 'fr':
var mn = [
"Janvier",
"Février",
"Mars",
"Avril",
"Mai",
"Juin",
"Juillet",
"Août",
"Septembre",
"Octobre",
"Novembre",
"Décembre"
];
var dn = [
'Dimanche',
'Lundi',
'Mardi',
'Mercredi',
'Jeudi',
'Vendredi',
'Samedi'
];
break;
//polski
case 'pl':
var mn = [
"styczeń",
"luty",
"marzec",
"kwiecień",
"maj",
"czerwiec",
"lipiec",
"sierpień",
"wrzesień",
"październik",
"listopad",
"grudzień"
];
var dn = [
'niedziela',
'poniedziałek',
'wtorek',
'środa',
'czwartek',
'piątek',
'sobota'
];
break;
//portuguese
case 'pt':
var mn = [
"Janeiro",
"Fevereiro",
"Março",
"Abril",
"Maio",
"Junho",
"Julho",
"Agosto",
"Setembro",
"Outubro",
"Novembro",
"Dezembro"
];
var dn = [
"Domingo",
"Segunda",
"Terça",
"Quarta",
"Quinta",
"Sexta",
"Sábado"
];
break;
//slovenian
case 'si':
var mn = [
"januar",
"februar",
"marec",
"april",
"maj",
"junij",
"julij",
"avgust",
"september",
"oktober",
"november",
"december"
];
var dn = [
'nedelja',
'ponedeljek',
'torek',
'sreda',
'četrtek',
'petek',
'sobota'
];
break;
//ukrainian
case 'uk':
var mn = [
"січень",
"лютий",
"березень",
"квітень",
"травень",
"червень",
"липень",
"серпень",
"вересень",
"жовтень",
"листопад",
"грудень"
];
var dn = [
'неділя',
'понеділок',
'вівторок',
'середа',
'четвер',
'п\'ятниця',
'субота'
];
break;
//russian
case 'ru':
var mn = [
"январь",
"февраль",
"март",
"апрель",
"май",
"июнь",
"июль",
"август",
"сентябрь",
"октябрь",
"ноябрь",
"декабрь"
];
var dn = [
'воскресенье',
'понедельник',
'вторник',
'среда',
'четверг',
'пятница',
'суббота'
];
break;
//turkish
case 'tr':
var mn = [
"Ocak",
"Şubat",
"Mart",
"Nisan",
"Mayıs",
"Haziran",
"Temmuz",
"Ağustos",
"Eylül",
"Ekim",
"Kasım",
"Aralık"
];
var dn = [
'Pazar',
'Pazartesi',
'Sali',
'Çarşamba',
'Perşembe',
'Cuma',
'Cumartesi'
];
break;
//korean
case 'ko':
var mn = [
"1월",
"2월",
"3월",
"4월",
"5월",
"6월",
"7월",
"8월",
"9월",
"10월",
"11월",
"12월"
];
var dn = [
'일요일',
'월요일',
'화요일',
'수요일',
'목요일',
'금요일',
'토요일'
];
break;
//finnish
case 'fi':
var mn = [
"Tammikuu",
"Helmikuu",
"Maaliskuu",
"Huhtikuu",
"Toukokuu",
"Kesäkuu",
"Heinäkuu",
"Elokuu",
"Syyskuu",
"Lokakuu",
"Marraskuu",
"Joulukuu"
];
var dn = [
'Sunnuntai',
'Maanantai',
'Tiistai',
'Keskiviikko',
'Torstai',
'Perjantai',
'Lauantai'
];
break;
// Chinese
case 'zh':
var mn = [
"一月",
"二月",
"三月",
"四月",
"五月",
"六月",
"七月",
"八月",
"九月",
"十月",
"十一月",
"十二月"
];
var dn = [
'星期日',
'星期一',
'星期二',
'星期三',
'星期四',
'星期五',
'星期六'
];
break;
//english
default:
var mn = [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
];
var dn = [
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
];
break;
};
var
_dd_init = function() {
_dd.find('.dd-d li,.dd-s-b li').show();
if (_dd_isB(_dd_y) && _dd_m == 2) {
_dd.find('.dd-d ul').width(29 * _dd_settings.dropWidth);
if (_dd_d == 30 || _dd_d == 31) {
_dd_d = 29;
}
_dd.find('li[data-id=30],li[data-id=31]').hide();
} else if (!_dd_isB(_dd_y) && _dd_m == 2) {
_dd.find('.dd-d ul').width(28 * _dd_settings.dropWidth);
if (_dd_d == 29 || _dd_d == 30 || _dd_d == 31) {
_dd_d = 28;
}
_dd.find('li[data-id=29],li[data-id=30],li[data-id=31]').hide();
} else if (_dd_m == 4 || _dd_m == 6 || _dd_m == 9 || _dd_m == 11) {
_dd.find('.dd-d ul').width(30 * _dd_settings.dropWidth);
if (_dd_d == 31) {
_dd_d = 30;
}
_dd.find('li[data-id=31]').hide();
} else {
_dd.find('.dd-d ul').width(31 * _dd_settings.dropWidth);
}
_dd.find('.dd-d li').each(function(index, element) {
var
_d = $(this).attr('data-id'),
_d = new Date(_dd_m + "/" + _d + "/" + _dd_y),
_d = _d.getDay();
if (_d == 0 || _d == 6) $(this).addClass('dd-sun');
else $(this).removeClass('dd-sun');
$(this).find('span').html(dn[_d]);
});
_dd.find('.dd-s-b-d li').each(function(index, element) {
var
_d = $(this).attr('data-id'),
_d = new Date(_dd_m + "/" + _d + "/" + _dd_y),
_d = _d.getDay();
if (_d == 0 || _d == 6) $(this).addClass('dd-sun');
else $(this).removeClass('dd-sun');
$(this).find('span').html(dn[_d].substr(0, 3));
});
_dd.find('.dd-s-b li').removeClass('dd-on');
_dd.find('.dd-s-b-d li[data-id="' + _dd_d + '"],.dd-s-b-m li[data-id="' + _dd_m + '"],.dd-s-b-s-y li[data-id="' + _dd_y + '"],.dd-s-b-y li[data-id="' + _dd_sub_y + '"]').addClass('dd-on');
if (!_dd_settings.animate) {
setTimeout(function(){
_dd.find('.dd-d .dd-ul').scrollLeft(_dd.find('.dd-d li[data-id="' + _dd_d + '"]').index() * _dd_settings.dropWidth);
_dd.find('.dd-m .dd-ul').scrollLeft(_dd.find('.dd-m li[data-id="' + _dd_m + '"]').index() * _dd_settings.dropWidth);
_dd.find('.dd-y .dd-ul').scrollLeft(_dd.find('.dd-y li[data-id="' + _dd_y + '"]').index() * _dd_settings.dropWidth);
_dd.find('.dd-sub-y .dd-ul').scrollLeft(_dd.find('.dd-sub-y li[data-id="' + _dd_sub_y + '"]').index() * _dd_settings.dropWidth);
},1);
if (_dd.hasClass('dd-init')) {
_dd.removeClass('dd-init');
_dd_init_state = true;
}
} else {
if (_dd.hasClass('dd-init')) {
_dd.find('.dd-m .dd-ul').animate({
scrollLeft: _dd.find('.dd-m li[data-id="' + _dd_m + '"]').index() * _dd_settings.dropWidth
}, 1200, 'swing');
setTimeout(function() {
_dd.find('.dd-d .dd-ul').animate({
scrollLeft: _dd.find('.dd-d li[data-id="' + _dd_d + '"]').index() * _dd_settings.dropWidth
}, 1200, 'swing');
setTimeout(function() {
_dd.find('.dd-y .dd-ul').animate({
scrollLeft: _dd.find('.dd-y li[data-id="' + _dd_y + '"]').index() * _dd_settings.dropWidth
}, 1200, 'swing',function(){
_dd_init_state = true;
_dd.removeClass('dd-init');
});
}, 200);
}, 400);
} else {
_dd.find('.dd-d .dd-ul').stop().animate({
scrollLeft: _dd.find('.dd-d li[data-id="' + _dd_d + '"]').index() * _dd_settings.dropWidth
}, 260);
_dd.find('.dd-m .dd-ul').stop().animate({
scrollLeft: _dd.find('.dd-m li[data-id="' + _dd_m + '"]').index() * _dd_settings.dropWidth
}, 260);
_dd.find('.dd-y .dd-ul').stop().animate({
scrollLeft: _dd.find('.dd-y li[data-id="' + _dd_y + '"]').index() * _dd_settings.dropWidth
}, 260);
_dd.find('.dd-sub-y .dd-ul').stop().animate({
scrollLeft: _dd.find('.dd-sub-y li[data-id="' + _dd_sub_y + '"]').index() * _dd_settings.dropWidth
}, 260);
}
}
_dd_calculate(_dd_sub_y);
},
_dd_placement = function() {
/*
var
l1 = _dd_input.offset().top + _dd_input.innerHeight() + _dd.find('.dd-c').innerHeight(),
l2 = $(window).scrollTop() + $(window).height(),
dd_top,
dd_left;
_dd.removeClass('dd-top dd-bottom');
if (l1 > l2) {
dd_top = _dd_input.offset().top - (_dd.find('.dd-c').innerHeight()) - 6;
_dd.addClass('dd-top');
} else {
dd_top = _dd_input.offset().top + (_dd_input.innerHeight()) - 6;
_dd.addClass('dd-bottom');
}
*/
_dd.addClass('dd-bottom');
_dd.find('.dd-c').css({
'top': _dd_input.offset().top + (_dd_input.innerHeight()) - 6,
'left': (_dd_input.offset().left + ((_dd_input.innerWidth() / 2) - (_dd_settings.dropWidth / 2)))
}).addClass('dd-' + _dd_settings.init_animation);
},
_dd_alert = function() {
_dd.find('.dd-c').addClass('dd-alert').removeClass('dd-' + _dd_settings.init_animation);
setTimeout(function() {
_dd.find('.dd-c').removeClass('dd-alert');
}, 500);
},
_dd_submit = function() {
if (_dd_settings.lock) {
var
d1 = Date.parse(t_y_cur + "-" + (t_m_cur + 1) + "-" + t_d_cur) / 1000,
d2 = Date.parse(_dd_y + "-" + _dd_m + "-" + _dd_d) / 1000;
if (_dd_settings.lock == 'from') {
if (d2 < d1) {
_dd_alert();
return false;
}
} else {
if (d2 > d1) {
_dd_alert();
return false;
}
}
}
var
x = new Date(_dd_m + "/" + _dd_d + "/" + _dd_y),
x = x.getDay();
var
str =
_dd_settings.format
.replace(/\b(d)\b/g, _dd_0(_dd_d))
.replace(/\b(m)\b/g, _dd_0(_dd_m))
.replace(/\b(Y)\b/g, _dd_y)
.replace(/\b(D)\b/g, dn[x].substr(0, 3))
.replace(/\b(l)\b/g, dn[x])
.replace(/\b(F)\b/g, mn[_dd_m - 1])
.replace(/\b(M)\b/g, mn[_dd_m - 1].substr(0, 3))
.replace(/\b(n)\b/g, _dd_m)
.replace(/\b(j)\b/g, _dd_d);
_dd_input.val(str);
_dd.find('.dd-c')
.addClass('dd-fadeout')
.removeClass('dd-' + _dd_settings.init_animation);
_dd_event = setTimeout(function() {
_dd.hide()
_dd.find('.dd-c').removeClass('dd-fadeout');
}, 400);
_dd_input.change();
},
_dd_calculate = function(y) {
_dd.find('.dd-s-b-s-y ul').empty();
var
_i = parseInt(y),
_i_max = _i + (_dd_settings.yearsRange - 1);
if (_i_max > _dd_settings.maxYear) _i_max = _dd_settings.maxYear;
for (var i = _i; i <= _i_max; i++) {
if (i % _dd_settings.yearsRange == 0) var _d_c_y = i;
_dd.find('.dd-s-b-s-y ul').append('<li data-id="' + i + '" data-filter="' + _d_c_y + '">' + i + '</li>');
}
_dd.find('.dd-s-b-s-y ul').append('<div class="dd-clear"></div>');
_dd_sub_y = parseInt(y);
_dd.find('.dd-sub-y .dd-ul')
.scrollLeft(_dd.find('.dd-sub-y li[data-id="' + _dd_sub_y + '"]').index() * _dd_settings.dropWidth);
_dd.find('.dd-s-b-s-y li').each(function(index, element) {
$(this).click(function() {
_dd.find('.dd-s-b-s-y li').removeClass('dd-on');
$(this).addClass('dd-on');
_dd_y = parseInt($(this).attr('data-id'));
_dd.find('.dd-s-b-y,.dd-s-b-s-y').removeClass('dd-show');
_dd.find('.dd-s-b-s,.dd-sub-y').hide();
_dd_init();
});
});
},
_dd_construct = function() {
_dd.find('.dd-s-b').each(function(index, element) {
var
_dd_el = $(this),
i_min = 0;
if (_dd_el.hasClass('dd-s-b-m') || _dd_el.hasClass('dd-s-b-d')) {
if (_dd_el.hasClass('dd-s-b-m')) {
var
i_max = 12,
_class = 'm';
for (var i = i_min; i < i_max; i++) {
_dd_el.find('ul')
.append('<li data-id="' + (i + 1) + '">' + mn[i].substr(0, 3) + '<span>' + _dd_0(i + 1) + '</span></li>');
}
}
if (_dd_el.hasClass('dd-s-b-d')) {
var
i_max = 31,
_class = 'd';
for (var i = i_min; i < i_max; i++) {
_dd_el.find('ul')
.append('<li data-id="' + (i + 1) + '">' + _dd_0(i + 1) + '<span></span></li>');
}
}
}
if (_dd_el.hasClass('dd-s-b-y')) {
for (var i = _dd_settings.minYear; i <= _dd_settings.maxYear; i++) {
if (i % _dd_settings.yearsRange == 0)
_dd_el.find('ul').append('<li data-id="' + i + '">' + i + '</li>');
}
}
_dd_el.find('ul').append('<div class="dd-clear"></div>');
_dd_el.find('ul li').click(function() {
if (_dd_el.hasClass('dd-s-b-m') || _dd_el.hasClass('dd-s-b-d')) {
if (_dd_el.hasClass('dd-s-b-m')) _dd_m = parseInt($(this).attr('data-id'));
if (_dd_el.hasClass('dd-s-b-d')) _dd_d = parseInt($(this).attr('data-id'));
_dd_init();
_dd_el.removeClass('dd-show');
_dd.find('.dd-s-b-s').hide();
}
if (_dd_el.hasClass('dd-s-b-y')) {
_dd.find('.dd-sub-y').show();
_dd_calculate($(this).attr('data-id'));
_dd.find('.dd-s-b-s-y').addClass('dd-show');
}
});
var
top = 0,
scroll = false;
_dd_el.on('mousewheel DOMMouseScroll', function(e) {
scroll = true;
if (e.originalEvent.wheelDeltaY < 0 || e.originalEvent.detail > 0)
top = _dd_el.scrollTop() + 100;
if (e.originalEvent.wheelDeltaY > 0 || e.originalEvent.detail < 0)
top = _dd_el.scrollTop() - 100;
_dd_el.stop().animate({
scrollTop: top
}, 600, '_dd_easing', function() {
scroll = false;
});
}).on('scroll', function() {
if (!scroll) top = _dd_el.scrollTop();
});
});
_dd.find('.dd-b').each(function(index, element) {
var
_dd_el = $(this),
_d_ps = 0,
_te_event;
if (_dd_el.hasClass('dd-m')) {
for (var i = 0; i < 12; i++) {
_dd_el.find('ul').append('<li data-id="' + (i + 1) + '">' + mn[i].substr(0, 3) + '</li>');
}
_dd_el.find('li').click(function() {
if (_dd_settings.format == 'm' || _dd_settings.format == 'n' || _dd_settings.format == 'F' || _dd_settings.format == 'M')
return false;
_dd.find('.dd-s-b-m').addClass('dd-show');
});
}
if (_dd_el.hasClass('dd-d')) {
for (var i = 1; i <= 31; i++) {
_dd_el.find('ul').append('<li data-id="' + i + '"><strong>' + _dd_0(i) + '</strong><br><span></span></li>');
}
_dd_el.find('li').click(function() {
_dd.find('.dd-s-b-d').addClass('dd-show');
});
}
if (_dd_el.hasClass('dd-y')) {
for (var i = _dd_settings.minYear; i <= _dd_settings.maxYear; i++) {
var _d_c_y;
if (i % _dd_settings.yearsRange == 0) _d_c_y = 'data-filter="' + i + '"';
_dd_el.find('ul').append('<li data-id="' + i + '" ' + _d_c_y + '>' + i + '</li>');
}
_dd_el.find('li').click(function() {
if (_dd_settings.format == 'Y')
return false;
_dd.find('.dd-s-b-y').addClass('dd-show');
});
}
if (_dd_el.hasClass('dd-sub-y')) {
for (var i = _dd_settings.minYear; i <= _dd_settings.maxYear; i++) {
if (i % _dd_settings.yearsRange == 0)
_dd_el.find('ul').append('<li data-id="' + i + '">' + i + '</li>');
}
}
_dd_el.find('ul').width(_dd_el.find('li').length * _dd_settings.dropWidth);
////////////////////// NAV ///////////////////////
_dd_el.find('.dd-n').click(function() {
clearInterval(_te_event);
var
__dd_el,
x,
y;
if (_dd_el.hasClass('dd-y')) x = _dd_y;
if (_dd_el.hasClass('dd-m')) x = _dd_m;
if (_dd_el.hasClass('dd-d')) x = _dd_d;
if (_dd_el.hasClass('dd-sub-y')) x = _dd_sub_y;
if ($(this).hasClass('dd-n-left')) {
__dd_el = _dd_el.find('li[data-id="' + x + '"]').prev('li');
if (__dd_el.length && __dd_el.is(":visible"))
y = parseInt(__dd_el.attr('data-id'));
else
y = parseInt(_dd_el.find('li:visible:last').attr('data-id'));
} else {
__dd_el = _dd_el.find('li[data-id="' + x + '"]').next('li');
if (__dd_el.length && __dd_el.is(":visible"))
y = parseInt(__dd_el.attr('data-id'));
else
y = parseInt(_dd_el.find('li:first').attr('data-id'));
}
if (_dd_el.hasClass('dd-y')) _dd_y = y;
if (_dd_el.hasClass('dd-m')) _dd_m = y;
if (_dd_el.hasClass('dd-d')) _dd_d = y;
if (_dd_el.hasClass('dd-sub-y')) _dd_sub_y = y;
_dd_init();
});
var _detect = function() {
if (_dd_init_state) {
_d_ps = Math.round(_dd_el.find('.dd-ul').scrollLeft() / _dd_settings.dropWidth);
var value = parseInt(_dd_el.find('li').eq(_d_ps).attr('data-id'));
if (_dd_el.hasClass('dd-y')) _dd_y = value;
if (_dd_el.hasClass('dd-m')) _dd_m = value;
if (_dd_el.hasClass('dd-d')) _dd_d = value;
if (_dd_el.hasClass('dd-sub-y')) _dd_sub_y = value;
}
};
_dd_el.find('.dd-ul').on('scroll', function() {
_detect();
});
var _dd_user = false;
_dd_el.find('.dd-ul').on('mousedown touchstart', function() {
if(!_dd_user) _dd_user = true;
clearInterval(_te_event);
$(window).on('mouseup touchend touchmove', function() {
if(_dd_user) {
clearInterval(_te_event);
_te_event = setTimeout(function() {
_dd_init();
_dd_user = false;
}, 780);
}
});
});
if (_dd_settings.format == 'Y') _dd.find('.dd-m,.dd-d').hide();
if (_dd_settings.format == 'm' || _dd_settings.format == 'n' || _dd_settings.format == 'F' || _dd_settings.format == 'M') _dd.find('.dd-y,.dd-d').hide();
});
_dd.find('.dd-b li').click(function() {
if (_dd_settings.format == 'm' || _dd_settings.format == 'n' || _dd_settings.format == 'F' || _dd_settings.format == 'M' || _dd_settings.format == 'Y')
return false;
_dd.find('.dd-s-b-s').show();
});
_dd.find('.dd-s-b-s').click(function() {
_dd.find('.dd-s-b').removeClass('dd-show');
_dd.find('.dd-s-b-s').hide();
});
_dd.find('.dd-s').click(function() {
_dd_submit();
});
_dd.find('.dd-o').click(function() {
_dd.find('.dd-c')
.addClass('dd-fadeout')
.removeClass('dd-' + _dd_settings.init_animation);
_dd_event = setTimeout(function() {
_dd.hide()
_dd.find('.dd-c').removeClass('dd-fadeout');
}, 400);
});
_dd_init();
},
_dd_set = function() {
clearInterval(_dd_event);
if (_dd.hasClass('dd-init')) {
_dd_input
.attr({
'readonly': 'readonly'
})
.blur();
_dd_m = t_m_cur + 1,
_dd_d = t_d_cur,
_dd_y = t_y_cur;
if (parseInt(_dd_input.attr('data-d')) && parseInt(_dd_input.attr('data-d')) <= 31)
_dd_d = parseInt(_dd_input.attr('data-d'));
if (parseInt(_dd_input.attr('data-m')) && parseInt(_dd_input.attr('data-m')) <= 11)
_dd_m = parseInt(_dd_input.attr('data-m')) + 1;
if (parseInt(_dd_input.attr('data-y')) && _dd_input.attr('data-y').length == 4)
_dd_y = parseInt(_dd_input.attr('data-y'));
if (_dd_y > _dd_settings.maxYear) _dd_settings.maxYear = _dd_y;
if (_dd_y < _dd_settings.minYear) _dd_settings.minYear = _dd_y;
_dd_construct();
}
_dd.show();
_dd_placement();
};
_dd_input.click(function() {
_dd_set();
});
_dd_input.bind('focusin focus', function(e){
e.preventDefault();
})
$(window).resize(function() {
_dd_placement();
});
}
});
};
}(jQuery));