1if (typeof jQuery == "undefined") { 2 throw new Error("jQuery is not loaded") 3} 4$.fn.zabuto_calendar = function(b) { 5 var c = $.extend({}, $.fn.zabuto_calendar_defaults(), b); 6 var a = $.fn.zabuto_calendar_language(c.language); 7 c = $.extend({}, c, a); 8 this 9 .each(function() { 10 var j = $(this); 11 j.attr("id", "zabuto_calendar_" 12 + Math.floor(Math.random() * 99999).toString(36)); 13 j.data("initYear", c.year); 14 j.data("initMonth", c.month); 15 j.data("monthLabels", c.month_labels); 16 j.data("weekStartsOn", c.weekstartson); 17 j.data("navIcons", c.nav_icon); 18 j.data("dowLabels", c.dow_labels); 19 j.data("showToday", c.today); 20 j.data("showDays", c.show_days); 21 j.data("showPrevious", c.show_previous); 22 j.data("showNext", c.show_next); 23 j.data("cellBorder", c.cell_border); 24 j.data("jsonData", c.data); 25 j.data("ajaxSettings", c.ajax); 26 j.data("legendList", c.legend); 27 j.data("actionFunction", c.action); 28 j.data("actionNavFunction", c.action_nav); 29 l(); 30 function l() { 31 var y = parseInt(j.data("initYear")); 32 var B = parseInt(j.data("initMonth")) - 1; 33 var C = new Date(y, B, 1, 0, 0, 0, 0); 34 j.data("initDate", C); 35 var D = (j.data("cellBorder") === true) ? " table-bordered" 36 : ""; 37 $tableObj = $('<table class="table' + D + '"></table>'); 38 $tableObj = w(j, $tableObj, C.getFullYear(), C.getMonth()); 39 $legendObj = g(j); 40 var z = $('<div class="zabuto_calendar" id="' 41 + j.attr("id") + '"></div>'); 42 z.append($tableObj); 43 z.append($legendObj); 44 j.append(z); 45 var A = j.data("jsonData"); 46 if (false !== A) { 47 r(j, C.getFullYear(), C.getMonth()) 48 } 49 } 50 function w(A, C, z, B) { 51 var y = new Date(z, B, 1, 0, 0, 0, 0); 52 A.data("currDate", y); 53 C.empty(); 54 C = s(A, C, z, B); 55 C = e(A, C); 56 C = q(A, C, z, B); 57 r(A, z, B); 58 return C 59 } 60 function g(A) { 61 var y = $('<div class="legend" id="' + A.attr("id") 62 + '_legend"></div>'); 63 var z = A.data("legendList"); 64 if (typeof (z) == "object" && z.length > 0) { 65 $(z) 66 .each( 67 function(E, G) { 68 if (typeof (G) == "object") { 69 if ("type" in G) { 70 var F = ""; 71 if ("label" in G) { 72 F = G.label 73 } 74 switch (G.type) { 75 case "text": 76 if (F !== "") { 77 var D = ""; 78 if ("badge" in G) { 79 if (typeof (G.classname) === "undefined") { 80 var H = "badge-event" 81 } else { 82 var H = G.classname 83 } 84 D = '<span class="badge ' 85 + H 86 + '">' 87 + G.badge 88 + "</span> " 89 } 90 y 91 .append('<span class="legend-' 92 + G.type 93 + '">' 94 + D 95 + F 96 + "</span>") 97 } 98 break; 99 case "block": 100 if (F !== "") { 101 F = "<span>" + F 102 + "</span>" 103 } 104 if (typeof (G.classname) === "undefined") { 105 var C = "event" 106 } else { 107 var C = "event-styled " 108 + G.classname 109 } 110 y 111 .append('<span class="legend-' 112 + G.type 113 + '"><ul class="legend"><li class="' 114 + C 115 + '"></li></u>' 116 + F 117 + "</span>"); 118 break; 119 case "list": 120 if ("list" in G 121 && typeof (G.list) == "object" 122 && G.list.length > 0) { 123 var B = $('<ul class="legend"></u>'); 124 $(G.list) 125 .each( 126 function( 127 J, 128 I) { 129 B 130 .append('<li class="' 131 + I 132 + '"></li>') 133 }); 134 y.append(B) 135 } 136 break; 137 case "spacer": 138 y 139 .append('<span class="legend-' 140 + G.type 141 + '"> </span>'); 142 break 143 } 144 } 145 } 146 }) 147 } 148 return y 149 } 150 function s(N, B, K, I) { 151 var J = N.data("navIcons"); 152 var G = $('<span><span class="glyphicon glyphicon-chevron-left"></span></span>'); 153 var H = $('<span><span class="glyphicon glyphicon-chevron-right"></span></span>'); 154 if (typeof (J) === "object") { 155 if ("prev" in J) { 156 G.html(J.prev) 157 } 158 if ("next" in J) { 159 H.html(J.next) 160 } 161 } 162 var M = N.data("showPrevious"); 163 if (typeof (M) === "number" || M === false) { 164 M = p(N.data("showPrevious"), true) 165 } 166 var L = $('<div class="calendar-month-navigation"></div>'); 167 L.attr("id", N.attr("id") + "_nav-prev"); 168 L.data("navigation", "prev"); 169 if (M !== false) { 170 prevMonth = (I - 1); 171 prevYear = K; 172 if (prevMonth == -1) { 173 prevYear = (prevYear - 1); 174 prevMonth = 11 175 } 176 L.data("to", { 177 year : prevYear, 178 month : (prevMonth + 1) 179 }); 180 L.append(G); 181 if (typeof (N.data("actionNavFunction")) === "function") { 182 L.click(N.data("actionNavFunction")) 183 } 184 L.click(function(P) { 185 w(N, B, prevYear, prevMonth) 186 }) 187 } 188 var F = N.data("showNext"); 189 if (typeof (F) === "number" || F === false) { 190 F = p(N.data("showNext"), false) 191 } 192 var D = $('<div class="calendar-month-navigation"></div>'); 193 D.attr("id", N.attr("id") + "_nav-next"); 194 D.data("navigation", "next"); 195 if (F !== false) { 196 nextMonth = (I + 1); 197 nextYear = K; 198 if (nextMonth == 12) { 199 nextYear = (nextYear + 1); 200 nextMonth = 0 201 } 202 D.data("to", { 203 year : nextYear, 204 month : (nextMonth + 1) 205 }); 206 D.append(H); 207 if (typeof (N.data("actionNavFunction")) === "function") { 208 D.click(N.data("actionNavFunction")) 209 } 210 D.click(function(P) { 211 w(N, B, nextYear, nextMonth) 212 }) 213 } 214 var O = N.data("monthLabels"); 215 var E = $("<th></th>").append(L); 216 var y = $("<th></th>").append(D); 217 var C = $("<span>" + O[I] + " " + K + "</span>"); 218 C.dblclick(function() { 219 var P = N.data("initDate"); 220 w(N, B, P.getFullYear(), P.getMonth()) 221 }); 222 var z = $('<th colspan="5"></th>'); 223 z.append(C); 224 var A = $('<tr class="calendar-month-header"></tr>'); 225 A.append(E, z, y); 226 B.append(A); 227 return B 228 } 229 function e(B, D) { 230 if (B.data("showDays") === true) { 231 var y = B.data("weekStartsOn"); 232 var z = B.data("dowLabels"); 233 if (y === 0) { 234 var C = $.extend([], z); 235 var E = new Array(C.pop()); 236 z = E.concat(C) 237 } 238 var A = $('<tr class="calendar-dow-header"></tr>'); 239 $(z).each(function(F, G) { 240 A.append("<th>" + G + "</th>") 241 }); 242 D.append(A) 243 } 244 return D 245 } 246 function q(G, F, I, N) { 247 var E = G.data("ajaxSettings"); 248 var H = t(I, N); 249 var y = o(I, N); 250 var D = i(I, N, 1); 251 var P = i(I, N, y); 252 var C = 1; 253 var B = G.data("weekStartsOn"); 254 if (B === 0) { 255 if (P == 6) { 256 H++ 257 } 258 if (D == 6 && (P == 0 || P == 1 || P == 5)) { 259 H-- 260 } 261 D++; 262 if (D == 7) { 263 D = 0 264 } 265 } 266 for (var A = 0; A < H; A++) { 267 var z = $('<tr class="calendar-dow"></tr>'); 268 for (var K = 0; K < 7; K++) { 269 if (K < D || C > y) { 270 z.append("<td></td>") 271 } else { 272 var O = G.attr("id") + "_" + k(I, N, C); 273 var M = O + "_day"; 274 var L = $('<div id="' + M + '" class="day" >' 275 + C + "</div>"); 276 L.data("day", C); 277 if (G.data("showToday") === true) { 278 if (x(I, N, C)) { 279 L 280 .html('<span class="badge badge-today">' 281 + C + "</span>") 282 } 283 } 284 var J = $('<td id="' + O + '"></td>');
285 J.append(L); 286 J.data("date", k(I, N, C)); 287 J.data("hasEvent", false); 288 if (typeof (G.data("actionFunction")) === "function") { 289 J.addClass("dow-clickable"); 290 J.click(function() { 291 G.data("selectedDate", $(this).data( 292 "date")) 293 }); 294 J.click(G.data("actionFunction")) 295 } 296 z.append(J); 297 C++ 298 } 299 if (K == 6) { 300 D = 0 301 } 302 } 303 F.append(z) 304 } 305 return F 306 } 307 function h(B, H, G, J) { 308 var I = $('<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>'); 309 var A = $('<h4 class="modal-title" id="' + B 310 + '_modal_title">' + H + "</h4>"); 311 var K = $('<div class="modal-header"></div>'); 312 K.append(I); 313 K.append(A); 314 var F = $('<div class="modal-body" id="' + B 315 + '_modal_body">' + G + "</div>"); 316 var E = $('<div class="modal-footer" id="' + B 317 + '_modal_footer"></div>'); 318 if (typeof (J) !== "undefined") { 319 var z = $("<div>" + J + "</div>"); 320 E.append(z) 321 } 322 var C = $('<div class="modal-content"></div>'); 323 C.append(K); 324 C.append(F); 325 C.append(E); 326 var y = $('<div class="modal-dialog"></div>'); 327 y.append(C); 328 var D = $('<div class="modal fade" id="' 329 + B 330 + '_modal" tabindex="-1" role="dialog" aria-labelledby="' 331 + B + '_modal_title" aria-hidden="true"></div>'); 332 D.append(y); 333 D.data("dateId", B); 334 D.attr("dateId", B); 335 return D 336 } 337 function r(A, z, C) { 338 var y = A.data("jsonData"); 339 var B = A.data("ajaxSettings"); 340 A.data("events", false); 341 if (false !== y) { 342 return n(A) 343 } else { 344 if (false !== B) { 345 return u(A, z, C) 346 } 347 } 348 return true 349 } 350 function n(z) { 351 var y = z.data("jsonData"); 352 z.data("events", y); 353 f(z, "json"); 354 return true 355 } 356 function u(z, y, C) { 357 var B = z.data("ajaxSettings"); 358 if (typeof (B) != "object" || typeof (B.url) == "undefined") { 359 alert("Invalid calendar event settings"); 360 return false 361 } 362 var A = { 363 year : y, 364 month : (C + 1) 365 }; 366 $.ajax({ 367 type : "GET", 368 url : B.url, 369 data : A, 370 dataType : "json" 371 }).done(function(D) { 372 var E = []; 373 $.each(D, function(G, F) { 374 E.push(D[G]) 375 }); 376 z.data("events", E); 377 f(z, "ajax") 378 }); 379 return true 380 } 381 function f(B, A) { 382 var z = B.data("jsonData"); 383 var C = B.data("ajaxSettings"); 384 var y = B.data("events"); 385 if (y !== false) { 386 $(y) 387 .each( 388 function(H, J) { 389 var D = B.attr("id") + "_" + J.date; 390 var F = $("#" + D); 391 var K = $("#" + D + "_day"); 392 F.data("hasEvent", true); 393 if (typeof (J.title) !== "undefined") { 394 F.attr("title", J.title) 395 } 396 if (typeof (J.classname) === "undefined") { 397 F.addClass("event") 398 } else { 399 F.addClass("event-styled"); 400 K.addClass(J.classname) 401 } 402 if (typeof (J.badge) !== "undefined" 403 && J.badge !== false) { 404 var E = (J.badge === true) ? "" 405 : " badge-" + J.badge; 406 var G = K.data("day"); 407 K 408 .html('<span class="badge badge-event' 409 + E 410 + '">' 411 + G 412 + "</span>") 413 } 414 if (typeof (J.body) !== "undefined") { 415 var I = false; 416 if (A === "json" 417 && typeof (J.modal) !== "undefined" 418 && J.modal === true) { 419 I = true 420 } else { 421 if (A === "ajax" 422 && "modal" in C 423 && C.modal === true) { 424 I = true 425 } 426 } 427 if (I === true) { 428 F 429 .addClass("event-clickable"); 430 var L = h(D, J.title, 431 J.body, J.footer); 432 $("body").append(L); 433 $("#" + D) 434 .click( 435 function() { 436 $( 437 "#" 438 + D 439 + "_modal") 440 .modal() 441 }) 442 } 443 } 444 }) 445 } 446 } 447 function x(A, B, z) { 448 var C = new Date(); 449 var y = new Date(A, B, z); 450 return (y.toDateString() == C.toDateString()) 451 } 452 function k(z, A, y) { 453 d = (y < 10) ? "0" + y : y; 454 m = A + 1; 455 m = (m < 10) ? "0" + m : m; 456 return z + "-" + m + "-" + d 457 } 458 function i(A, B, z) { 459 var y = new Date(A, B, z, 0, 0, 0, 0); 460 var C = y.getDay(); 461 if (C == 0) { 462 C = 6 463 } else { 464 C-- 465 } 466 return C 467 } 468 function o(z, A) { 469 var y = 28; 470 while (v(z, A + 1, y + 1)) { 471 y++ 472 } 473 return y 474 } 475 function t(A, C) {
476 var y = o(A, C); 477 var E = i(A, C, 1); 478 var B = i(A, C, y); 479 var D = y; 480 var z = (E - B); 481 if (z > 0) { 482 D += z 483 } 484 return Math.ceil(D / 7) 485 } 486 function v(B, z, A) { 487 return z > 0 && z < 13 && B > 0 && B < 32768 && A > 0 488 && A <= (new Date(B, z, 0)).getDate() 489 } 490 function p(A, C) { 491 if (A === false) { 492 A = 0 493 } 494 var B = j.data("currDate"); 495 var z = j.data("initDate"); 496 var y; 497 y = (z.getFullYear() - B.getFullYear()) * 12; 498 y -= B.getMonth() + 1; 499 y += z.getMonth(); 500 if (C === true) { 501 if (y < (parseInt(A) - 1)) { 502 return true 503 } 504 } else { 505 if (y >= (0 - parseInt(A))) { 506 return true 507 } 508 } 509 return false 510 } 511 }); 512 return this 513}; 514$.fn.zabuto_calendar_defaults = function() { 515 var a = new Date(); 516 var c = a.getFullYear(); 517 var e = a.getMonth() + 1; 518 var b = { 519 language : false, 520 year : c, 521 month : e, 522 show_previous : true, 523 show_next : true, 524 cell_border : false, 525 today : false, 526 show_days : true, 527 weekstartson : 1, 528 nav_icon : false, 529 data : false, 530 ajax : false, 531 legend : false, 532 action : false, 533 action_nav : false 534 }; 535 return b 536}; 537$.fn.zabuto_calendar_language = function(a) { 538 if (typeof (a) == "undefined" || a === false) { 539 a = "en" 540 } 541 switch (a.toLowerCase()) { 542 case "de": 543 return { 544 month_labels : [ "Januar", "Februar", "März", "April", "Mai", 545 "Juni", "Juli", "August", "September", "Oktober", 546 "November", "Dezember" ], 547 dow_labels : [ "Mo", "Di", "Mi", "Do", "Fr", "Sa", "So" ] 548 }; 549 break; 550 case "en": 551 return { 552 month_labels : [ "January", "February", "March", "April", "May", 553 "June", "July", "August", "September", "October", 554 "November", "December" ], 555 dow_labels : [ "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" ] 556 }; 557 break; 558 case "es": 559 return { 560 month_labels : [ "Enero", "Febrero", "Marzo", "Abril", "Mayo", 561 "Junio", "Julio", "Agosto", "Septiembre", "Octubre", 562 "Noviembre", "Diciembre" ], 563 dow_labels : [ "Lu", "Ma", "Mi", "Ju", "Vi", "Sá", "Do" ] 564 }; 565 break; 566 case "gl": 567 return { 568 month_labels : [ "Xaneiro", "Febreiro", "Marzo", "Abril", "Maio", 569 "Xuño", "Xullo", "Agosto", "Setembro", "Outubro", 570 "Novembro", "Decembro" ], 571 dow_labels : [ "Lu", "Ma", "Mé", "Xo", "Ve", "Sá", "Do" ] 572 }; 573 break; 574 case "va": 575 return { 576 month_labels : [ "Gener", "Febrer", "Març", "Abril", "Maig", 577 "Juny", "Juliol", "Agost", "Setembre", "Octubre", 578 "Novembre", "Desembre" ], 579 dow_labels : [ "Dl", "Dt", "Dc", "Dj", "Dv", "Ds", "Dg" ] 580 }; 581 break; 582 case "ca": 583 return { 584 month_labels : [ "Gener", "Febrer", "Març", "Abril", "Maig", 585 "Juny", "Juliol", "Agost", "Setembre", "Octubre", 586 "Novembre", "Desembre" ], 587 dow_labels : [ "Dl", "Dt", "Dc", "Dj", "Dv", "Ds", "Dg" ] 588 }; 589 break; 590 591 592 case "fr": 593 return { 594 month_labels : [ "Janvier", "Février", "Mars", "Avril", "Mai", 595 "Juin", "Juillet", "Août", "Septembre", "Octobre", 596 "Novembre", "Décembre" ], 597 dow_labels : [ "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dim" ] 598 }; 599 break; 600 case "it": 601 return { 602 month_labels : [ "Gennaio", "Febbraio", "Marzo", "Aprile", 603 "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", 604 "Ottobre", "Novembre", "Dicembre" ], 605 dow_labels : [ "Lun", "Mar", "Mer", "Gio", "Ven", "Sab", "Dom" ] 606 }; 607 break; 608 case "nl": 609 return { 610 month_labels : [ "Januari", "Februari", "Maart", "April", "Mei", 611 "Juni", "Juli", "Augustus", "September", "Oktober", 612 "November", "December" ], 613 dow_labels : [ "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zo" ] 614 }; 615 break; 616 case "pt": 617 return { 618 month_labels : [ "Janeiro", "Fevereiro", "Marco", "Abril", "Maio", 619 "Junho", "Julho", "Agosto", "Setembro", "Outubro", 620 "Novembro", "Dezembro" ], 621 dow_labels : [ "S", "T", "Q", "Q", "S", "S", "D" ] 622 }; 623 break; 624 case "ru": 625 return { 626 month_labels : [ "ЯнваÑÑ", "ФевÑалÑ", "ÐаÑÑ", "ÐпÑелÑ", "Ðай", 627 "ÐÑнÑ", "ÐÑлÑ", "ÐвгÑÑÑ", "СенÑÑбÑÑ", "ÐкÑÑбÑÑ", "ÐоÑбÑÑ", 628 "ÐекабÑÑ" ], 629 dow_labels : [ "Ðн", "ÐÑ", "СÑ", "ЧÑ", "ÐÑ", "Сб", "ÐÑк" ] 630 }; 631 break; 632 case "se": 633 return { 634 month_labels : [ "Januari", "Februari", "Mars", "April", "Maj", 635 "Juni", "Juli", "Augusti", "September", "Oktober", 636 "November", "December" ], 637 dow_labels : [ "MÃ¥n", "Tis", "Ons", "Tor", "Fre", "Lör", "Sön" ] 638 }; 639 break; 640 case "tr": 641 return { 642 month_labels : [ "Ocak", "Åubat", "Mart", "Nisan", "Mayıs", 643 "Haziran", "Temmuz", "AÄustos", "Eylül", "Ekim", "Kasım", 644 "Aralık" ], 645 dow_labels : [ "Pts", "Salı", "Ãar", "Per", "Cuma", "Cts", "Paz" ] 646 }; 647 break 648 } 649};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.