Dashboard sipadu mbip
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.

datedropper.js 48KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245
  1. jQuery.easing._dd_easing = function(x, t, b, c, d) {
  2. return -c * ((t = t / d - 1) * t * t * t - 1) + b;
  3. };
  4. (function($) {
  5. $.fn.dateDropper = function(options) {
  6. return $(this).each(function() {
  7. if ($(this).is('input') && $(this).attr('type') == "text") {
  8. var
  9. t_y_cur = new Date().getFullYear(),
  10. t_d_cur = new Date().getDate(),
  11. t_m_cur = new Date().getMonth();
  12. var
  13. _dd_m,
  14. _dd_d,
  15. _dd_y,
  16. _dd_sub_y;
  17. var
  18. _dd_id = $('.dd-w').length;
  19. 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>';
  20. $('body').append(_structure);
  21. var
  22. _dd_input = $(this),
  23. _dd = $('#dd-w-' + _dd_id),
  24. _dd_isB = function(y) {
  25. return !((y % 4) || (!(y % 100) && (y % 400)))
  26. },
  27. _dd_0 = function(n) {
  28. return n < 10 ? '0' + n : n
  29. },
  30. _dd_settings = $.extend({
  31. animate: true,
  32. init_animation: "fadein",
  33. format: "m/d/Y",
  34. lang: "en",
  35. lock: false,
  36. maxYear: t_y_cur,
  37. minYear: 1970,
  38. yearsRange: 10,
  39. //CSS PRIOPRIETIES//
  40. dropPrimaryColor: "#01CEFF",
  41. dropTextColor: "#333333",
  42. dropBackgroundColor: "#FFFFFF",
  43. dropBorder: "1px solid #08C",
  44. dropBorderRadius: 8,
  45. dropShadow: "0 0 10px 0 rgba(0, 136, 204, 0.45)",
  46. dropWidth: 124,
  47. dropTextWeight: 'bold'
  48. }, options),
  49. _dd_event = null,
  50. _dd_init_state = false,
  51. _dd_buffer = false;
  52. var _dd_color = function (col, amt) {
  53. var usePound = false;
  54. if (col[0] == "#") {
  55. col = col.slice(1);
  56. usePound = true;
  57. }
  58. var num = parseInt(col,16);
  59. var r = (num >> 16) + amt;
  60. if (r > 255) r = 255;
  61. else if (r < 0) r = 0;
  62. var b = ((num >> 8) & 0x00FF) + amt;
  63. if (b > 255) b = 255;
  64. else if (b < 0) b = 0;
  65. var g = (num & 0x0000FF) + amt;
  66. if (g > 255) g = 255;
  67. else if (g < 0) g = 0;
  68. return (usePound?"#":"") + (g | (b << 8) | (r << 16)).toString(16);
  69. };
  70. var _dd_c_invert = function (hexTripletColor) {
  71. var color = hexTripletColor;
  72. color = color.substring(1); // remove #
  73. color = parseInt(color, 16); // convert to integer
  74. color = 0xFFFFFF ^ color; // invert three bytes
  75. color = color.toString(16); // convert to hex
  76. color = ("000000" + color).slice(-6); // pad with leading zeros
  77. color = "#" + color; // prepend #
  78. return color;
  79. }
  80. $('<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');
  81. switch (_dd_settings.lang) {
  82. //Arabic
  83. case 'ar':
  84. var mn = [
  85. "جانفي",
  86. "فيفري",
  87. "مارس",
  88. "أفريل",
  89. "ماي",
  90. "جوان",
  91. "جويلية",
  92. "أوت",
  93. "سبتمبر",
  94. "أكتوبر",
  95. "نوفمبر",
  96. "ديسمبر"
  97. ];
  98. var dn = [
  99. 'الأحد',
  100. 'الإثنين',
  101. 'الثلثاء',
  102. 'الأربعاء',
  103. 'الخميس',
  104. 'الجمعة',
  105. 'السبت'
  106. ];
  107. break;
  108. //italian
  109. case 'it':
  110. var mn = [
  111. "Gennaio",
  112. "Febbraio",
  113. "Marzo",
  114. "Aprile",
  115. "Maggio",
  116. "Giugno",
  117. "Luglio",
  118. "Agosto",
  119. "Settembre",
  120. "Ottobre",
  121. "Novembre",
  122. "Dicembre"
  123. ];
  124. var dn = [
  125. 'Domenica',
  126. 'Lunedì',
  127. 'Martedì',
  128. 'Mercoledì',
  129. 'Giovedì',
  130. 'Venerdì',
  131. 'Sabato'
  132. ];
  133. break;
  134. //hungarian
  135. case 'hu':
  136. var mn = [
  137. "január",
  138. "február",
  139. "március",
  140. "április",
  141. "május",
  142. "június",
  143. "július",
  144. "augusztus",
  145. "szeptember",
  146. "október",
  147. "november",
  148. "december"
  149. ];
  150. var dn = [
  151. 'vasárnap',
  152. 'hétfő',
  153. 'kedd',
  154. 'szerda',
  155. 'csütörtök',
  156. 'péntek',
  157. 'szombat'
  158. ];
  159. break;
  160. //greek
  161. case 'gr':
  162. var mn = [
  163. "Ιανουάριος",
  164. "Φεβρουάριος",
  165. "Μάρτιος",
  166. "Απρίλιος",
  167. "Μάιος",
  168. "Ιούνιος",
  169. "Ιούλιος",
  170. "Αύγουστος",
  171. "Σεπτέμβριος",
  172. "Οκτώβριος",
  173. "Νοέμβριος",
  174. "Δεκέμβριος"
  175. ];
  176. var dn = [
  177. 'Κυριακή',
  178. 'Δευτέρα',
  179. 'Τρίτη',
  180. 'Τετάρτη',
  181. 'Πέμπτη',
  182. 'Παρασκευή',
  183. 'Σάββατο'
  184. ];
  185. break;
  186. //espanol
  187. case 'es':
  188. var mn = [
  189. "Enero",
  190. "Febrero",
  191. "Marzo",
  192. "Abril",
  193. "Mayo",
  194. "Junio",
  195. "Julio",
  196. "Agosto",
  197. "Septiembre",
  198. "Octubre",
  199. "Noviembre",
  200. "Diciembre"
  201. ];
  202. var dn = [
  203. 'Domingo',
  204. 'Lunes',
  205. 'Martes',
  206. 'Miércoles',
  207. 'Jueves',
  208. 'Viernes',
  209. 'Sábado'
  210. ];
  211. break;
  212. //dansk
  213. case 'da':
  214. var mn = [
  215. "januar",
  216. "februar",
  217. "marts",
  218. "april",
  219. "maj",
  220. "juni",
  221. "juli",
  222. "august",
  223. "september",
  224. "oktober",
  225. "november",
  226. "december"
  227. ];
  228. var dn = [
  229. 'søndag',
  230. 'mandag',
  231. 'tirsdag',
  232. 'onsdag',
  233. 'torsdag',
  234. 'fredag',
  235. 'lørdag'
  236. ];
  237. break;
  238. //deutsch
  239. case 'de':
  240. var mn = [
  241. "Januar",
  242. "Februar",
  243. "März",
  244. "April",
  245. "Mai",
  246. "Juni",
  247. "Juli",
  248. "August",
  249. "September",
  250. "Oktober",
  251. "November",
  252. "Dezember"
  253. ];
  254. var dn = [
  255. 'Sonntag',
  256. 'Montag',
  257. 'Dienstag',
  258. 'Mittwoch',
  259. 'Donnerstag',
  260. 'Freitag',
  261. 'Samstag'
  262. ];
  263. break;
  264. //dutch
  265. case 'nl':
  266. var mn = [
  267. "januari",
  268. "februari",
  269. "maart",
  270. "april",
  271. "mei",
  272. "juni",
  273. "juli",
  274. "augustus",
  275. "september",
  276. "oktober",
  277. "november",
  278. "december"
  279. ];
  280. var dn = [
  281. 'zondag',
  282. 'maandag',
  283. 'dinsdag',
  284. 'woensdag',
  285. 'donderdag',
  286. 'vrijdag',
  287. 'zaterdag'
  288. ];
  289. break;
  290. //francais
  291. case 'fr':
  292. var mn = [
  293. "Janvier",
  294. "Février",
  295. "Mars",
  296. "Avril",
  297. "Mai",
  298. "Juin",
  299. "Juillet",
  300. "Août",
  301. "Septembre",
  302. "Octobre",
  303. "Novembre",
  304. "Décembre"
  305. ];
  306. var dn = [
  307. 'Dimanche',
  308. 'Lundi',
  309. 'Mardi',
  310. 'Mercredi',
  311. 'Jeudi',
  312. 'Vendredi',
  313. 'Samedi'
  314. ];
  315. break;
  316. //polski
  317. case 'pl':
  318. var mn = [
  319. "styczeń",
  320. "luty",
  321. "marzec",
  322. "kwiecień",
  323. "maj",
  324. "czerwiec",
  325. "lipiec",
  326. "sierpień",
  327. "wrzesień",
  328. "październik",
  329. "listopad",
  330. "grudzień"
  331. ];
  332. var dn = [
  333. 'niedziela',
  334. 'poniedziałek',
  335. 'wtorek',
  336. 'środa',
  337. 'czwartek',
  338. 'piątek',
  339. 'sobota'
  340. ];
  341. break;
  342. //portuguese
  343. case 'pt':
  344. var mn = [
  345. "Janeiro",
  346. "Fevereiro",
  347. "Março",
  348. "Abril",
  349. "Maio",
  350. "Junho",
  351. "Julho",
  352. "Agosto",
  353. "Setembro",
  354. "Outubro",
  355. "Novembro",
  356. "Dezembro"
  357. ];
  358. var dn = [
  359. "Domingo",
  360. "Segunda",
  361. "Terça",
  362. "Quarta",
  363. "Quinta",
  364. "Sexta",
  365. "Sábado"
  366. ];
  367. break;
  368. //slovenian
  369. case 'si':
  370. var mn = [
  371. "januar",
  372. "februar",
  373. "marec",
  374. "april",
  375. "maj",
  376. "junij",
  377. "julij",
  378. "avgust",
  379. "september",
  380. "oktober",
  381. "november",
  382. "december"
  383. ];
  384. var dn = [
  385. 'nedelja',
  386. 'ponedeljek',
  387. 'torek',
  388. 'sreda',
  389. 'četrtek',
  390. 'petek',
  391. 'sobota'
  392. ];
  393. break;
  394. //ukrainian
  395. case 'uk':
  396. var mn = [
  397. "січень",
  398. "лютий",
  399. "березень",
  400. "квітень",
  401. "травень",
  402. "червень",
  403. "липень",
  404. "серпень",
  405. "вересень",
  406. "жовтень",
  407. "листопад",
  408. "грудень"
  409. ];
  410. var dn = [
  411. 'неділя',
  412. 'понеділок',
  413. 'вівторок',
  414. 'середа',
  415. 'четвер',
  416. 'п\'ятниця',
  417. 'субота'
  418. ];
  419. break;
  420. //russian
  421. case 'ru':
  422. var mn = [
  423. "январь",
  424. "февраль",
  425. "март",
  426. "апрель",
  427. "май",
  428. "июнь",
  429. "июль",
  430. "август",
  431. "сентябрь",
  432. "октябрь",
  433. "ноябрь",
  434. "декабрь"
  435. ];
  436. var dn = [
  437. 'воскресенье',
  438. 'понедельник',
  439. 'вторник',
  440. 'среда',
  441. 'четверг',
  442. 'пятница',
  443. 'суббота'
  444. ];
  445. break;
  446. //turkish
  447. case 'tr':
  448. var mn = [
  449. "Ocak",
  450. "Şubat",
  451. "Mart",
  452. "Nisan",
  453. "Mayıs",
  454. "Haziran",
  455. "Temmuz",
  456. "Ağustos",
  457. "Eylül",
  458. "Ekim",
  459. "Kasım",
  460. "Aralık"
  461. ];
  462. var dn = [
  463. 'Pazar',
  464. 'Pazartesi',
  465. 'Sali',
  466. 'Çarşamba',
  467. 'Perşembe',
  468. 'Cuma',
  469. 'Cumartesi'
  470. ];
  471. break;
  472. //korean
  473. case 'ko':
  474. var mn = [
  475. "1월",
  476. "2월",
  477. "3월",
  478. "4월",
  479. "5월",
  480. "6월",
  481. "7월",
  482. "8월",
  483. "9월",
  484. "10월",
  485. "11월",
  486. "12월"
  487. ];
  488. var dn = [
  489. '일요일',
  490. '월요일',
  491. '화요일',
  492. '수요일',
  493. '목요일',
  494. '금요일',
  495. '토요일'
  496. ];
  497. break;
  498. //finnish
  499. case 'fi':
  500. var mn = [
  501. "Tammikuu",
  502. "Helmikuu",
  503. "Maaliskuu",
  504. "Huhtikuu",
  505. "Toukokuu",
  506. "Kesäkuu",
  507. "Heinäkuu",
  508. "Elokuu",
  509. "Syyskuu",
  510. "Lokakuu",
  511. "Marraskuu",
  512. "Joulukuu"
  513. ];
  514. var dn = [
  515. 'Sunnuntai',
  516. 'Maanantai',
  517. 'Tiistai',
  518. 'Keskiviikko',
  519. 'Torstai',
  520. 'Perjantai',
  521. 'Lauantai'
  522. ];
  523. break;
  524. // Chinese
  525. case 'zh':
  526. var mn = [
  527. "一月",
  528. "二月",
  529. "三月",
  530. "四月",
  531. "五月",
  532. "六月",
  533. "七月",
  534. "八月",
  535. "九月",
  536. "十月",
  537. "十一月",
  538. "十二月"
  539. ];
  540. var dn = [
  541. '星期日',
  542. '星期一',
  543. '星期二',
  544. '星期三',
  545. '星期四',
  546. '星期五',
  547. '星期六'
  548. ];
  549. break;
  550. //english
  551. default:
  552. var mn = [
  553. "January",
  554. "February",
  555. "March",
  556. "April",
  557. "May",
  558. "June",
  559. "July",
  560. "August",
  561. "September",
  562. "October",
  563. "November",
  564. "December"
  565. ];
  566. var dn = [
  567. 'Sunday',
  568. 'Monday',
  569. 'Tuesday',
  570. 'Wednesday',
  571. 'Thursday',
  572. 'Friday',
  573. 'Saturday'
  574. ];
  575. break;
  576. };
  577. var
  578. _dd_init = function() {
  579. _dd.find('.dd-d li,.dd-s-b li').show();
  580. if (_dd_isB(_dd_y) && _dd_m == 2) {
  581. _dd.find('.dd-d ul').width(29 * _dd_settings.dropWidth);
  582. if (_dd_d == 30 || _dd_d == 31) {
  583. _dd_d = 29;
  584. }
  585. _dd.find('li[data-id=30],li[data-id=31]').hide();
  586. } else if (!_dd_isB(_dd_y) && _dd_m == 2) {
  587. _dd.find('.dd-d ul').width(28 * _dd_settings.dropWidth);
  588. if (_dd_d == 29 || _dd_d == 30 || _dd_d == 31) {
  589. _dd_d = 28;
  590. }
  591. _dd.find('li[data-id=29],li[data-id=30],li[data-id=31]').hide();
  592. } else if (_dd_m == 4 || _dd_m == 6 || _dd_m == 9 || _dd_m == 11) {
  593. _dd.find('.dd-d ul').width(30 * _dd_settings.dropWidth);
  594. if (_dd_d == 31) {
  595. _dd_d = 30;
  596. }
  597. _dd.find('li[data-id=31]').hide();
  598. } else {
  599. _dd.find('.dd-d ul').width(31 * _dd_settings.dropWidth);
  600. }
  601. _dd.find('.dd-d li').each(function(index, element) {
  602. var
  603. _d = $(this).attr('data-id'),
  604. _d = new Date(_dd_m + "/" + _d + "/" + _dd_y),
  605. _d = _d.getDay();
  606. if (_d == 0 || _d == 6) $(this).addClass('dd-sun');
  607. else $(this).removeClass('dd-sun');
  608. $(this).find('span').html(dn[_d]);
  609. });
  610. _dd.find('.dd-s-b-d li').each(function(index, element) {
  611. var
  612. _d = $(this).attr('data-id'),
  613. _d = new Date(_dd_m + "/" + _d + "/" + _dd_y),
  614. _d = _d.getDay();
  615. if (_d == 0 || _d == 6) $(this).addClass('dd-sun');
  616. else $(this).removeClass('dd-sun');
  617. $(this).find('span').html(dn[_d].substr(0, 3));
  618. });
  619. _dd.find('.dd-s-b li').removeClass('dd-on');
  620. _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');
  621. if (!_dd_settings.animate) {
  622. setTimeout(function(){
  623. _dd.find('.dd-d .dd-ul').scrollLeft(_dd.find('.dd-d li[data-id="' + _dd_d + '"]').index() * _dd_settings.dropWidth);
  624. _dd.find('.dd-m .dd-ul').scrollLeft(_dd.find('.dd-m li[data-id="' + _dd_m + '"]').index() * _dd_settings.dropWidth);
  625. _dd.find('.dd-y .dd-ul').scrollLeft(_dd.find('.dd-y li[data-id="' + _dd_y + '"]').index() * _dd_settings.dropWidth);
  626. _dd.find('.dd-sub-y .dd-ul').scrollLeft(_dd.find('.dd-sub-y li[data-id="' + _dd_sub_y + '"]').index() * _dd_settings.dropWidth);
  627. },1);
  628. if (_dd.hasClass('dd-init')) {
  629. _dd.removeClass('dd-init');
  630. _dd_init_state = true;
  631. }
  632. } else {
  633. if (_dd.hasClass('dd-init')) {
  634. _dd.find('.dd-m .dd-ul').animate({
  635. scrollLeft: _dd.find('.dd-m li[data-id="' + _dd_m + '"]').index() * _dd_settings.dropWidth
  636. }, 1200, 'swing');
  637. setTimeout(function() {
  638. _dd.find('.dd-d .dd-ul').animate({
  639. scrollLeft: _dd.find('.dd-d li[data-id="' + _dd_d + '"]').index() * _dd_settings.dropWidth
  640. }, 1200, 'swing');
  641. setTimeout(function() {
  642. _dd.find('.dd-y .dd-ul').animate({
  643. scrollLeft: _dd.find('.dd-y li[data-id="' + _dd_y + '"]').index() * _dd_settings.dropWidth
  644. }, 1200, 'swing',function(){
  645. _dd_init_state = true;
  646. _dd.removeClass('dd-init');
  647. });
  648. }, 200);
  649. }, 400);
  650. } else {
  651. _dd.find('.dd-d .dd-ul').stop().animate({
  652. scrollLeft: _dd.find('.dd-d li[data-id="' + _dd_d + '"]').index() * _dd_settings.dropWidth
  653. }, 260);
  654. _dd.find('.dd-m .dd-ul').stop().animate({
  655. scrollLeft: _dd.find('.dd-m li[data-id="' + _dd_m + '"]').index() * _dd_settings.dropWidth
  656. }, 260);
  657. _dd.find('.dd-y .dd-ul').stop().animate({
  658. scrollLeft: _dd.find('.dd-y li[data-id="' + _dd_y + '"]').index() * _dd_settings.dropWidth
  659. }, 260);
  660. _dd.find('.dd-sub-y .dd-ul').stop().animate({
  661. scrollLeft: _dd.find('.dd-sub-y li[data-id="' + _dd_sub_y + '"]').index() * _dd_settings.dropWidth
  662. }, 260);
  663. }
  664. }
  665. _dd_calculate(_dd_sub_y);
  666. },
  667. _dd_placement = function() {
  668. /*
  669. var
  670. l1 = _dd_input.offset().top + _dd_input.innerHeight() + _dd.find('.dd-c').innerHeight(),
  671. l2 = $(window).scrollTop() + $(window).height(),
  672. dd_top,
  673. dd_left;
  674. _dd.removeClass('dd-top dd-bottom');
  675. if (l1 > l2) {
  676. dd_top = _dd_input.offset().top - (_dd.find('.dd-c').innerHeight()) - 6;
  677. _dd.addClass('dd-top');
  678. } else {
  679. dd_top = _dd_input.offset().top + (_dd_input.innerHeight()) - 6;
  680. _dd.addClass('dd-bottom');
  681. }
  682. */
  683. _dd.addClass('dd-bottom');
  684. _dd.find('.dd-c').css({
  685. 'top': _dd_input.offset().top + (_dd_input.innerHeight()) - 6,
  686. 'left': (_dd_input.offset().left + ((_dd_input.innerWidth() / 2) - (_dd_settings.dropWidth / 2)))
  687. }).addClass('dd-' + _dd_settings.init_animation);
  688. },
  689. _dd_alert = function() {
  690. _dd.find('.dd-c').addClass('dd-alert').removeClass('dd-' + _dd_settings.init_animation);
  691. setTimeout(function() {
  692. _dd.find('.dd-c').removeClass('dd-alert');
  693. }, 500);
  694. },
  695. _dd_submit = function() {
  696. if (_dd_settings.lock) {
  697. var
  698. d1 = Date.parse(t_y_cur + "-" + (t_m_cur + 1) + "-" + t_d_cur) / 1000,
  699. d2 = Date.parse(_dd_y + "-" + _dd_m + "-" + _dd_d) / 1000;
  700. if (_dd_settings.lock == 'from') {
  701. if (d2 < d1) {
  702. _dd_alert();
  703. return false;
  704. }
  705. } else {
  706. if (d2 > d1) {
  707. _dd_alert();
  708. return false;
  709. }
  710. }
  711. }
  712. var
  713. x = new Date(_dd_m + "/" + _dd_d + "/" + _dd_y),
  714. x = x.getDay();
  715. var
  716. str =
  717. _dd_settings.format
  718. .replace(/\b(d)\b/g, _dd_0(_dd_d))
  719. .replace(/\b(m)\b/g, _dd_0(_dd_m))
  720. .replace(/\b(Y)\b/g, _dd_y)
  721. .replace(/\b(D)\b/g, dn[x].substr(0, 3))
  722. .replace(/\b(l)\b/g, dn[x])
  723. .replace(/\b(F)\b/g, mn[_dd_m - 1])
  724. .replace(/\b(M)\b/g, mn[_dd_m - 1].substr(0, 3))
  725. .replace(/\b(n)\b/g, _dd_m)
  726. .replace(/\b(j)\b/g, _dd_d);
  727. _dd_input.val(str);
  728. _dd.find('.dd-c')
  729. .addClass('dd-fadeout')
  730. .removeClass('dd-' + _dd_settings.init_animation);
  731. _dd_event = setTimeout(function() {
  732. _dd.hide()
  733. _dd.find('.dd-c').removeClass('dd-fadeout');
  734. }, 400);
  735. _dd_input.change();
  736. },
  737. _dd_calculate = function(y) {
  738. _dd.find('.dd-s-b-s-y ul').empty();
  739. var
  740. _i = parseInt(y),
  741. _i_max = _i + (_dd_settings.yearsRange - 1);
  742. if (_i_max > _dd_settings.maxYear) _i_max = _dd_settings.maxYear;
  743. for (var i = _i; i <= _i_max; i++) {
  744. if (i % _dd_settings.yearsRange == 0) var _d_c_y = i;
  745. _dd.find('.dd-s-b-s-y ul').append('<li data-id="' + i + '" data-filter="' + _d_c_y + '">' + i + '</li>');
  746. }
  747. _dd.find('.dd-s-b-s-y ul').append('<div class="dd-clear"></div>');
  748. _dd_sub_y = parseInt(y);
  749. _dd.find('.dd-sub-y .dd-ul')
  750. .scrollLeft(_dd.find('.dd-sub-y li[data-id="' + _dd_sub_y + '"]').index() * _dd_settings.dropWidth);
  751. _dd.find('.dd-s-b-s-y li').each(function(index, element) {
  752. $(this).click(function() {
  753. _dd.find('.dd-s-b-s-y li').removeClass('dd-on');
  754. $(this).addClass('dd-on');
  755. _dd_y = parseInt($(this).attr('data-id'));
  756. _dd.find('.dd-s-b-y,.dd-s-b-s-y').removeClass('dd-show');
  757. _dd.find('.dd-s-b-s,.dd-sub-y').hide();
  758. _dd_init();
  759. });
  760. });
  761. },
  762. _dd_construct = function() {
  763. _dd.find('.dd-s-b').each(function(index, element) {
  764. var
  765. _dd_el = $(this),
  766. i_min = 0;
  767. if (_dd_el.hasClass('dd-s-b-m') || _dd_el.hasClass('dd-s-b-d')) {
  768. if (_dd_el.hasClass('dd-s-b-m')) {
  769. var
  770. i_max = 12,
  771. _class = 'm';
  772. for (var i = i_min; i < i_max; i++) {
  773. _dd_el.find('ul')
  774. .append('<li data-id="' + (i + 1) + '">' + mn[i].substr(0, 3) + '<span>' + _dd_0(i + 1) + '</span></li>');
  775. }
  776. }
  777. if (_dd_el.hasClass('dd-s-b-d')) {
  778. var
  779. i_max = 31,
  780. _class = 'd';
  781. for (var i = i_min; i < i_max; i++) {
  782. _dd_el.find('ul')
  783. .append('<li data-id="' + (i + 1) + '">' + _dd_0(i + 1) + '<span></span></li>');
  784. }
  785. }
  786. }
  787. if (_dd_el.hasClass('dd-s-b-y')) {
  788. for (var i = _dd_settings.minYear; i <= _dd_settings.maxYear; i++) {
  789. if (i % _dd_settings.yearsRange == 0)
  790. _dd_el.find('ul').append('<li data-id="' + i + '">' + i + '</li>');
  791. }
  792. }
  793. _dd_el.find('ul').append('<div class="dd-clear"></div>');
  794. _dd_el.find('ul li').click(function() {
  795. if (_dd_el.hasClass('dd-s-b-m') || _dd_el.hasClass('dd-s-b-d')) {
  796. if (_dd_el.hasClass('dd-s-b-m')) _dd_m = parseInt($(this).attr('data-id'));
  797. if (_dd_el.hasClass('dd-s-b-d')) _dd_d = parseInt($(this).attr('data-id'));
  798. _dd_init();
  799. _dd_el.removeClass('dd-show');
  800. _dd.find('.dd-s-b-s').hide();
  801. }
  802. if (_dd_el.hasClass('dd-s-b-y')) {
  803. _dd.find('.dd-sub-y').show();
  804. _dd_calculate($(this).attr('data-id'));
  805. _dd.find('.dd-s-b-s-y').addClass('dd-show');
  806. }
  807. });
  808. var
  809. top = 0,
  810. scroll = false;
  811. _dd_el.on('mousewheel DOMMouseScroll', function(e) {
  812. scroll = true;
  813. if (e.originalEvent.wheelDeltaY < 0 || e.originalEvent.detail > 0)
  814. top = _dd_el.scrollTop() + 100;
  815. if (e.originalEvent.wheelDeltaY > 0 || e.originalEvent.detail < 0)
  816. top = _dd_el.scrollTop() - 100;
  817. _dd_el.stop().animate({
  818. scrollTop: top
  819. }, 600, '_dd_easing', function() {
  820. scroll = false;
  821. });
  822. }).on('scroll', function() {
  823. if (!scroll) top = _dd_el.scrollTop();
  824. });
  825. });
  826. _dd.find('.dd-b').each(function(index, element) {
  827. var
  828. _dd_el = $(this),
  829. _d_ps = 0,
  830. _te_event;
  831. if (_dd_el.hasClass('dd-m')) {
  832. for (var i = 0; i < 12; i++) {
  833. _dd_el.find('ul').append('<li data-id="' + (i + 1) + '">' + mn[i].substr(0, 3) + '</li>');
  834. }
  835. _dd_el.find('li').click(function() {
  836. if (_dd_settings.format == 'm' || _dd_settings.format == 'n' || _dd_settings.format == 'F' || _dd_settings.format == 'M')
  837. return false;
  838. _dd.find('.dd-s-b-m').addClass('dd-show');
  839. });
  840. }
  841. if (_dd_el.hasClass('dd-d')) {
  842. for (var i = 1; i <= 31; i++) {
  843. _dd_el.find('ul').append('<li data-id="' + i + '"><strong>' + _dd_0(i) + '</strong><br><span></span></li>');
  844. }
  845. _dd_el.find('li').click(function() {
  846. _dd.find('.dd-s-b-d').addClass('dd-show');
  847. });
  848. }
  849. if (_dd_el.hasClass('dd-y')) {
  850. for (var i = _dd_settings.minYear; i <= _dd_settings.maxYear; i++) {
  851. var _d_c_y;
  852. if (i % _dd_settings.yearsRange == 0) _d_c_y = 'data-filter="' + i + '"';
  853. _dd_el.find('ul').append('<li data-id="' + i + '" ' + _d_c_y + '>' + i + '</li>');
  854. }
  855. _dd_el.find('li').click(function() {
  856. if (_dd_settings.format == 'Y')
  857. return false;
  858. _dd.find('.dd-s-b-y').addClass('dd-show');
  859. });
  860. }
  861. if (_dd_el.hasClass('dd-sub-y')) {
  862. for (var i = _dd_settings.minYear; i <= _dd_settings.maxYear; i++) {
  863. if (i % _dd_settings.yearsRange == 0)
  864. _dd_el.find('ul').append('<li data-id="' + i + '">' + i + '</li>');
  865. }
  866. }
  867. _dd_el.find('ul').width(_dd_el.find('li').length * _dd_settings.dropWidth);
  868. ////////////////////// NAV ///////////////////////
  869. _dd_el.find('.dd-n').click(function() {
  870. clearInterval(_te_event);
  871. var
  872. __dd_el,
  873. x,
  874. y;
  875. if (_dd_el.hasClass('dd-y')) x = _dd_y;
  876. if (_dd_el.hasClass('dd-m')) x = _dd_m;
  877. if (_dd_el.hasClass('dd-d')) x = _dd_d;
  878. if (_dd_el.hasClass('dd-sub-y')) x = _dd_sub_y;
  879. if ($(this).hasClass('dd-n-left')) {
  880. __dd_el = _dd_el.find('li[data-id="' + x + '"]').prev('li');
  881. if (__dd_el.length && __dd_el.is(":visible"))
  882. y = parseInt(__dd_el.attr('data-id'));
  883. else
  884. y = parseInt(_dd_el.find('li:visible:last').attr('data-id'));
  885. } else {
  886. __dd_el = _dd_el.find('li[data-id="' + x + '"]').next('li');
  887. if (__dd_el.length && __dd_el.is(":visible"))
  888. y = parseInt(__dd_el.attr('data-id'));
  889. else
  890. y = parseInt(_dd_el.find('li:first').attr('data-id'));
  891. }
  892. if (_dd_el.hasClass('dd-y')) _dd_y = y;
  893. if (_dd_el.hasClass('dd-m')) _dd_m = y;
  894. if (_dd_el.hasClass('dd-d')) _dd_d = y;
  895. if (_dd_el.hasClass('dd-sub-y')) _dd_sub_y = y;
  896. _dd_init();
  897. });
  898. var _detect = function() {
  899. if (_dd_init_state) {
  900. _d_ps = Math.round(_dd_el.find('.dd-ul').scrollLeft() / _dd_settings.dropWidth);
  901. var value = parseInt(_dd_el.find('li').eq(_d_ps).attr('data-id'));
  902. if (_dd_el.hasClass('dd-y')) _dd_y = value;
  903. if (_dd_el.hasClass('dd-m')) _dd_m = value;
  904. if (_dd_el.hasClass('dd-d')) _dd_d = value;
  905. if (_dd_el.hasClass('dd-sub-y')) _dd_sub_y = value;
  906. }
  907. };
  908. _dd_el.find('.dd-ul').on('scroll', function() {
  909. _detect();
  910. });
  911. var _dd_user = false;
  912. _dd_el.find('.dd-ul').on('mousedown touchstart', function() {
  913. if(!_dd_user) _dd_user = true;
  914. clearInterval(_te_event);
  915. $(window).on('mouseup touchend touchmove', function() {
  916. if(_dd_user) {
  917. clearInterval(_te_event);
  918. _te_event = setTimeout(function() {
  919. _dd_init();
  920. _dd_user = false;
  921. }, 780);
  922. }
  923. });
  924. });
  925. if (_dd_settings.format == 'Y') _dd.find('.dd-m,.dd-d').hide();
  926. if (_dd_settings.format == 'm' || _dd_settings.format == 'n' || _dd_settings.format == 'F' || _dd_settings.format == 'M') _dd.find('.dd-y,.dd-d').hide();
  927. });
  928. _dd.find('.dd-b li').click(function() {
  929. if (_dd_settings.format == 'm' || _dd_settings.format == 'n' || _dd_settings.format == 'F' || _dd_settings.format == 'M' || _dd_settings.format == 'Y')
  930. return false;
  931. _dd.find('.dd-s-b-s').show();
  932. });
  933. _dd.find('.dd-s-b-s').click(function() {
  934. _dd.find('.dd-s-b').removeClass('dd-show');
  935. _dd.find('.dd-s-b-s').hide();
  936. });
  937. _dd.find('.dd-s').click(function() {
  938. _dd_submit();
  939. });
  940. _dd.find('.dd-o').click(function() {
  941. _dd.find('.dd-c')
  942. .addClass('dd-fadeout')
  943. .removeClass('dd-' + _dd_settings.init_animation);
  944. _dd_event = setTimeout(function() {
  945. _dd.hide()
  946. _dd.find('.dd-c').removeClass('dd-fadeout');
  947. }, 400);
  948. });
  949. _dd_init();
  950. },
  951. _dd_set = function() {
  952. clearInterval(_dd_event);
  953. if (_dd.hasClass('dd-init')) {
  954. _dd_input
  955. .attr({
  956. 'readonly': 'readonly'
  957. })
  958. .blur();
  959. _dd_m = t_m_cur + 1,
  960. _dd_d = t_d_cur,
  961. _dd_y = t_y_cur;
  962. if (parseInt(_dd_input.attr('data-d')) && parseInt(_dd_input.attr('data-d')) <= 31)
  963. _dd_d = parseInt(_dd_input.attr('data-d'));
  964. if (parseInt(_dd_input.attr('data-m')) && parseInt(_dd_input.attr('data-m')) <= 11)
  965. _dd_m = parseInt(_dd_input.attr('data-m')) + 1;
  966. if (parseInt(_dd_input.attr('data-y')) && _dd_input.attr('data-y').length == 4)
  967. _dd_y = parseInt(_dd_input.attr('data-y'));
  968. if (_dd_y > _dd_settings.maxYear) _dd_settings.maxYear = _dd_y;
  969. if (_dd_y < _dd_settings.minYear) _dd_settings.minYear = _dd_y;
  970. _dd_construct();
  971. }
  972. _dd.show();
  973. _dd_placement();
  974. };
  975. _dd_input.click(function() {
  976. _dd_set();
  977. });
  978. _dd_input.bind('focusin focus', function(e){
  979. e.preventDefault();
  980. })
  981. $(window).resize(function() {
  982. _dd_placement();
  983. });
  984. }
  985. });
  986. };
  987. }(jQuery));