Initial commit (history cleared)
CI / test (3.4.1) (push) Has been cancelled

This commit is contained in:
2026-04-29 11:21:39 +01:00
commit 298610b5f6
277 changed files with 30877 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
//= link_tree ../images
//= link_directory ../javascripts .js
//= link_directory ../stylesheets .css
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 509 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 393 KiB

Binary file not shown.
+1930
View File
File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 374 KiB

Binary file not shown.
Binary file not shown.
+501
View File
@@ -0,0 +1,501 @@
/* Use this script if you need to support IE 7 and IE 6. */
window.onload = function() {
function addIcon(el, entity) {
var html = el.innerHTML;
el.innerHTML = '<span style="font-family: \'icomoon\'">' + entity + '</span>' + html;
}
var icons = {
'icon-home' : '&#xe000;',
'icon-home-2' : '&#xe001;',
'icon-home-3' : '&#xe002;',
'icon-office' : '&#xe003;',
'icon-newspaper' : '&#xe004;',
'icon-pencil' : '&#xe005;',
'icon-pencil-2' : '&#xe006;',
'icon-quill' : '&#xe007;',
'icon-pen' : '&#xe008;',
'icon-blog' : '&#xe009;',
'icon-droplet' : '&#xe00a;',
'icon-paint-format' : '&#xe00b;',
'icon-image' : '&#xe00c;',
'icon-image-2' : '&#xe00d;',
'icon-images' : '&#xe00e;',
'icon-camera' : '&#xe00f;',
'icon-music' : '&#xe010;',
'icon-headphones' : '&#xe011;',
'icon-play' : '&#xe012;',
'icon-film' : '&#xe013;',
'icon-camera-2' : '&#xe014;',
'icon-dice' : '&#xe015;',
'icon-pacman' : '&#xe016;',
'icon-spades' : '&#xe017;',
'icon-clubs' : '&#xe018;',
'icon-diamonds' : '&#xe019;',
'icon-pawn' : '&#xe01a;',
'icon-bullhorn' : '&#xe01b;',
'icon-connection' : '&#xe01c;',
'icon-podcast' : '&#xe01d;',
'icon-feed' : '&#xe01e;',
'icon-book' : '&#xe01f;',
'icon-books' : '&#xe020;',
'icon-library' : '&#xe021;',
'icon-file' : '&#xe022;',
'icon-profile' : '&#xe023;',
'icon-file-2' : '&#xe024;',
'icon-file-3' : '&#xe025;',
'icon-file-4' : '&#xe026;',
'icon-copy' : '&#xe027;',
'icon-copy-2' : '&#xe028;',
'icon-copy-3' : '&#xe029;',
'icon-paste' : '&#xe02a;',
'icon-paste-2' : '&#xe02b;',
'icon-paste-3' : '&#xe02c;',
'icon-stack' : '&#xe02d;',
'icon-folder' : '&#xe02e;',
'icon-folder-open' : '&#xe02f;',
'icon-tag' : '&#xe030;',
'icon-tags' : '&#xe031;',
'icon-barcode' : '&#xe032;',
'icon-qrcode' : '&#xe033;',
'icon-ticket' : '&#xe034;',
'icon-cart' : '&#xe035;',
'icon-cart-2' : '&#xe036;',
'icon-cart-3' : '&#xe037;',
'icon-coin' : '&#xe038;',
'icon-credit' : '&#xe039;',
'icon-calculate' : '&#xe03a;',
'icon-support' : '&#xe03b;',
'icon-phone' : '&#xe03c;',
'icon-phone-hang-up' : '&#xe03d;',
'icon-address-book' : '&#xe03e;',
'icon-notebook' : '&#xe03f;',
'icon-envelop' : '&#xe040;',
'icon-pushpin' : '&#xe041;',
'icon-location' : '&#xe042;',
'icon-location-2' : '&#xe043;',
'icon-compass' : '&#xe044;',
'icon-map' : '&#xe045;',
'icon-map-2' : '&#xe046;',
'icon-history' : '&#xe047;',
'icon-clock' : '&#xe048;',
'icon-clock-2' : '&#xe049;',
'icon-alarm' : '&#xe04a;',
'icon-alarm-2' : '&#xe04b;',
'icon-bell' : '&#xe04c;',
'icon-stopwatch' : '&#xe04d;',
'icon-calendar' : '&#xe053;',
'icon-calendar-2' : '&#xe052;',
'icon-print' : '&#xe051;',
'icon-keyboard' : '&#xe050;',
'icon-screen' : '&#xe04f;',
'icon-laptop' : '&#xe04e;',
'icon-mobile' : '&#xe054;',
'icon-mobile-2' : '&#xe055;',
'icon-tablet' : '&#xe056;',
'icon-tv' : '&#xe057;',
'icon-cabinet' : '&#xe058;',
'icon-drawer' : '&#xe059;',
'icon-drawer-2' : '&#xe05a;',
'icon-drawer-3' : '&#xe05b;',
'icon-box-add' : '&#xe05c;',
'icon-box-remove' : '&#xe05d;',
'icon-download' : '&#xe05e;',
'icon-upload' : '&#xe05f;',
'icon-disk' : '&#xe060;',
'icon-storage' : '&#xe061;',
'icon-undo' : '&#xe062;',
'icon-redo' : '&#xe063;',
'icon-flip' : '&#xe064;',
'icon-flip-2' : '&#xe065;',
'icon-undo-2' : '&#xe066;',
'icon-redo-2' : '&#xe067;',
'icon-forward' : '&#xe068;',
'icon-reply' : '&#xe069;',
'icon-bubble' : '&#xe06a;',
'icon-bubbles' : '&#xe06b;',
'icon-bubbles-2' : '&#xe06c;',
'icon-bubble-2' : '&#xe06d;',
'icon-bubbles-3' : '&#xe06e;',
'icon-bubbles-4' : '&#xe06f;',
'icon-user' : '&#xe070;',
'icon-users' : '&#xe071;',
'icon-user-2' : '&#xe072;',
'icon-users-2' : '&#xe073;',
'icon-user-3' : '&#xe074;',
'icon-user-4' : '&#xe075;',
'icon-quotes-left' : '&#xe076;',
'icon-busy' : '&#xe077;',
'icon-spinner' : '&#xe078;',
'icon-spinner-2' : '&#xe079;',
'icon-spinner-3' : '&#xe07a;',
'icon-spinner-4' : '&#xe07b;',
'icon-spinner-5' : '&#xe07c;',
'icon-spinner-6' : '&#xe07d;',
'icon-binoculars' : '&#xe07e;',
'icon-search' : '&#xe07f;',
'icon-zoom-in' : '&#xe080;',
'icon-zoom-out' : '&#xe081;',
'icon-expand' : '&#xe082;',
'icon-contract' : '&#xe083;',
'icon-expand-2' : '&#xe084;',
'icon-contract-2' : '&#xe085;',
'icon-key' : '&#xe086;',
'icon-key-2' : '&#xe087;',
'icon-lock' : '&#xe088;',
'icon-lock-2' : '&#xe089;',
'icon-unlocked' : '&#xe08a;',
'icon-wrench' : '&#xe08b;',
'icon-settings' : '&#xe08c;',
'icon-equalizer' : '&#xe08d;',
'icon-cog' : '&#xe08e;',
'icon-cogs' : '&#xe08f;',
'icon-cog-2' : '&#xe090;',
'icon-hammer' : '&#xe091;',
'icon-wand' : '&#xe092;',
'icon-aid' : '&#xe093;',
'icon-bug' : '&#xe094;',
'icon-pie' : '&#xe095;',
'icon-stats' : '&#xe096;',
'icon-bars' : '&#xe097;',
'icon-bars-2' : '&#xe098;',
'icon-gift' : '&#xe099;',
'icon-trophy' : '&#xe09a;',
'icon-glass' : '&#xe09b;',
'icon-mug' : '&#xe09c;',
'icon-food' : '&#xe09d;',
'icon-leaf' : '&#xe09e;',
'icon-rocket' : '&#xe09f;',
'icon-meter' : '&#xe0a0;',
'icon-meter2' : '&#xe0a1;',
'icon-dashboard' : '&#xe0a2;',
'icon-hammer-2' : '&#xe0a3;',
'icon-fire' : '&#xe0a4;',
'icon-lab' : '&#xe0a5;',
'icon-magnet' : '&#xe0a6;',
'icon-remove' : '&#xe0a7;',
'icon-remove-2' : '&#xe0a8;',
'icon-briefcase' : '&#xe0a9;',
'icon-airplane' : '&#xe0aa;',
'icon-truck' : '&#xe0ab;',
'icon-road' : '&#xe0ac;',
'icon-accessibility' : '&#xe0ad;',
'icon-target' : '&#xe0ae;',
'icon-shield' : '&#xe0af;',
'icon-lightning' : '&#xe0b0;',
'icon-switch' : '&#xe0b1;',
'icon-power-cord' : '&#xe0b2;',
'icon-signup' : '&#xe0b3;',
'icon-list' : '&#xe0b4;',
'icon-list-2' : '&#xe0b5;',
'icon-numbered-list' : '&#xe0b6;',
'icon-menu' : '&#xe0b7;',
'icon-menu-2' : '&#xe0b8;',
'icon-tree' : '&#xe0b9;',
'icon-cloud' : '&#xe0ba;',
'icon-cloud-download' : '&#xe0bb;',
'icon-cloud-upload' : '&#xe0bc;',
'icon-download-2' : '&#xe0bd;',
'icon-upload-2' : '&#xe0be;',
'icon-download-3' : '&#xe0bf;',
'icon-upload-3' : '&#xe0c0;',
'icon-globe' : '&#xe0c1;',
'icon-earth' : '&#xe0c2;',
'icon-link' : '&#xe0c3;',
'icon-flag' : '&#xe0c4;',
'icon-attachment' : '&#xe0c5;',
'icon-eye' : '&#xe0c6;',
'icon-eye-blocked' : '&#xe0c7;',
'icon-eye-2' : '&#xe0c8;',
'icon-bookmark' : '&#xe0c9;',
'icon-bookmarks' : '&#xe0ca;',
'icon-brightness-medium' : '&#xe0cb;',
'icon-brightness-contrast' : '&#xe0cc;',
'icon-contrast' : '&#xe0cd;',
'icon-star' : '&#xe0ce;',
'icon-star-2' : '&#xe0cf;',
'icon-star-3' : '&#xe0d0;',
'icon-heart' : '&#xe0d1;',
'icon-heart-2' : '&#xe0d2;',
'icon-heart-broken' : '&#xe0d3;',
'icon-thumbs-up' : '&#xe0d4;',
'icon-thumbs-up-2' : '&#xe0d5;',
'icon-happy' : '&#xe0d6;',
'icon-happy-2' : '&#xe0d7;',
'icon-smiley' : '&#xe0d8;',
'icon-smiley-2' : '&#xe0d9;',
'icon-tongue' : '&#xe0da;',
'icon-tongue-2' : '&#xe0db;',
'icon-sad' : '&#xe0dc;',
'icon-sad-2' : '&#xe0dd;',
'icon-wink' : '&#xe0de;',
'icon-wink-2' : '&#xe0df;',
'icon-grin' : '&#xe0e0;',
'icon-grin-2' : '&#xe0e1;',
'icon-cool' : '&#xe0e2;',
'icon-cool-2' : '&#xe0e3;',
'icon-angry' : '&#xe0e4;',
'icon-angry-2' : '&#xe0e5;',
'icon-evil' : '&#xe0e6;',
'icon-evil-2' : '&#xe0e7;',
'icon-shocked' : '&#xe0e8;',
'icon-shocked-2' : '&#xe0e9;',
'icon-confused' : '&#xe0ea;',
'icon-confused-2' : '&#xe0eb;',
'icon-neutral' : '&#xe0ec;',
'icon-neutral-2' : '&#xe0ed;',
'icon-wondering' : '&#xe0ee;',
'icon-wondering-2' : '&#xe0ef;',
'icon-point-up' : '&#xe0f0;',
'icon-point-right' : '&#xe0f1;',
'icon-point-down' : '&#xe0f2;',
'icon-point-left' : '&#xe0f3;',
'icon-warning' : '&#xe0f4;',
'icon-notification' : '&#xe0f5;',
'icon-question' : '&#xe0f6;',
'icon-info' : '&#xe0f7;',
'icon-info-2' : '&#xe0f8;',
'icon-blocked' : '&#xe0f9;',
'icon-cancel-circle' : '&#xe0fa;',
'icon-checkmark-circle' : '&#xe0fb;',
'icon-spam' : '&#xe0fc;',
'icon-close' : '&#xe0fd;',
'icon-checkmark' : '&#xe0fe;',
'icon-checkmark-2' : '&#xe0ff;',
'icon-spell-check' : '&#xe100;',
'icon-minus' : '&#xe101;',
'icon-plus' : '&#xe102;',
'icon-enter' : '&#xe103;',
'icon-exit' : '&#xe104;',
'icon-play-2' : '&#xe105;',
'icon-pause' : '&#xe106;',
'icon-stop' : '&#xe107;',
'icon-backward' : '&#xe108;',
'icon-forward-2' : '&#xe109;',
'icon-play-3' : '&#xe10a;',
'icon-pause-2' : '&#xe10b;',
'icon-stop-2' : '&#xe10c;',
'icon-backward-2' : '&#xe10d;',
'icon-forward-3' : '&#xe10e;',
'icon-first' : '&#xe10f;',
'icon-last' : '&#xe110;',
'icon-previous' : '&#xe111;',
'icon-next' : '&#xe112;',
'icon-eject' : '&#xe113;',
'icon-volume-high' : '&#xe114;',
'icon-volume-medium' : '&#xe115;',
'icon-volume-low' : '&#xe116;',
'icon-volume-mute' : '&#xe117;',
'icon-volume-mute-2' : '&#xe118;',
'icon-volume-increase' : '&#xe119;',
'icon-volume-decrease' : '&#xe11a;',
'icon-loop' : '&#xe11b;',
'icon-loop-2' : '&#xe11c;',
'icon-loop-3' : '&#xe11d;',
'icon-shuffle' : '&#xe11e;',
'icon-arrow-up-left' : '&#xe11f;',
'icon-arrow-up' : '&#xe120;',
'icon-arrow-up-right' : '&#xe121;',
'icon-arrow-right' : '&#xe122;',
'icon-arrow-down-right' : '&#xe123;',
'icon-arrow-down' : '&#xe124;',
'icon-arrow-down-left' : '&#xe125;',
'icon-arrow-left' : '&#xe126;',
'icon-arrow-up-left-2' : '&#xe127;',
'icon-arrow-up-2' : '&#xe128;',
'icon-arrow-up-right-2' : '&#xe129;',
'icon-arrow-right-2' : '&#xe12a;',
'icon-arrow-down-right-2' : '&#xe12b;',
'icon-arrow-down-2' : '&#xe12c;',
'icon-arrow-down-left-2' : '&#xe12d;',
'icon-arrow-left-2' : '&#xe12e;',
'icon-arrow-up-left-3' : '&#xe12f;',
'icon-arrow-up-3' : '&#xe130;',
'icon-arrow-up-right-3' : '&#xe131;',
'icon-arrow-right-3' : '&#xe132;',
'icon-arrow-down-right-3' : '&#xe133;',
'icon-arrow-down-3' : '&#xe134;',
'icon-arrow-down-left-3' : '&#xe135;',
'icon-arrow-left-3' : '&#xe136;',
'icon-tab' : '&#xe137;',
'icon-checkbox-checked' : '&#xe138;',
'icon-checkbox-unchecked' : '&#xe139;',
'icon-checkbox-partial' : '&#xe13a;',
'icon-radio-checked' : '&#xe13b;',
'icon-radio-unchecked' : '&#xe13c;',
'icon-crop' : '&#xe13d;',
'icon-scissors' : '&#xe13e;',
'icon-filter' : '&#xe13f;',
'icon-filter-2' : '&#xe140;',
'icon-font' : '&#xe141;',
'icon-text-height' : '&#xe142;',
'icon-text-width' : '&#xe143;',
'icon-bold' : '&#xe144;',
'icon-underline' : '&#xe145;',
'icon-italic' : '&#xe146;',
'icon-strikethrough' : '&#xe147;',
'icon-omega' : '&#xe148;',
'icon-sigma' : '&#xe149;',
'icon-table' : '&#xe14a;',
'icon-table-2' : '&#xe14b;',
'icon-insert-template' : '&#xe14c;',
'icon-pilcrow' : '&#xe14d;',
'icon-left-to-right' : '&#xe14e;',
'icon-right-to-left' : '&#xe14f;',
'icon-paragraph-left' : '&#xe150;',
'icon-paragraph-center' : '&#xe151;',
'icon-paragraph-right' : '&#xe152;',
'icon-paragraph-justify' : '&#xe153;',
'icon-paragraph-left-2' : '&#xe154;',
'icon-paragraph-center-2' : '&#xe155;',
'icon-paragraph-right-2' : '&#xe156;',
'icon-paragraph-justify-2' : '&#xe157;',
'icon-indent-increase' : '&#xe158;',
'icon-indent-decrease' : '&#xe159;',
'icon-new-tab' : '&#xe15a;',
'icon-embed' : '&#xe15b;',
'icon-code' : '&#xe15c;',
'icon-console' : '&#xe15d;',
'icon-share' : '&#xe15e;',
'icon-mail' : '&#xe15f;',
'icon-mail-2' : '&#xe160;',
'icon-mail-3' : '&#xe161;',
'icon-mail-4' : '&#xe162;',
'icon-google' : '&#xe163;',
'icon-google-plus' : '&#xe164;',
'icon-google-plus-2' : '&#xe165;',
'icon-google-plus-3' : '&#xe166;',
'icon-google-plus-4' : '&#xe167;',
'icon-google-drive' : '&#xe168;',
'icon-facebook' : '&#xe169;',
'icon-facebook-2' : '&#xe16a;',
'icon-facebook-3' : '&#xe16b;',
'icon-instagram' : '&#xe16c;',
'icon-twitter' : '&#xe16d;',
'icon-twitter-2' : '&#xe16e;',
'icon-twitter-3' : '&#xe16f;',
'icon-feed-2' : '&#xe170;',
'icon-feed-3' : '&#xe171;',
'icon-feed-4' : '&#xe172;',
'icon-youtube' : '&#xe173;',
'icon-youtube-2' : '&#xe174;',
'icon-vimeo' : '&#xe175;',
'icon-vimeo2' : '&#xe176;',
'icon-vimeo-2' : '&#xe177;',
'icon-lanyrd' : '&#xe178;',
'icon-flickr' : '&#xe179;',
'icon-flickr-2' : '&#xe17a;',
'icon-flickr-3' : '&#xe17b;',
'icon-flickr-4' : '&#xe17c;',
'icon-picassa' : '&#xe17d;',
'icon-picassa-2' : '&#xe17e;',
'icon-dribbble' : '&#xe17f;',
'icon-dribbble-2' : '&#xe180;',
'icon-dribbble-3' : '&#xe181;',
'icon-forrst' : '&#xe182;',
'icon-forrst-2' : '&#xe183;',
'icon-deviantart' : '&#xe184;',
'icon-deviantart-2' : '&#xe185;',
'icon-steam' : '&#xe186;',
'icon-steam-2' : '&#xe187;',
'icon-github' : '&#xe188;',
'icon-github-2' : '&#xe189;',
'icon-github-3' : '&#xe18a;',
'icon-github-4' : '&#xe18b;',
'icon-github-5' : '&#xe18c;',
'icon-wordpress' : '&#xe18d;',
'icon-wordpress-2' : '&#xe18e;',
'icon-joomla' : '&#xe18f;',
'icon-blogger' : '&#xe190;',
'icon-blogger-2' : '&#xe191;',
'icon-tumblr' : '&#xe192;',
'icon-tumblr-2' : '&#xe193;',
'icon-yahoo' : '&#xe194;',
'icon-tux' : '&#xe195;',
'icon-apple' : '&#xe196;',
'icon-finder' : '&#xe197;',
'icon-android' : '&#xe198;',
'icon-windows' : '&#xe199;',
'icon-windows8' : '&#xe19a;',
'icon-soundcloud' : '&#xe19b;',
'icon-soundcloud-2' : '&#xe19c;',
'icon-skype' : '&#xe19d;',
'icon-reddit' : '&#xe19e;',
'icon-linkedin' : '&#xe19f;',
'icon-lastfm' : '&#xe1a0;',
'icon-lastfm-2' : '&#xe1a1;',
'icon-delicious' : '&#xe1a2;',
'icon-stumbleupon' : '&#xe1a3;',
'icon-stumbleupon-2' : '&#xe1a4;',
'icon-stackoverflow' : '&#xe1a5;',
'icon-pinterest' : '&#xe1a6;',
'icon-pinterest-2' : '&#xe1a7;',
'icon-xing' : '&#xe1a8;',
'icon-xing-2' : '&#xe1a9;',
'icon-flattr' : '&#xe1aa;',
'icon-foursquare' : '&#xe1ab;',
'icon-foursquare-2' : '&#xe1ac;',
'icon-paypal' : '&#xe1ad;',
'icon-paypal-2' : '&#xe1ae;',
'icon-paypal-3' : '&#xe1af;',
'icon-yelp' : '&#xe1b0;',
'icon-libreoffice' : '&#xe1b1;',
'icon-file-pdf' : '&#xe1b2;',
'icon-file-openoffice' : '&#xe1b3;',
'icon-file-word' : '&#xe1b4;',
'icon-file-excel' : '&#xe1b5;',
'icon-file-zip' : '&#xe1b6;',
'icon-file-powerpoint' : '&#xe1b7;',
'icon-file-xml' : '&#xe1b8;',
'icon-file-css' : '&#xe1b9;',
'icon-html5' : '&#xe1ba;',
'icon-html5-2' : '&#xe1bb;',
'icon-css3' : '&#xe1bc;',
'icon-chrome' : '&#xe1bd;',
'icon-firefox' : '&#xe1be;',
'icon-IE' : '&#xe1bf;',
'icon-opera' : '&#xe1c0;',
'icon-safari' : '&#xe1c1;',
'icon-IcoMoon' : '&#xe1c2;',
'icon-comment' : '&#xe1c3;',
'icon-mic' : '&#xe1c4;',
'icon-envelope' : '&#xe1c5;',
'icon-briefcase-2' : '&#xe1c6;',
'icon-cart-4' : '&#xe1c7;',
'icon-locked' : '&#xe1c8;',
'icon-apple-2' : '&#xe1c9;',
'icon-chart' : '&#xe1ca;',
'icon-warning-2' : '&#xe1cb;',
'icon-keyboard-2' : '&#xe1cc;',
'icon-stats-2' : '&#xe1cd;',
'icon-list-3' : '&#xe1ce;',
'icon-grid' : '&#xe1cf;',
'icon-address-book-2' : '&#xe1d0;',
'icon-left-quote-alt' : '&#xe1d1;',
'icon-right-quote-alt' : '&#xe1d2;',
'icon-umbrella' : '&#xe1d3;',
'icon-left-quote' : '&#xe1d4;',
'icon-right-quote' : '&#xe1d5;',
'icon-eyedropper' : '&#xe1d6;',
'icon-pen-alt-stroke' : '&#xe1d7;',
'icon-pen-alt-fill' : '&#xe1d8;',
'icon-unlock-fill' : '&#xe1d9;',
'icon-cloudy' : '&#xe1da;',
'icon-cloud-2' : '&#xe1db;',
'icon-rainy' : '&#xe1dc;'
},
els = document.getElementsByTagName('*'),
i, attr, html, c, el;
for (i = 0; i < els.length; i += 1) {
el = els[i];
attr = el.getAttribute('data-icon');
if (attr) {
addIcon(el, attr);
}
c = el.className;
c = c.match(/icon-[^\s'"]+/);
if (c && icons[c[0]]) {
addIcon(el, icons[c[0]]);
}
}
};
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 199 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 177 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

+12
View File
File diff suppressed because one or more lines are too long
+60
View File
@@ -0,0 +1,60 @@
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require jquery.scrollUp.js
//= require bootstrap.js
//= require bootstrap-colorpicker.js
//= require date-picker/date.js
//= require date-picker/daterangepicker.js
//= require bootstrap-timepicker.js
//= require jquery.bootstrap.wizard.js
//= require tiny-scrollbar.js
//= require jquery.validate.min.js
//= require jquery.snippet.js
//= require jquery.easy-pie-chart.js
//= require jquery-fileupload/basic
//= require jquery-fileupload/vendor/tmpl
function rubyCodeFormat() {
$("pre.ruby").snippet("ruby",{style:"rand01",transparent:true,showNum:true});
$("pre.javascript").snippet("javascript",{style:"rand01",transparent:true,showNum:true});
}
function coerceToString(val) {
return String((val === null || val === undefined) ? '' : val);
}
var rAmp = /&/g,
rLt = /</g,
rGt = />/g,
rApos = /\'/g,
rQuot = /\"/g,
hChars = /[&<>\"\']/;
function hoganEscape(str) {
str = coerceToString(str);
return hChars.test(str) ?
str
.replace(rAmp, '&amp;')
.replace(rLt, '&lt;')
.replace(rGt, '&gt;')
.replace(rApos, '&#39;')
.replace(rQuot, '&quot;') :
str;
}
$(document).ready(function(){
rubyCodeFormat();
});
+540
View File
@@ -0,0 +1,540 @@
/* =========================================================
* bootstrap-colorpicker.js
* http://www.eyecon.ro/bootstrap-colorpicker
* =========================================================
* Copyright 2012 Stefan Petre
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================= */
!function( $ ) {
// Color object
var Color = function(val) {
this.value = {
h: 1,
s: 1,
b: 1,
a: 1
};
this.setColor(val);
};
Color.prototype = {
constructor: Color,
//parse a string to HSB
setColor: function(val){
val = val.toLowerCase();
var that = this;
$.each( CPGlobal.stringParsers, function( i, parser ) {
var match = parser.re.exec( val ),
values = match && parser.parse( match ),
space = parser.space||'rgba';
if ( values ) {
if (space === 'hsla') {
that.value = CPGlobal.RGBtoHSB.apply(null, CPGlobal.HSLtoRGB.apply(null, values));
} else {
that.value = CPGlobal.RGBtoHSB.apply(null, values);
}
return false;
}
});
},
setHue: function(h) {
this.value.h = 1- h;
},
setSaturation: function(s) {
this.value.s = s;
},
setLightness: function(b) {
this.value.b = 1- b;
},
setAlpha: function(a) {
this.value.a = parseInt((1 - a)*100, 10)/100;
},
// HSBtoRGB from RaphaelJS
// https://github.com/DmitryBaranovskiy/raphael/
toRGB: function(h, s, b, a) {
if (!h) {
h = this.value.h;
s = this.value.s;
b = this.value.b;
}
h *= 360;
var R, G, B, X, C;
h = (h % 360) / 60;
C = b * s;
X = C * (1 - Math.abs(h % 2 - 1));
R = G = B = b - C;
h = ~~h;
R += [C, X, 0, 0, X, C][h];
G += [X, C, C, X, 0, 0][h];
B += [0, 0, X, C, C, X][h];
return {
r: Math.round(R*255),
g: Math.round(G*255),
b: Math.round(B*255),
a: a||this.value.a
};
},
toHex: function(h, s, b, a){
var rgb = this.toRGB(h, s, b, a);
return '#'+((1 << 24) | (parseInt(rgb.r) << 16) | (parseInt(rgb.g) << 8) | parseInt(rgb.b)).toString(16).substr(1);
},
toHSL: function(h, s, b, a){
if (!h) {
h = this.value.h;
s = this.value.s;
b = this.value.b;
}
var H = h,
L = (2 - s) * b,
S = s * b;
if (L > 0 && L <= 1) {
S /= L;
} else {
S /= 2 - L;
}
L /= 2;
if (S > 1) {
S = 1;
}
return {
h: H,
s: S,
l: L,
a: a||this.value.a
};
}
};
// Picker object
var Colorpicker = function(element, options){
this.element = $(element);
var format = options.format||this.element.data('color-format')||'hex';
this.format = CPGlobal.translateFormats[format];
this.isInput = this.element.is('input');
this.component = this.element.is('.color') ? this.element.find('.add-on') : false;
this.picker = $(CPGlobal.template)
.appendTo('body')
.on('mousedown', $.proxy(this.mousedown, this));
if (this.isInput) {
this.element.on({
'focus': $.proxy(this.show, this),
'keyup': $.proxy(this.update, this)
});
} else if (this.component){
this.component.on({
'click': $.proxy(this.show, this)
});
} else {
this.element.on({
'click': $.proxy(this.show, this)
});
}
if (format === 'rgba' || format === 'hsla') {
this.picker.addClass('alpha');
this.alpha = this.picker.find('.colorpicker-alpha')[0].style;
}
if (this.component){
this.picker.find('.colorpicker-color').hide();
this.preview = this.element.find('i')[0].style;
} else {
this.preview = this.picker.find('div:last')[0].style;
}
this.base = this.picker.find('div:first')[0].style;
this.update();
};
Colorpicker.prototype = {
constructor: Colorpicker,
show: function(e) {
this.picker.show();
this.height = this.component ? this.component.outerHeight() : this.element.outerHeight();
this.place();
$(window).on('resize', $.proxy(this.place, this));
if (!this.isInput) {
if (e) {
e.stopPropagation();
e.preventDefault();
}
}
$(document).on({
'mousedown': $.proxy(this.hide, this)
});
this.element.trigger({
type: 'show',
color: this.color
});
},
update: function(){
this.color = new Color(this.isInput ? this.element.prop('value') : this.element.data('color'));
this.picker.find('i')
.eq(0).css({left: this.color.value.s*100, top: 100 - this.color.value.b*100}).end()
.eq(1).css('top', 100 * (1 - this.color.value.h)).end()
.eq(2).css('top', 100 * (1 - this.color.value.a));
this.previewColor();
},
setValue: function(newColor) {
this.color = new Color(newColor);
this.picker.find('i')
.eq(0).css({left: this.color.value.s*100, top: 100 - this.color.value.b*100}).end()
.eq(1).css('top', 100 * (1 - this.color.value.h)).end()
.eq(2).css('top', 100 * (1 - this.color.value.a));
this.previewColor();
this.element.trigger({
type: 'changeColor',
color: this.color
});
},
hide: function(){
this.picker.hide();
$(window).off('resize', this.place);
if (!this.isInput) {
$(document).off({
'mousedown': this.hide
});
if (this.component){
this.element.find('input').prop('value', this.format.call(this));
}
this.element.data('color', this.format.call(this));
} else {
this.element.prop('value', this.format.call(this));
}
this.element.trigger({
type: 'hide',
color: this.color
});
},
place: function(){
var offset = this.component ? this.component.offset() : this.element.offset();
this.picker.css({
top: offset.top + this.height,
left: offset.left
});
},
//preview color change
previewColor: function(){
try {
this.preview.backgroundColor = this.format.call(this);
} catch(e) {
this.preview.backgroundColor = this.color.toHex();
}
//set the color for brightness/saturation slider
this.base.backgroundColor = this.color.toHex(this.color.value.h, 1, 1, 1);
//set te color for alpha slider
if (this.alpha) {
this.alpha.backgroundColor = this.color.toHex();
}
},
pointer: null,
slider: null,
mousedown: function(e){
e.stopPropagation();
e.preventDefault();
var target = $(e.target);
//detect the slider and set the limits and callbacks
var zone = target.closest('div');
if (!zone.is('.colorpicker')) {
if (zone.is('.colorpicker-saturation')) {
this.slider = $.extend({}, CPGlobal.sliders.saturation);
}
else if (zone.is('.colorpicker-hue')) {
this.slider = $.extend({}, CPGlobal.sliders.hue);
}
else if (zone.is('.colorpicker-alpha')) {
this.slider = $.extend({}, CPGlobal.sliders.alpha);
} else {
return false;
}
var offset = zone.offset();
//reference to knob's style
this.slider.knob = zone.find('i')[0].style;
this.slider.left = e.pageX - offset.left;
this.slider.top = e.pageY - offset.top;
this.pointer = {
left: e.pageX,
top: e.pageY
};
//trigger mousemove to move the knob to the current position
$(document).on({
mousemove: $.proxy(this.mousemove, this),
mouseup: $.proxy(this.mouseup, this)
}).trigger('mousemove');
}
return false;
},
mousemove: function(e){
e.stopPropagation();
e.preventDefault();
var left = Math.max(
0,
Math.min(
this.slider.maxLeft,
this.slider.left + ((e.pageX||this.pointer.left) - this.pointer.left)
)
);
var top = Math.max(
0,
Math.min(
this.slider.maxTop,
this.slider.top + ((e.pageY||this.pointer.top) - this.pointer.top)
)
);
this.slider.knob.left = left + 'px';
this.slider.knob.top = top + 'px';
if (this.slider.callLeft) {
this.color[this.slider.callLeft].call(this.color, left/100);
}
if (this.slider.callTop) {
this.color[this.slider.callTop].call(this.color, top/100);
}
this.previewColor();
this.element.trigger({
type: 'changeColor',
color: this.color
});
return false;
},
mouseup: function(e){
e.stopPropagation();
e.preventDefault();
$(document).off({
mousemove: this.mousemove,
mouseup: this.mouseup
});
return false;
}
}
$.fn.colorpicker = function ( option ) {
return this.each(function () {
var $this = $(this),
data = $this.data('colorpicker'),
options = typeof option === 'object' && option;
if (!data) {
$this.data('colorpicker', (data = new Colorpicker(this, $.extend({}, $.fn.colorpicker.defaults,options))));
}
if (typeof option === 'string') data[option]();
});
};
$.fn.colorpicker.defaults = {
};
$.fn.colorpicker.Constructor = Colorpicker;
var CPGlobal = {
// translate a format from Color object to a string
translateFormats: {
'rgb': function(){
var rgb = this.color.toRGB();
return 'rgb('+rgb.r+','+rgb.g+','+rgb.b+')';
},
'rgba': function(){
var rgb = this.color.toRGB();
return 'rgba('+rgb.r+','+rgb.g+','+rgb.b+','+rgb.a+')';
},
'hsl': function(){
var hsl = this.color.toHSL();
return 'hsl('+Math.round(hsl.h*360)+','+Math.round(hsl.s*100)+'%,'+Math.round(hsl.l*100)+'%)';
},
'hsla': function(){
var hsl = this.color.toHSL();
return 'hsla('+Math.round(hsl.h*360)+','+Math.round(hsl.s*100)+'%,'+Math.round(hsl.l*100)+'%,'+hsl.a+')';
},
'hex': function(){
return this.color.toHex();
}
},
sliders: {
saturation: {
maxLeft: 100,
maxTop: 100,
callLeft: 'setSaturation',
callTop: 'setLightness'
},
hue: {
maxLeft: 0,
maxTop: 100,
callLeft: false,
callTop: 'setHue'
},
alpha: {
maxLeft: 0,
maxTop: 100,
callLeft: false,
callTop: 'setAlpha'
}
},
// HSBtoRGB from RaphaelJS
// https://github.com/DmitryBaranovskiy/raphael/
RGBtoHSB: function (r, g, b, a){
r /= 255;
g /= 255;
b /= 255;
var H, S, V, C;
V = Math.max(r, g, b);
C = V - Math.min(r, g, b);
H = (C === 0 ? null :
V == r ? (g - b) / C :
V == g ? (b - r) / C + 2 :
(r - g) / C + 4
);
H = ((H + 360) % 6) * 60 / 360;
S = C === 0 ? 0 : C / V;
return {h: H||1, s: S, b: V, a: a||1};
},
HueToRGB: function (p, q, h) {
if (h < 0)
h += 1;
else if (h > 1)
h -= 1;
if ((h * 6) < 1)
return p + (q - p) * h * 6;
else if ((h * 2) < 1)
return q;
else if ((h * 3) < 2)
return p + (q - p) * ((2 / 3) - h) * 6;
else
return p;
},
HSLtoRGB: function (h, s, l, a)
{
if (s < 0) {
s = 0;
}
var q;
if (l <= 0.5) {
q = l * (1 + s);
} else {
q = l + s - (l * s);
}
var p = 2 * l - q;
var tr = h + (1 / 3);
var tg = h;
var tb = h - (1 / 3);
var r = Math.round(CPGlobal.HueToRGB(p, q, tr) * 255);
var g = Math.round(CPGlobal.HueToRGB(p, q, tg) * 255);
var b = Math.round(CPGlobal.HueToRGB(p, q, tb) * 255);
return [r, g, b, a||1];
},
// a set of RE's that can match strings and generate color tuples.
// from John Resig color plugin
// https://github.com/jquery/jquery-color/
stringParsers: [
{
re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,
parse: function( execResult ) {
return [
execResult[ 1 ],
execResult[ 2 ],
execResult[ 3 ],
execResult[ 4 ]
];
}
}, {
re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,
parse: function( execResult ) {
return [
2.55 * execResult[1],
2.55 * execResult[2],
2.55 * execResult[3],
execResult[ 4 ]
];
}
}, {
re: /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,
parse: function( execResult ) {
return [
parseInt( execResult[ 1 ], 16 ),
parseInt( execResult[ 2 ], 16 ),
parseInt( execResult[ 3 ], 16 )
];
}
}, {
re: /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/,
parse: function( execResult ) {
return [
parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ),
parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ),
parseInt( execResult[ 3 ] + execResult[ 3 ], 16 )
];
}
}, {
re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,
space: 'hsla',
parse: function( execResult ) {
return [
execResult[1]/360,
execResult[2] / 100,
execResult[3] / 100,
execResult[4]
];
}
}
],
template: '<div class="colorpicker dropdown-menu">'+
'<div class="colorpicker-saturation"><i><b></b></i></div>'+
'<div class="colorpicker-hue"><i></i></div>'+
'<div class="colorpicker-alpha"><i></i></div>'+
'<div class="colorpicker-color"><div /></div>'+
'</div>'
};
}( window.jQuery )
File diff suppressed because one or more lines are too long
+78
View File
@@ -0,0 +1,78 @@
/*
* Bootstrap Image Gallery JS Example 2.9
* https://github.com/blueimp/Bootstrap-Image-Gallery
*
* Copyright 2012, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/MIT
*/
/*jslint unparam: true */
/*global window, document, $ */
$(function () {
'use strict';
// Start slideshow button:
$('#start-slideshow').button().click(function () {
var options = $(this).data(),
modal = $(options.target),
data = modal.data('modal');
if (data) {
$.extend(data.options, options);
} else {
options = $.extend(modal.data(), options);
}
modal.find('.modal-slideshow').find('i')
.removeClass('icon-play')
.addClass('icon-pause');
modal.modal(options);
});
// Toggle fullscreen button:
$('#toggle-fullscreen').button().click(function () {
var button = $(this),
root = document.documentElement;
if (!button.hasClass('active')) {
$('#modal-gallery').addClass('modal-fullscreen');
if (root.webkitRequestFullScreen) {
root.webkitRequestFullScreen(
window.Element.ALLOW_KEYBOARD_INPUT
);
} else if (root.mozRequestFullScreen) {
root.mozRequestFullScreen();
}
} else {
$('#modal-gallery').removeClass('modal-fullscreen');
(document.webkitCancelFullScreen ||
document.mozCancelFullScreen ||
$.noop).apply(document);
}
});
// Load images via flickr for demonstration purposes:
// $.ajax({
// url: 'http://api.flickr.com/services/rest/',
// data: {
// format: 'json',
// method: 'flickr.interestingness.getList',
// api_key: '7617adae70159d09ba78cfec73c13be3'
// },
// dataType: 'jsonp',
// jsonp: 'jsoncallback'
// }).done(function (data) {
// var gallery = $('#gallery'),
// url;
// $.each(data.photos.photo, function (index, photo) {
// url = 'http://farm' + photo.farm + '.static.flickr.com/' +
// photo.server + '/' + photo.id + '_' + photo.secret;
// $('<a data-gallery="gallery"/>')
// .append($('<img>').prop('src', url + '_s.jpg'))
// .prop('href', url + '_b.jpg')
// .prop('title', photo.title)
// .appendTo(gallery);
// });
// });
});
+399
View File
@@ -0,0 +1,399 @@
/*
* Bootstrap Image Gallery 2.10
* https://github.com/blueimp/Bootstrap-Image-Gallery
*
* Copyright 2011, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/MIT
*/
/*jslint nomen: true, regexp: true */
/*global define, window, document, jQuery */
(function (factory) {
'use strict';
if (typeof define === 'function' && define.amd) {
// Register as an anonymous AMD module:
define([
'jquery',
'load-image',
'bootstrap'
], factory);
} else {
// Browser globals:
factory(
window.jQuery,
window.loadImage
);
}
}(function ($, loadImage) {
'use strict';
// Bootstrap Image Gallery is an extension to the Modal dialog of Twitter's
// Bootstrap toolkit, to ease navigation between a set of gallery images.
// It features transition effects, fullscreen mode and slideshow functionality.
$.extend($.fn.modal.defaults, {
// Delegate to search gallery links from, can be anything that
// is accepted as parameter for $():
delegate: document,
// Selector for gallery links:
selector: null,
// The filter for the selected gallery links (e.g. set to ":odd" to
// filter out label and thumbnail linking twice to the same image):
filter: '*',
// The index of the first gallery image to show:
index: 0,
// The href of the first gallery image to show (overrides index):
href: null,
// The range of images around the current one to preload:
preloadRange: 2,
// Offset of image width to viewport width:
offsetWidth: 100,
// Offset of image height to viewport height:
offsetHeight: 200,
// Set to true to display images as canvas elements:
canvas: false,
// Shows the next image after the given time in ms (0 = disabled):
slideshow: 0,
// Defines the image division for previous/next clicks:
imageClickDivision: 0.5
});
var originalShow = $.fn.modal.Constructor.prototype.show,
originalHide = $.fn.modal.Constructor.prototype.hide;
$.extend($.fn.modal.Constructor.prototype, {
initLinks: function () {
var $this = this,
options = this.options,
selector = options.selector ||
'a[data-target=' + options.target + ']';
this.$links = $(options.delegate).find(selector)
.filter(options.filter).each(function (index) {
if ($this.getUrl(this) === options.href) {
options.index = index;
}
});
if (!this.$links[options.index]) {
options.index = 0;
}
},
getUrl: function (element) {
return element.href || $(element).data('href');
},
getDownloadUrl: function (element) {
return $(element).data('download');
},
startSlideShow: function () {
var $this = this;
if (this.options.slideshow) {
this._slideShow = window.setTimeout(
function () {
$this.next();
},
this.options.slideshow
);
}
},
stopSlideShow: function () {
window.clearTimeout(this._slideShow);
},
toggleSlideShow: function () {
var node = this.$element.find('.modal-slideshow');
if (this.options.slideshow) {
this.options.slideshow = 0;
this.stopSlideShow();
} else {
this.options.slideshow = node.data('slideshow') || 5000;
this.startSlideShow();
}
node.find('i').toggleClass('icon-play icon-pause');
},
preloadImages: function () {
var options = this.options,
range = options.index + options.preloadRange + 1,
link,
i;
for (i = options.index - options.preloadRange; i < range; i += 1) {
link = this.$links[i];
if (link && i !== options.index) {
$('<img>').prop('src', this.getUrl(link));
}
}
},
loadImage: function () {
var $this = this,
modal = this.$element,
index = this.options.index,
url = this.getUrl(this.$links[index]),
download = this.getDownloadUrl(this.$links[index]),
oldImg;
this.abortLoad();
this.stopSlideShow();
modal.trigger('beforeLoad');
// The timeout prevents displaying a loading status,
// if the image has already been loaded:
this._loadingTimeout = window.setTimeout(function () {
modal.addClass('modal-loading');
}, 100);
oldImg = modal.find('.modal-image').children().removeClass('in');
// The timeout allows transition effects to finish:
window.setTimeout(function () {
oldImg.remove();
}, 3000);
modal.find('.modal-title').text(this.$links[index].title);
modal.find('.modal-download').prop(
'href',
download || url
);
this._loadingImage = loadImage(
url,
function (img) {
$this.img = img;
window.clearTimeout($this._loadingTimeout);
modal.removeClass('modal-loading');
modal.trigger('load');
$this.showImage(img);
$this.startSlideShow();
},
this._loadImageOptions
);
this.preloadImages();
},
showImage: function (img) {
var modal = this.$element,
transition = $.support.transition && modal.hasClass('fade'),
method = transition ? modal.animate : modal.css,
modalImage = modal.find('.modal-image'),
clone,
forceReflow;
modalImage.css({
width: img.width,
height: img.height
});
modal.find('.modal-title').css({ width: Math.max(img.width, 380) });
if (transition) {
clone = modal.clone().hide().appendTo(document.body);
}
if ($(window).width() > 767) {
method.call(modal.stop(), {
'margin-top': -((clone || modal).outerHeight() / 2),
'margin-left': -((clone || modal).outerWidth() / 2)
});
} else {
modal.css({
top: ($(window).height() - (clone || modal).outerHeight()) / 2
});
}
if (clone) {
clone.remove();
}
modalImage.append(img);
forceReflow = img.offsetWidth;
modal.trigger('display');
if (transition) {
if (modal.is(':visible')) {
$(img).on(
$.support.transition.end,
function (e) {
// Make sure we don't respond to other transitions events
// in the container element, e.g. from button elements:
if (e.target === img) {
$(img).off($.support.transition.end);
modal.trigger('displayed');
}
}
).addClass('in');
} else {
$(img).addClass('in');
modal.one('shown', function () {
modal.trigger('displayed');
});
}
} else {
$(img).addClass('in');
modal.trigger('displayed');
}
},
abortLoad: function () {
if (this._loadingImage) {
this._loadingImage.onload = this._loadingImage.onerror = null;
}
window.clearTimeout(this._loadingTimeout);
},
prev: function () {
var options = this.options;
options.index -= 1;
if (options.index < 0) {
options.index = this.$links.length - 1;
}
this.loadImage();
},
next: function () {
var options = this.options;
options.index += 1;
if (options.index > this.$links.length - 1) {
options.index = 0;
}
this.loadImage();
},
keyHandler: function (e) {
switch (e.which) {
case 37: // left
case 38: // up
e.preventDefault();
this.prev();
break;
case 39: // right
case 40: // down
e.preventDefault();
this.next();
break;
}
},
wheelHandler: function (e) {
e.preventDefault();
e = e.originalEvent;
this._wheelCounter = this._wheelCounter || 0;
this._wheelCounter += (e.wheelDelta || e.detail || 0);
if ((e.wheelDelta && this._wheelCounter >= 120) ||
(!e.wheelDelta && this._wheelCounter < 0)) {
this.prev();
this._wheelCounter = 0;
} else if ((e.wheelDelta && this._wheelCounter <= -120) ||
(!e.wheelDelta && this._wheelCounter > 0)) {
this.next();
this._wheelCounter = 0;
}
},
initGalleryEvents: function () {
var $this = this,
modal = this.$element;
modal.find('.modal-image').on('click.modal-gallery', function (e) {
var modalImage = $(this);
if ($this.$links.length === 1) {
$this.hide();
} else {
if ((e.pageX - modalImage.offset().left) / modalImage.width() <
$this.options.imageClickDivision) {
$this.prev(e);
} else {
$this.next(e);
}
}
});
modal.find('.modal-prev').on('click.modal-gallery', function (e) {
$this.prev(e);
});
modal.find('.modal-next').on('click.modal-gallery', function (e) {
$this.next(e);
});
modal.find('.modal-slideshow').on('click.modal-gallery', function (e) {
$this.toggleSlideShow(e);
});
$(document)
.on('keydown.modal-gallery', function (e) {
$this.keyHandler(e);
})
.on(
'mousewheel.modal-gallery, DOMMouseScroll.modal-gallery',
function (e) {
$this.wheelHandler(e);
}
);
},
destroyGalleryEvents: function () {
var modal = this.$element;
this.abortLoad();
this.stopSlideShow();
modal.find('.modal-image, .modal-prev, .modal-next, .modal-slideshow')
.off('click.modal-gallery');
$(document)
.off('keydown.modal-gallery')
.off('mousewheel.modal-gallery, DOMMouseScroll.modal-gallery');
},
show: function () {
if (!this.isShown && this.$element.hasClass('modal-gallery')) {
var modal = this.$element,
options = this.options,
windowWidth = $(window).width(),
windowHeight = $(window).height();
if (modal.hasClass('modal-fullscreen')) {
this._loadImageOptions = {
maxWidth: windowWidth,
maxHeight: windowHeight,
canvas: options.canvas
};
if (modal.hasClass('modal-fullscreen-stretch')) {
this._loadImageOptions.minWidth = windowWidth;
this._loadImageOptions.minHeight = windowHeight;
}
} else {
this._loadImageOptions = {
maxWidth: windowWidth - options.offsetWidth,
maxHeight: windowHeight - options.offsetHeight,
canvas: options.canvas
};
}
if (windowWidth > 767) {
modal.css({
'margin-top': -(modal.outerHeight() / 2),
'margin-left': -(modal.outerWidth() / 2)
});
} else {
modal.css({
top: ($(window).height() - modal.outerHeight()) / 2
});
}
this.initGalleryEvents();
this.initLinks();
if (this.$links.length) {
modal.find('.modal-slideshow, .modal-prev, .modal-next')
.toggle(this.$links.length !== 1);
modal.toggleClass(
'modal-single',
this.$links.length === 1
);
this.loadImage();
}
}
originalShow.apply(this, arguments);
},
hide: function () {
if (this.isShown && this.$element.hasClass('modal-gallery')) {
this.options.delegate = document;
this.options.href = null;
this.destroyGalleryEvents();
}
originalHide.apply(this, arguments);
}
});
$(function () {
$(document.body).on(
'click.modal-gallery.data-api',
'[data-toggle="modal-gallery"]',
function (e) {
var $this = $(this),
options = $this.data(),
modal = $(options.target),
data = modal.data('modal'),
link;
if (!data) {
options = $.extend(modal.data(), options);
}
if (!options.selector) {
options.selector = 'a[data-gallery=gallery]';
}
link = $(e.target).closest(options.selector);
if (link.length && modal.length) {
e.preventDefault();
options.href = link.prop('href') || link.data('href');
options.delegate = link[0] !== this ? this : document;
if (data) {
$.extend(data.options, options);
}
modal.modal(options);
}
}
);
});
}));
+803
View File
@@ -0,0 +1,803 @@
/* =========================================================
* bootstrap-timepicker.js
* http://www.github.com/jdewit/bootstrap-timepicker
* =========================================================
* Copyright 2012
*
* Created By:
* Joris de Wit @joris_dewit
*
* Contributions By:
* Gilbert @mindeavor
* Koen Punt info@koenpunt.nl
* Nek
* Chris Martin
* Dominic Barnes contact@dominicbarnes.us
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================= */
!function($) {
"use strict"; // jshint ;_;
/* TIMEPICKER PUBLIC CLASS DEFINITION
* ================================== */
var Timepicker = function(element, options) {
this.$element = $(element);
this.options = $.extend({}, $.fn.timepicker.defaults, options, this.$element.data());
this.minuteStep = this.options.minuteStep || this.minuteStep;
this.secondStep = this.options.secondStep || this.secondStep;
this.showMeridian = this.options.showMeridian || this.showMeridian;
this.showSeconds = this.options.showSeconds || this.showSeconds;
this.showInputs = this.options.showInputs || this.showInputs;
this.disableFocus = this.options.disableFocus || this.disableFocus;
this.template = this.options.template || this.template;
this.modalBackdrop = this.options.modalBackdrop || this.modalBackdrop;
this.defaultTime = this.options.defaultTime || this.defaultTime;
this.open = false;
this.init();
};
Timepicker.prototype = {
constructor: Timepicker
, init: function () {
if (this.$element.parent().hasClass('input-append')) {
this.$element.parent('.input-append').find('.add-on').on('click', $.proxy(this.showWidget, this));
this.$element.on({
focus: $.proxy(this.highlightUnit, this),
click: $.proxy(this.highlightUnit, this),
keypress: $.proxy(this.elementKeypress, this),
blur: $.proxy(this.blurElement, this)
});
} else {
if (this.template) {
this.$element.on({
focus: $.proxy(this.showWidget, this),
click: $.proxy(this.showWidget, this),
blur: $.proxy(this.blurElement, this)
});
} else {
this.$element.on({
focus: $.proxy(this.highlightUnit, this),
click: $.proxy(this.highlightUnit, this),
keypress: $.proxy(this.elementKeypress, this),
blur: $.proxy(this.blurElement, this)
});
}
}
this.$widget = $(this.getTemplate()).appendTo('body');
this.$widget.on('click', $.proxy(this.widgetClick, this));
if (this.showInputs) {
this.$widget.find('input').on({
click: function() { this.select(); },
keypress: $.proxy(this.widgetKeypress, this),
change: $.proxy(this.updateFromWidgetInputs, this)
});
}
this.setDefaultTime(this.defaultTime);
}
, showWidget: function(e) {
e.stopPropagation();
e.preventDefault();
if (this.open) {
return;
}
this.$element.trigger('show');
if (this.disableFocus) {
this.$element.blur();
}
var pos = $.extend({}, this.$element.offset(), {
height: this.$element[0].offsetHeight
});
this.updateFromElementVal();
$('html')
.trigger('click.timepicker.data-api')
.one('click.timepicker.data-api', $.proxy(this.hideWidget, this));
if (this.template === 'modal') {
this.$widget.modal('show').on('hidden', $.proxy(this.hideWidget, this));
} else {
this.$widget.css({
top: pos.top + pos.height
, left: pos.left
})
if (!this.open) {
this.$widget.addClass('open');
}
}
this.open = true;
this.$element.trigger('shown');
}
, hideWidget: function(){
this.$element.trigger('hide');
if (this.template === 'modal') {
this.$widget.modal('hide');
} else {
this.$widget.removeClass('open');
}
this.open = false;
this.$element.trigger('hidden');
}
, widgetClick: function(e) {
e.stopPropagation();
e.preventDefault();
var action = $(e.target).closest('a').data('action');
if (action) {
this[action]();
this.update();
}
}
, widgetKeypress: function(e) {
var input = $(e.target).closest('input').attr('name');
switch (e.keyCode) {
case 9: //tab
if (this.showMeridian) {
if (input == 'meridian') {
this.hideWidget();
}
} else {
if (this.showSeconds) {
if (input == 'second') {
this.hideWidget();
}
} else {
if (input == 'minute') {
this.hideWidget();
}
}
}
break;
case 27: // escape
this.hideWidget();
break;
case 38: // up arrow
switch (input) {
case 'hour':
this.incrementHour();
break;
case 'minute':
this.incrementMinute();
break;
case 'second':
this.incrementSecond();
break;
case 'meridian':
this.toggleMeridian();
break;
}
this.update();
break;
case 40: // down arrow
switch (input) {
case 'hour':
this.decrementHour();
break;
case 'minute':
this.decrementMinute();
break;
case 'second':
this.decrementSecond();
break;
case 'meridian':
this.toggleMeridian();
break;
}
this.update();
break;
}
}
, elementKeypress: function(e) {
var input = this.$element.get(0);
switch (e.keyCode) {
case 0: //input
break;
case 9: //tab
this.updateFromElementVal();
if (this.showMeridian) {
if (this.highlightedUnit != 'meridian') {
e.preventDefault();
this.highlightNextUnit();
}
} else {
if (this.showSeconds) {
if (this.highlightedUnit != 'second') {
e.preventDefault();
this.highlightNextUnit();
}
} else {
if (this.highlightedUnit != 'minute') {
e.preventDefault();
this.highlightNextUnit();
}
}
}
break;
case 27: // escape
this.updateFromElementVal();
break;
case 37: // left arrow
this.updateFromElementVal();
this.highlightPrevUnit();
break;
case 38: // up arrow
switch (this.highlightedUnit) {
case 'hour':
this.incrementHour();
break;
case 'minute':
this.incrementMinute();
break;
case 'second':
this.incrementSecond();
break;
case 'meridian':
this.toggleMeridian();
break;
}
this.updateElement();
break;
case 39: // right arrow
this.updateFromElementVal();
this.highlightNextUnit();
break;
case 40: // down arrow
switch (this.highlightedUnit) {
case 'hour':
this.decrementHour();
break;
case 'minute':
this.decrementMinute();
break;
case 'second':
this.decrementSecond();
break;
case 'meridian':
this.toggleMeridian();
break;
}
this.updateElement();
break;
}
if (e.keyCode !== 0 && e.keyCode !== 8 && e.keyCode !== 9 && e.keyCode !== 46) {
e.preventDefault();
}
}
, setValues: function(time) {
if (this.showMeridian) {
var arr = time.split(' ');
var timeArray = arr[0].split(':');
this.meridian = arr[1];
} else {
var timeArray = time.split(':');
}
this.hour = parseInt(timeArray[0], 10);
this.minute = parseInt(timeArray[1], 10);
this.second = parseInt(timeArray[2], 10);
if (isNaN(this.hour)) {
this.hour = 0;
}
if (isNaN(this.minute)) {
this.minute = 0;
}
if (this.showMeridian) {
if (this.hour > 12) {
this.hour = 12;
} else if (this.hour < 1) {
this.hour = 1;
}
if (this.meridian == 'am' || this.meridian == 'a') {
this.meridian = 'AM';
} else if (this.meridian == 'pm' || this.meridian == 'p') {
this.meridian = 'PM';
}
if (this.meridian != 'AM' && this.meridian != 'PM') {
this.meridian = 'AM';
}
} else {
if (this.hour >= 24) {
this.hour = 23;
} else if (this.hour < 0) {
this.hour = 0;
}
}
if (this.minute < 0) {
this.minute = 0;
} else if (this.minute >= 60) {
this.minute = 59;
}
if (this.showSeconds) {
if (isNaN(this.second)) {
this.second = 0;
} else if (this.second < 0) {
this.second = 0;
} else if (this.second >= 60) {
this.second = 59;
}
}
if ( this.$element.val() != '' )
this.updateElement();
this.updateWidget();
}
, setMeridian: function(meridian) {
if (meridian == 'a' || meridian == 'am' || meridian == 'AM' ) {
this.meridian = 'AM';
} else if (meridian == 'p' || meridian == 'pm' || meridian == 'PM' ) {
this.meridian = 'PM';
} else {
this.updateWidget();
}
this.updateElement();
}
, setDefaultTime: function(defaultTime){
if (defaultTime) {
if (defaultTime === 'current') {
var dTime = new Date();
var hours = dTime.getHours();
var minutes = Math.floor(dTime.getMinutes() / this.minuteStep) * this.minuteStep;
var seconds = Math.floor(dTime.getSeconds() / this.secondStep) * this.secondStep;
var meridian = "AM";
if (this.showMeridian) {
if (hours === 0) {
hours = 12;
} else if (hours >= 12) {
if (hours > 12) {
hours = hours - 12;
}
meridian = "PM";
} else {
meridian = "AM";
}
}
this.hour = hours;
this.minute = minutes;
this.second = seconds;
this.meridian = meridian;
} else if (defaultTime === 'value') {
this.setValues(this.$element.val());
} else {
this.setValues(defaultTime);
}
if ( this.$element.val() != '' )
this.updateElement();
this.updateWidget();
} else {
this.hour = 0;
this.minute = 0;
this.second = 0;
}
}
, formatTime: function(hour, minute, second, meridian) {
hour = hour < 10 ? '0' + hour : hour;
minute = minute < 10 ? '0' + minute : minute;
second = second < 10 ? '0' + second : second;
return hour + ':' + minute + (this.showSeconds ? ':' + second : '') + (this.showMeridian ? ' ' + meridian : '');
}
, getTime: function() {
return this.formatTime(this.hour, this.minute, this.second, this.meridian);
}
, setTime: function(time) {
this.setValues(time);
this.update();
}
, update: function() {
this.updateElement();
this.updateWidget();
}
, blurElement: function() {
this.highlightedUnit = undefined;
this.updateFromElementVal();
}
, updateElement: function() {
var time = this.getTime();
this.$element.val(time).change();
switch (this.highlightedUnit) {
case 'hour':
this.highlightHour();
break;
case 'minute':
this.highlightMinute();
break;
case 'second':
this.highlightSecond();
break;
case 'meridian':
this.highlightMeridian();
break;
}
}
, updateWidget: function() {
if (this.showInputs) {
this.$widget.find('input.bootstrap-timepicker-hour').val(this.hour < 10 ? '0' + this.hour : this.hour);
this.$widget.find('input.bootstrap-timepicker-minute').val(this.minute < 10 ? '0' + this.minute : this.minute);
if (this.showSeconds) {
this.$widget.find('input.bootstrap-timepicker-second').val(this.second < 10 ? '0' + this.second : this.second);
}
if (this.showMeridian) {
this.$widget.find('input.bootstrap-timepicker-meridian').val(this.meridian);
}
} else {
this.$widget.find('span.bootstrap-timepicker-hour').text(this.hour);
this.$widget.find('span.bootstrap-timepicker-minute').text(this.minute < 10 ? '0' + this.minute : this.minute);
if (this.showSeconds) {
this.$widget.find('span.bootstrap-timepicker-second').text(this.second < 10 ? '0' + this.second : this.second);
}
if (this.showMeridian) {
this.$widget.find('span.bootstrap-timepicker-meridian').text(this.meridian);
}
}
}
, updateFromElementVal: function (e) {
var time = this.$element.val();
if (time) {
this.setValues(time);
this.updateWidget();
}
}
, updateFromWidgetInputs: function () {
var time = $('input.bootstrap-timepicker-hour', this.$widget).val() + ':' +
$('input.bootstrap-timepicker-minute', this.$widget).val() +
(this.showSeconds ?
':' + $('input.bootstrap-timepicker-second', this.$widget).val()
: '') +
(this.showMeridian ?
' ' + $('input.bootstrap-timepicker-meridian', this.$widget).val()
: '');
this.setValues(time);
}
, getCursorPosition: function() {
var input = this.$element.get(0);
if ('selectionStart' in input) {
// Standard-compliant browsers
return input.selectionStart;
} else if (document.selection) {
// IE fix
input.focus();
var sel = document.selection.createRange();
var selLen = document.selection.createRange().text.length;
sel.moveStart('character', - input.value.length);
return sel.text.length - selLen;
}
}
, highlightUnit: function () {
var input = this.$element.get(0);
this.position = this.getCursorPosition();
if (this.position >= 0 && this.position <= 2) {
this.highlightHour();
} else if (this.position >= 3 && this.position <= 5) {
this.highlightMinute();
} else if (this.position >= 6 && this.position <= 8) {
if (this.showSeconds) {
this.highlightSecond();
} else {
this.highlightMeridian();
}
} else if (this.position >= 9 && this.position <= 11) {
this.highlightMeridian();
}
}
, highlightNextUnit: function() {
switch (this.highlightedUnit) {
case 'hour':
this.highlightMinute();
break;
case 'minute':
if (this.showSeconds) {
this.highlightSecond();
} else {
this.highlightMeridian();
}
break;
case 'second':
this.highlightMeridian();
break;
case 'meridian':
this.highlightHour();
break;
}
}
, highlightPrevUnit: function() {
switch (this.highlightedUnit) {
case 'hour':
this.highlightMeridian();
break;
case 'minute':
this.highlightHour();
break;
case 'second':
this.highlightMinute();
break;
case 'meridian':
if (this.showSeconds) {
this.highlightSecond();
} else {
this.highlightMinute();
}
break;
}
}
, highlightHour: function() {
this.highlightedUnit = 'hour';
this.$element.get(0).setSelectionRange(0,2);
}
, highlightMinute: function() {
this.highlightedUnit = 'minute';
this.$element.get(0).setSelectionRange(3,5);
}
, highlightSecond: function() {
this.highlightedUnit = 'second';
this.$element.get(0).setSelectionRange(6,8);
}
, highlightMeridian: function() {
this.highlightedUnit = 'meridian';
if (this.showSeconds) {
this.$element.get(0).setSelectionRange(9,11);
} else {
this.$element.get(0).setSelectionRange(6,8);
}
}
, incrementHour: function() {
if (this.showMeridian) {
if (this.hour === 11) {
this.toggleMeridian();
} else if (this.hour === 12) {
return this.hour = 1;
}
}
if (this.hour === 23) {
return this.hour = 0;
}
this.hour = this.hour + 1;
}
, decrementHour: function() {
if (this.showMeridian) {
if (this.hour === 1) {
return this.hour = 12;
}
else if (this.hour === 12) {
this.toggleMeridian();
}
}
if (this.hour === 0) {
return this.hour = 23;
}
this.hour = this.hour - 1;
}
, incrementMinute: function() {
var newVal = this.minute + this.minuteStep - (this.minute % this.minuteStep);
if (newVal > 59) {
this.incrementHour();
this.minute = newVal - 60;
} else {
this.minute = newVal;
}
}
, decrementMinute: function() {
var newVal = this.minute - this.minuteStep;
if (newVal < 0) {
this.decrementHour();
this.minute = newVal + 60;
} else {
this.minute = newVal;
}
}
, incrementSecond: function() {
var newVal = this.second + this.secondStep - (this.second % this.secondStep);
if (newVal > 59) {
this.incrementMinute();
this.second = newVal - 60;
} else {
this.second = newVal;
}
}
, decrementSecond: function() {
var newVal = this.second - this.secondStep;
if (newVal < 0) {
this.decrementMinute();
this.second = newVal + 60;
} else {
this.second = newVal;
}
}
, toggleMeridian: function() {
this.meridian = this.meridian === 'AM' ? 'PM' : 'AM';
this.update();
}
, getTemplate: function() {
if (this.options.templates[this.options.template]) {
return this.options.templates[this.options.template];
}
if (this.showInputs) {
var hourTemplate = '<input type="text" name="hour" class="bootstrap-timepicker-hour" maxlength="2"/>';
var minuteTemplate = '<input type="text" name="minute" class="bootstrap-timepicker-minute" maxlength="2"/>';
var secondTemplate = '<input type="text" name="second" class="bootstrap-timepicker-second" maxlength="2"/>';
var meridianTemplate = '<input type="text" name="meridian" class="bootstrap-timepicker-meridian" maxlength="2"/>';
} else {
var hourTemplate = '<span class="bootstrap-timepicker-hour"></span>';
var minuteTemplate = '<span class="bootstrap-timepicker-minute"></span>';
var secondTemplate = '<span class="bootstrap-timepicker-second"></span>';
var meridianTemplate = '<span class="bootstrap-timepicker-meridian"></span>';
}
var templateContent = '<table class="'+ (this.showSeconds ? 'show-seconds' : '') +' '+ (this.showMeridian ? 'show-meridian' : '') +'">'+
'<tr>'+
'<td><a href="#" data-action="incrementHour"><i class="icon-chevron-up"></i></a></td>'+
'<td class="separator">&nbsp;</td>'+
'<td><a href="#" data-action="incrementMinute"><i class="icon-chevron-up"></i></a></td>'+
(this.showSeconds ?
'<td class="separator">&nbsp;</td>'+
'<td><a href="#" data-action="incrementSecond"><i class="icon-chevron-up"></i></a></td>'
: '') +
(this.showMeridian ?
'<td class="separator">&nbsp;</td>'+
'<td class="meridian-column"><a href="#" data-action="toggleMeridian"><i class="icon-chevron-up"></i></a></td>'
: '') +
'</tr>'+
'<tr>'+
'<td>'+ hourTemplate +'</td> '+
'<td class="separator">:</td>'+
'<td>'+ minuteTemplate +'</td> '+
(this.showSeconds ?
'<td class="separator">:</td>'+
'<td>'+ secondTemplate +'</td>'
: '') +
(this.showMeridian ?
'<td class="separator">&nbsp;</td>'+
'<td>'+ meridianTemplate +'</td>'
: '') +
'</tr>'+
'<tr>'+
'<td><a href="#" data-action="decrementHour"><i class="icon-chevron-down"></i></a></td>'+
'<td class="separator"></td>'+
'<td><a href="#" data-action="decrementMinute"><i class="icon-chevron-down"></i></a></td>'+
(this.showSeconds ?
'<td class="separator">&nbsp;</td>'+
'<td><a href="#" data-action="decrementSecond"><i class="icon-chevron-down"></i></a></td>'
: '') +
(this.showMeridian ?
'<td class="separator">&nbsp;</td>'+
'<td><a href="#" data-action="toggleMeridian"><i class="icon-chevron-down"></i></a></td>'
: '') +
'</tr>'+
'</table>';
var template;
switch(this.options.template) {
case 'modal':
template = '<div class="bootstrap-timepicker modal hide fade in" style="top: 30%; margin-top: 0; width: 200px; margin-left: -100px;" data-backdrop="'+ (this.modalBackdrop ? 'true' : 'false') +'">'+
'<div class="modal-header">'+
'<a href="#" class="close" aria-label="dismiss" data-dismiss="modal">×</a>'+
'<h4>Pick a Time</h4>'+
'</div>'+
'<div class="modal-content">'+
templateContent +
'</div>'+
'<div class="modal-footer">'+
'<a href="#" class="btn btn-primary" aria-label=dismiss" data-dismiss="modal">Ok</a>'+
'</div>'+
'</div>';
break;
case 'dropdown':
template = '<div class="bootstrap-timepicker dropdown-menu">'+
templateContent +
'</div>';
break;
}
return template;
}
};
/* TIMEPICKER PLUGIN DEFINITION
* =========================== */
$.fn.timepicker = function (option) {
return this.each(function () {
var $this = $(this)
, data = $this.data('timepicker')
, options = typeof option == 'object' && option;
if (!data) {
$this.data('timepicker', (data = new Timepicker(this, options)));
}
if (typeof option == 'string') {
data[option]();
}
})
}
$.fn.timepicker.defaults = {
minuteStep: 15
, secondStep: 15
, disableFocus: false
, defaultTime: 'current'
, showSeconds: false
, showInputs: true
, showMeridian: true
, template: 'dropdown'
, modalBackdrop: false
, templates: {} // set custom templates
}
$.fn.timepicker.Constructor = Timepicker
}(window.jQuery);
+2175
View File
File diff suppressed because it is too large Load Diff
+145
View File
@@ -0,0 +1,145 @@
/**
* @version: 1.0 Alpha-1
* @author: Coolite Inc. http://www.coolite.com/
* @date: 2008-05-13
* @copyright: Copyright (c) 2006-2008, Coolite Inc. (http://www.coolite.com/). All rights reserved.
* @license: Licensed under The MIT License. See http://www.datejs.com/license/.
* @website: http://www.datejs.com/
*/
Date.CultureInfo={name:"en-US",englishName:"English (United States)",nativeName:"English (United States)",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],abbreviatedDayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],shortestDayNames:["Su","Mo","Tu","We","Th","Fr","Sa"],firstLetterDayNames:["S","M","T","W","T","F","S"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],abbreviatedMonthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],amDesignator:"AM",pmDesignator:"PM",firstDayOfWeek:0,twoDigitYearMax:2029,dateElementOrder:"mdy",formatPatterns:{shortDate:"M/d/yyyy",longDate:"dddd, MMMM dd, yyyy",shortTime:"h:mm tt",longTime:"h:mm:ss tt",fullDateTime:"dddd, MMMM dd, yyyy h:mm:ss tt",sortableDateTime:"yyyy-MM-ddTHH:mm:ss",universalSortableDateTime:"yyyy-MM-dd HH:mm:ssZ",rfc1123:"ddd, dd MMM yyyy HH:mm:ss GMT",monthDay:"MMMM dd",yearMonth:"MMMM, yyyy"},regexPatterns:{jan:/^jan(uary)?/i,feb:/^feb(ruary)?/i,mar:/^mar(ch)?/i,apr:/^apr(il)?/i,may:/^may/i,jun:/^jun(e)?/i,jul:/^jul(y)?/i,aug:/^aug(ust)?/i,sep:/^sep(t(ember)?)?/i,oct:/^oct(ober)?/i,nov:/^nov(ember)?/i,dec:/^dec(ember)?/i,sun:/^su(n(day)?)?/i,mon:/^mo(n(day)?)?/i,tue:/^tu(e(s(day)?)?)?/i,wed:/^we(d(nesday)?)?/i,thu:/^th(u(r(s(day)?)?)?)?/i,fri:/^fr(i(day)?)?/i,sat:/^sa(t(urday)?)?/i,future:/^next/i,past:/^last|past|prev(ious)?/i,add:/^(\+|aft(er)?|from|hence)/i,subtract:/^(\-|bef(ore)?|ago)/i,yesterday:/^yes(terday)?/i,today:/^t(od(ay)?)?/i,tomorrow:/^tom(orrow)?/i,now:/^n(ow)?/i,millisecond:/^ms|milli(second)?s?/i,second:/^sec(ond)?s?/i,minute:/^mn|min(ute)?s?/i,hour:/^h(our)?s?/i,week:/^w(eek)?s?/i,month:/^m(onth)?s?/i,day:/^d(ay)?s?/i,year:/^y(ear)?s?/i,shortMeridian:/^(a|p)/i,longMeridian:/^(a\.?m?\.?|p\.?m?\.?)/i,timezone:/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt|utc)/i,ordinalSuffix:/^\s*(st|nd|rd|th)/i,timeContext:/^\s*(\:|a(?!u|p)|p)/i},timezones:[{name:"UTC",offset:"-000"},{name:"GMT",offset:"-000"},{name:"EST",offset:"-0500"},{name:"EDT",offset:"-0400"},{name:"CST",offset:"-0600"},{name:"CDT",offset:"-0500"},{name:"MST",offset:"-0700"},{name:"MDT",offset:"-0600"},{name:"PST",offset:"-0800"},{name:"PDT",offset:"-0700"}]};
(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,p=function(s,l){if(!l){l=2;}
return("000"+s).slice(l*-1);};$P.clearTime=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;};$P.setTimeToNow=function(){var n=new Date();this.setHours(n.getHours());this.setMinutes(n.getMinutes());this.setSeconds(n.getSeconds());this.setMilliseconds(n.getMilliseconds());return this;};$D.today=function(){return new Date().clearTime();};$D.compare=function(date1,date2){if(isNaN(date1)||isNaN(date2)){throw new Error(date1+" - "+date2);}else if(date1 instanceof Date&&date2 instanceof Date){return(date1<date2)?-1:(date1>date2)?1:0;}else{throw new TypeError(date1+" - "+date2);}};$D.equals=function(date1,date2){return(date1.compareTo(date2)===0);};$D.getDayNumberFromName=function(name){var n=$C.dayNames,m=$C.abbreviatedDayNames,o=$C.shortestDayNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s||o[i].toLowerCase()==s){return i;}}
return-1;};$D.getMonthNumberFromName=function(name){var n=$C.monthNames,m=$C.abbreviatedMonthNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s){return i;}}
return-1;};$D.isLeapYear=function(year){return((year%4===0&&year%100!==0)||year%400===0);};$D.getDaysInMonth=function(year,month){return[31,($D.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month];};$D.getTimezoneAbbreviation=function(offset){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].offset===offset){return z[i].name;}}
return null;};$D.getTimezoneOffset=function(name){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].name===name.toUpperCase()){return z[i].offset;}}
return null;};$P.clone=function(){return new Date(this.getTime());};$P.compareTo=function(date){return Date.compare(this,date);};$P.equals=function(date){return Date.equals(this,date||new Date());};$P.between=function(start,end){return this.getTime()>=start.getTime()&&this.getTime()<=end.getTime();};$P.isAfter=function(date){return this.compareTo(date||new Date())===1;};$P.isBefore=function(date){return(this.compareTo(date||new Date())===-1);};$P.isToday=function(){return this.isSameDay(new Date());};$P.isSameDay=function(date){return this.clone().clearTime().equals(date.clone().clearTime());};$P.addMilliseconds=function(value){this.setMilliseconds(this.getMilliseconds()+value);return this;};$P.addSeconds=function(value){return this.addMilliseconds(value*1000);};$P.addMinutes=function(value){return this.addMilliseconds(value*60000);};$P.addHours=function(value){return this.addMilliseconds(value*3600000);};$P.addDays=function(value){this.setDate(this.getDate()+value);return this;};$P.addWeeks=function(value){return this.addDays(value*7);};$P.addMonths=function(value){var n=this.getDate();this.setDate(1);this.setMonth(this.getMonth()+value);this.setDate(Math.min(n,$D.getDaysInMonth(this.getFullYear(),this.getMonth())));return this;};$P.addYears=function(value){return this.addMonths(value*12);};$P.add=function(config){if(typeof config=="number"){this._orient=config;return this;}
var x=config;if(x.milliseconds){this.addMilliseconds(x.milliseconds);}
if(x.seconds){this.addSeconds(x.seconds);}
if(x.minutes){this.addMinutes(x.minutes);}
if(x.hours){this.addHours(x.hours);}
if(x.weeks){this.addWeeks(x.weeks);}
if(x.months){this.addMonths(x.months);}
if(x.years){this.addYears(x.years);}
if(x.days){this.addDays(x.days);}
return this;};var $y,$m,$d;$P.getWeek=function(){var a,b,c,d,e,f,g,n,s,w;$y=(!$y)?this.getFullYear():$y;$m=(!$m)?this.getMonth()+1:$m;$d=(!$d)?this.getDate():$d;if($m<=2){a=$y-1;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=0;f=$d-1+(31*($m-1));}else{a=$y;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=s+1;f=$d+((153*($m-3)+2)/5)+58+s;}
g=(a+b)%7;d=(f+g-e)%7;n=(f+3-d)|0;if(n<0){w=53-((g-s)/5|0);}else if(n>364+s){w=1;}else{w=(n/7|0)+1;}
$y=$m=$d=null;return w;};$P.getISOWeek=function(){$y=this.getUTCFullYear();$m=this.getUTCMonth()+1;$d=this.getUTCDate();return p(this.getWeek());};$P.setWeek=function(n){return this.moveToDayOfWeek(1).addWeeks(n-this.getWeek());};$D._validate=function(n,min,max,name){if(typeof n=="undefined"){return false;}else if(typeof n!="number"){throw new TypeError(n+" is not a Number.");}else if(n<min||n>max){throw new RangeError(n+" is not a valid value for "+name+".");}
return true;};$D.validateMillisecond=function(value){return $D._validate(value,0,999,"millisecond");};$D.validateSecond=function(value){return $D._validate(value,0,59,"second");};$D.validateMinute=function(value){return $D._validate(value,0,59,"minute");};$D.validateHour=function(value){return $D._validate(value,0,23,"hour");};$D.validateDay=function(value,year,month){return $D._validate(value,1,$D.getDaysInMonth(year,month),"day");};$D.validateMonth=function(value){return $D._validate(value,0,11,"month");};$D.validateYear=function(value){return $D._validate(value,0,9999,"year");};$P.set=function(config){if($D.validateMillisecond(config.millisecond)){this.addMilliseconds(config.millisecond-this.getMilliseconds());}
if($D.validateSecond(config.second)){this.addSeconds(config.second-this.getSeconds());}
if($D.validateMinute(config.minute)){this.addMinutes(config.minute-this.getMinutes());}
if($D.validateHour(config.hour)){this.addHours(config.hour-this.getHours());}
if($D.validateMonth(config.month)){this.addMonths(config.month-this.getMonth());}
if($D.validateYear(config.year)){this.addYears(config.year-this.getFullYear());}
if($D.validateDay(config.day,this.getFullYear(),this.getMonth())){this.addDays(config.day-this.getDate());}
if(config.timezone){this.setTimezone(config.timezone);}
if(config.timezoneOffset){this.setTimezoneOffset(config.timezoneOffset);}
if(config.week&&$D._validate(config.week,0,53,"week")){this.setWeek(config.week);}
return this;};$P.moveToFirstDayOfMonth=function(){return this.set({day:1});};$P.moveToLastDayOfMonth=function(){return this.set({day:$D.getDaysInMonth(this.getFullYear(),this.getMonth())});};$P.moveToNthOccurrence=function(dayOfWeek,occurrence){var shift=0;if(occurrence>0){shift=occurrence-1;}
else if(occurrence===-1){this.moveToLastDayOfMonth();if(this.getDay()!==dayOfWeek){this.moveToDayOfWeek(dayOfWeek,-1);}
return this;}
return this.moveToFirstDayOfMonth().addDays(-1).moveToDayOfWeek(dayOfWeek,+1).addWeeks(shift);};$P.moveToDayOfWeek=function(dayOfWeek,orient){var diff=(dayOfWeek-this.getDay()+7*(orient||+1))%7;return this.addDays((diff===0)?diff+=7*(orient||+1):diff);};$P.moveToMonth=function(month,orient){var diff=(month-this.getMonth()+12*(orient||+1))%12;return this.addMonths((diff===0)?diff+=12*(orient||+1):diff);};$P.getOrdinalNumber=function(){return Math.ceil((this.clone().clearTime()-new Date(this.getFullYear(),0,1))/86400000)+1;};$P.getTimezone=function(){return $D.getTimezoneAbbreviation(this.getUTCOffset());};$P.setTimezoneOffset=function(offset){var here=this.getTimezoneOffset(),there=Number(offset)*-6/10;return this.addMinutes(there-here);};$P.setTimezone=function(offset){return this.setTimezoneOffset($D.getTimezoneOffset(offset));};$P.hasDaylightSavingTime=function(){return(Date.today().set({month:0,day:1}).getTimezoneOffset()!==Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.isDaylightSavingTime=function(){return(this.hasDaylightSavingTime()&&new Date().getTimezoneOffset()===Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.getUTCOffset=function(){var n=this.getTimezoneOffset()*-10/6,r;if(n<0){r=(n-10000).toString();return r.charAt(0)+r.substr(2);}else{r=(n+10000).toString();return"+"+r.substr(1);}};$P.getElapsed=function(date){return(date||new Date())-this;};if(!$P.toISOString){$P.toISOString=function(){function f(n){return n<10?'0'+n:n;}
return'"'+this.getUTCFullYear()+'-'+
f(this.getUTCMonth()+1)+'-'+
f(this.getUTCDate())+'T'+
f(this.getUTCHours())+':'+
f(this.getUTCMinutes())+':'+
f(this.getUTCSeconds())+'Z"';};}
$P._toString=$P.toString;$P.toString=function(format){var x=this;if(format&&format.length==1){var c=$C.formatPatterns;x.t=x.toString;switch(format){case"d":return x.t(c.shortDate);case"D":return x.t(c.longDate);case"F":return x.t(c.fullDateTime);case"m":return x.t(c.monthDay);case"r":return x.t(c.rfc1123);case"s":return x.t(c.sortableDateTime);case"t":return x.t(c.shortTime);case"T":return x.t(c.longTime);case"u":return x.t(c.universalSortableDateTime);case"y":return x.t(c.yearMonth);}}
var ord=function(n){switch(n*1){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}};return format?format.replace(/(\\)?(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|S)/g,function(m){if(m.charAt(0)==="\\"){return m.replace("\\","");}
x.h=x.getHours;switch(m){case"hh":return p(x.h()<13?(x.h()===0?12:x.h()):(x.h()-12));case"h":return x.h()<13?(x.h()===0?12:x.h()):(x.h()-12);case"HH":return p(x.h());case"H":return x.h();case"mm":return p(x.getMinutes());case"m":return x.getMinutes();case"ss":return p(x.getSeconds());case"s":return x.getSeconds();case"yyyy":return p(x.getFullYear(),4);case"yy":return p(x.getFullYear());case"dddd":return $C.dayNames[x.getDay()];case"ddd":return $C.abbreviatedDayNames[x.getDay()];case"dd":return p(x.getDate());case"d":return x.getDate();case"MMMM":return $C.monthNames[x.getMonth()];case"MMM":return $C.abbreviatedMonthNames[x.getMonth()];case"MM":return p((x.getMonth()+1));case"M":return x.getMonth()+1;case"t":return x.h()<12?$C.amDesignator.substring(0,1):$C.pmDesignator.substring(0,1);case"tt":return x.h()<12?$C.amDesignator:$C.pmDesignator;case"S":return ord(x.getDate());default:return m;}}):this._toString();};}());
(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,$N=Number.prototype;$P._orient=+1;$P._nth=null;$P._is=false;$P._same=false;$P._isSecond=false;$N._dateElement="day";$P.next=function(){this._orient=+1;return this;};$D.next=function(){return $D.today().next();};$P.last=$P.prev=$P.previous=function(){this._orient=-1;return this;};$D.last=$D.prev=$D.previous=function(){return $D.today().last();};$P.is=function(){this._is=true;return this;};$P.same=function(){this._same=true;this._isSecond=false;return this;};$P.today=function(){return this.same().day();};$P.weekday=function(){if(this._is){this._is=false;return(!this.is().sat()&&!this.is().sun());}
return false;};$P.at=function(time){return(typeof time==="string")?$D.parse(this.toString("d")+" "+time):this.set(time);};$N.fromNow=$N.after=function(date){var c={};c[this._dateElement]=this;return((!date)?new Date():date.clone()).add(c);};$N.ago=$N.before=function(date){var c={};c[this._dateElement]=this*-1;return((!date)?new Date():date.clone()).add(c);};var dx=("sunday monday tuesday wednesday thursday friday saturday").split(/\s/),mx=("january february march april may june july august september october november december").split(/\s/),px=("Millisecond Second Minute Hour Day Week Month Year").split(/\s/),pxf=("Milliseconds Seconds Minutes Hours Date Week Month FullYear").split(/\s/),nth=("final first second third fourth fifth").split(/\s/),de;$P.toObject=function(){var o={};for(var i=0;i<px.length;i++){o[px[i].toLowerCase()]=this["get"+pxf[i]]();}
return o;};$D.fromObject=function(config){config.week=null;return Date.today().set(config);};var df=function(n){return function(){if(this._is){this._is=false;return this.getDay()==n;}
if(this._nth!==null){if(this._isSecond){this.addSeconds(this._orient*-1);}
this._isSecond=false;var ntemp=this._nth;this._nth=null;var temp=this.clone().moveToLastDayOfMonth();this.moveToNthOccurrence(n,ntemp);if(this>temp){throw new RangeError($D.getDayName(n)+" does not occur "+ntemp+" times in the month of "+$D.getMonthName(temp.getMonth())+" "+temp.getFullYear()+".");}
return this;}
return this.moveToDayOfWeek(n,this._orient);};};var sdf=function(n){return function(){var t=$D.today(),shift=n-t.getDay();if(n===0&&$C.firstDayOfWeek===1&&t.getDay()!==0){shift=shift+7;}
return t.addDays(shift);};};for(var i=0;i<dx.length;i++){$D[dx[i].toUpperCase()]=$D[dx[i].toUpperCase().substring(0,3)]=i;$D[dx[i]]=$D[dx[i].substring(0,3)]=sdf(i);$P[dx[i]]=$P[dx[i].substring(0,3)]=df(i);}
var mf=function(n){return function(){if(this._is){this._is=false;return this.getMonth()===n;}
return this.moveToMonth(n,this._orient);};};var smf=function(n){return function(){return $D.today().set({month:n,day:1});};};for(var j=0;j<mx.length;j++){$D[mx[j].toUpperCase()]=$D[mx[j].toUpperCase().substring(0,3)]=j;$D[mx[j]]=$D[mx[j].substring(0,3)]=smf(j);$P[mx[j]]=$P[mx[j].substring(0,3)]=mf(j);}
var ef=function(j){return function(){if(this._isSecond){this._isSecond=false;return this;}
if(this._same){this._same=this._is=false;var o1=this.toObject(),o2=(arguments[0]||new Date()).toObject(),v="",k=j.toLowerCase();for(var m=(px.length-1);m>-1;m--){v=px[m].toLowerCase();if(o1[v]!=o2[v]){return false;}
if(k==v){break;}}
return true;}
if(j.substring(j.length-1)!="s"){j+="s";}
return this["add"+j](this._orient);};};var nf=function(n){return function(){this._dateElement=n;return this;};};for(var k=0;k<px.length;k++){de=px[k].toLowerCase();$P[de]=$P[de+"s"]=ef(px[k]);$N[de]=$N[de+"s"]=nf(de);}
$P._ss=ef("Second");var nthfn=function(n){return function(dayOfWeek){if(this._same){return this._ss(arguments[0]);}
if(dayOfWeek||dayOfWeek===0){return this.moveToNthOccurrence(dayOfWeek,n);}
this._nth=n;if(n===2&&(dayOfWeek===undefined||dayOfWeek===null)){this._isSecond=true;return this.addSeconds(this._orient);}
return this;};};for(var l=0;l<nth.length;l++){$P[nth[l]]=(l===0)?nthfn(-1):nthfn(l);}}());
(function(){Date.Parsing={Exception:function(s){this.message="Parse error at '"+s.substring(0,10)+" ...'";}};var $P=Date.Parsing;var _=$P.Operators={rtoken:function(r){return function(s){var mx=s.match(r);if(mx){return([mx[0],s.substring(mx[0].length)]);}else{throw new $P.Exception(s);}};},token:function(s){return function(s){return _.rtoken(new RegExp("^\s*"+s+"\s*"))(s);};},stoken:function(s){return _.rtoken(new RegExp("^"+s));},until:function(p){return function(s){var qx=[],rx=null;while(s.length){try{rx=p.call(this,s);}catch(e){qx.push(rx[0]);s=rx[1];continue;}
break;}
return[qx,s];};},many:function(p){return function(s){var rx=[],r=null;while(s.length){try{r=p.call(this,s);}catch(e){return[rx,s];}
rx.push(r[0]);s=r[1];}
return[rx,s];};},optional:function(p){return function(s){var r=null;try{r=p.call(this,s);}catch(e){return[null,s];}
return[r[0],r[1]];};},not:function(p){return function(s){try{p.call(this,s);}catch(e){return[null,s];}
throw new $P.Exception(s);};},ignore:function(p){return p?function(s){var r=null;r=p.call(this,s);return[null,r[1]];}:null;},product:function(){var px=arguments[0],qx=Array.prototype.slice.call(arguments,1),rx=[];for(var i=0;i<px.length;i++){rx.push(_.each(px[i],qx));}
return rx;},cache:function(rule){var cache={},r=null;return function(s){try{r=cache[s]=(cache[s]||rule.call(this,s));}catch(e){r=cache[s]=e;}
if(r instanceof $P.Exception){throw r;}else{return r;}};},any:function(){var px=arguments;return function(s){var r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
try{r=(px[i].call(this,s));}catch(e){r=null;}
if(r){return r;}}
throw new $P.Exception(s);};},each:function(){var px=arguments;return function(s){var rx=[],r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
try{r=(px[i].call(this,s));}catch(e){throw new $P.Exception(s);}
rx.push(r[0]);s=r[1];}
return[rx,s];};},all:function(){var px=arguments,_=_;return _.each(_.optional(px));},sequence:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;if(px.length==1){return px[0];}
return function(s){var r=null,q=null;var rx=[];for(var i=0;i<px.length;i++){try{r=px[i].call(this,s);}catch(e){break;}
rx.push(r[0]);try{q=d.call(this,r[1]);}catch(ex){q=null;break;}
s=q[1];}
if(!r){throw new $P.Exception(s);}
if(q){throw new $P.Exception(q[1]);}
if(c){try{r=c.call(this,r[1]);}catch(ey){throw new $P.Exception(r[1]);}}
return[rx,(r?r[1]:s)];};},between:function(d1,p,d2){d2=d2||d1;var _fn=_.each(_.ignore(d1),p,_.ignore(d2));return function(s){var rx=_fn.call(this,s);return[[rx[0][0],r[0][2]],rx[1]];};},list:function(p,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return(p instanceof Array?_.each(_.product(p.slice(0,-1),_.ignore(d)),p.slice(-1),_.ignore(c)):_.each(_.many(_.each(p,_.ignore(d))),px,_.ignore(c)));},set:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return function(s){var r=null,p=null,q=null,rx=null,best=[[],s],last=false;for(var i=0;i<px.length;i++){q=null;p=null;r=null;last=(px.length==1);try{r=px[i].call(this,s);}catch(e){continue;}
rx=[[r[0]],r[1]];if(r[1].length>0&&!last){try{q=d.call(this,r[1]);}catch(ex){last=true;}}else{last=true;}
if(!last&&q[1].length===0){last=true;}
if(!last){var qx=[];for(var j=0;j<px.length;j++){if(i!=j){qx.push(px[j]);}}
p=_.set(qx,d).call(this,q[1]);if(p[0].length>0){rx[0]=rx[0].concat(p[0]);rx[1]=p[1];}}
if(rx[1].length<best[1].length){best=rx;}
if(best[1].length===0){break;}}
if(best[0].length===0){return best;}
if(c){try{q=c.call(this,best[1]);}catch(ey){throw new $P.Exception(best[1]);}
best[1]=q[1];}
return best;};},forward:function(gr,fname){return function(s){return gr[fname].call(this,s);};},replace:function(rule,repl){return function(s){var r=rule.call(this,s);return[repl,r[1]];};},process:function(rule,fn){return function(s){var r=rule.call(this,s);return[fn.call(this,r[0]),r[1]];};},min:function(min,rule){return function(s){var rx=rule.call(this,s);if(rx[0].length<min){throw new $P.Exception(s);}
return rx;};}};var _generator=function(op){return function(){var args=null,rx=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments);}else if(arguments[0]instanceof Array){args=arguments[0];}
if(args){for(var i=0,px=args.shift();i<px.length;i++){args.unshift(px[i]);rx.push(op.apply(null,args));args.shift();return rx;}}else{return op.apply(null,arguments);}};};var gx="optional not ignore cache".split(/\s/);for(var i=0;i<gx.length;i++){_[gx[i]]=_generator(_[gx[i]]);}
var _vector=function(op){return function(){if(arguments[0]instanceof Array){return op.apply(null,arguments[0]);}else{return op.apply(null,arguments);}};};var vx="each any all".split(/\s/);for(var j=0;j<vx.length;j++){_[vx[j]]=_vector(_[vx[j]]);}}());(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo;var flattenAndCompact=function(ax){var rx=[];for(var i=0;i<ax.length;i++){if(ax[i]instanceof Array){rx=rx.concat(flattenAndCompact(ax[i]));}else{if(ax[i]){rx.push(ax[i]);}}}
return rx;};$D.Grammar={};$D.Translator={hour:function(s){return function(){this.hour=Number(s);};},minute:function(s){return function(){this.minute=Number(s);};},second:function(s){return function(){this.second=Number(s);};},meridian:function(s){return function(){this.meridian=s.slice(0,1).toLowerCase();};},timezone:function(s){return function(){var n=s.replace(/[^\d\+\-]/g,"");if(n.length){this.timezoneOffset=Number(n);}else{this.timezone=s.toLowerCase();}};},day:function(x){var s=x[0];return function(){this.day=Number(s.match(/\d+/)[0]);};},month:function(s){return function(){this.month=(s.length==3)?"jan feb mar apr may jun jul aug sep oct nov dec".indexOf(s)/4:Number(s)-1;};},year:function(s){return function(){var n=Number(s);this.year=((s.length>2)?n:(n+(((n+2000)<$C.twoDigitYearMax)?2000:1900)));};},rday:function(s){return function(){switch(s){case"yesterday":this.days=-1;break;case"tomorrow":this.days=1;break;case"today":this.days=0;break;case"now":this.days=0;this.now=true;break;}};},finishExact:function(x){x=(x instanceof Array)?x:[x];for(var i=0;i<x.length;i++){if(x[i]){x[i].call(this);}}
var now=new Date();if((this.hour||this.minute)&&(!this.month&&!this.year&&!this.day)){this.day=now.getDate();}
if(!this.year){this.year=now.getFullYear();}
if(!this.month&&this.month!==0){this.month=now.getMonth();}
if(!this.day){this.day=1;}
if(!this.hour){this.hour=0;}
if(!this.minute){this.minute=0;}
if(!this.second){this.second=0;}
if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
if(this.day>$D.getDaysInMonth(this.year,this.month)){throw new RangeError(this.day+" is not a valid value for days.");}
var r=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second);if(this.timezone){r.set({timezone:this.timezone});}else if(this.timezoneOffset){r.set({timezoneOffset:this.timezoneOffset});}
return r;},finish:function(x){x=(x instanceof Array)?flattenAndCompact(x):[x];if(x.length===0){return null;}
for(var i=0;i<x.length;i++){if(typeof x[i]=="function"){x[i].call(this);}}
var today=$D.today();if(this.now&&!this.unit&&!this.operator){return new Date();}else if(this.now){today=new Date();}
var expression=!!(this.days&&this.days!==null||this.orient||this.operator);var gap,mod,orient;orient=((this.orient=="past"||this.operator=="subtract")?-1:1);if(!this.now&&"hour minute second".indexOf(this.unit)!=-1){today.setTimeToNow();}
if(this.month||this.month===0){if("year day hour minute second".indexOf(this.unit)!=-1){this.value=this.month+1;this.month=null;expression=true;}}
if(!expression&&this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(!this.month){this.month=temp.getMonth();}
this.year=temp.getFullYear();}
if(expression&&this.weekday&&this.unit!="month"){this.unit="day";gap=($D.getDayNumberFromName(this.weekday)-today.getDay());mod=7;this.days=gap?((gap+(orient*mod))%mod):(orient*mod);}
if(this.month&&this.unit=="day"&&this.operator){this.value=(this.month+1);this.month=null;}
if(this.value!=null&&this.month!=null&&this.year!=null){this.day=this.value*1;}
if(this.month&&!this.day&&this.value){today.set({day:this.value*1});if(!expression){this.day=this.value*1;}}
if(!this.month&&this.value&&this.unit=="month"&&!this.now){this.month=this.value;expression=true;}
if(expression&&(this.month||this.month===0)&&this.unit!="year"){this.unit="month";gap=(this.month-today.getMonth());mod=12;this.months=gap?((gap+(orient*mod))%mod):(orient*mod);this.month=null;}
if(!this.unit){this.unit="day";}
if(!this.value&&this.operator&&this.operator!==null&&this[this.unit+"s"]&&this[this.unit+"s"]!==null){this[this.unit+"s"]=this[this.unit+"s"]+((this.operator=="add")?1:-1)+(this.value||0)*orient;}else if(this[this.unit+"s"]==null||this.operator!=null){if(!this.value){this.value=1;}
this[this.unit+"s"]=this.value*orient;}
if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
if(this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(temp.getMonth()!==today.getMonth()){this.month=temp.getMonth();}}
if((this.month||this.month===0)&&!this.day){this.day=1;}
if(!this.orient&&!this.operator&&this.unit=="week"&&this.value&&!this.day&&!this.month){return Date.today().setWeek(this.value);}
if(expression&&this.timezone&&this.day&&this.days){this.day=this.days;}
return(expression)?today.add(this):today.set(this);}};var _=$D.Parsing.Operators,g=$D.Grammar,t=$D.Translator,_fn;g.datePartDelimiter=_.rtoken(/^([\s\-\.\,\/\x27]+)/);g.timePartDelimiter=_.stoken(":");g.whiteSpace=_.rtoken(/^\s*/);g.generalDelimiter=_.rtoken(/^(([\s\,]|at|@|on)+)/);var _C={};g.ctoken=function(keys){var fn=_C[keys];if(!fn){var c=$C.regexPatterns;var kx=keys.split(/\s+/),px=[];for(var i=0;i<kx.length;i++){px.push(_.replace(_.rtoken(c[kx[i]]),kx[i]));}
fn=_C[keys]=_.any.apply(null,px);}
return fn;};g.ctoken2=function(key){return _.rtoken($C.regexPatterns[key]);};g.h=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2]|[1-9])/),t.hour));g.hh=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2])/),t.hour));g.H=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3]|[0-9])/),t.hour));g.HH=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3])/),t.hour));g.m=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.minute));g.mm=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.minute));g.s=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.second));g.ss=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.second));g.hms=_.cache(_.sequence([g.H,g.m,g.s],g.timePartDelimiter));g.t=_.cache(_.process(g.ctoken2("shortMeridian"),t.meridian));g.tt=_.cache(_.process(g.ctoken2("longMeridian"),t.meridian));g.z=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zz=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zzz=_.cache(_.process(g.ctoken2("timezone"),t.timezone));g.timeSuffix=_.each(_.ignore(g.whiteSpace),_.set([g.tt,g.zzz]));g.time=_.each(_.optional(_.ignore(_.stoken("T"))),g.hms,g.timeSuffix);g.d=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1]|\d)/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.dd=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1])/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.ddd=g.dddd=_.cache(_.process(g.ctoken("sun mon tue wed thu fri sat"),function(s){return function(){this.weekday=s;};}));g.M=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d|\d)/),t.month));g.MM=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d)/),t.month));g.MMM=g.MMMM=_.cache(_.process(g.ctoken("jan feb mar apr may jun jul aug sep oct nov dec"),t.month));g.y=_.cache(_.process(_.rtoken(/^(\d\d?)/),t.year));g.yy=_.cache(_.process(_.rtoken(/^(\d\d)/),t.year));g.yyy=_.cache(_.process(_.rtoken(/^(\d\d?\d?\d?)/),t.year));g.yyyy=_.cache(_.process(_.rtoken(/^(\d\d\d\d)/),t.year));_fn=function(){return _.each(_.any.apply(null,arguments),_.not(g.ctoken2("timeContext")));};g.day=_fn(g.d,g.dd);g.month=_fn(g.M,g.MMM);g.year=_fn(g.yyyy,g.yy);g.orientation=_.process(g.ctoken("past future"),function(s){return function(){this.orient=s;};});g.operator=_.process(g.ctoken("add subtract"),function(s){return function(){this.operator=s;};});g.rday=_.process(g.ctoken("yesterday tomorrow today now"),t.rday);g.unit=_.process(g.ctoken("second minute hour day week month year"),function(s){return function(){this.unit=s;};});g.value=_.process(_.rtoken(/^\d\d?(st|nd|rd|th)?/),function(s){return function(){this.value=s.replace(/\D/g,"");};});g.expression=_.set([g.rday,g.operator,g.value,g.unit,g.orientation,g.ddd,g.MMM]);_fn=function(){return _.set(arguments,g.datePartDelimiter);};g.mdy=_fn(g.ddd,g.month,g.day,g.year);g.ymd=_fn(g.ddd,g.year,g.month,g.day);g.dmy=_fn(g.ddd,g.day,g.month,g.year);g.date=function(s){return((g[$C.dateElementOrder]||g.mdy).call(this,s));};g.format=_.process(_.many(_.any(_.process(_.rtoken(/^(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?)/),function(fmt){if(g[fmt]){return g[fmt];}else{throw $D.Parsing.Exception(fmt);}}),_.process(_.rtoken(/^[^dMyhHmstz]+/),function(s){return _.ignore(_.stoken(s));}))),function(rules){return _.process(_.each.apply(null,rules),t.finishExact);});var _F={};var _get=function(f){return _F[f]=(_F[f]||g.format(f)[0]);};g.formats=function(fx){if(fx instanceof Array){var rx=[];for(var i=0;i<fx.length;i++){rx.push(_get(fx[i]));}
return _.any.apply(null,rx);}else{return _get(fx);}};g._formats=g.formats(["\"yyyy-MM-ddTHH:mm:ssZ\"","yyyy-MM-ddTHH:mm:ssZ","yyyy-MM-ddTHH:mm:ssz","yyyy-MM-ddTHH:mm:ss","yyyy-MM-ddTHH:mmZ","yyyy-MM-ddTHH:mmz","yyyy-MM-ddTHH:mm","ddd, MMM dd, yyyy H:mm:ss tt","ddd MMM d yyyy HH:mm:ss zzz","MMddyyyy","ddMMyyyy","Mddyyyy","ddMyyyy","Mdyyyy","dMyyyy","yyyy","Mdyy","dMyy","d"]);g._start=_.process(_.set([g.date,g.time,g.expression],g.generalDelimiter,g.whiteSpace),t.finish);g.start=function(s){try{var r=g._formats.call({},s);if(r[1].length===0){return r;}}catch(e){}
return g._start.call({},s);};$D._parse=$D.parse;$D.parse=function(s){var r=null;if(!s){return null;}
if(s instanceof Date){return s;}
try{r=$D.Grammar.start.call({},s.replace(/^\s*(\S*(\s+\S+)*)\s*$/,"$1"));}catch(e){return null;}
return((r[1].length===0)?r[0]:null);};$D.getParseFunction=function(fx){var fn=$D.Grammar.formats(fx);return function(s){var r=null;try{r=fn.call({},s);}catch(e){return null;}
return((r[1].length===0)?r[0]:null);};};$D.parseExact=function(s,fx){return $D.getParseFunction(fx)(s);};}());
+724
View File
@@ -0,0 +1,724 @@
/**
* @version: 1.1
* @author: Dan Grossman http://www.dangrossman.info/
* @date: 2013-03-04
* @copyright: Copyright (c) 2012 Dan Grossman. All rights reserved.
* @license: Licensed under Apache License v2.0. See http://www.apache.org/licenses/LICENSE-2.0
* @website: http://www.improvely.com/
*/
!function ($) {
var DateRangePicker = function (element, options, cb) {
var hasOptions = typeof options == 'object';
var localeObject;
//state
this.startDate = Date.today();
this.endDate = Date.today();
this.minDate = false;
this.maxDate = false;
this.changed = false;
this.cleared = false;
this.showDropdowns = false;
this.ranges = {};
this.dateLimit = false;
this.opens = 'right';
this.cb = function () { };
this.format = 'MM/dd/yyyy';
this.separator = ' - ';
this.showWeekNumbers = false;
this.buttonClasses = ['btn-success'];
this.applyClass = 'btn btn-small btn-success';
this.clearClass = 'btn btn-small';
this.locale = {
applyLabel: 'Apply',
clearLabel:"Clear",
fromLabel: 'From',
toLabel: 'To',
weekLabel: 'W',
customRangeLabel: 'Custom Range',
daysOfWeek: Date.CultureInfo.shortestDayNames,
monthNames: Date.CultureInfo.monthNames,
firstDay: 0
};
localeObject = this.locale;
this.leftCalendar = {
month: Date.today().set({ day: 1, month: this.startDate.getMonth(), year: this.startDate.getFullYear() }),
calendar: Array()
};
this.rightCalendar = {
month: Date.today().set({ day: 1, month: this.endDate.getMonth(), year: this.endDate.getFullYear() }),
calendar: Array()
};
//element that triggered the date range picker
this.element = $(element);
if (this.element.hasClass('pull-right'))
this.opens = 'left';
if (this.element.is('input')) {
this.element.on({
click: $.proxy(this.show, this),
focus: $.proxy(this.show, this)
});
} else {
this.element.on('click', $.proxy(this.show, this));
}
if (hasOptions) {
if(typeof options.locale == 'object') {
$.each(localeObject, function (property, value) {
localeObject[property] = options.locale[property] || value;
});
}
if (options.applyClass) {
this.applyClass = options.applyClass;
}
if (options.clearClass) {
this.clearClass = options.clearClass;
}
}
var DRPTemplate = '<div class="daterangepicker dropdown-menu">' +
'<div class="calendar left"></div>' +
'<div class="calendar right"></div>' +
'<div class="ranges">' +
'<div class="range_inputs">' +
'<div class="daterangepicker_start_input" style="float: left">' +
'<label for="daterangepicker_start">' + this.locale.fromLabel + '</label>' +
'<input class="input-mini" type="text" name="daterangepicker_start" value="" disabled="disabled" />' +
'</div>' +
'<div class="daterangepicker_end_input" style="float: left; padding-left: 11px">' +
'<label for="daterangepicker_end">' + this.locale.toLabel + '</label>' +
'<input class="input-mini" type="text" name="daterangepicker_end" value="" disabled="disabled" />' +
'</div>' +
'<button class="' + this.applyClass + ' applyBtn" disabled="disabled">' + this.locale.applyLabel + '</button>&nbsp;' +
'<button class="' + this.clearClass + ' clearBtn">' + this.locale.clearLabel + '</button>' +
'</div>' +
'</div>' +
'</div>';
this.container = $(DRPTemplate).appendTo('body');
if (hasOptions) {
if (typeof options.format == 'string')
this.format = options.format;
if (typeof options.separator == 'string')
this.separator = options.separator;
if (typeof options.startDate == 'string')
this.startDate = Date.parseExact(options.startDate, this.format);
if (typeof options.endDate == 'string')
this.endDate = Date.parseExact(options.endDate, this.format);
if (typeof options.minDate == 'string')
this.minDate = Date.parseExact(options.minDate, this.format);
if (typeof options.maxDate == 'string')
this.maxDate = Date.parseExact(options.maxDate, this.format);
if (typeof options.startDate == 'object')
this.startDate = options.startDate;
if (typeof options.endDate == 'object')
this.endDate = options.endDate;
if (typeof options.minDate == 'object')
this.minDate = options.minDate;
if (typeof options.maxDate == 'object')
this.maxDate = options.maxDate;
if (typeof options.ranges == 'object') {
for (var range in options.ranges) {
var start = options.ranges[range][0];
var end = options.ranges[range][1];
if (typeof start == 'string')
start = Date.parse(start);
if (typeof end == 'string')
end = Date.parse(end);
// If we have a min/max date set, bound this range
// to it, but only if it would otherwise fall
// outside of the min/max.
if (this.minDate && start < this.minDate)
start = this.minDate;
if (this.maxDate && end > this.maxDate)
end = this.maxDate;
// If the end of the range is before the minimum (if min is set) OR
// the start of the range is after the max (also if set) don't display this
// range option.
if ((this.minDate && end < this.minDate) || (this.maxDate && start > this.maxDate))
{
continue;
}
this.ranges[range] = [start, end];
}
var list = '<ul>';
for (var range in this.ranges) {
list += '<li>' + range + '</li>';
}
list += '<li>' + this.locale.customRangeLabel + '</li>';
list += '</ul>';
this.container.find('.ranges').prepend(list);
}
if (typeof options.dateLimit == 'object')
this.dateLimit = options.dateLimit;
// update day names order to firstDay
if (typeof options.locale == 'object') {
if (typeof options.locale.firstDay == 'number') {
this.locale.firstDay = options.locale.firstDay;
var iterator = options.locale.firstDay;
while (iterator > 0) {
this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift());
iterator--;
}
}
}
if (typeof options.opens == 'string')
this.opens = options.opens;
if (typeof options.showWeekNumbers == 'boolean') {
this.showWeekNumbers = options.showWeekNumbers;
}
if (typeof options.buttonClasses == 'string') {
this.buttonClasses = [options.buttonClasses];
}
if (typeof options.buttonClasses == 'object') {
this.buttonClasses = options.buttonClasses;
}
if (typeof options.showDropdowns == 'boolean') {
this.showDropdowns = options.showDropdowns;
}
}
//apply CSS classes to buttons
var c = this.container;
$.each(this.buttonClasses, function (idx, val) {
c.find('button').addClass(val);
});
if (this.opens == 'right') {
//swap calendar positions
var left = this.container.find('.calendar.left');
var right = this.container.find('.calendar.right');
left.removeClass('left').addClass('right');
right.removeClass('right').addClass('left');
}
if (typeof options == 'undefined' || typeof options.ranges == 'undefined')
this.container.find('.calendar').show();
if (typeof cb == 'function')
this.cb = cb;
this.container.addClass('opens' + this.opens);
//try parse date if in text input
if (!hasOptions || (typeof options.startDate == 'undefined' && typeof options.endDate == 'undefined')) {
if ($(this.element).is('input[type=text]')) {
var val = $(this.element).val();
var split = val.split(this.separator);
if(split.length == 2) {
this.startDate = Date.parseExact(split[0], this.format);
this.endDate = Date.parseExact(split[1], this.format);
}
}
}
//event listeners
this.container.on('mousedown', $.proxy(this.mousedown, this));
this.container.find('.calendar').on('click', '.prev', $.proxy(this.clickPrev, this));
this.container.find('.calendar').on('click', '.next', $.proxy(this.clickNext, this));
this.container.find('.ranges').on('click', 'button.applyBtn', $.proxy(this.clickApply, this));
this.container.find('.ranges').on('click', 'button.clearBtn', $.proxy(this.clickClear, this));
this.container.find('.calendar').on('click', 'td.available', $.proxy(this.clickDate, this));
this.container.find('.calendar').on('mouseenter', 'td.available', $.proxy(this.enterDate, this));
this.container.find('.calendar').on('mouseleave', 'td.available', $.proxy(this.updateView, this));
this.container.find('.ranges').on('click', 'li', $.proxy(this.clickRange, this));
this.container.find('.ranges').on('mouseenter', 'li', $.proxy(this.enterRange, this));
this.container.find('.ranges').on('mouseleave', 'li', $.proxy(this.updateView, this));
this.container.find('.calendar').on('change', 'select.yearselect', $.proxy(this.updateYear, this));
this.container.find('.calendar').on('change', 'select.monthselect', $.proxy(this.updateMonth, this));
this.element.on('keyup', $.proxy(this.updateFromControl, this));
this.updateView();
this.updateCalendars();
};
DateRangePicker.prototype = {
constructor: DateRangePicker,
mousedown: function (e) {
e.stopPropagation();
//allow select list to function normally
if(!this.showDropdowns || $(e.target).not('select').length)
e.preventDefault();
},
updateView: function () {
this.leftCalendar.month.set({ month: this.startDate.getMonth(), year: this.startDate.getFullYear() });
this.rightCalendar.month.set({ month: this.endDate.getMonth(), year: this.endDate.getFullYear() });
this.container.find('input[name=daterangepicker_start]').val(this.startDate.toString(this.format));
this.container.find('input[name=daterangepicker_end]').val(this.endDate.toString(this.format));
if (this.startDate.equals(this.endDate) || this.startDate.isBefore(this.endDate)) {
this.container.find('button.applyBtn').removeAttr('disabled');
} else {
this.container.find('button.applyBtn').attr('disabled', 'disabled');
}
},
updateFromControl: function () {
if (!this.element.is('input')) return;
var dateString = this.element.val().split(this.separator);
var start = Date.parseExact(dateString[0], this.format);
var end = Date.parseExact(dateString[1], this.format);
if (start == null || end == null) return;
if (end.isBefore(start)) return;
this.startDate = start;
this.endDate = end;
this.updateView();
this.cb(this.startDate, this.endDate);
this.updateCalendars();
},
notify: function () {
if (!this.cleared) {
this.updateView();
}
if (this.element.is('input')) {
this.element.val(this.cleared ? '' : this.startDate.toString(this.format) + this.separator + this.endDate.toString(this.format));
}
var arg1 = (this.cleared ? null : this.startDate),
arg2 = (this.cleared ? null : this.endDate);
this.cleared = false;
this.cb(arg1,arg2);
},
move: function () {
if (this.opens == 'left') {
this.container.css({
top: this.element.offset().top + this.element.outerHeight(),
right: $(window).width() - this.element.offset().left - this.element.outerWidth(),
left: 'auto'
});
} else {
this.container.css({
top: this.element.offset().top + this.element.outerHeight(),
left: this.element.offset().left,
right: 'auto'
});
}
},
show: function (e) {
this.container.show();
this.move();
if (e) {
e.stopPropagation();
e.preventDefault();
}
this.changed = false;
this.element.trigger('shown',{target:e.target,picker:this});
$(document).on('mousedown', $.proxy(this.hide, this));
},
hide: function (e) {
this.container.hide();
$(document).off('mousedown', this.hide);
if (this.changed) {
this.changed = false;
this.notify();
}
},
enterRange: function (e) {
var label = e.target.innerHTML;
if (label == this.locale.customRangeLabel) {
this.updateView();
} else {
var dates = this.ranges[label];
this.container.find('input[name=daterangepicker_start]').val(dates[0].toString(this.format));
this.container.find('input[name=daterangepicker_end]').val(dates[1].toString(this.format));
}
},
clickRange: function (e) {
var label = e.target.innerHTML;
if (label == this.locale.customRangeLabel) {
this.container.find('.calendar').show();
} else {
var dates = this.ranges[label];
this.startDate = dates[0];
this.endDate = dates[1];
this.leftCalendar.month.set({ month: this.startDate.getMonth(), year: this.startDate.getFullYear() });
this.rightCalendar.month.set({ month: this.endDate.getMonth(), year: this.endDate.getFullYear() });
this.updateCalendars();
this.changed = true;
this.container.find('.calendar').hide();
this.hide();
}
},
clickPrev: function (e) {
var cal = $(e.target).parents('.calendar');
if (cal.hasClass('left')) {
this.leftCalendar.month.add({ months: -1 });
} else {
this.rightCalendar.month.add({ months: -1 });
}
this.updateCalendars();
},
clickNext: function (e) {
var cal = $(e.target).parents('.calendar');
if (cal.hasClass('left')) {
this.leftCalendar.month.add({ months: 1 });
} else {
this.rightCalendar.month.add({ months: 1 });
}
this.updateCalendars();
},
enterDate: function (e) {
var title = $(e.target).attr('title');
var row = title.substr(1, 1);
var col = title.substr(3, 1);
var cal = $(e.target).parents('.calendar');
if (cal.hasClass('left')) {
this.container.find('input[name=daterangepicker_start]').val(this.leftCalendar.calendar[row][col].toString(this.format));
} else {
this.container.find('input[name=daterangepicker_end]').val(this.rightCalendar.calendar[row][col].toString(this.format));
}
},
clickDate: function (e) {
var title = $(e.target).attr('title');
var row = title.substr(1, 1);
var col = title.substr(3, 1);
var cal = $(e.target).parents('.calendar');
if (cal.hasClass('left')) {
startDate = this.leftCalendar.calendar[row][col];
endDate = this.endDate;
if (typeof this.dateLimit == 'object') {
var maxDate = new Date(startDate).add(this.dateLimit);
if (endDate.isAfter(maxDate)) {
endDate = maxDate;
}
}
this.element.trigger('clicked', {
dir: 'left',
picker: this
});
} else {
startDate = this.startDate;
endDate = this.rightCalendar.calendar[row][col];
if (typeof this.dateLimit == 'object') {
var negConfig = {
days: 0 - this.dateLimit.days,
months: 0 - this.dateLimit.months,
years: 0 - this.dateLimit.years
};
var minDate = new Date(endDate).add(negConfig);
if (startDate.isBefore(minDate)) {
startDate = minDate;
}
}
this.element.trigger('clicked', {
dir: 'right',
picker: this
});
}
cal.find('td').removeClass('active');
if (startDate.equals(endDate) || startDate.isBefore(endDate)) {
$(e.target).addClass('active');
if (!startDate.equals(this.startDate) || !endDate.equals(this.endDate))
this.changed = true;
this.startDate = startDate;
this.endDate = endDate;
} else if (startDate.isAfter(endDate)) {
$(e.target).addClass('active');
this.changed = true;
this.startDate = startDate;
this.endDate = startDate.clone().add(1).days();
}
this.leftCalendar.month.set({ month: this.startDate.getMonth(), year: this.startDate.getFullYear() });
this.rightCalendar.month.set({ month: this.endDate.getMonth(), year: this.endDate.getFullYear() });
this.updateCalendars();
},
clickApply: function (e) {
this.hide();
},
clickClear: function (e) {
this.changed = true;
this.cleared = true;
this.hide();
},
updateYear: function(e) {
var year = parseInt($(e.target).val());
var isLeft = $(e.target).closest('.calendar').hasClass('left');
if(isLeft) {
this.leftCalendar.month.set({ month: this.startDate.getMonth(), year: year });
} else {
this.rightCalendar.month.set({ month: this.endDate.getMonth(), year: year });
}
this.updateCalendars();
},
updateMonth: function(e) {
var month = parseInt($(e.target).val());
var isLeft = $(e.target).closest('.calendar').hasClass('left');
if(isLeft) {
this.leftCalendar.month.set({ month: month, year: this.startDate.getFullYear() });
} else {
this.rightCalendar.month.set({ month: month, year: this.endDate.getFullYear() });
}
this.updateCalendars();
},
updateCalendars: function () {
this.leftCalendar.calendar = this.buildCalendar(this.leftCalendar.month.getMonth(), this.leftCalendar.month.getFullYear());
this.rightCalendar.calendar = this.buildCalendar(this.rightCalendar.month.getMonth(), this.rightCalendar.month.getFullYear());
this.container.find('.calendar.left').html(this.renderCalendar(this.leftCalendar.calendar, this.startDate, this.minDate, this.maxDate));
this.container.find('.calendar.right').html(this.renderCalendar(this.rightCalendar.calendar, this.endDate, this.startDate, this.maxDate));
this.container.find('.ranges li').removeClass('active');
var customRange = true;
var i = 0;
for (var range in this.ranges) {
if (this.startDate.equals(this.ranges[range][0]) && this.endDate.equals(this.ranges[range][1])) {
customRange = false;
this.container.find('.ranges li:eq(' + i + ')').addClass('active');
}
i++;
}
if (customRange)
this.container.find('.ranges li:last').addClass('active');
this.element.trigger('updated', this);
},
buildCalendar: function (month, year) {
var firstDay = Date.today().set({ day: 1, month: month, year: year });
var lastMonth = firstDay.clone().add(-1).day().getMonth();
var lastYear = firstDay.clone().add(-1).day().getFullYear();
var daysInMonth = Date.getDaysInMonth(year, month);
var daysInLastMonth = Date.getDaysInMonth(lastYear, lastMonth);
var dayOfWeek = firstDay.getDay();
//initialize a 6 rows x 7 columns array for the calendar
var calendar = Array();
for (var i = 0; i < 6; i++) {
calendar[i] = Array();
}
//populate the calendar with date objects
var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1;
if (startDay > daysInLastMonth)
startDay -= 7;
if (dayOfWeek == this.locale.firstDay)
startDay = daysInLastMonth - 6;
var curDate = Date.today().set({ day: startDay, month: lastMonth, year: lastYear });
for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = curDate.clone().add(1).day()) {
if (i > 0 && col % 7 == 0) {
col = 0;
row++;
}
calendar[row][col] = curDate;
}
return calendar;
},
renderDropdowns: function (selected, minDate, maxDate) {
var currentMonth = selected.getMonth();
var monthHtml = '<select class="monthselect">';
var inMinYear = false;
var inMaxYear = false;
for (var m = 0; m < 12; m++) {
if ((!inMinYear || m >= minDate.getMonth()) && (!inMaxYear || m <= maxDate.getMonth())) {
monthHtml += "<option value='" + m + "'" +
(m === currentMonth ? " selected='selected'" : "") +
">" + this.locale.monthNames[m] + "</option>";
}
}
monthHtml += "</select>";
var currentYear = selected.getFullYear();
var maxYear = (maxDate && maxDate.getFullYear()) || (currentYear + 5);
var minYear = (minDate && minDate.getFullYear()) || (currentYear - 50);
var yearHtml = '<select class="yearselect">'
for (var y = minYear; y <= maxYear; y++) {
yearHtml += '<option value="' + y + '"' +
(y === currentYear ? ' selected="selected"' : '') +
'>' + y + '</option>';
}
yearHtml += '</select>';
return monthHtml + yearHtml;
},
renderCalendar: function (calendar, selected, minDate, maxDate) {
var html = '<table class="table-condensed">';
html += '<thead>';
html += '<tr>';
// add empty cell for week number
if (this.showWeekNumbers)
html += '<th></th>';
if (!minDate || minDate < calendar[1][1]) {
html += '<th class="prev available"><i class="icon-arrow-left"></i></th>';
} else {
html += '<th></th>';
}
var dateHtml = this.locale.monthNames[calendar[1][1].getMonth()] + calendar[1][1].toString(" yyyy");
if (this.showDropdowns) {
dateHtml = this.renderDropdowns(calendar[1][1], minDate, maxDate);
}
html += '<th colspan="5" style="width: auto">' + dateHtml + '</th>';
if (!maxDate || maxDate > calendar[1][1]) {
html += '<th class="next available"><i class="icon-arrow-right"></i></th>';
} else {
html += '<th></th>';
}
html += '</tr>';
html += '<tr>';
// add week number label
if (this.showWeekNumbers)
html += '<th class="week">' + this.locale.weekLabel + '</th>';
$.each(this.locale.daysOfWeek, function (index, dayOfWeek) {
html += '<th>' + dayOfWeek + '</th>';
});
html += '</tr>';
html += '</thead>';
html += '<tbody>';
for (var row = 0; row < 6; row++) {
html += '<tr>';
// add week number
if (this.showWeekNumbers)
html += '<td class="week">' + calendar[row][0].getWeek() + '</td>';
for (var col = 0; col < 7; col++) {
var cname = 'available ';
cname += (calendar[row][col].getMonth() == calendar[1][1].getMonth()) ? '' : 'off';
// Normalise the time so the comparison won't fail
selected.setHours(0,0,0,0);
if ((minDate && calendar[row][col] < minDate) || (maxDate && calendar[row][col] > maxDate)) {
cname = ' off disabled ';
} else if (calendar[row][col].equals(selected)) {
cname += ' active ';
if (calendar[row][col].equals(this.startDate)) { cname += ' start-date '; }
if (calendar[row][col].equals(this.endDate)) { cname += ' end-date '; }
} else if (calendar[row][col] >= this.startDate && calendar[row][col] <= this.endDate) {
cname += ' in-range ';
if (calendar[row][col].equals(this.startDate)) { cname += ' start-date '; }
if (calendar[row][col].equals(this.endDate)) { cname += ' end-date '; }
}
var title = 'r' + row + 'c' + col;
html += '<td class="' + cname.replace(/\s+/g,' ').replace(/^\s?(.*?)\s?$/,'$1') + '" title="' + title + '">' + calendar[row][col].getDate() + '</td>';
}
html += '</tr>';
}
html += '</tbody>';
html += '</table>';
return html;
}
};
$.fn.daterangepicker = function (options, cb) {
this.each(function() {
var el = $(this);
if (!el.data('daterangepicker'))
el.data('daterangepicker', new DateRangePicker(el, options, cb));
});
return this;
};
} (window.jQuery);
File diff suppressed because one or more lines are too long
+8
View File
@@ -0,0 +1,8 @@
/*
HTML5 Shiv v3.7.0 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}</style>";
c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);
if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);
File diff suppressed because one or more lines are too long
+223
View File
@@ -0,0 +1,223 @@
/*!
* jQuery twitter bootstrap wizard plugin
* Examples and documentation at: http://github.com/VinceG/twitter-bootstrap-wizard
* version 1.0
* Requires jQuery v1.3.2 or later
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
* Authors: Vadim Vincent Gabriel (http://vadimg.com), Jason Gill (www.gilluminate.com)
*/
;(function($) {
var bootstrapWizardCreate = function(element, options) {
var element = $(element);
var obj = this;
// Merge options with defaults
//var $settings = $.extend($.fn.bootstrapWizard.defaults, options || {});
var $settings = $.extend({}, $.fn.bootstrapWizard.defaults, options);
var $activeTab = null;
var $navigation = null;
this.fixNavigationButtons = function() {
// Get the current active tab
if(!$activeTab.length) {
// Select first one
$navigation.find('a:first').tab('show');
$activeTab = $navigation.find('li:first');
}
// See if we're currently in the first/last then disable the previous and last buttons
if(obj.firstIndex() >= obj.currentIndex()) {
$('li.previous', element).addClass('disabled');
} else{
$('li.previous', element).removeClass('disabled');
}
if(obj.currentIndex() >= obj.navigationLength()) {
$('li.next', element).addClass('disabled');
} else {
$('li.next', element).removeClass('disabled');
}
if($settings.onTabShow && typeof $settings.onTabShow === 'function' && $settings.onTabShow($activeTab, $navigation, obj.currentIndex())===false){
return false;
}
};
this.next = function(e) {
// If we clicked the last then dont activate this
if(element.hasClass('last')) {
return false;
}
if($settings.onNext && typeof $settings.onNext === 'function' && $settings.onNext($activeTab, $navigation, obj.nextIndex())===false){
return false;
}
// Did we click the last button
$index = obj.nextIndex();
if($index > obj.navigationLength()) {
} else {
$navigation.find('li:eq('+$index+') a').tab('show');
}
};
this.previous = function(e) {
// If we clicked the first then dont activate this
if(element.hasClass('first')) {
return false;
}
if($settings.onPrevious && typeof $settings.onPrevious === 'function' && $settings.onPrevious($activeTab, $navigation, obj.previousIndex())===false){
return false;
}
$index = obj.previousIndex();
if($index < 0) {
} else {
$navigation.find('li:eq('+$index+') a').tab('show');
}
};
this.first = function(e) {
if($settings.onFirst && typeof $settings.onFirst === 'function' && $settings.onFirst($activeTab, $navigation, obj.firstIndex())===false){
return false;
}
// If the element is disabled then we won't do anything
if(element.hasClass('disabled')) {
return false;
}
$navigation.find('li:eq(0) a').tab('show');
};
this.last = function(e) {
if($settings.onLast && typeof $settings.onLast === 'function' && $settings.onLast($activeTab, $navigation, obj.lastIndex())===false){
return false;
}
// If the element is disabled then we won't do anything
if(element.hasClass('disabled')) {
return false;
}
$navigation.find('li:eq('+obj.navigationLength()+') a').tab('show');
};
this.currentIndex = function() {
return $navigation.find('li').index($activeTab);
};
this.firstIndex = function() {
return 0;
};
this.lastIndex = function() {
return obj.navigationLength();
};
this.getIndex = function(e) {
return $navigation.find('li').index(e);
};
this.nextIndex = function() {
return $navigation.find('li').index($activeTab) + 1;
};
this.previousIndex = function() {
return $navigation.find('li').index($activeTab) - 1;
};
this.navigationLength = function() {
return $navigation.find('li').length - 1;
};
this.activeTab = function() {
return $activeTab;
};
this.nextTab = function() {
return $navigation.find('li:eq('+(obj.currentIndex()+1)+')').length ? $navigation.find('li:eq('+(obj.currentIndex()+1)+')') : null;
};
this.previousTab = function() {
if(obj.currentIndex() <= 0) {
return null;
}
return $navigation.find('li:eq('+parseInt(obj.currentIndex()-1)+')');
};
this.show = function(index) {
return element.find('li:eq(' + index + ') a').tab('show');
};
$navigation = element.find('ul:first', element);
$activeTab = $navigation.find('li.active', element);
if(!$navigation.hasClass($settings.tabClass)) {
$navigation.addClass($settings.tabClass);
}
// Load onInit
if($settings.onInit && typeof $settings.onInit === 'function'){
$settings.onInit($activeTab, $navigation, 0);
}
// Next/Previous events
$($settings.nextSelector, element).bind('click', obj.next);
$($settings.previousSelector, element).bind('click', obj.previous);
$($settings.lastSelector, element).bind('click', obj.last);
$($settings.firstSelector, element).bind('click', obj.first);
// Load onShow
if($settings.onShow && typeof $settings.onShow === 'function'){
$settings.onShow($activeTab, $navigation, obj.nextIndex());
}
// Work the next/previous buttons
obj.fixNavigationButtons();
$('a[data-toggle="tab"]', element).on('click', function (e) {
if($settings.onTabClick && typeof $settings.onTabClick === 'function' && $settings.onTabClick($activeTab, $navigation, obj.currentIndex())===false){
return false;
}
});
$('a[data-toggle="tab"]', element).on('show', function (e) {
$element = $(e.target).parent();
// If it's disabled then do not change
if($element.hasClass('disabled')) {
return false;
}
$activeTab = $element; // activated tab
obj.fixNavigationButtons();
});
};
$.fn.bootstrapWizard = function(options) {
//expose methods
if (typeof options == 'string') {
var args = Array.prototype.slice.call(arguments, 1).toString();
return this.data('bootstrapWizard')[options](args);
}
return this.each(function(index){
var element = $(this);
// Return early if this element already has a plugin instance
if (element.data('bootstrapWizard')) return;
// pass options to plugin constructor
var wizard = new bootstrapWizardCreate(element, options);
// Store plugin object in this element's data
element.data('bootstrapWizard', wizard);
});
};
// expose options
$.fn.bootstrapWizard.defaults = {
'tabClass': 'nav nav-pills',
'nextSelector': '.wizard li.next',
'previousSelector': '.wizard li.previous',
'firstSelector': '.wizard li.first',
'lastSelector': '.wizard li.last',
'onShow': null,
'onInit': null,
'onNext': null,
'onPrevious': null,
'onLast': null,
'onFirst': null,
'onTabClick': null,
'onTabShow': null
};
})(jQuery);
+164
View File
@@ -0,0 +1,164 @@
/*!
DataTables 1.10.16
©2008-2017 SpryMedia Ltd - datatables.net/license
*/
(function(h){"function"===typeof define&&define.amd?define(["jquery"],function(E){return h(E,window,document)}):"object"===typeof exports?module.exports=function(E,G){E||(E=window);G||(G="undefined"!==typeof window?require("jquery"):require("jquery")(E));return h(G,E,E.document)}:h(jQuery,window,document)})(function(h,E,G,k){function X(a){var b,c,d={};h.each(a,function(e){if((b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" "))c=e.replace(b[0],b[2].toLowerCase()),
d[c]=e,"o"===b[1]&&X(a[e])});a._hungarianMap=d}function I(a,b,c){a._hungarianMap||X(a);var d;h.each(b,function(e){d=a._hungarianMap[e];if(d!==k&&(c||b[d]===k))"o"===d.charAt(0)?(b[d]||(b[d]={}),h.extend(!0,b[d],b[e]),I(a[d],b[d],c)):b[d]=b[e]})}function Ca(a){var b=m.defaults.oLanguage,c=a.sZeroRecords;!a.sEmptyTable&&(c&&"No data available in table"===b.sEmptyTable)&&F(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(c&&"Loading..."===b.sLoadingRecords)&&F(a,a,"sZeroRecords","sLoadingRecords");
a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&cb(a)}function db(a){A(a,"ordering","bSort");A(a,"orderMulti","bSortMulti");A(a,"orderClasses","bSortClasses");A(a,"orderCellsTop","bSortCellsTop");A(a,"order","aaSorting");A(a,"orderFixed","aaSortingFixed");A(a,"paging","bPaginate");A(a,"pagingType","sPaginationType");A(a,"pageLength","iDisplayLength");A(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":"");"boolean"===typeof a.scrollX&&(a.scrollX=
a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b<c;b++)a[b]&&I(m.models.oSearch,a[b])}function eb(a){A(a,"orderable","bSortable");A(a,"orderData","aDataSort");A(a,"orderSequence","asSorting");A(a,"orderDataType","sortDataType");var b=a.aDataSort;"number"===typeof b&&!h.isArray(b)&&(a.aDataSort=[b])}function fb(a){if(!m.__browser){var b={};m.__browser=b;var c=h("<div/>").css({position:"fixed",top:0,left:-1*h(E).scrollLeft(),height:1,width:1,overflow:"hidden"}).append(h("<div/>").css({position:"absolute",
top:1,left:1,width:100,overflow:"scroll"}).append(h("<div/>").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}h.extend(a.oBrowser,m.__browser);a.oScroll.iBarWidth=m.__browser.barWidth}function gb(a,b,c,d,e,f){var g,j=!1;c!==k&&(g=c,j=!0);for(;d!==
e;)a.hasOwnProperty(d)&&(g=j?b(g,a[d],d,a):a[d],j=!0,d+=f);return g}function Da(a,b){var c=m.defaults.column,d=a.aoColumns.length,c=h.extend({},m.models.oColumn,c,{nTh:b?b:G.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=h.extend({},m.models.oSearch,c[d]);ja(a,d,h(b).data())}function ja(a,b,c){var b=a.aoColumns[b],d=a.oClasses,e=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=
e.attr("width")||null;var f=(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(eb(c),I(m.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),c.sClass&&e.addClass(c.sClass),h.extend(b,c),F(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),F(b,c,"aDataSort"));var g=b.mData,j=Q(g),i=b.mRender?Q(b.mRender):null,c=function(a){return"string"===
typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=h.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(a,b,c){var d=j(a,b,k,c);return i&&b?i(d,b,a,c):d};b.fnSetData=function(a,b,c){return R(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=
d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI)}function Y(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Ea(a);for(var c=0,d=b.length;c<d;c++)b[c].nTh.style.width=b[c].sWidth}b=a.oScroll;(""!==b.sY||""!==b.sX)&&ka(a);r(a,null,"column-sizing",[a])}function Z(a,b){var c=la(a,"bVisible");return"number"===typeof c[b]?c[b]:null}function $(a,b){var c=
la(a,"bVisible"),c=h.inArray(b,c);return-1!==c?c:null}function aa(a){var b=0;h.each(a.aoColumns,function(a,d){d.bVisible&&"none"!==h(d.nTh).css("display")&&b++});return b}function la(a,b){var c=[];h.map(a.aoColumns,function(a,e){a[b]&&c.push(e)});return c}function Fa(a){var b=a.aoColumns,c=a.aoData,d=m.ext.type.detect,e,f,g,j,i,h,l,q,t;e=0;for(f=b.length;e<f;e++)if(l=b[e],t=[],!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){g=0;for(j=d.length;g<j;g++){i=0;for(h=c.length;i<h;i++){t[i]===
k&&(t[i]=B(a,i,e,"type"));q=d[g](t[i],a);if(!q&&g!==d.length-1)break;if("html"===q)break}if(q){l.sType=q;break}}l.sType||(l.sType="string")}}function hb(a,b,c,d){var e,f,g,j,i,n,l=a.aoColumns;if(b)for(e=b.length-1;0<=e;e--){n=b[e];var q=n.targets!==k?n.targets:n.aTargets;h.isArray(q)||(q=[q]);f=0;for(g=q.length;f<g;f++)if("number"===typeof q[f]&&0<=q[f]){for(;l.length<=q[f];)Da(a);d(q[f],n)}else if("number"===typeof q[f]&&0>q[f])d(l.length+q[f],n);else if("string"===typeof q[f]){j=0;for(i=l.length;j<
i;j++)("_all"==q[f]||h(l[j].nTh).hasClass(q[f]))&&d(j,n)}}if(c){e=0;for(a=c.length;e<a;e++)d(e,c[e])}}function M(a,b,c,d){var e=a.aoData.length,f=h.extend(!0,{},m.models.oRow,{src:c?"dom":"data",idx:e});f._aData=b;a.aoData.push(f);for(var g=a.aoColumns,j=0,i=g.length;j<i;j++)g[j].sType=null;a.aiDisplayMaster.push(e);b=a.rowIdFn(b);b!==k&&(a.aIds[b]=f);(c||!a.oFeatures.bDeferRender)&&Ga(a,e,c,d);return e}function ma(a,b){var c;b instanceof h||(b=h(b));return b.map(function(b,e){c=Ha(a,e);return M(a,
c.data,e,c.cells)})}function B(a,b,c,d){var e=a.iDraw,f=a.aoColumns[c],g=a.aoData[b]._aData,j=f.sDefaultContent,i=f.fnGetData(g,d,{settings:a,row:b,col:c});if(i===k)return a.iDrawError!=e&&null===j&&(J(a,0,"Requested unknown parameter "+("function"==typeof f.mData?"{function}":"'"+f.mData+"'")+" for row "+b+", column "+c,4),a.iDrawError=e),j;if((i===g||null===i)&&null!==j&&d!==k)i=j;else if("function"===typeof i)return i.call(g);return null===i&&"display"==d?"":i}function ib(a,b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,
d,{settings:a,row:b,col:c})}function Ia(a){return h.map(a.match(/(\\.|[^\.])+/g)||[""],function(a){return a.replace(/\\\./g,".")})}function Q(a){if(h.isPlainObject(a)){var b={};h.each(a,function(a,c){c&&(b[a]=Q(c))});return function(a,c,f,g){var j=b[c]||b._;return j!==k?j(a,c,f,g):a}}if(null===a)return function(a){return a};if("function"===typeof a)return function(b,c,f,g){return a(b,c,f,g)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||-1!==a.indexOf("("))){var c=function(a,
b,f){var g,j;if(""!==f){j=Ia(f);for(var i=0,n=j.length;i<n;i++){f=j[i].match(ba);g=j[i].match(U);if(f){j[i]=j[i].replace(ba,"");""!==j[i]&&(a=a[j[i]]);g=[];j.splice(0,i+1);j=j.join(".");if(h.isArray(a)){i=0;for(n=a.length;i<n;i++)g.push(c(a[i],b,j))}a=f[0].substring(1,f[0].length-1);a=""===a?g:g.join(a);break}else if(g){j[i]=j[i].replace(U,"");a=a[j[i]]();continue}if(null===a||a[j[i]]===k)return k;a=a[j[i]]}}return a};return function(b,e){return c(b,e,a)}}return function(b){return b[a]}}function R(a){if(h.isPlainObject(a))return R(a._);
if(null===a)return function(){};if("function"===typeof a)return function(b,d,e){a(b,"set",d,e)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||-1!==a.indexOf("("))){var b=function(a,d,e){var e=Ia(e),f;f=e[e.length-1];for(var g,j,i=0,n=e.length-1;i<n;i++){g=e[i].match(ba);j=e[i].match(U);if(g){e[i]=e[i].replace(ba,"");a[e[i]]=[];f=e.slice();f.splice(0,i+1);g=f.join(".");if(h.isArray(d)){j=0;for(n=d.length;j<n;j++)f={},b(f,d[j],g),a[e[i]].push(f)}else a[e[i]]=d;return}j&&(e[i]=e[i].replace(U,
""),a=a[e[i]](d));if(null===a[e[i]]||a[e[i]]===k)a[e[i]]={};a=a[e[i]]}if(f.match(U))a[f.replace(U,"")](d);else a[f.replace(ba,"")]=d};return function(c,d){return b(c,d,a)}}return function(b,d){b[a]=d}}function Ja(a){return D(a.aoData,"_aData")}function na(a){a.aoData.length=0;a.aiDisplayMaster.length=0;a.aiDisplay.length=0;a.aIds={}}function oa(a,b,c){for(var d=-1,e=0,f=a.length;e<f;e++)a[e]==b?d=e:a[e]>b&&a[e]--; -1!=d&&c===k&&a.splice(d,1)}function ca(a,b,c,d){var e=a.aoData[b],f,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild);
c.innerHTML=B(a,b,d,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===e.src)e._aData=Ha(a,e,d,d===k?k:e._aData).data;else{var j=e.anCells;if(j)if(d!==k)g(j[d],d);else{c=0;for(f=j.length;c<f;c++)g(j[c],c)}}e._aSortData=null;e._aFilterData=null;g=a.aoColumns;if(d!==k)g[d].sType=null;else{c=0;for(f=g.length;c<f;c++)g[c].sType=null;Ka(a,e)}}function Ha(a,b,c,d){var e=[],f=b.firstChild,g,j,i=0,n,l=a.aoColumns,q=a._rowReadObject,d=d!==k?d:q?{}:[],t=function(a,b){if("string"===typeof a){var c=a.indexOf("@");
-1!==c&&(c=a.substring(c+1),R(a)(d,b.getAttribute(c)))}},m=function(a){if(c===k||c===i)j=l[i],n=h.trim(a.innerHTML),j&&j._bAttrSrc?(R(j.mData._)(d,n),t(j.mData.sort,a),t(j.mData.type,a),t(j.mData.filter,a)):q?(j._setter||(j._setter=R(j.mData)),j._setter(d,n)):d[i]=n;i++};if(f)for(;f;){g=f.nodeName.toUpperCase();if("TD"==g||"TH"==g)m(f),e.push(f);f=f.nextSibling}else{e=b.anCells;f=0;for(g=e.length;f<g;f++)m(e[f])}if(b=b.firstChild?b:b.nTr)(b=b.getAttribute("id"))&&R(a.rowId)(d,b);return{data:d,cells:e}}
function Ga(a,b,c,d){var e=a.aoData[b],f=e._aData,g=[],j,i,n,l,q;if(null===e.nTr){j=c||G.createElement("tr");e.nTr=j;e.anCells=g;j._DT_RowIndex=b;Ka(a,e);l=0;for(q=a.aoColumns.length;l<q;l++){n=a.aoColumns[l];i=c?d[l]:G.createElement(n.sCellType);i._DT_CellIndex={row:b,column:l};g.push(i);if((!c||n.mRender||n.mData!==l)&&(!h.isPlainObject(n.mData)||n.mData._!==l+".display"))i.innerHTML=B(a,b,l,"display");n.sClass&&(i.className+=" "+n.sClass);n.bVisible&&!c?j.appendChild(i):!n.bVisible&&c&&i.parentNode.removeChild(i);
n.fnCreatedCell&&n.fnCreatedCell.call(a.oInstance,i,B(a,b,l),f,b,l)}r(a,"aoRowCreatedCallback",null,[j,f,b])}e.nTr.setAttribute("role","row")}function Ka(a,b){var c=b.nTr,d=b._aData;if(c){var e=a.rowIdFn(d);e&&(c.id=e);d.DT_RowClass&&(e=d.DT_RowClass.split(" "),b.__rowc=b.__rowc?qa(b.__rowc.concat(e)):e,h(c).removeClass(b.__rowc.join(" ")).addClass(d.DT_RowClass));d.DT_RowAttr&&h(c).attr(d.DT_RowAttr);d.DT_RowData&&h(c).data(d.DT_RowData)}}function jb(a){var b,c,d,e,f,g=a.nTHead,j=a.nTFoot,i=0===
h("th, td",g).length,n=a.oClasses,l=a.aoColumns;i&&(e=h("<tr/>").appendTo(g));b=0;for(c=l.length;b<c;b++)f=l[b],d=h(f.nTh).addClass(f.sClass),i&&d.appendTo(e),a.oFeatures.bSort&&(d.addClass(f.sSortingClass),!1!==f.bSortable&&(d.attr("tabindex",a.iTabIndex).attr("aria-controls",a.sTableId),La(a,f.nTh,b))),f.sTitle!=d[0].innerHTML&&d.html(f.sTitle),Ma(a,"header")(a,d,f,n);i&&da(a.aoHeader,g);h(g).find(">tr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(n.sHeaderTH);h(j).find(">tr>th, >tr>td").addClass(n.sFooterTH);
if(null!==j){a=a.aoFooter[0];b=0;for(c=a.length;b<c;b++)f=l[b],f.nTf=a[b].cell,f.sClass&&h(f.nTf).addClass(f.sClass)}}function ea(a,b,c){var d,e,f,g=[],j=[],i=a.aoColumns.length,n;if(b){c===k&&(c=!1);d=0;for(e=b.length;d<e;d++){g[d]=b[d].slice();g[d].nTr=b[d].nTr;for(f=i-1;0<=f;f--)!a.aoColumns[f].bVisible&&!c&&g[d].splice(f,1);j.push([])}d=0;for(e=g.length;d<e;d++){if(a=g[d].nTr)for(;f=a.firstChild;)a.removeChild(f);f=0;for(b=g[d].length;f<b;f++)if(n=i=1,j[d][f]===k){a.appendChild(g[d][f].cell);
for(j[d][f]=1;g[d+i]!==k&&g[d][f].cell==g[d+i][f].cell;)j[d+i][f]=1,i++;for(;g[d][f+n]!==k&&g[d][f].cell==g[d][f+n].cell;){for(c=0;c<i;c++)j[d+c][f+n]=1;n++}h(g[d][f].cell).attr("rowspan",i).attr("colspan",n)}}}}function N(a){var b=r(a,"aoPreDrawCallback","preDraw",[a]);if(-1!==h.inArray(!1,b))C(a,!1);else{var b=[],c=0,d=a.asStripeClasses,e=d.length,f=a.oLanguage,g=a.iInitDisplayStart,j="ssp"==y(a),i=a.aiDisplay;a.bDrawing=!0;g!==k&&-1!==g&&(a._iDisplayStart=j?g:g>=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=
-1);var g=a._iDisplayStart,n=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(j){if(!a.bDestroying&&!kb(a))return}else a.iDraw++;if(0!==i.length){f=j?a.aoData.length:n;for(j=j?0:g;j<f;j++){var l=i[j],q=a.aoData[l];null===q.nTr&&Ga(a,l);l=q.nTr;if(0!==e){var t=d[c%e];q._sRowStripe!=t&&(h(l).removeClass(q._sRowStripe).addClass(t),q._sRowStripe=t)}r(a,"aoRowCallback",null,[l,q._aData,c,j]);b.push(l);c++}}else c=f.sZeroRecords,1==a.iDraw&&"ajax"==y(a)?c=f.sLoadingRecords:
f.sEmptyTable&&0===a.fnRecordsTotal()&&(c=f.sEmptyTable),b[0]=h("<tr/>",{"class":e?d[0]:""}).append(h("<td />",{valign:"top",colSpan:aa(a),"class":a.oClasses.sRowEmpty}).html(c))[0];r(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Ja(a),g,n,i]);r(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],Ja(a),g,n,i]);d=h(a.nTBody);d.children().detach();d.append(h(b));r(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function S(a,b){var c=a.oFeatures,d=c.bFilter;
c.bSort&&lb(a);d?fa(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;N(a);a._drawHold=!1}function mb(a){var b=a.oClasses,c=h(a.nTable),c=h("<div/>").insertBefore(c),d=a.oFeatures,e=h("<div/>",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var f=a.sDom.split(""),g,j,i,n,l,q,k=0;k<f.length;k++){g=null;j=f[k];if("<"==j){i=h("<div/>")[0];
n=f[k+1];if("'"==n||'"'==n){l="";for(q=2;f[k+q]!=n;)l+=f[k+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(n=l.split("."),i.id=n[0].substr(1,n[0].length-1),i.className=n[1]):"#"==l.charAt(0)?i.id=l.substr(1,l.length-1):i.className=l;k+=q}e.append(i);e=h(i)}else if(">"==j)e=e.parent();else if("l"==j&&d.bPaginate&&d.bLengthChange)g=nb(a);else if("f"==j&&d.bFilter)g=ob(a);else if("r"==j&&d.bProcessing)g=pb(a);else if("t"==j)g=qb(a);else if("i"==j&&d.bInfo)g=rb(a);else if("p"==
j&&d.bPaginate)g=sb(a);else if(0!==m.ext.feature.length){i=m.ext.feature;q=0;for(n=i.length;q<n;q++)if(j==i[q].cFeature){g=i[q].fnInit(a);break}}g&&(i=a.aanFeatures,i[j]||(i[j]=[]),i[j].push(g),e.append(g))}c.replaceWith(e);a.nHolding=null}function da(a,b){var c=h(b).children("tr"),d,e,f,g,j,i,n,l,q,k;a.splice(0,a.length);f=0;for(i=c.length;f<i;f++)a.push([]);f=0;for(i=c.length;f<i;f++){d=c[f];for(e=d.firstChild;e;){if("TD"==e.nodeName.toUpperCase()||"TH"==e.nodeName.toUpperCase()){l=1*e.getAttribute("colspan");
q=1*e.getAttribute("rowspan");l=!l||0===l||1===l?1:l;q=!q||0===q||1===q?1:q;g=0;for(j=a[f];j[g];)g++;n=g;k=1===l?!0:!1;for(j=0;j<l;j++)for(g=0;g<q;g++)a[f+g][n+j]={cell:e,unique:k},a[f+g].nTr=d}e=e.nextSibling}}}function ra(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],da(c,b)));for(var b=0,e=c.length;b<e;b++)for(var f=0,g=c[b].length;f<g;f++)if(c[b][f].unique&&(!d[f]||!a.bSortCellsTop))d[f]=c[b][f].cell;return d}function sa(a,b,c){r(a,"aoServerParams","serverParams",[b]);if(b&&h.isArray(b)){var d={},
e=/(.*?)\[\]$/;h.each(b,function(a,b){var c=b.name.match(e);c?(c=c[0],d[c]||(d[c]=[]),d[c].push(b.value)):d[b.name]=b.value});b=d}var f,g=a.ajax,j=a.oInstance,i=function(b){r(a,null,"xhr",[a,b,a.jqXHR]);c(b)};if(h.isPlainObject(g)&&g.data){f=g.data;var n=h.isFunction(f)?f(b,a):f,b=h.isFunction(f)&&n?n:h.extend(!0,b,n);delete g.data}n={data:b,success:function(b){var c=b.error||b.sError;c&&J(a,0,c);a.json=b;i(b)},dataType:"json",cache:!1,type:a.sServerMethod,error:function(b,c){var d=r(a,null,"xhr",
[a,null,a.jqXHR]);-1===h.inArray(!0,d)&&("parsererror"==c?J(a,0,"Invalid JSON response",1):4===b.readyState&&J(a,0,"Ajax error",7));C(a,!1)}};a.oAjaxData=b;r(a,null,"preXhr",[a,b]);a.fnServerData?a.fnServerData.call(j,a.sAjaxSource,h.map(b,function(a,b){return{name:b,value:a}}),i,a):a.sAjaxSource||"string"===typeof g?a.jqXHR=h.ajax(h.extend(n,{url:g||a.sAjaxSource})):h.isFunction(g)?a.jqXHR=g.call(j,b,i,a):(a.jqXHR=h.ajax(h.extend(n,g)),g.data=f)}function kb(a){return a.bAjaxDataGet?(a.iDraw++,C(a,
!0),sa(a,tb(a),function(b){ub(a,b)}),!1):!0}function tb(a){var b=a.aoColumns,c=b.length,d=a.oFeatures,e=a.oPreviousSearch,f=a.aoPreSearchCols,g,j=[],i,n,l,k=V(a);g=a._iDisplayStart;i=!1!==d.bPaginate?a._iDisplayLength:-1;var t=function(a,b){j.push({name:a,value:b})};t("sEcho",a.iDraw);t("iColumns",c);t("sColumns",D(b,"sName").join(","));t("iDisplayStart",g);t("iDisplayLength",i);var pa={draw:a.iDraw,columns:[],order:[],start:g,length:i,search:{value:e.sSearch,regex:e.bRegex}};for(g=0;g<c;g++)n=b[g],
l=f[g],i="function"==typeof n.mData?"function":n.mData,pa.columns.push({data:i,name:n.sName,searchable:n.bSearchable,orderable:n.bSortable,search:{value:l.sSearch,regex:l.bRegex}}),t("mDataProp_"+g,i),d.bFilter&&(t("sSearch_"+g,l.sSearch),t("bRegex_"+g,l.bRegex),t("bSearchable_"+g,n.bSearchable)),d.bSort&&t("bSortable_"+g,n.bSortable);d.bFilter&&(t("sSearch",e.sSearch),t("bRegex",e.bRegex));d.bSort&&(h.each(k,function(a,b){pa.order.push({column:b.col,dir:b.dir});t("iSortCol_"+a,b.col);t("sSortDir_"+
a,b.dir)}),t("iSortingCols",k.length));b=m.ext.legacy.ajax;return null===b?a.sAjaxSource?j:pa:b?j:pa}function ub(a,b){var c=ta(a,b),d=b.sEcho!==k?b.sEcho:b.draw,e=b.iTotalRecords!==k?b.iTotalRecords:b.recordsTotal,f=b.iTotalDisplayRecords!==k?b.iTotalDisplayRecords:b.recordsFiltered;if(d){if(1*d<a.iDraw)return;a.iDraw=1*d}na(a);a._iRecordsTotal=parseInt(e,10);a._iRecordsDisplay=parseInt(f,10);d=0;for(e=c.length;d<e;d++)M(a,c[d]);a.aiDisplay=a.aiDisplayMaster.slice();a.bAjaxDataGet=!1;N(a);a._bInitComplete||
ua(a,b);a.bAjaxDataGet=!0;C(a,!1)}function ta(a,b){var c=h.isPlainObject(a.ajax)&&a.ajax.dataSrc!==k?a.ajax.dataSrc:a.sAjaxDataProp;return"data"===c?b.aaData||b[c]:""!==c?Q(c)(b):b}function ob(a){var b=a.oClasses,c=a.sTableId,d=a.oLanguage,e=a.oPreviousSearch,f=a.aanFeatures,g='<input type="search" class="'+b.sFilterInput+'"/>',j=d.sSearch,j=j.match(/_INPUT_/)?j.replace("_INPUT_",g):j+g,b=h("<div/>",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h("<label/>").append(j)),f=function(){var b=!this.value?
"":this.value;b!=e.sSearch&&(fa(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,N(a))},g=null!==a.searchDelay?a.searchDelay:"ssp"===y(a)?400:0,i=h("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT",g?Na(f,g):f).on("keypress.DT",function(a){if(13==a.keyCode)return!1}).attr("aria-controls",c);h(a.nTable).on("search.dt.DT",function(b,c){if(a===c)try{i[0]!==G.activeElement&&i.val(e.sSearch)}catch(d){}});
return b[0]}function fa(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};Fa(a);if("ssp"!=y(a)){vb(a,b.sSearch,c,b.bEscapeRegex!==k?!b.bEscapeRegex:b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b<e.length;b++)wb(a,e[b].sSearch,b,e[b].bEscapeRegex!==k?!e[b].bEscapeRegex:e[b].bRegex,e[b].bSmart,e[b].bCaseInsensitive);xb(a)}else f(b);a.bFiltered=!0;r(a,null,"search",[a])}function xb(a){for(var b=
m.ext.search,c=a.aiDisplay,d,e,f=0,g=b.length;f<g;f++){for(var j=[],i=0,n=c.length;i<n;i++)e=c[i],d=a.aoData[e],b[f](a,d._aFilterData,e,d._aData,i)&&j.push(e);c.length=0;h.merge(c,j)}}function wb(a,b,c,d,e,f){if(""!==b){for(var g=[],j=a.aiDisplay,d=Oa(b,d,e,f),e=0;e<j.length;e++)b=a.aoData[j[e]]._aFilterData[c],d.test(b)&&g.push(j[e]);a.aiDisplay=g}}function vb(a,b,c,d,e,f){var d=Oa(b,d,e,f),f=a.oPreviousSearch.sSearch,g=a.aiDisplayMaster,j,e=[];0!==m.ext.search.length&&(c=!0);j=yb(a);if(0>=b.length)a.aiDisplay=
g.slice();else{if(j||c||f.length>b.length||0!==b.indexOf(f)||a.bSorted)a.aiDisplay=g.slice();b=a.aiDisplay;for(c=0;c<b.length;c++)d.test(a.aoData[b[c]]._sFilterRow)&&e.push(b[c]);a.aiDisplay=e}}function Oa(a,b,c,d){a=b?a:Pa(a);c&&(a="^(?=.*?"+h.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(a){if('"'===a.charAt(0))var b=a.match(/^"(.*)"$/),a=b?b[1]:a;return a.replace('"',"")}).join(")(?=.*?")+").*$");return RegExp(a,d?"i":"")}function yb(a){var b=a.aoColumns,c,d,e,f,g,j,i,h,l=m.ext.type.search;c=!1;
d=0;for(f=a.aoData.length;d<f;d++)if(h=a.aoData[d],!h._aFilterData){j=[];e=0;for(g=b.length;e<g;e++)c=b[e],c.bSearchable?(i=B(a,d,e,"filter"),l[c.sType]&&(i=l[c.sType](i)),null===i&&(i=""),"string"!==typeof i&&i.toString&&(i=i.toString())):i="",i.indexOf&&-1!==i.indexOf("&")&&(va.innerHTML=i,i=Wb?va.textContent:va.innerText),i.replace&&(i=i.replace(/[\r\n]/g,"")),j.push(i);h._aFilterData=j;h._sFilterRow=j.join(" ");c=!0}return c}function zb(a){return{search:a.sSearch,smart:a.bSmart,regex:a.bRegex,
caseInsensitive:a.bCaseInsensitive}}function Ab(a){return{sSearch:a.search,bSmart:a.smart,bRegex:a.regex,bCaseInsensitive:a.caseInsensitive}}function rb(a){var b=a.sTableId,c=a.aanFeatures.i,d=h("<div/>",{"class":a.oClasses.sInfo,id:!c?b+"_info":null});c||(a.aoDrawCallback.push({fn:Bb,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),h(a.nTable).attr("aria-describedby",b+"_info"));return d[0]}function Bb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+
1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),j=g?c.sInfo:c.sInfoEmpty;g!==f&&(j+=" "+c.sInfoFiltered);j+=c.sInfoPostFix;j=Cb(a,j);c=c.fnInfoCallback;null!==c&&(j=c.call(a.oInstance,a,d,e,f,g,j));h(b).html(j)}}function Cb(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a,
f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/e)))}function ga(a){var b,c,d=a.iInitDisplayStart,e=a.aoColumns,f;c=a.oFeatures;var g=a.bDeferLoading;if(a.bInitialised){mb(a);jb(a);ea(a,a.aoHeader);ea(a,a.aoFooter);C(a,!0);c.bAutoWidth&&Ea(a);b=0;for(c=e.length;b<c;b++)f=e[b],f.sWidth&&(f.nTh.style.width=v(f.sWidth));r(a,null,"preInit",[a]);S(a);e=y(a);if("ssp"!=e||g)"ajax"==e?sa(a,[],function(c){var f=ta(a,c);for(b=0;b<f.length;b++)M(a,f[b]);a.iInitDisplayStart=
d;S(a);C(a,!1);ua(a,c)},a):(C(a,!1),ua(a))}else setTimeout(function(){ga(a)},200)}function ua(a,b){a._bInitComplete=!0;(b||a.oInit.aaData)&&Y(a);r(a,null,"plugin-init",[a,b]);r(a,"aoInitComplete","init",[a,b])}function Qa(a,b){var c=parseInt(b,10);a._iDisplayLength=c;Ra(a);r(a,null,"length",[a,c])}function nb(a){for(var b=a.oClasses,c=a.sTableId,d=a.aLengthMenu,e=h.isArray(d[0]),f=e?d[0]:d,d=e?d[1]:d,e=h("<select/>",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect}),g=0,j=f.length;g<j;g++)e[0][g]=
new Option("number"===typeof d[g]?a.fnFormatNumber(d[g]):d[g],f[g]);var i=h("<div><label/></div>").addClass(b.sLength);a.aanFeatures.l||(i[0].id=c+"_length");i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));h("select",i).val(a._iDisplayLength).on("change.DT",function(){Qa(a,h(this).val());N(a)});h(a.nTable).on("length.dt.DT",function(b,c,d){a===c&&h("select",i).val(d)});return i[0]}function sb(a){var b=a.sPaginationType,c=m.ext.pager[b],d="function"===typeof c,e=function(a){N(a)},
b=h("<div/>").addClass(a.oClasses.sPaging+b)[0],f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,i=a._iDisplayLength,h=a.fnRecordsDisplay(),l=-1===i,b=l?0:Math.ceil(b/i),i=l?1:Math.ceil(h/i),h=c(b,i),k,l=0;for(k=f.p.length;l<k;l++)Ma(a,"pageButton")(a,f.p[l],l,h,b,i)}else c.fnUpdate(a,e)},sName:"pagination"}));return b}function Sa(a,b,c){var d=a._iDisplayStart,e=a._iDisplayLength,f=a.fnRecordsDisplay();0===f||-1===
e?d=0:"number"===typeof b?(d=b*e,d>f&&(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==b?d+e<f&&(d+=e):"last"==b?d=Math.floor((f-1)/e)*e:J(a,0,"Unknown paging action: "+b,5);b=a._iDisplayStart!==d;a._iDisplayStart=d;b&&(r(a,null,"page",[a]),c&&N(a));return b}function pb(a){return h("<div/>",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display",
b?"block":"none");r(a,null,"processing",[a,b])}function qb(a){var b=h(a.nTable);b.attr("role","grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),j=g.length?g[0]._captionSide:null,i=h(b[0].cloneNode(!1)),n=h(b[0].cloneNode(!1)),l=b.children("tfoot");l.length||(l=null);i=h("<div/>",{"class":f.sScrollWrapper}).append(h("<div/>",{"class":f.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",
{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||"100%"}).append(i.removeAttr("id").css("margin-left",0).append("top"===j?g:null).append(b.children("thead"))))).append(h("<div/>",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:!d?null:v(d)}).append(b));l&&i.append(h("<div/>",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",{"class":f.sScrollFootInner}).append(n.removeAttr("id").css("margin-left",
0).append("bottom"===j?g:null).append(b.children("tfoot")))));var b=i.children(),k=b[0],f=b[1],t=l?b[2]:null;if(d)h(f).on("scroll.DT",function(){var a=this.scrollLeft;k.scrollLeft=a;l&&(t.scrollLeft=a)});h(f).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=k;a.nScrollBody=f;a.nScrollFoot=t;a.aoDrawCallback.push({fn:ka,sName:"scrolling"});return i[0]}function ka(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY,b=b.iBarWidth,f=h(a.nScrollHead),g=f[0].style,j=f.children("div"),i=j[0].style,n=j.children("table"),
j=a.nScrollBody,l=h(j),q=j.style,t=h(a.nScrollFoot).children("div"),m=t.children("table"),o=h(a.nTHead),p=h(a.nTable),s=p[0],r=s.style,u=a.nTFoot?h(a.nTFoot):null,x=a.oBrowser,T=x.bScrollOversize,Xb=D(a.aoColumns,"nTh"),O,K,P,w,Ta=[],y=[],z=[],A=[],B,C=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};K=j.scrollHeight>j.clientHeight;if(a.scrollBarVis!==K&&a.scrollBarVis!==k)a.scrollBarVis=K,Y(a);else{a.scrollBarVis=K;p.children("thead, tfoot").remove();
u&&(P=u.clone().prependTo(p),O=u.find("tr"),P=P.find("tr"));w=o.clone().prependTo(p);o=o.find("tr");K=w.find("tr");w.find("th, td").removeAttr("tabindex");c||(q.width="100%",f[0].style.width="100%");h.each(ra(a,w),function(b,c){B=Z(a,b);c.style.width=a.aoColumns[B].sWidth});u&&H(function(a){a.style.width=""},P);f=p.outerWidth();if(""===c){r.width="100%";if(T&&(p.find("tbody").height()>j.offsetHeight||"scroll"==l.css("overflow-y")))r.width=v(p.outerWidth()-b);f=p.outerWidth()}else""!==d&&(r.width=
v(d),f=p.outerWidth());H(C,K);H(function(a){z.push(a.innerHTML);Ta.push(v(h(a).css("width")))},K);H(function(a,b){if(h.inArray(a,Xb)!==-1)a.style.width=Ta[b]},o);h(K).height(0);u&&(H(C,P),H(function(a){A.push(a.innerHTML);y.push(v(h(a).css("width")))},P),H(function(a,b){a.style.width=y[b]},O),h(P).height(0));H(function(a,b){a.innerHTML='<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+z[b]+"</div>";a.style.width=Ta[b]},K);u&&H(function(a,b){a.innerHTML='<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+
A[b]+"</div>";a.style.width=y[b]},P);if(p.outerWidth()<f){O=j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")?f+b:f;if(T&&(j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")))r.width=v(O-b);(""===c||""!==d)&&J(a,1,"Possible column misalignment",6)}else O="100%";q.width=v(O);g.width=v(O);u&&(a.nScrollFoot.style.width=v(O));!e&&T&&(q.height=v(s.offsetHeight+b));c=p.outerWidth();n[0].style.width=v(c);i.width=v(c);d=p.height()>j.clientHeight||"scroll"==l.css("overflow-y");e="padding"+
(x.bScrollbarLeft?"Left":"Right");i[e]=d?b+"px":"0px";u&&(m[0].style.width=v(c),t[0].style.width=v(c),t[0].style[e]=d?b+"px":"0px");p.children("colgroup").insertBefore(p.children("thead"));l.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=0}}function H(a,b,c){for(var d=0,e=0,f=b.length,g,j;e<f;){g=b[e].firstChild;for(j=c?c[e].firstChild:null;g;)1===g.nodeType&&(c?a(g,j,d):a(g,d),d++),g=g.nextSibling,j=c?j.nextSibling:null;e++}}function Ea(a){var b=a.nTable,c=a.aoColumns,d=a.oScroll,
e=d.sY,f=d.sX,g=d.sXInner,j=c.length,i=la(a,"bVisible"),n=h("th",a.nTHead),l=b.getAttribute("width"),k=b.parentNode,t=!1,m,o,p=a.oBrowser,d=p.bScrollOversize;(m=b.style.width)&&-1!==m.indexOf("%")&&(l=m);for(m=0;m<i.length;m++)o=c[i[m]],null!==o.sWidth&&(o.sWidth=Db(o.sWidthOrig,k),t=!0);if(d||!t&&!f&&!e&&j==aa(a)&&j==n.length)for(m=0;m<j;m++)i=Z(a,m),null!==i&&(c[i].sWidth=v(n.eq(m).width()));else{j=h(b).clone().css("visibility","hidden").removeAttr("id");j.find("tbody tr").remove();var s=h("<tr/>").appendTo(j.find("tbody"));
j.find("thead, tfoot").remove();j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone());j.find("tfoot th, tfoot td").css("width","");n=ra(a,j.find("thead")[0]);for(m=0;m<i.length;m++)o=c[i[m]],n[m].style.width=null!==o.sWidthOrig&&""!==o.sWidthOrig?v(o.sWidthOrig):"",o.sWidthOrig&&f&&h(n[m]).append(h("<div/>").css({width:o.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(m=0;m<i.length;m++)t=i[m],o=c[t],h(Eb(a,t)).clone(!1).append(o.sContentPadding).appendTo(s);h("[name]",
j).removeAttr("name");o=h("<div/>").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(j).appendTo(k);f&&g?j.width(g):f?(j.css("width","auto"),j.removeAttr("width"),j.width()<k.clientWidth&&l&&j.width(k.clientWidth)):e?j.width(k.clientWidth):l&&j.width(l);for(m=e=0;m<i.length;m++)k=h(n[m]),g=k.outerWidth()-k.width(),k=p.bBounding?Math.ceil(n[m].getBoundingClientRect().width):k.outerWidth(),e+=k,c[i[m]].sWidth=v(k-g);b.style.width=v(e);o.remove()}l&&(b.style.width=
v(l));if((l||f)&&!a._reszEvt)b=function(){h(E).on("resize.DT-"+a.sInstance,Na(function(){Y(a)}))},d?setTimeout(b,1E3):b(),a._reszEvt=!0}function Db(a,b){if(!a)return 0;var c=h("<div/>").css("width",v(a)).appendTo(b||G.body),d=c[0].offsetWidth;c.remove();return d}function Eb(a,b){var c=Fb(a,b);if(0>c)return null;var d=a.aoData[c];return!d.nTr?h("<td/>").html(B(a,c,b,"display"))[0]:d.anCells[b]}function Fb(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;f<g;f++)c=B(a,f,b,"display")+"",c=c.replace(Yb,
""),c=c.replace(/&nbsp;/g," "),c.length>d&&(d=c.length,e=f);return e}function v(a){return null===a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function V(a){var b,c,d=[],e=a.aoColumns,f,g,j,i;b=a.aaSortingFixed;c=h.isPlainObject(b);var n=[];f=function(a){a.length&&!h.isArray(a[0])?n.push(a):h.merge(n,a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;a<n.length;a++){i=n[a][0];f=e[i].aDataSort;b=0;for(c=f.length;b<c;b++)g=f[b],j=e[g].sType||
"string",n[a]._idx===k&&(n[a]._idx=h.inArray(n[a][1],e[g].asSorting)),d.push({src:i,col:g,dir:n[a][1],index:n[a]._idx,type:j,formatter:m.ext.type.order[j+"-pre"]})}return d}function lb(a){var b,c,d=[],e=m.ext.type.order,f=a.aoData,g=0,j,i=a.aiDisplayMaster,h;Fa(a);h=V(a);b=0;for(c=h.length;b<c;b++)j=h[b],j.formatter&&g++,Gb(a,j.col);if("ssp"!=y(a)&&0!==h.length){b=0;for(c=i.length;b<c;b++)d[i[b]]=b;g===h.length?i.sort(function(a,b){var c,e,g,j,i=h.length,k=f[a]._aSortData,m=f[b]._aSortData;for(g=
0;g<i;g++)if(j=h[g],c=k[j.col],e=m[j.col],c=c<e?-1:c>e?1:0,0!==c)return"asc"===j.dir?c:-c;c=d[a];e=d[b];return c<e?-1:c>e?1:0}):i.sort(function(a,b){var c,g,j,i,k=h.length,m=f[a]._aSortData,o=f[b]._aSortData;for(j=0;j<k;j++)if(i=h[j],c=m[i.col],g=o[i.col],i=e[i.type+"-"+i.dir]||e["string-"+i.dir],c=i(c,g),0!==c)return c;c=d[a];g=d[b];return c<g?-1:c>g?1:0})}a.bSorted=!0}function Hb(a){for(var b,c,d=a.aoColumns,e=V(a),a=a.oLanguage.oAria,f=0,g=d.length;f<g;f++){c=d[f];var j=c.asSorting;b=c.sTitle.replace(/<.*?>/g,
"");var i=c.nTh;i.removeAttribute("aria-sort");c.bSortable&&(0<e.length&&e[0].col==f?(i.setAttribute("aria-sort","asc"==e[0].dir?"ascending":"descending"),c=j[e[0].index+1]||j[0]):c=j[0],b+="asc"===c?a.sSortAscending:a.sSortDescending);i.setAttribute("aria-label",b)}}function Ua(a,b,c,d){var e=a.aaSorting,f=a.aoColumns[b].asSorting,g=function(a,b){var c=a._idx;c===k&&(c=h.inArray(a[1],f));return c+1<f.length?c+1:b?null:0};"number"===typeof e[0]&&(e=a.aaSorting=[e]);c&&a.oFeatures.bSortMulti?(c=h.inArray(b,
D(e,"0")),-1!==c?(b=g(e[c],!0),null===b&&1===e.length&&(b=0),null===b?e.splice(c,1):(e[c][1]=f[b],e[c]._idx=b)):(e.push([b,f[0],0]),e[e.length-1]._idx=0)):e.length&&e[0][0]==b?(b=g(e[0]),e.length=1,e[0][1]=f[b],e[0]._idx=b):(e.length=0,e.push([b,f[0]]),e[0]._idx=0);S(a);"function"==typeof d&&d(a)}function La(a,b,c,d){var e=a.aoColumns[c];Va(b,{},function(b){!1!==e.bSortable&&(a.oFeatures.bProcessing?(C(a,!0),setTimeout(function(){Ua(a,c,b.shiftKey,d);"ssp"!==y(a)&&C(a,!1)},0)):Ua(a,c,b.shiftKey,d))})}
function wa(a){var b=a.aLastSort,c=a.oClasses.sSortColumn,d=V(a),e=a.oFeatures,f,g;if(e.bSort&&e.bSortClasses){e=0;for(f=b.length;e<f;e++)g=b[e].src,h(D(a.aoData,"anCells",g)).removeClass(c+(2>e?e+1:3));e=0;for(f=d.length;e<f;e++)g=d[e].src,h(D(a.aoData,"anCells",g)).addClass(c+(2>e?e+1:3))}a.aLastSort=d}function Gb(a,b){var c=a.aoColumns[b],d=m.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,$(a,b)));for(var f,g=m.ext.type.order[c.sType+"-pre"],j=0,i=a.aoData.length;j<i;j++)if(c=a.aoData[j],
c._aSortData||(c._aSortData=[]),!c._aSortData[b]||d)f=d?e[j]:B(a,j,b,"sort"),c._aSortData[b]=g?g(f):f}function xa(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b={time:+new Date,start:a._iDisplayStart,length:a._iDisplayLength,order:h.extend(!0,[],a.aaSorting),search:zb(a.oPreviousSearch),columns:h.map(a.aoColumns,function(b,d){return{visible:b.bVisible,search:zb(a.aoPreSearchCols[d])}})};r(a,"aoStateSaveParams","stateSaveParams",[a,b]);a.oSavedState=b;a.fnStateSaveCallback.call(a.oInstance,a,
b)}}function Ib(a,b,c){var d,e,f=a.aoColumns,b=function(b){if(b&&b.time){var g=r(a,"aoStateLoadParams","stateLoadParams",[a,b]);if(-1===h.inArray(!1,g)&&(g=a.iStateDuration,!(0<g&&b.time<+new Date-1E3*g)&&!(b.columns&&f.length!==b.columns.length))){a.oLoadedState=h.extend(!0,{},b);b.start!==k&&(a._iDisplayStart=b.start,a.iInitDisplayStart=b.start);b.length!==k&&(a._iDisplayLength=b.length);b.order!==k&&(a.aaSorting=[],h.each(b.order,function(b,c){a.aaSorting.push(c[0]>=f.length?[0,c[1]]:c)}));b.search!==
k&&h.extend(a.oPreviousSearch,Ab(b.search));if(b.columns){d=0;for(e=b.columns.length;d<e;d++)g=b.columns[d],g.visible!==k&&(f[d].bVisible=g.visible),g.search!==k&&h.extend(a.aoPreSearchCols[d],Ab(g.search))}r(a,"aoStateLoaded","stateLoaded",[a,b])}}c()};if(a.oFeatures.bStateSave){var g=a.fnStateLoadCallback.call(a.oInstance,a,b);g!==k&&b(g)}else c()}function ya(a){var b=m.settings,a=h.inArray(a,D(b,"nTable"));return-1!==a?b[a]:null}function J(a,b,c,d){c="DataTables warning: "+(a?"table id="+a.sTableId+
" - ":"")+c;d&&(c+=". For more information about this error, please see http://datatables.net/tn/"+d);if(b)E.console&&console.log&&console.log(c);else if(b=m.ext,b=b.sErrMode||b.errMode,a&&r(a,null,"error",[a,d,c]),"alert"==b)alert(c);else{if("throw"==b)throw Error(c);"function"==typeof b&&b(a,d,c)}}function F(a,b,c,d){h.isArray(c)?h.each(c,function(c,d){h.isArray(d)?F(a,b,d[0],d[1]):F(a,b,d)}):(d===k&&(d=c),b[c]!==k&&(a[d]=b[c]))}function Jb(a,b,c){var d,e;for(e in b)b.hasOwnProperty(e)&&(d=b[e],
h.isPlainObject(d)?(h.isPlainObject(a[e])||(a[e]={}),h.extend(!0,a[e],d)):a[e]=c&&"data"!==e&&"aaData"!==e&&h.isArray(d)?d.slice():d);return a}function Va(a,b,c){h(a).on("click.DT",b,function(b){a.blur();c(b)}).on("keypress.DT",b,function(a){13===a.which&&(a.preventDefault(),c(a))}).on("selectstart.DT",function(){return!1})}function z(a,b,c,d){c&&a[b].push({fn:c,sName:d})}function r(a,b,c,d){var e=[];b&&(e=h.map(a[b].slice().reverse(),function(b){return b.fn.apply(a.oInstance,d)}));null!==c&&(b=h.Event(c+
".dt"),h(a.nTable).trigger(b,d),e.push(b.result));return e}function Ra(a){var b=a._iDisplayStart,c=a.fnDisplayEnd(),d=a._iDisplayLength;b>=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Ma(a,b){var c=a.renderer,d=m.ext.renderer[b];return h.isPlainObject(c)&&c[b]?d[c[b]]||d._:"string"===typeof c?d[c]||d._:d._}function y(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function ha(a,b){var c=[],c=Kb.numbers_length,d=Math.floor(c/2);b<=c?c=W(0,b):a<=d?(c=W(0,
c-2),c.push("ellipsis"),c.push(b-1)):(a>=b-1-d?c=W(b-(c-2),b):(c=W(a-d+2,a+d-1),c.push("ellipsis"),c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function cb(a){h.each({num:function(b){return za(b,a)},"num-fmt":function(b){return za(b,a,Wa)},"html-num":function(b){return za(b,a,Aa)},"html-num-fmt":function(b){return za(b,a,Aa,Wa)}},function(b,c){x.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(x.type.search[b+a]=x.type.search.html)})}function Lb(a){return function(){var b=
[ya(this[m.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return m.ext.internal[a].apply(this,b)}}var m=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new s(ya(this[x.iApiIndex])):new s(this)};this.fnAddData=function(a,b){var c=this.api(!0),d=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return d.flatten().toArray()};this.fnAdjustColumnSizing=
function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===k||a?b.draw(!1):(""!==d.sX||""!==d.sY)&&ka(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,b,c){var d=this.api(!0),a=d.rows(a),e=a.settings()[0],h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===k||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)};
this.fnFilter=function(a,b,c,d,e,h){e=this.api(!0);null===b||b===k?e.search(a,c,d,h):e.column(b).search(a,c,d,h);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==d||"th"==d?c.cell(a,b).data():c.row(a).data()||null}return c.data().toArray()};this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();
return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(),[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};this.fnPageChange=function(a,b){var c=this.api(!0).page(a);(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return ya(this[x.iApiIndex])};
this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener=function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===k||e)&&h.columns.adjust();(d===k||d)&&h.draw();return 0};this.fnVersionCheck=x.fnVersionCheck;var b=this,c=a===k,d=this.length;c&&(a={});this.oApi=this.internal=x.internal;for(var e in m.ext.internal)e&&(this[e]=Lb(e));this.each(function(){var e={},g=1<d?Jb(e,a,!0):
a,j=0,i,e=this.getAttribute("id"),n=!1,l=m.defaults,q=h(this);if("table"!=this.nodeName.toLowerCase())J(null,0,"Non-table node initialisation ("+this.nodeName+")",2);else{db(l);eb(l.column);I(l,l,!0);I(l.column,l.column,!0);I(l,h.extend(g,q.data()));var t=m.settings,j=0;for(i=t.length;j<i;j++){var o=t[j];if(o.nTable==this||o.nTHead.parentNode==this||o.nTFoot&&o.nTFoot.parentNode==this){var s=g.bRetrieve!==k?g.bRetrieve:l.bRetrieve;if(c||s)return o.oInstance;if(g.bDestroy!==k?g.bDestroy:l.bDestroy){o.oInstance.fnDestroy();
break}else{J(o,0,"Cannot reinitialise DataTable",3);return}}if(o.sTableId==this.id){t.splice(j,1);break}}if(null===e||""===e)this.id=e="DataTables_Table_"+m.ext._unique++;var p=h.extend(!0,{},m.models.oSettings,{sDestroyWidth:q[0].style.width,sInstance:e,sTableId:e});p.nTable=this;p.oApi=b.internal;p.oInit=g;t.push(p);p.oInstance=1===b.length?b:q.dataTable();db(g);g.oLanguage&&Ca(g.oLanguage);g.aLengthMenu&&!g.iDisplayLength&&(g.iDisplayLength=h.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]);
g=Jb(h.extend(!0,{},l),g);F(p.oFeatures,g,"bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" "));F(p,g,["asStripeClasses","ajax","fnServerData","fnFormatNumber","sServerMethod","aaSorting","aaSortingFixed","aLengthMenu","sPaginationType","sAjaxSource","sAjaxDataProp","iStateDuration","sDom","bSortCellsTop","iTabIndex","fnStateLoadCallback","fnStateSaveCallback","renderer","searchDelay","rowId",["iCookieDuration","iStateDuration"],
["oSearch","oPreviousSearch"],["aoSearchCols","aoPreSearchCols"],["iDisplayLength","_iDisplayLength"]]);F(p.oScroll,g,[["sScrollX","sX"],["sScrollXInner","sXInner"],["sScrollY","sY"],["bScrollCollapse","bCollapse"]]);F(p.oLanguage,g,"fnInfoCallback");z(p,"aoDrawCallback",g.fnDrawCallback,"user");z(p,"aoServerParams",g.fnServerParams,"user");z(p,"aoStateSaveParams",g.fnStateSaveParams,"user");z(p,"aoStateLoadParams",g.fnStateLoadParams,"user");z(p,"aoStateLoaded",g.fnStateLoaded,"user");z(p,"aoRowCallback",
g.fnRowCallback,"user");z(p,"aoRowCreatedCallback",g.fnCreatedRow,"user");z(p,"aoHeaderCallback",g.fnHeaderCallback,"user");z(p,"aoFooterCallback",g.fnFooterCallback,"user");z(p,"aoInitComplete",g.fnInitComplete,"user");z(p,"aoPreDrawCallback",g.fnPreDrawCallback,"user");p.rowIdFn=Q(g.rowId);fb(p);var u=p.oClasses;h.extend(u,m.ext.classes,g.oClasses);q.addClass(u.sTable);p.iInitDisplayStart===k&&(p.iInitDisplayStart=g.iDisplayStart,p._iDisplayStart=g.iDisplayStart);null!==g.iDeferLoading&&(p.bDeferLoading=
!0,e=h.isArray(g.iDeferLoading),p._iRecordsDisplay=e?g.iDeferLoading[0]:g.iDeferLoading,p._iRecordsTotal=e?g.iDeferLoading[1]:g.iDeferLoading);var v=p.oLanguage;h.extend(!0,v,g.oLanguage);v.sUrl&&(h.ajax({dataType:"json",url:v.sUrl,success:function(a){Ca(a);I(l.oLanguage,a);h.extend(true,v,a);ga(p)},error:function(){ga(p)}}),n=!0);null===g.asStripeClasses&&(p.asStripeClasses=[u.sStripeOdd,u.sStripeEven]);var e=p.asStripeClasses,x=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(e,function(a){return x.hasClass(a)}))&&
(h("tbody tr",this).removeClass(e.join(" ")),p.asDestroyStripes=e.slice());e=[];t=this.getElementsByTagName("thead");0!==t.length&&(da(p.aoHeader,t[0]),e=ra(p));if(null===g.aoColumns){t=[];j=0;for(i=e.length;j<i;j++)t.push(null)}else t=g.aoColumns;j=0;for(i=t.length;j<i;j++)Da(p,e?e[j]:null);hb(p,g.aoColumnDefs,t,function(a,b){ja(p,a,b)});if(x.length){var w=function(a,b){return a.getAttribute("data-"+b)!==null?b:null};h(x[0]).children("th, td").each(function(a,b){var c=p.aoColumns[a];if(c.mData===
a){var d=w(b,"sort")||w(b,"order"),e=w(b,"filter")||w(b,"search");if(d!==null||e!==null){c.mData={_:a+".display",sort:d!==null?a+".@data-"+d:k,type:d!==null?a+".@data-"+d:k,filter:e!==null?a+".@data-"+e:k};ja(p,a)}}})}var T=p.oFeatures,e=function(){if(g.aaSorting===k){var a=p.aaSorting;j=0;for(i=a.length;j<i;j++)a[j][1]=p.aoColumns[j].asSorting[0]}wa(p);T.bSort&&z(p,"aoDrawCallback",function(){if(p.bSorted){var a=V(p),b={};h.each(a,function(a,c){b[c.src]=c.dir});r(p,null,"order",[p,a,b]);Hb(p)}});
z(p,"aoDrawCallback",function(){(p.bSorted||y(p)==="ssp"||T.bDeferRender)&&wa(p)},"sc");var a=q.children("caption").each(function(){this._captionSide=h(this).css("caption-side")}),b=q.children("thead");b.length===0&&(b=h("<thead/>").appendTo(q));p.nTHead=b[0];b=q.children("tbody");b.length===0&&(b=h("<tbody/>").appendTo(q));p.nTBody=b[0];b=q.children("tfoot");if(b.length===0&&a.length>0&&(p.oScroll.sX!==""||p.oScroll.sY!==""))b=h("<tfoot/>").appendTo(q);if(b.length===0||b.children().length===0)q.addClass(u.sNoFooter);
else if(b.length>0){p.nTFoot=b[0];da(p.aoFooter,p.nTFoot)}if(g.aaData)for(j=0;j<g.aaData.length;j++)M(p,g.aaData[j]);else(p.bDeferLoading||y(p)=="dom")&&ma(p,h(p.nTBody).children("tr"));p.aiDisplay=p.aiDisplayMaster.slice();p.bInitialised=true;n===false&&ga(p)};g.bStateSave?(T.bStateSave=!0,z(p,"aoDrawCallback",xa,"state_save"),Ib(p,g,e)):e()}});b=null;return this},x,s,o,u,Xa={},Mb=/[\r\n]/g,Aa=/<.*?>/g,Zb=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,$b=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)",
"g"),Wa=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi,L=function(a){return!a||!0===a||"-"===a?!0:!1},Nb=function(a){var b=parseInt(a,10);return!isNaN(b)&&isFinite(a)?b:null},Ob=function(a,b){Xa[b]||(Xa[b]=RegExp(Pa(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(Xa[b],"."):a},Ya=function(a,b,c){var d="string"===typeof a;if(L(a))return!0;b&&d&&(a=Ob(a,b));c&&d&&(a=a.replace(Wa,""));return!isNaN(parseFloat(a))&&isFinite(a)},Pb=function(a,b,c){return L(a)?!0:!(L(a)||"string"===
typeof a)?null:Ya(a.replace(Aa,""),b,c)?!0:null},D=function(a,b,c){var d=[],e=0,f=a.length;if(c!==k)for(;e<f;e++)a[e]&&a[e][b]&&d.push(a[e][b][c]);else for(;e<f;e++)a[e]&&d.push(a[e][b]);return d},ia=function(a,b,c,d){var e=[],f=0,g=b.length;if(d!==k)for(;f<g;f++)a[b[f]][c]&&e.push(a[b[f]][c][d]);else for(;f<g;f++)e.push(a[b[f]][c]);return e},W=function(a,b){var c=[],d;b===k?(b=0,d=a):(d=b,b=a);for(var e=b;e<d;e++)c.push(e);return c},Qb=function(a){for(var b=[],c=0,d=a.length;c<d;c++)a[c]&&b.push(a[c]);
return b},qa=function(a){var b;a:{if(!(2>a.length)){b=a.slice().sort();for(var c=b[0],d=1,e=b.length;d<e;d++){if(b[d]===c){b=!1;break a}c=b[d]}}b=!0}if(b)return a.slice();b=[];var e=a.length,f,g=0,d=0;a:for(;d<e;d++){c=a[d];for(f=0;f<g;f++)if(b[f]===c)continue a;b.push(c);g++}return b};m.util={throttle:function(a,b){var c=b!==k?b:200,d,e;return function(){var b=this,g=+new Date,j=arguments;d&&g<d+c?(clearTimeout(e),e=setTimeout(function(){d=k;a.apply(b,j)},c)):(d=g,a.apply(b,j))}},escapeRegex:function(a){return a.replace($b,
"\\$1")}};var A=function(a,b,c){a[b]!==k&&(a[c]=a[b])},ba=/\[.*?\]$/,U=/\(\)$/,Pa=m.util.escapeRegex,va=h("<div>")[0],Wb=va.textContent!==k,Yb=/<.*?>/g,Na=m.util.throttle,Rb=[],w=Array.prototype,ac=function(a){var b,c,d=m.settings,e=h.map(d,function(a){return a.nTable});if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&"table"===a.nodeName.toLowerCase())return b=h.inArray(a,e),-1!==b?[d[b]]:null;if(a&&"function"===typeof a.settings)return a.settings().toArray();"string"===typeof a?c=h(a):a instanceof
h&&(c=a)}else return[];if(c)return c.map(function(){b=h.inArray(this,e);return-1!==b?d[b]:null}).toArray()};s=function(a,b){if(!(this instanceof s))return new s(a,b);var c=[],d=function(a){(a=ac(a))&&(c=c.concat(a))};if(h.isArray(a))for(var e=0,f=a.length;e<f;e++)d(a[e]);else d(a);this.context=qa(c);b&&h.merge(this,b);this.selector={rows:null,cols:null,opts:null};s.extend(this,this,Rb)};m.Api=s;h.extend(s.prototype,{any:function(){return 0!==this.count()},concat:w.concat,context:[],count:function(){return this.flatten().length},
each:function(a){for(var b=0,c=this.length;b<c;b++)a.call(this,this[b],b,this);return this},eq:function(a){var b=this.context;return b.length>a?new s(b[a],this[a]):null},filter:function(a){var b=[];if(w.filter)b=w.filter.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)a.call(this,this[c],c,this)&&b.push(this[c]);return new s(this.context,b)},flatten:function(){var a=[];return new s(this.context,a.concat.apply(a,this.toArray()))},join:w.join,indexOf:w.indexOf||function(a,b){for(var c=b||0,
d=this.length;c<d;c++)if(this[c]===a)return c;return-1},iterator:function(a,b,c,d){var e=[],f,g,j,h,n,l=this.context,m,o,u=this.selector;"string"===typeof a&&(d=c,c=b,b=a,a=!1);g=0;for(j=l.length;g<j;g++){var r=new s(l[g]);if("table"===b)f=c.call(r,l[g],g),f!==k&&e.push(f);else if("columns"===b||"rows"===b)f=c.call(r,l[g],this[g],g),f!==k&&e.push(f);else if("column"===b||"column-rows"===b||"row"===b||"cell"===b){o=this[g];"column-rows"===b&&(m=Ba(l[g],u.opts));h=0;for(n=o.length;h<n;h++)f=o[h],f=
"cell"===b?c.call(r,l[g],f.row,f.column,g,h):c.call(r,l[g],f,g,h,m),f!==k&&e.push(f)}}return e.length||d?(a=new s(l,a?e.concat.apply([],e):e),b=a.selector,b.rows=u.rows,b.cols=u.cols,b.opts=u.opts,a):this},lastIndexOf:w.lastIndexOf||function(a,b){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,map:function(a){var b=[];if(w.map)b=w.map.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)b.push(a.call(this,this[c],c));return new s(this.context,b)},pluck:function(a){return this.map(function(b){return b[a]})},
pop:w.pop,push:w.push,reduce:w.reduce||function(a,b){return gb(this,a,b,0,this.length,1)},reduceRight:w.reduceRight||function(a,b){return gb(this,a,b,this.length-1,-1,-1)},reverse:w.reverse,selector:null,shift:w.shift,slice:function(){return new s(this.context,this)},sort:w.sort,splice:w.splice,toArray:function(){return w.slice.call(this)},to$:function(){return h(this)},toJQuery:function(){return h(this)},unique:function(){return new s(this.context,qa(this))},unshift:w.unshift});s.extend=function(a,
b,c){if(c.length&&b&&(b instanceof s||b.__dt_wrapper)){var d,e,f,g=function(a,b,c){return function(){var d=b.apply(a,arguments);s.extend(d,d,c.methodExt);return d}};d=0;for(e=c.length;d<e;d++)f=c[d],b[f.name]="function"===typeof f.val?g(a,f.val,f):h.isPlainObject(f.val)?{}:f.val,b[f.name].__dt_wrapper=!0,s.extend(a,b[f.name],f.propExt)}};s.register=o=function(a,b){if(h.isArray(a))for(var c=0,d=a.length;c<d;c++)s.register(a[c],b);else for(var e=a.split("."),f=Rb,g,j,c=0,d=e.length;c<d;c++){g=(j=-1!==
e[c].indexOf("()"))?e[c].replace("()",""):e[c];var i;a:{i=0;for(var n=f.length;i<n;i++)if(f[i].name===g){i=f[i];break a}i=null}i||(i={name:g,val:{},methodExt:[],propExt:[]},f.push(i));c===d-1?i.val=b:f=j?i.methodExt:i.propExt}};s.registerPlural=u=function(a,b,c){s.register(a,c);s.register(b,function(){var a=c.apply(this,arguments);return a===this?this:a instanceof s?a.length?h.isArray(a[0])?new s(a.context,a[0]):a[0]:k:a})};o("tables()",function(a){var b;if(a){b=s;var c=this.context;if("number"===
typeof a)a=[c[a]];else var d=h.map(c,function(a){return a.nTable}),a=h(d).filter(a).map(function(){var a=h.inArray(this,d);return c[a]}).toArray();b=new b(a)}else b=this;return b});o("table()",function(a){var a=this.tables(a),b=a.context;return b.length?new s(b[0]):a});u("tables().nodes()","table().node()",function(){return this.iterator("table",function(a){return a.nTable},1)});u("tables().body()","table().body()",function(){return this.iterator("table",function(a){return a.nTBody},1)});u("tables().header()",
"table().header()",function(){return this.iterator("table",function(a){return a.nTHead},1)});u("tables().footer()","table().footer()",function(){return this.iterator("table",function(a){return a.nTFoot},1)});u("tables().containers()","table().container()",function(){return this.iterator("table",function(a){return a.nTableWrapper},1)});o("draw()",function(a){return this.iterator("table",function(b){"page"===a?N(b):("string"===typeof a&&(a="full-hold"===a?!1:!0),S(b,!1===a))})});o("page()",function(a){return a===
k?this.page.info().page:this.iterator("table",function(b){Sa(b,a)})});o("page.info()",function(){if(0===this.context.length)return k;var a=this.context[0],b=a._iDisplayStart,c=a.oFeatures.bPaginate?a._iDisplayLength:-1,d=a.fnRecordsDisplay(),e=-1===c;return{page:e?0:Math.floor(b/c),pages:e?1:Math.ceil(d/c),start:b,end:a.fnDisplayEnd(),length:c,recordsTotal:a.fnRecordsTotal(),recordsDisplay:d,serverSide:"ssp"===y(a)}});o("page.len()",function(a){return a===k?0!==this.context.length?this.context[0]._iDisplayLength:
k:this.iterator("table",function(b){Qa(b,a)})});var Sb=function(a,b,c){if(c){var d=new s(a);d.one("draw",function(){c(d.ajax.json())})}if("ssp"==y(a))S(a,b);else{C(a,!0);var e=a.jqXHR;e&&4!==e.readyState&&e.abort();sa(a,[],function(c){na(a);for(var c=ta(a,c),d=0,e=c.length;d<e;d++)M(a,c[d]);S(a,b);C(a,!1)})}};o("ajax.json()",function(){var a=this.context;if(0<a.length)return a[0].json});o("ajax.params()",function(){var a=this.context;if(0<a.length)return a[0].oAjaxData});o("ajax.reload()",function(a,
b){return this.iterator("table",function(c){Sb(c,!1===b,a)})});o("ajax.url()",function(a){var b=this.context;if(a===k){if(0===b.length)return k;b=b[0];return b.ajax?h.isPlainObject(b.ajax)?b.ajax.url:b.ajax:b.sAjaxSource}return this.iterator("table",function(b){h.isPlainObject(b.ajax)?b.ajax.url=a:b.ajax=a})});o("ajax.url().load()",function(a,b){return this.iterator("table",function(c){Sb(c,!1===b,a)})});var Za=function(a,b,c,d,e){var f=[],g,j,i,n,l,m;i=typeof b;if(!b||"string"===i||"function"===
i||b.length===k)b=[b];i=0;for(n=b.length;i<n;i++){j=b[i]&&b[i].split&&!b[i].match(/[\[\(:]/)?b[i].split(","):[b[i]];l=0;for(m=j.length;l<m;l++)(g=c("string"===typeof j[l]?h.trim(j[l]):j[l]))&&g.length&&(f=f.concat(g))}a=x.selector[a];if(a.length){i=0;for(n=a.length;i<n;i++)f=a[i](d,e,f)}return qa(f)},$a=function(a){a||(a={});a.filter&&a.search===k&&(a.search=a.filter);return h.extend({search:"none",order:"current",page:"all"},a)},ab=function(a){for(var b=0,c=a.length;b<c;b++)if(0<a[b].length)return a[0]=
a[b],a[0].length=1,a.length=1,a.context=[a.context[b]],a;a.length=0;return a},Ba=function(a,b){var c,d,e,f=[],g=a.aiDisplay;c=a.aiDisplayMaster;var j=b.search;d=b.order;e=b.page;if("ssp"==y(a))return"removed"===j?[]:W(0,c.length);if("current"==e){c=a._iDisplayStart;for(d=a.fnDisplayEnd();c<d;c++)f.push(g[c])}else if("current"==d||"applied"==d)f="none"==j?c.slice():"applied"==j?g.slice():h.map(c,function(a){return-1===h.inArray(a,g)?a:null});else if("index"==d||"original"==d){c=0;for(d=a.aoData.length;c<
d;c++)"none"==j?f.push(c):(e=h.inArray(c,g),(-1===e&&"removed"==j||0<=e&&"applied"==j)&&f.push(c))}return f};o("rows()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=$a(b),c=this.iterator("table",function(c){var e=b,f;return Za("row",a,function(a){var b=Nb(a);if(b!==null&&!e)return[b];f||(f=Ba(c,e));if(b!==null&&h.inArray(b,f)!==-1)return[b];if(a===null||a===k||a==="")return f;if(typeof a==="function")return h.map(f,function(b){var e=c.aoData[b];return a(b,e._aData,e.nTr)?b:null});
b=Qb(ia(c.aoData,f,"nTr"));if(a.nodeName){if(a._DT_RowIndex!==k)return[a._DT_RowIndex];if(a._DT_CellIndex)return[a._DT_CellIndex.row];b=h(a).closest("*[data-dt-row]");return b.length?[b.data("dt-row")]:[]}if(typeof a==="string"&&a.charAt(0)==="#"){var i=c.aIds[a.replace(/^#/,"")];if(i!==k)return[i.idx]}return h(b).filter(a).map(function(){return this._DT_RowIndex}).toArray()},c,e)},1);c.selector.rows=a;c.selector.opts=b;return c});o("rows().nodes()",function(){return this.iterator("row",function(a,
b){return a.aoData[b].nTr||k},1)});o("rows().data()",function(){return this.iterator(!0,"rows",function(a,b){return ia(a.aoData,b,"_aData")},1)});u("rows().cache()","row().cache()",function(a){return this.iterator("row",function(b,c){var d=b.aoData[c];return"search"===a?d._aFilterData:d._aSortData},1)});u("rows().invalidate()","row().invalidate()",function(a){return this.iterator("row",function(b,c){ca(b,c,a)})});u("rows().indexes()","row().index()",function(){return this.iterator("row",function(a,
b){return b},1)});u("rows().ids()","row().id()",function(a){for(var b=[],c=this.context,d=0,e=c.length;d<e;d++)for(var f=0,g=this[d].length;f<g;f++){var h=c[d].rowIdFn(c[d].aoData[this[d][f]]._aData);b.push((!0===a?"#":"")+h)}return new s(c,b)});u("rows().remove()","row().remove()",function(){var a=this;this.iterator("row",function(b,c,d){var e=b.aoData,f=e[c],g,h,i,n,l;e.splice(c,1);g=0;for(h=e.length;g<h;g++)if(i=e[g],l=i.anCells,null!==i.nTr&&(i.nTr._DT_RowIndex=g),null!==l){i=0;for(n=l.length;i<
n;i++)l[i]._DT_CellIndex.row=g}oa(b.aiDisplayMaster,c);oa(b.aiDisplay,c);oa(a[d],c,!1);0<b._iRecordsDisplay&&b._iRecordsDisplay--;Ra(b);c=b.rowIdFn(f._aData);c!==k&&delete b.aIds[c]});this.iterator("table",function(a){for(var c=0,d=a.aoData.length;c<d;c++)a.aoData[c].idx=c});return this});o("rows.add()",function(a){var b=this.iterator("table",function(b){var c,f,g,h=[];f=0;for(g=a.length;f<g;f++)c=a[f],c.nodeName&&"TR"===c.nodeName.toUpperCase()?h.push(ma(b,c)[0]):h.push(M(b,c));return h},1),c=this.rows(-1);
c.pop();h.merge(c,b);return c});o("row()",function(a,b){return ab(this.rows(a,b))});o("row().data()",function(a){var b=this.context;if(a===k)return b.length&&this.length?b[0].aoData[this[0]]._aData:k;b[0].aoData[this[0]]._aData=a;ca(b[0],this[0],"data");return this});o("row().node()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]].nTr||null:null});o("row.add()",function(a){a instanceof h&&a.length&&(a=a[0]);var b=this.iterator("table",function(b){return a.nodeName&&
"TR"===a.nodeName.toUpperCase()?ma(b,a)[0]:M(b,a)});return this.row(b[0])});var bb=function(a,b){var c=a.context;if(c.length&&(c=c[0].aoData[b!==k?b:a[0]])&&c._details)c._details.remove(),c._detailsShow=k,c._details=k},Tb=function(a,b){var c=a.context;if(c.length&&a.length){var d=c[0].aoData[a[0]];if(d._details){(d._detailsShow=b)?d._details.insertAfter(d.nTr):d._details.detach();var e=c[0],f=new s(e),g=e.aoData;f.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details");0<D(g,
"_details").length&&(f.on("draw.dt.DT_details",function(a,b){e===b&&f.rows({page:"current"}).eq(0).each(function(a){a=g[a];a._detailsShow&&a._details.insertAfter(a.nTr)})}),f.on("column-visibility.dt.DT_details",function(a,b){if(e===b)for(var c,d=aa(b),f=0,h=g.length;f<h;f++)c=g[f],c._details&&c._details.children("td[colspan]").attr("colspan",d)}),f.on("destroy.dt.DT_details",function(a,b){if(e===b)for(var c=0,d=g.length;c<d;c++)g[c]._details&&bb(f,c)}))}}};o("row().child()",function(a,b){var c=this.context;
if(a===k)return c.length&&this.length?c[0].aoData[this[0]]._details:k;if(!0===a)this.child.show();else if(!1===a)bb(this);else if(c.length&&this.length){var d=c[0],c=c[0].aoData[this[0]],e=[],f=function(a,b){if(h.isArray(a)||a instanceof h)for(var c=0,k=a.length;c<k;c++)f(a[c],b);else a.nodeName&&"tr"===a.nodeName.toLowerCase()?e.push(a):(c=h("<tr><td/></tr>").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=aa(d),e.push(c[0]))};f(a,b);c._details&&c._details.detach();c._details=h(e);c._detailsShow&&
c._details.insertAfter(c.nTr)}return this});o(["row().child.show()","row().child().show()"],function(){Tb(this,!0);return this});o(["row().child.hide()","row().child().hide()"],function(){Tb(this,!1);return this});o(["row().child.remove()","row().child().remove()"],function(){bb(this);return this});o("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var bc=/^([^:]+):(name|visIdx|visible)$/,Ub=function(a,b,c,d,e){for(var c=
[],d=0,f=e.length;d<f;d++)c.push(B(a,e[d],b));return c};o("columns()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=$a(b),c=this.iterator("table",function(c){var e=a,f=b,g=c.aoColumns,j=D(g,"sName"),i=D(g,"nTh");return Za("column",e,function(a){var b=Nb(a);if(a==="")return W(g.length);if(b!==null)return[b>=0?b:g.length+b];if(typeof a==="function"){var e=Ba(c,f);return h.map(g,function(b,f){return a(f,Ub(c,f,0,0,e),i[f])?f:null})}var k=typeof a==="string"?a.match(bc):"";if(k)switch(k[2]){case "visIdx":case "visible":b=
parseInt(k[1],10);if(b<0){var m=h.map(g,function(a,b){return a.bVisible?b:null});return[m[m.length+b]]}return[Z(c,b)];case "name":return h.map(j,function(a,b){return a===k[1]?b:null});default:return[]}if(a.nodeName&&a._DT_CellIndex)return[a._DT_CellIndex.column];b=h(i).filter(a).map(function(){return h.inArray(this,i)}).toArray();if(b.length||!a.nodeName)return b;b=h(a).closest("*[data-dt-column]");return b.length?[b.data("dt-column")]:[]},c,f)},1);c.selector.cols=a;c.selector.opts=b;return c});u("columns().header()",
"column().header()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});u("columns().footer()","column().footer()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});u("columns().data()","column().data()",function(){return this.iterator("column-rows",Ub,1)});u("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},1)});u("columns().cache()","column().cache()",
function(a){return this.iterator("column-rows",function(b,c,d,e,f){return ia(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});u("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return ia(a.aoData,e,"anCells",b)},1)});u("columns().visible()","column().visible()",function(a,b){var c=this.iterator("column",function(b,c){if(a===k)return b.aoColumns[c].bVisible;var f=b.aoColumns,g=f[c],j=b.aoData,i,n,l;if(a!==k&&g.bVisible!==a){if(a){var m=
h.inArray(!0,D(f,"bVisible"),c+1);i=0;for(n=j.length;i<n;i++)l=j[i].nTr,f=j[i].anCells,l&&l.insertBefore(f[c],f[m]||null)}else h(D(b.aoData,"anCells",c)).detach();g.bVisible=a;ea(b,b.aoHeader);ea(b,b.aoFooter);xa(b)}});a!==k&&(this.iterator("column",function(c,e){r(c,null,"column-visibility",[c,e,a,b])}),(b===k||b)&&this.columns.adjust());return c});u("columns().indexes()","column().index()",function(a){return this.iterator("column",function(b,c){return"visible"===a?$(b,c):c},1)});o("columns.adjust()",
function(){return this.iterator("table",function(a){Y(a)},1)});o("column.index()",function(a,b){if(0!==this.context.length){var c=this.context[0];if("fromVisible"===a||"toData"===a)return Z(c,b);if("fromData"===a||"toVisible"===a)return $(c,b)}});o("column()",function(a,b){return ab(this.columns(a,b))});o("cells()",function(a,b,c){h.isPlainObject(a)&&(a.row===k?(c=a,a=null):(c=b,b=null));h.isPlainObject(b)&&(c=b,b=null);if(null===b||b===k)return this.iterator("table",function(b){var d=a,e=$a(c),f=
b.aoData,g=Ba(b,e),j=Qb(ia(f,g,"anCells")),i=h([].concat.apply([],j)),l,n=b.aoColumns.length,m,o,u,s,r,v;return Za("cell",d,function(a){var c=typeof a==="function";if(a===null||a===k||c){m=[];o=0;for(u=g.length;o<u;o++){l=g[o];for(s=0;s<n;s++){r={row:l,column:s};if(c){v=f[l];a(r,B(b,l,s),v.anCells?v.anCells[s]:null)&&m.push(r)}else m.push(r)}}return m}if(h.isPlainObject(a))return[a];c=i.filter(a).map(function(a,b){return{row:b._DT_CellIndex.row,column:b._DT_CellIndex.column}}).toArray();if(c.length||
!a.nodeName)return c;v=h(a).closest("*[data-dt-row]");return v.length?[{row:v.data("dt-row"),column:v.data("dt-column")}]:[]},b,e)});var d=this.columns(b,c),e=this.rows(a,c),f,g,j,i,n,l=this.iterator("table",function(a,b){f=[];g=0;for(j=e[b].length;g<j;g++){i=0;for(n=d[b].length;i<n;i++)f.push({row:e[b][g],column:d[b][i]})}return f},1);h.extend(l.selector,{cols:b,rows:a,opts:c});return l});u("cells().nodes()","cell().node()",function(){return this.iterator("cell",function(a,b,c){return(a=a.aoData[b])&&
a.anCells?a.anCells[c]:k},1)});o("cells().data()",function(){return this.iterator("cell",function(a,b,c){return B(a,b,c)},1)});u("cells().cache()","cell().cache()",function(a){a="search"===a?"_aFilterData":"_aSortData";return this.iterator("cell",function(b,c,d){return b.aoData[c][a][d]},1)});u("cells().render()","cell().render()",function(a){return this.iterator("cell",function(b,c,d){return B(b,c,d,a)},1)});u("cells().indexes()","cell().index()",function(){return this.iterator("cell",function(a,
b,c){return{row:b,column:c,columnVisible:$(a,c)}},1)});u("cells().invalidate()","cell().invalidate()",function(a){return this.iterator("cell",function(b,c,d){ca(b,c,a,d)})});o("cell()",function(a,b,c){return ab(this.cells(a,b,c))});o("cell().data()",function(a){var b=this.context,c=this[0];if(a===k)return b.length&&c.length?B(b[0],c[0].row,c[0].column):k;ib(b[0],c[0].row,c[0].column,a);ca(b[0],c[0].row,"data",c[0].column);return this});o("order()",function(a,b){var c=this.context;if(a===k)return 0!==
c.length?c[0].aaSorting:k;"number"===typeof a?a=[[a,b]]:a.length&&!h.isArray(a[0])&&(a=Array.prototype.slice.call(arguments));return this.iterator("table",function(b){b.aaSorting=a.slice()})});o("order.listener()",function(a,b,c){return this.iterator("table",function(d){La(d,a,b,c)})});o("order.fixed()",function(a){if(!a){var b=this.context,b=b.length?b[0].aaSortingFixed:k;return h.isArray(b)?{pre:b}:b}return this.iterator("table",function(b){b.aaSortingFixed=h.extend(!0,{},a)})});o(["columns().order()",
"column().order()"],function(a){var b=this;return this.iterator("table",function(c,d){var e=[];h.each(b[d],function(b,c){e.push([c,a])});c.aaSorting=e})});o("search()",function(a,b,c,d){var e=this.context;return a===k?0!==e.length?e[0].oPreviousSearch.sSearch:k:this.iterator("table",function(e){e.oFeatures.bFilter&&fa(e,h.extend({},e.oPreviousSearch,{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),1)})});u("columns().search()","column().search()",function(a,
b,c,d){return this.iterator("column",function(e,f){var g=e.aoPreSearchCols;if(a===k)return g[f].sSearch;e.oFeatures.bFilter&&(h.extend(g[f],{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),fa(e,e.oPreviousSearch,1))})});o("state()",function(){return this.context.length?this.context[0].oSavedState:null});o("state.clear()",function(){return this.iterator("table",function(a){a.fnStateSaveCallback.call(a.oInstance,a,{})})});o("state.loaded()",function(){return this.context.length?
this.context[0].oLoadedState:null});o("state.save()",function(){return this.iterator("table",function(a){xa(a)})});m.versionCheck=m.fnVersionCheck=function(a){for(var b=m.version.split("."),a=a.split("."),c,d,e=0,f=a.length;e<f;e++)if(c=parseInt(b[e],10)||0,d=parseInt(a[e],10)||0,c!==d)return c>d;return!0};m.isDataTable=m.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;if(a instanceof m.Api)return!0;h.each(m.settings,function(a,e){var f=e.nScrollHead?h("table",e.nScrollHead)[0]:null,g=e.nScrollFoot?
h("table",e.nScrollFoot)[0]:null;if(e.nTable===b||f===b||g===b)c=!0});return c};m.tables=m.fnTables=function(a){var b=!1;h.isPlainObject(a)&&(b=a.api,a=a.visible);var c=h.map(m.settings,function(b){if(!a||a&&h(b.nTable).is(":visible"))return b.nTable});return b?new s(c):c};m.camelToHungarian=I;o("$()",function(a,b){var c=this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,b){o(b+"()",function(){var a=Array.prototype.slice.call(arguments);
a[0]=h.map(a[0].split(/\s/),function(a){return!a.match(/\.dt\b/)?a+".dt":a}).join(" ");var d=h(this.tables().nodes());d[b].apply(d,a);return this})});o("clear()",function(){return this.iterator("table",function(a){na(a)})});o("settings()",function(){return new s(this.context,this.context)});o("init()",function(){var a=this.context;return a.length?a[0].oInit:null});o("data()",function(){return this.iterator("table",function(a){return D(a.aoData,"_aData")}).flatten()});o("destroy()",function(a){a=a||
!1;return this.iterator("table",function(b){var c=b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,j=b.nTFoot,i=h(e),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}),o;b.bDestroying=!0;r(b,"aoDestroyCallback","destroy",[b]);a||(new s(b)).columns().visible(!0);k.off(".DT").find(":not(tbody *)").off(".DT");h(E).off(".DT-"+b.sInstance);e!=g.parentNode&&(i.children("thead").detach(),i.append(g));j&&e!=j.parentNode&&(i.children("tfoot").detach(),i.append(j));
b.aaSorting=[];b.aaSortingFixed=[];wa(b);h(l).removeClass(b.asStripeClasses.join(" "));h("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);f.children().detach();f.append(l);g=a?"remove":"detach";i[g]();k[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),i.css("width",b.sDestroyWidth).removeClass(d.sTable),(o=b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a%o])}));c=h.inArray(b,m.settings);-1!==c&&m.settings.splice(c,
1)})});h.each(["column","row","cell"],function(a,b){o(b+"s().every()",function(a){var d=this.selector.opts,e=this;return this.iterator(b,function(f,g,h,i,n){a.call(e[b](g,"cell"===b?h:d,"cell"===b?d:k),g,h,i,n)})})});o("i18n()",function(a,b,c){var d=this.context[0],a=Q(a)(d.oLanguage);a===k&&(a=b);c!==k&&h.isPlainObject(a)&&(a=a[c]!==k?a[c]:a._);return a.replace("%d",c)});m.version="1.10.16";m.settings=[];m.models={};m.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};m.models.oRow=
{nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};m.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,
sWidthOrig:null};m.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,
this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+
"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",
sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},m.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};
X(m.defaults);m.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};X(m.defaults.column);m.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,
bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],
aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxData:k,fnServerData:null,
aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==y(this)?1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==y(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,
b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};m.ext=x={buttons:{},classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},
order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:m.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:m.version};h.extend(x,{afnFiltering:x.search,aTypes:x.type.detect,ofnSearch:x.type.search,oSort:x.type.order,afnSortData:x.order,aoFeatures:x.feature,oApi:x.internal,oStdClasses:x.classes,oPagination:x.pager});h.extend(m.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",
sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",
sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sJUIHeader:"",sJUIFooter:""});var Kb=m.ext.pager;h.extend(Kb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(a,b){return[ha(a,
b)]},simple_numbers:function(a,b){return["previous",ha(a,b),"next"]},full_numbers:function(a,b){return["first","previous",ha(a,b),"next","last"]},first_last_numbers:function(a,b){return["first",ha(a,b),"last"]},_numbers:ha,numbers_length:7});h.extend(!0,m.ext.renderer,{pageButton:{_:function(a,b,c,d,e,f){var g=a.oClasses,j=a.oLanguage.oPaginate,i=a.oLanguage.oAria.paginate||{},n,l,m=0,o=function(b,d){var k,s,u,r,v=function(b){Sa(a,b.data.action,true)};k=0;for(s=d.length;k<s;k++){r=d[k];if(h.isArray(r)){u=
h("<"+(r.DT_el||"div")+"/>").appendTo(b);o(u,r)}else{n=null;l="";switch(r){case "ellipsis":b.append('<span class="ellipsis">&#x2026;</span>');break;case "first":n=j.sFirst;l=r+(e>0?"":" "+g.sPageButtonDisabled);break;case "previous":n=j.sPrevious;l=r+(e>0?"":" "+g.sPageButtonDisabled);break;case "next":n=j.sNext;l=r+(e<f-1?"":" "+g.sPageButtonDisabled);break;case "last":n=j.sLast;l=r+(e<f-1?"":" "+g.sPageButtonDisabled);break;default:n=r+1;l=e===r?g.sPageButtonActive:""}if(n!==null){u=h("<a>",{"class":g.sPageButton+
" "+l,"aria-controls":a.sTableId,"aria-label":i[r],"data-dt-idx":m,tabindex:a.iTabIndex,id:c===0&&typeof r==="string"?a.sTableId+"_"+r:null}).html(n).appendTo(b);Va(u,{action:r},v);m++}}}},s;try{s=h(b).find(G.activeElement).data("dt-idx")}catch(u){}o(h(b).empty(),d);s!==k&&h(b).find("[data-dt-idx="+s+"]").focus()}}});h.extend(m.ext.type.detect,[function(a,b){var c=b.oLanguage.sDecimal;return Ya(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&!Zb.test(a))return null;var b=Date.parse(a);
return null!==b&&!isNaN(b)||L(a)?"date":null},function(a,b){var c=b.oLanguage.sDecimal;return Ya(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Pb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Pb(a,c,!0)?"html-num-fmt"+c:null},function(a){return L(a)||"string"===typeof a&&-1!==a.indexOf("<")?"html":null}]);h.extend(m.ext.type.search,{html:function(a){return L(a)?a:"string"===typeof a?a.replace(Mb," ").replace(Aa,""):""},string:function(a){return L(a)?
a:"string"===typeof a?a.replace(Mb," "):a}});var za=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Ob(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};h.extend(x.type.order,{"date-pre":function(a){return Date.parse(a)||-Infinity},"html-pre":function(a){return L(a)?"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():a+""},"string-pre":function(a){return L(a)?"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return a<
b?-1:a>b?1:0},"string-desc":function(a,b){return a<b?1:a>b?-1:0}});cb("");h.extend(!0,m.ext.renderer,{header:{_:function(a,b,c,d){h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass)}})},jqueryui:function(a,b,c,d){h("<div/>").addClass(d.sSortJUIWrapper).append(b.contents()).append(h("<span/>").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);
h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass);b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass(h[e]=="asc"?d.sSortJUIAsc:h[e]=="desc"?d.sSortJUIDesc:c.sSortingClassJUI)}})}}});var Vb=function(a){return"string"===typeof a?a.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,
"&quot;"):a};m.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return Vb(f);h=h.toFixed(c);f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,a)+f+(e||"")}}},text:function(){return{display:Vb}}};h.extend(m.ext.internal,{_fnExternApiFunc:Lb,_fnBuildAjax:sa,_fnAjaxUpdate:kb,_fnAjaxParameters:tb,_fnAjaxUpdateDraw:ub,
_fnAjaxDataSrc:ta,_fnAddColumn:Da,_fnColumnOptions:ja,_fnAdjustColumnSizing:Y,_fnVisibleToColumnIndex:Z,_fnColumnIndexToVisible:$,_fnVisbleColumns:aa,_fnGetColumns:la,_fnColumnTypes:Fa,_fnApplyColumnDefs:hb,_fnHungarianMap:X,_fnCamelToHungarian:I,_fnLanguageCompat:Ca,_fnBrowserDetect:fb,_fnAddData:M,_fnAddTr:ma,_fnNodeToDataIndex:function(a,b){return b._DT_RowIndex!==k?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:B,_fnSetCellData:ib,
_fnSplitObjNotation:Ia,_fnGetObjectDataFn:Q,_fnSetObjectDataFn:R,_fnGetDataMaster:Ja,_fnClearTable:na,_fnDeleteIndex:oa,_fnInvalidate:ca,_fnGetRowElements:Ha,_fnCreateTr:Ga,_fnBuildHead:jb,_fnDrawHead:ea,_fnDraw:N,_fnReDraw:S,_fnAddOptionsHtml:mb,_fnDetectHeader:da,_fnGetUniqueThs:ra,_fnFeatureHtmlFilter:ob,_fnFilterComplete:fa,_fnFilterCustom:xb,_fnFilterColumn:wb,_fnFilter:vb,_fnFilterCreateSearch:Oa,_fnEscapeRegex:Pa,_fnFilterData:yb,_fnFeatureHtmlInfo:rb,_fnUpdateInfo:Bb,_fnInfoMacros:Cb,_fnInitialise:ga,
_fnInitComplete:ua,_fnLengthChange:Qa,_fnFeatureHtmlLength:nb,_fnFeatureHtmlPaginate:sb,_fnPageChange:Sa,_fnFeatureHtmlProcessing:pb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:qb,_fnScrollDraw:ka,_fnApplyToChildren:H,_fnCalculateColumnWidths:Ea,_fnThrottle:Na,_fnConvertToWidth:Db,_fnGetWidestNode:Eb,_fnGetMaxLenString:Fb,_fnStringToCss:v,_fnSortFlatten:V,_fnSort:lb,_fnSortAria:Hb,_fnSortListener:Ua,_fnSortAttachListener:La,_fnSortingClasses:wa,_fnSortData:Gb,_fnSaveState:xa,_fnLoadState:Ib,_fnSettingsFromNode:ya,
_fnLog:J,_fnMap:F,_fnBindAction:Va,_fnCallbackReg:z,_fnCallbackFire:r,_fnLengthOverflow:Ra,_fnRenderer:Ma,_fnDataSource:y,_fnRowAttributes:Ka,_fnCalculateEnd:function(){}});h.fn.dataTable=m;m.$=h;h.fn.dataTableSettings=m.settings;h.fn.dataTableExt=m.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};h.each(m,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable});
+168
View File
@@ -0,0 +1,168 @@
// Generated by CoffeeScript 1.3.3
/*
Easy pie chart is a jquery plugin to display simple animated pie charts for only one value
Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
Built on top of the jQuery library (http://jquery.com)
@source: http://github.com/rendro/easy-pie-chart/
@autor: Robert Fleischmann
@version: 1.0.1
Inspired by: http://dribbble.com/shots/631074-Simple-Pie-Charts-II?list=popular&offset=210
Thanks to Philip Thrasher for the jquery plugin boilerplate for coffee script
*/
(function() {
(function($) {
$.easyPieChart = function(el, options) {
var addScaleLine, animateLine, drawLine, easeInOutQuad, renderBackground, renderScale, renderTrack,
_this = this;
this.el = el;
this.$el = $(el);
this.$el.data("easyPieChart", this);
this.init = function() {
var percent;
_this.options = $.extend({}, $.easyPieChart.defaultOptions, options);
percent = parseInt(_this.$el.data('percent'), 10);
_this.percentage = 0;
_this.canvas = $("<canvas width='" + _this.options.size + "' height='" + _this.options.size + "'></canvas>").get(0);
_this.$el.append(_this.canvas);
if (typeof G_vmlCanvasManager !== "undefined" && G_vmlCanvasManager !== null) {
G_vmlCanvasManager.initElement(_this.canvas);
}
_this.ctx = _this.canvas.getContext('2d');
_this.ctx.translate(_this.options.size / 2, _this.options.size / 2);
_this.$el.addClass('easyPieChart');
_this.$el.css({
width: _this.options.size,
height: _this.options.size,
lineHeight: "" + _this.options.size + "px"
});
_this.update(percent);
return _this;
};
this.update = function(percent) {
if (_this.options.animate === false) {
return drawLine(percent);
} else {
return animateLine(_this.percentage, percent);
}
};
renderScale = function() {
var i, _i, _results;
_this.ctx.fillStyle = _this.options.scaleColor;
_this.ctx.lineWidth = 1;
_results = [];
for (i = _i = 0; _i <= 24; i = ++_i) {
_results.push(addScaleLine(i));
}
return _results;
};
addScaleLine = function(i) {
var offset;
offset = i % 6 === 0 ? 0 : _this.options.size * 0.017;
_this.ctx.save();
_this.ctx.rotate(i * Math.PI / 12);
_this.ctx.fillRect(_this.options.size / 2 - offset, 0, -_this.options.size * 0.05 + offset, 1);
return _this.ctx.restore();
};
renderTrack = function() {
var offset;
offset = _this.options.size / 2 - _this.options.lineWidth / 2;
if (_this.options.scaleColor !== false) {
offset -= _this.options.size * 0.08;
}
_this.ctx.beginPath();
_this.ctx.arc(0, 0, offset, 0, Math.PI * 2, true);
_this.ctx.closePath();
_this.ctx.strokeStyle = _this.options.trackColor;
_this.ctx.lineWidth = _this.options.lineWidth;
return _this.ctx.stroke();
};
renderBackground = function() {
if (_this.options.scaleColor !== false) {
renderScale();
}
if (_this.options.trackColor !== false) {
return renderTrack();
}
};
drawLine = function(percent) {
var offset;
renderBackground();
_this.ctx.strokeStyle = $.isFunction(_this.options.barColor) ? _this.options.barColor(percent) : _this.options.barColor;
_this.ctx.lineCap = _this.options.lineCap;
offset = _this.options.size / 2 - _this.options.lineWidth / 2;
if (_this.options.scaleColor !== false) {
offset -= _this.options.size * 0.08;
}
_this.ctx.save();
_this.ctx.rotate(-Math.PI / 2);
_this.ctx.beginPath();
_this.ctx.arc(0, 0, offset, 0, Math.PI * 2 * percent / 100, false);
_this.ctx.stroke();
return _this.ctx.restore();
};
animateLine = function(from, to) {
var currentStep, fps, steps;
fps = 30;
steps = fps * _this.options.animate / 1000;
currentStep = 0;
_this.options.onStart.call(_this);
_this.percentage = to;
if (_this.animation) {
clearInterval(_this.animation);
_this.animation = false;
}
return _this.animation = setInterval(function() {
_this.ctx.clearRect(-_this.options.size / 2, -_this.options.size / 2, _this.options.size, _this.options.size);
renderBackground.call(_this);
drawLine.call(_this, [easeInOutQuad(currentStep, from, to - from, steps)]);
currentStep++;
if ((currentStep / steps) > 1) {
clearInterval(_this.animation);
_this.animation = false;
return _this.options.onStop.call(_this);
}
}, 1000 / fps);
};
easeInOutQuad = function(t, b, c, d) {
t /= d / 2;
if (t < 1) {
return c / 2 * t * t + b;
} else {
return -c / 2 * ((--t) * (t - 2) - 1) + b;
}
};
return this.init();
};
$.easyPieChart.defaultOptions = {
barColor: '#ef1e25',
trackColor: '#f2f2f2',
scaleColor: '#dfe0e0',
lineCap: 'round',
size: 110,
lineWidth: 3,
animate: false,
onStart: $.noop,
onStop: $.noop
};
$.fn.easyPieChart = function(options) {
return $.each(this, function(i, el) {
var $el;
$el = $(el);
if (!$el.data('easyPieChart')) {
return $el.data('easyPieChart', new $.easyPieChart(el, options));
}
});
};
return void 0;
})(jQuery);
}).call(this);
+3
View File
File diff suppressed because one or more lines are too long
+94
View File
@@ -0,0 +1,94 @@
/*
scrollUp v1.0.0
Author: Mark Goodyear - http://www.markgoodyear.com
Git: https://github.com/markgoodyear/scrollup
Copyright 2013 Mark Goodyear
Licensed under the MIT license
http://www.opensource.org/licenses/mit-license.php
Twitter: @markgdyr
*/
;(function ($) {
$.scrollUp = function (options) {
// Settings
var settings = {
scrollName: 'scrollUp', // Element ID
topDistance: '300', // Distance from top before showing element (px)
topSpeed: 300, // Speed back to top (ms)
animation: 'fade', // Fade, slide, none
animationInSpeed: 200, // Animation in speed (ms)
animationOutSpeed: 200, // Animation out speed (ms)
scrollText: 'Scroll to top', // Text for element
activeOverlay: false // Set CSS color to display scrollUp active point, e.g '#00FFFF'
};
// Load settings
if (options) {
var settings = $.extend(settings, options);
}
// Shorthand setting names
var sn = '#' + settings.scrollName,
an = settings.animation,
os = settings.animationOutSpeed,
is = settings.animationInSpeed,
td = settings.topDistance,
st = settings.scrollText,
ts = settings.topSpeed,
ao = settings.activeOverlay;
// Create element
$('<a/>', {
id: settings.scrollName,
href: '#top',
title: st,
text: st
}).appendTo('body');
// Minium CSS to make the magic happen
$(sn).css({
'display':'none',
'position': 'fixed',
'z-index': '2147483647'
})
// Active point overlay
if (ao) {
$("body").append("<div id='"+ settings.scrollName +"-active'></div>");
$(sn+"-active").css({ 'position': 'absolute', 'top': td+'px', 'width': '100%', 'border-top': '1px dotted '+ao, 'z-index': '2147483647' })
}
// Scroll funtion
$(window).scroll(function(){
// Fade animation
if (an === "fade") {
$( ($(window).scrollTop() > td) ? $(sn).fadeIn(is) : $(sn).fadeOut(os) );
}
// SlideUp animation
else if (an === "slide") {
$( ($(window).scrollTop() > td) ? $(sn).slideDown(is) : $(sn).slideUp(os) );
}
// No animation
else {
$( ($(window).scrollTop() > td) ? $(sn).show(0) : $(sn).hide(0) );
}
});
// Back to the top
$(sn).click( function(event) {
$('html, body').animate({scrollTop:0}, ts);
return false;
});
}; // End scrollUp function
}(jQuery));
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
(function(a){"use strict";var b=function(a,c,d){var e=document.createElement("img"),f,g;return e.onerror=c,e.onload=function(){g&&(!d||!d.noRevoke)&&b.revokeObjectURL(g),c(b.scale(e,d))},window.Blob&&a instanceof Blob||window.File&&a instanceof File?(f=g=b.createObjectURL(a),e._type=a.type):f=a,f?(e.src=f,e):b.readFile(a,function(a){var b=a.target;b&&b.result?e.src=b.result:c(a)})},c=window.createObjectURL&&window||window.URL&&URL.revokeObjectURL&&URL||window.webkitURL&&webkitURL;b.detectSubsampling=function(a){var b=a.width,c=a.height,d,e;return b*c>1048576?(d=document.createElement("canvas"),d.width=d.height=1,e=d.getContext("2d"),e.drawImage(a,-b+1,0),e.getImageData(0,0,1,1).data[3]===0):!1},b.detectVerticalSquash=function(a,b){var c=document.createElement("canvas"),d=c.getContext("2d"),e,f,g,h,i;c.width=1,c.height=b,d.drawImage(a,0,0),e=d.getImageData(0,0,1,b).data,f=0,g=b,h=b;while(h>f)i=e[(h-1)*4+3],i===0?g=h:f=h,h=g+f>>1;return h/b},b.renderImageToCanvas=function(a,c,d,e){var f=a.width,g=a.height,h=c.getContext("2d"),i,j=1024,k=document.createElement("canvas"),l,m,n,o,p;h.save(),b.detectSubsampling(a)&&(f/=2,g/=2),i=b.detectVerticalSquash(a,g),k.width=k.height=j,l=k.getContext("2d"),m=0;while(m<g){n=m+j>g?g-m:j,o=0;while(o<f)p=o+j>f?f-o:j,l.clearRect(0,0,j,j),l.drawImage(a,-o,-m),h.drawImage(k,0,0,p,n,Math.floor(o*d/f),Math.floor(m*e/g/i),Math.ceil(p*d/f),Math.ceil(n*e/g/i)),o+=j;m+=j}h.restore(),k=l=null},b.scale=function(a,c){c=c||{};var d=document.createElement("canvas"),e=a.width,f=a.height,g=Math.max((c.minWidth||e)/e,(c.minHeight||f)/f);return g>1&&(e=parseInt(e*g,10),f=parseInt(f*g,10)),g=Math.min((c.maxWidth||e)/e,(c.maxHeight||f)/f),g<1&&(e=parseInt(e*g,10),f=parseInt(f*g,10)),a.getContext||c.canvas&&d.getContext?(d.width=e,d.height=f,a._type==="image/jpeg"?b.renderImageToCanvas(a,d,e,f):d.getContext("2d").drawImage(a,0,0,e,f),d):(a.width=e,a.height=f,a)},b.createObjectURL=function(a){return c?c.createObjectURL(a):!1},b.revokeObjectURL=function(a){return c?c.revokeObjectURL(a):!1},b.readFile=function(a,b){if(window.FileReader&&FileReader.prototype.readAsDataURL){var c=new FileReader;return c.onload=c.onerror=b,c.readAsDataURL(a),c}return!1},typeof define=="function"&&define.amd?define(function(){return b}):a.loadImage=b})(this);
+6
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,2 @@
// Place all the behaviors and hooks related to the matching controller here.
// All this logic will automatically be available in application.js.
+1
View File
@@ -0,0 +1 @@
(function(a){a.tiny=a.tiny||{};a.tiny.scrollbar={options:{axis:"y",wheel:40,scroll:true,lockscroll:true,size:"auto",sizethumb:"auto",invertscroll:false}};a.fn.tinyscrollbar=function(d){var c=a.extend({},a.tiny.scrollbar.options,d);this.each(function(){a(this).data("tsb",new b(a(this),c))});return this};a.fn.tinyscrollbar_update=function(c){return a(this).data("tsb").update(c)};function b(q,g){var k=this,t=q,j={obj:a(".viewport",q)},h={obj:a(".overview",q)},d={obj:a(".scrollbar",q)},m={obj:a(".track",d.obj)},p={obj:a(".thumb",d.obj)},l=g.axis==="x",n=l?"left":"top",v=l?"Width":"Height",r=0,y={start:0,now:0},o={},e="ontouchstart" in document.documentElement;function c(){k.update();s();return k}this.update=function(z){j[g.axis]=j.obj[0]["offset"+v];h[g.axis]=h.obj[0]["scroll"+v];h.ratio=j[g.axis]/h[g.axis];d.obj.toggleClass("disable",h.ratio>=1);m[g.axis]=g.size==="auto"?j[g.axis]:g.size;p[g.axis]=Math.min(m[g.axis],Math.max(0,(g.sizethumb==="auto"?(m[g.axis]*h.ratio):g.sizethumb)));d.ratio=g.sizethumb==="auto"?(h[g.axis]/m[g.axis]):(h[g.axis]-j[g.axis])/(m[g.axis]-p[g.axis]);r=(z==="relative"&&h.ratio<=1)?Math.min((h[g.axis]-j[g.axis]),Math.max(0,r)):0;r=(z==="bottom"&&h.ratio<=1)?(h[g.axis]-j[g.axis]):isNaN(parseInt(z,10))?r:parseInt(z,10);w()};function w(){var z=v.toLowerCase();p.obj.css(n,r/d.ratio);h.obj.css(n,-r);o.start=p.obj.offset()[n];d.obj.css(z,m[g.axis]);m.obj.css(z,m[g.axis]);p.obj.css(z,p[g.axis])}function s(){if(!e){p.obj.bind("mousedown",i);m.obj.bind("mouseup",u)}else{j.obj[0].ontouchstart=function(z){if(1===z.touches.length){i(z.touches[0]);z.stopPropagation()}}}if(g.scroll&&window.addEventListener){t[0].addEventListener("DOMMouseScroll",x,false);t[0].addEventListener("mousewheel",x,false)}else{if(g.scroll){t[0].onmousewheel=x}}}function i(A){a("body").addClass("noSelect");var z=parseInt(p.obj.css(n),10);o.start=l?A.pageX:A.pageY;y.start=z=="auto"?0:z;if(!e){a(document).bind("mousemove",u);a(document).bind("mouseup",f);p.obj.bind("mouseup",f)}else{document.ontouchmove=function(B){B.preventDefault();u(B.touches[0])};document.ontouchend=f}}function x(B){if(h.ratio<1){var A=B||window.event,z=A.wheelDelta?A.wheelDelta/120:-A.detail/3;r-=z*g.wheel;r=Math.min((h[g.axis]-j[g.axis]),Math.max(0,r));p.obj.css(n,r/d.ratio);h.obj.css(n,-r);if(g.lockscroll||(r!==(h[g.axis]-j[g.axis])&&r!==0)){A=a.event.fix(A);A.preventDefault()}}}function u(z){if(h.ratio<1){if(g.invertscroll&&e){y.now=Math.min((m[g.axis]-p[g.axis]),Math.max(0,(y.start+(o.start-(l?z.pageX:z.pageY)))))}else{y.now=Math.min((m[g.axis]-p[g.axis]),Math.max(0,(y.start+((l?z.pageX:z.pageY)-o.start))))}r=y.now*d.ratio;h.obj.css(n,-r);p.obj.css(n,y.now)}}function f(){a("body").removeClass("noSelect");a(document).unbind("mousemove",u);a(document).unbind("mouseup",f);p.obj.unbind("mouseup",f);document.ontouchmove=document.ontouchend=null}return c()}}(jQuery));
+36
View File
@@ -0,0 +1,36 @@
function validation(){
$("#account_edit").validate({
rules: {
"user[password]": {
required: false,
minlength: 5
},
"user[password_confirmation]": {
required: false,
minlength: 5,
equalTo: "#user_password"
}
},
messages: {
"user[password]": {
minlength: "Your password must be at least 6 characters long"
},
"user[password_confirmation]": {
minlength: "Your password must be at least 6 characters long",
equalTo: "Please enter the same password as above"
}
},
highlight: function(label) {
$("#submit_button").attr('disabled','disabled');
$(label).closest('.control-group').addClass('error');
$('.error').css({"color": "red"});
},
success: function(label) {
label.closest('.control-group').addClass('success');
$("#submit_button").removeAttr('disabled');
$('.error').css({"color": "#333333"});
}
});
};
$(document).ready(validation());
+242
View File
@@ -0,0 +1,242 @@
.alertify-show,
.alertify-log {
-webkit-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1); /* older webkit */
-webkit-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275);
-moz-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275);
-ms-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275);
-o-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275);
transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275); /* easeOutBack */
}
.alertify-hide {
-webkit-transition: all 250ms cubic-bezier(0.600, 0, 0.735, 0.045); /* older webkit */
-webkit-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
-moz-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
-ms-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
-o-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045); /* easeInBack */
}
.alertify-log-hide {
-webkit-transition: all 500ms cubic-bezier(0.600, 0, 0.735, 0.045); /* older webkit */
-webkit-transition: all 500ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
-moz-transition: all 500ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
-ms-transition: all 500ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
-o-transition: all 500ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
transition: all 500ms cubic-bezier(0.600, -0.280, 0.735, 0.045); /* easeInBack */
}
.alertify-cover {
position: fixed; z-index: 99999;
top: 0; right: 0; bottom: 0; left: 0;
}
.alertify-cover-hidden {
display: none;
}
.alertify {
position: fixed; z-index: 99999;
top: 50px; left: 50%;
width: 550px;
margin-left: -275px;
opacity: 1;
}
.alertify-hidden {
-webkit-transform: translate(0,-150px);
-moz-transform: translate(0,-150px);
-ms-transform: translate(0,-150px);
-o-transform: translate(0,-150px);
transform: translate(0,-150px);
opacity: 0;
display: none;
}
/* overwrite display: none; for everything except IE6-8 */
:root *> .alertify-hidden { display: block; }
.alertify-logs {
position: fixed;
z-index: 5000;
bottom: 10px;
right: 10px;
width: 300px;
}
.alertify-logs-hidden {
display: none;
}
.alertify-log {
display: block;
margin-top: 10px;
position: relative;
right: -300px;
opacity: 0;
}
.alertify-log-show {
right: 0;
opacity: 1;
}
.alertify-log-hide {
-webkit-transform: translate(300px, 0);
-moz-transform: translate(300px, 0);
-ms-transform: translate(300px, 0);
-o-transform: translate(300px, 0);
transform: translate(300px, 0);
opacity: 0;
}
.alertify-dialog {
padding: 25px;
}
.alertify-resetFocus {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
.alertify-inner {
text-align: center;
}
.alertify-text {
margin-bottom: 15px;
width: 100%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
font-size: 100%;
}
.alertify-buttons {
}
.alertify-button,
.alertify-button:hover,
.alertify-button:active,
.alertify-button:visited {
background: none;
text-decoration: none;
border: none;
/* line-height and font-size for input button */
line-height: 1.5;
font-size: 100%;
display: inline-block;
cursor: pointer;
margin-left: 5px;
}
.alertify-isHidden {
visibility: hidden;
}
/**
* Default Look and Feel
*/
.alertify,
.alertify-log {
font-family: sans-serif;
}
.alertify {
background: #FFF;
border: 10px solid #333; /* browsers that don't support rgba */
border: 10px solid rgba(0,0,0,.7);
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
box-shadow: 0 3px 3px rgba(0,0,0,.3);
-webkit-background-clip: padding; /* Safari 4? Chrome 6? */
-moz-background-clip: padding; /* Firefox 3.6 */
background-clip: padding-box; /* Firefox 4, Safari 5, Opera 10, IE 9 */
}
.alertify-text {
border: 1px solid #ddd;
padding: 10px;
height: 30px !important;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
}
.alertify form {
margin-bottom: 0 !important;
}
.alertify-button {
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
color: #FFF;
font-weight: bold;
padding: 6px 15px;
text-decoration: none;
text-shadow: 1px 1px 0 rgba(0,0,0,.5);
box-shadow: inset 0 1px 0 0 rgba(255,255,255,.5);
background-image: -webkit-linear-gradient(top, rgba(255,255,255,.3), rgba(255,255,255,0));
background-image: -moz-linear-gradient(top, rgba(255,255,255,.3), rgba(255,255,255,0));
background-image: -ms-linear-gradient(top, rgba(255,255,255,.3), rgba(255,255,255,0));
background-image: -o-linear-gradient(top, rgba(255,255,255,.3), rgba(255,255,255,0));
background-image: linear-gradient(top, rgba(255,255,255,.3), rgba(255,255,255,0));
}
.alertify-button-cancel,
.alertify-button-cancel:hover,
.alertify-button-cancel:focus {
background-color: #FE1A00;
color: #fff;
}
.alertify-button-ok,
.alertify-button-ok:hover,
.alertify-button-ok:focus {
background-color: #5CB811;
color: #fff;
}
.alertify-log {
background: #1F1F1F;
background: rgba(0,0,0,.9);
padding: 15px;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
color: #FFF;
}
.alertify-log-error {
background: #FE1A00;
background: rgba(254,26,0,.9);
}
.alertify-log-success {
background: #5CB811;
background: rgba(92,184,17,.9);
}
@media only screen and (max-width: 680px) {
.alertify,
.alertify-logs {
width: 90%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.alertify {
left: 5%;
margin: 0;
}
}
+19
View File
@@ -0,0 +1,19 @@
/*
* This is a manifest file that'll be compiled into application.css, which will include all the files
* listed below.
*
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
*
* You're free to add application-wide styles to this file and they'll appear at the top of the
* compiled file, but it's generally better to create a new file per style scope.
*
*= require_self
*= require_tree .
*= require jquery.fileupload-ui
*/
p.desc {
max-width: 850px;
word-wrap: break-word;
}
+463
View File
@@ -0,0 +1,463 @@
/*! X-editable - v1.4.1
* In-place editing with Twitter Bootstrap, jQuery UI or pure jQuery
* http://github.com/vitalets/x-editable
* Copyright (c) 2013 Vitaliy Potapov; Licensed MIT */
.editableform {
margin-bottom: 0; /* overwrites bootstrap margin */
}
.editableform .control-group {
margin-bottom: 0; /* overwrites bootstrap margin */
white-space: nowrap; /* prevent wrapping buttons on new line */
}
.editable-buttons {
display: inline-block; /* should be inline to take effect of parent's white-space: nowrap */
vertical-align: top;
margin-left: 7px;
/* inline-block emulation for IE7*/
zoom: 1;
*display: inline;
}
.editable-input {
vertical-align: top;
display: inline-block; /* should be inline to take effect of parent's white-space: nowrap */
width: auto; /* bootstrap-responsive has width: 100% that breakes layout */
white-space: normal; /* reset white-space decalred in parent*/
/* display-inline emulation for IE7*/
zoom: 1;
*display: inline;
}
.editable-buttons .editable-cancel {
margin-left: 7px;
}
/*for jquery-ui buttons need set height to look more pretty*/
.editable-buttons button.ui-button-icon-only {
height: 24px;
width: 30px;
}
.editableform-loading {
background: url('../img/loading.gif') center center no-repeat;
height: 25px;
width: auto;
min-width: 25px;
}
.editable-inline .editableform-loading {
background-position: left 5px;
}
.editable-error-block {
max-width: 300px;
margin: 5px 0 0 0;
width: auto;
white-space: normal;
}
/*add padding for jquery ui*/
.editable-error-block.ui-state-error {
padding: 3px;
}
.editable-error {
color: red;
}
.editableform .editable-date {
padding: 0;
margin: 0;
float: left;
}
/* checklist vertical alignment */
.editable-checklist label input[type="checkbox"],
.editable-checklist label span {
vertical-align: middle;
margin: 0;
}
.editable-checklist label {
white-space: nowrap;
}
/* set exact width of textarea to fit buttons toolbar */
.editable-wysihtml5 {
width: 566px;
height: 250px;
}
/* clear button shown as link in date inputs */
.editable-clear {
clear: both;
font-size: 0.9em;
text-decoration: none;
text-align: right;
}
/* IOS-style clear button for text inputs */
.editable-clear-x {
background: url('../img/clear.png') center center no-repeat;
display: block;
width: 13px;
height: 13px;
position: absolute;
opacity: 0.6;
z-index: 100;
}
.editable-clear-x:hover {
opacity: 1;
}
.editable-container {
max-width: none !important; /* without this rule poshytip/tooltip does not stretch */
}
.editable-container.popover {
/* width: 300px;*/ /* debug */
width: auto; /* without this rule popover does not stretch */
}
.editable-container.editable-inline {
display: inline-block;
vertical-align: middle;
width: auto;
/* inline-block emulation for IE7*/
zoom: 1;
*display: inline;
}
.editable-container.ui-widget {
font-size: inherit; /* jqueryui widget font 1.1em too big, overwrite it */
}
.editable-click,
a.editable-click,
a.editable-click:hover {
text-decoration: none;
border: solid 1px #ddd;
display: block;
padding: 5px 10px;
}
.editable-click.editable-disabled,
a.editable-click.editable-disabled,
a.editable-click.editable-disabled:hover {
color: #585858;
cursor: default;
border-bottom: none;
}
.editable-empty, .editable-empty:hover{
font-style: italic;
color: #DD1144;
border-bottom: none;
text-decoration: none;
}
.editable-unsaved {
font-weight: bold;
}
.editable-unsaved:after {
/* content: '*'*/
}
/*!
* Datepicker for Bootstrap
*
* Copyright 2012 Stefan Petre
* Improvements by Andrew Rowls
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
*/
.datepicker {
padding: 4px;
margin-top: 1px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
direction: ltr;
/*.dow {
border-top: 1px solid #ddd !important;
}*/
}
.datepicker-inline {
width: 220px;
}
.datepicker.datepicker-rtl {
direction: rtl;
}
.datepicker.datepicker-rtl table tr td span {
float: right;
}
.datepicker-dropdown {
top: 0;
left: 0;
}
.datepicker-dropdown:before {
content: '';
display: inline-block;
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 7px solid #ccc;
border-bottom-color: rgba(0, 0, 0, 0.2);
position: absolute;
top: -7px;
left: 6px;
}
.datepicker-dropdown:after {
content: '';
display: inline-block;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid #ffffff;
position: absolute;
top: -6px;
left: 7px;
}
.datepicker > div {
display: none;
}
.datepicker.days div.datepicker-days {
display: block;
}
.datepicker.months div.datepicker-months {
display: block;
}
.datepicker.years div.datepicker-years {
display: block;
}
.datepicker table {
margin: 0;
}
.datepicker td,
.datepicker th {
text-align: center;
width: 20px;
height: 20px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
border: none;
}
.table-striped .datepicker table tr td,
.table-striped .datepicker table tr th {
background-color: transparent;
}
.datepicker table tr td.day:hover {
background: #eeeeee;
cursor: pointer;
}
.datepicker table tr td.old,
.datepicker table tr td.new {
color: #999999;
}
.datepicker table tr td.disabled,
.datepicker table tr td.disabled:hover {
background: none;
color: #999999;
cursor: default;
}
.datepicker table tr td.today,
.datepicker table tr td.today:hover,
.datepicker table tr td.today.disabled,
.datepicker table tr td.today.disabled:hover {
background-color: #fde19a;
background-image: -moz-linear-gradient(top, #fdd49a, #fdf59a);
background-image: -ms-linear-gradient(top, #fdd49a, #fdf59a);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a));
background-image: -webkit-linear-gradient(top, #fdd49a, #fdf59a);
background-image: -o-linear-gradient(top, #fdd49a, #fdf59a);
background-image: linear-gradient(top, #fdd49a, #fdf59a);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);
border-color: #fdf59a #fdf59a #fbed50;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}
.datepicker table tr td.today:hover,
.datepicker table tr td.today:hover:hover,
.datepicker table tr td.today.disabled:hover,
.datepicker table tr td.today.disabled:hover:hover,
.datepicker table tr td.today:active,
.datepicker table tr td.today:hover:active,
.datepicker table tr td.today.disabled:active,
.datepicker table tr td.today.disabled:hover:active,
.datepicker table tr td.today.active,
.datepicker table tr td.today:hover.active,
.datepicker table tr td.today.disabled.active,
.datepicker table tr td.today.disabled:hover.active,
.datepicker table tr td.today.disabled,
.datepicker table tr td.today:hover.disabled,
.datepicker table tr td.today.disabled.disabled,
.datepicker table tr td.today.disabled:hover.disabled,
.datepicker table tr td.today[disabled],
.datepicker table tr td.today:hover[disabled],
.datepicker table tr td.today.disabled[disabled],
.datepicker table tr td.today.disabled:hover[disabled] {
background-color: #fdf59a;
}
.datepicker table tr td.today:active,
.datepicker table tr td.today:hover:active,
.datepicker table tr td.today.disabled:active,
.datepicker table tr td.today.disabled:hover:active,
.datepicker table tr td.today.active,
.datepicker table tr td.today:hover.active,
.datepicker table tr td.today.disabled.active,
.datepicker table tr td.today.disabled:hover.active {
background-color: #fbf069 \9;
}
.datepicker table tr td.active,
.datepicker table tr td.active:hover,
.datepicker table tr td.active.disabled,
.datepicker table tr td.active.disabled:hover {
background-color: #006dcc;
background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
background-image: -ms-linear-gradient(top, #0088cc, #0044cc);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
background-image: -o-linear-gradient(top, #0088cc, #0044cc);
background-image: linear-gradient(top, #0088cc, #0044cc);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);
border-color: #0044cc #0044cc #002a80;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
color: #fff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.datepicker table tr td.active:hover,
.datepicker table tr td.active:hover:hover,
.datepicker table tr td.active.disabled:hover,
.datepicker table tr td.active.disabled:hover:hover,
.datepicker table tr td.active:active,
.datepicker table tr td.active:hover:active,
.datepicker table tr td.active.disabled:active,
.datepicker table tr td.active.disabled:hover:active,
.datepicker table tr td.active.active,
.datepicker table tr td.active:hover.active,
.datepicker table tr td.active.disabled.active,
.datepicker table tr td.active.disabled:hover.active,
.datepicker table tr td.active.disabled,
.datepicker table tr td.active:hover.disabled,
.datepicker table tr td.active.disabled.disabled,
.datepicker table tr td.active.disabled:hover.disabled,
.datepicker table tr td.active[disabled],
.datepicker table tr td.active:hover[disabled],
.datepicker table tr td.active.disabled[disabled],
.datepicker table tr td.active.disabled:hover[disabled] {
background-color: #0044cc;
}
.datepicker table tr td.active:active,
.datepicker table tr td.active:hover:active,
.datepicker table tr td.active.disabled:active,
.datepicker table tr td.active.disabled:hover:active,
.datepicker table tr td.active.active,
.datepicker table tr td.active:hover.active,
.datepicker table tr td.active.disabled.active,
.datepicker table tr td.active.disabled:hover.active {
background-color: #003399 \9;
}
.datepicker table tr td span {
display: block;
width: 23%;
height: 54px;
line-height: 54px;
float: left;
margin: 1%;
cursor: pointer;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.datepicker table tr td span:hover {
background: #eeeeee;
}
.datepicker table tr td span.disabled,
.datepicker table tr td span.disabled:hover {
background: none;
color: #999999;
cursor: default;
}
.datepicker table tr td span.active,
.datepicker table tr td span.active:hover,
.datepicker table tr td span.active.disabled,
.datepicker table tr td span.active.disabled:hover {
background-color: #006dcc;
background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
background-image: -ms-linear-gradient(top, #0088cc, #0044cc);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
background-image: -o-linear-gradient(top, #0088cc, #0044cc);
background-image: linear-gradient(top, #0088cc, #0044cc);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);
border-color: #0044cc #0044cc #002a80;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
color: #fff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.datepicker table tr td span.active:hover,
.datepicker table tr td span.active:hover:hover,
.datepicker table tr td span.active.disabled:hover,
.datepicker table tr td span.active.disabled:hover:hover,
.datepicker table tr td span.active:active,
.datepicker table tr td span.active:hover:active,
.datepicker table tr td span.active.disabled:active,
.datepicker table tr td span.active.disabled:hover:active,
.datepicker table tr td span.active.active,
.datepicker table tr td span.active:hover.active,
.datepicker table tr td span.active.disabled.active,
.datepicker table tr td span.active.disabled:hover.active,
.datepicker table tr td span.active.disabled,
.datepicker table tr td span.active:hover.disabled,
.datepicker table tr td span.active.disabled.disabled,
.datepicker table tr td span.active.disabled:hover.disabled,
.datepicker table tr td span.active[disabled],
.datepicker table tr td span.active:hover[disabled],
.datepicker table tr td span.active.disabled[disabled],
.datepicker table tr td span.active.disabled:hover[disabled] {
background-color: #0044cc;
}
.datepicker table tr td span.active:active,
.datepicker table tr td span.active:hover:active,
.datepicker table tr td span.active.disabled:active,
.datepicker table tr td span.active.disabled:hover:active,
.datepicker table tr td span.active.active,
.datepicker table tr td span.active:hover.active,
.datepicker table tr td span.active.disabled.active,
.datepicker table tr td span.active.disabled:hover.active {
background-color: #003399 \9;
}
.datepicker table tr td span.old {
color: #999999;
}
.datepicker th.switch {
width: 145px;
}
.datepicker thead tr:first-child th,
.datepicker tfoot tr:first-child th {
cursor: pointer;
}
.datepicker thead tr:first-child th:hover,
.datepicker tfoot tr:first-child th:hover {
background: #eeeeee;
}
.input-append.date .add-on i,
.input-prepend.date .add-on i {
display: block;
cursor: pointer;
width: 16px;
height: 16px;
}
+305
View File
@@ -0,0 +1,305 @@
/*!
* jQuery UI CSS Framework 1.8.23
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Theming/API
*/
/* Layout helpers
----------------------------------*/
.ui-helper-hidden { display: none; }
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
.ui-helper-clearfix:after { clear: both; }
.ui-helper-clearfix { zoom: 1; }
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
/* Interaction Cues
----------------------------------*/
.ui-state-disabled { cursor: default !important; }
/* Icons
----------------------------------*/
/* states and ../img */
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
/* Misc visuals
----------------------------------*/
/* Overlays */
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
/*!
* jQuery UI CSS Framework 1.8.23
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Theming/API
*
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=deedf7&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=100&borderColorHeader=aed0ea&fcHeader=222222&iconColorHeader=72a7cf&bgColorContent=f2f5f7&bgTextureContent=04_highlight_hard.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=362b36&iconColorContent=72a7cf&bgColorDefault=d7ebf9&bgTextureDefault=02_glass.png&bgImgOpacityDefault=80&borderColorDefault=aed0ea&fcDefault=2779aa&iconColorDefault=3d80b3&bgColorHover=e4f1fb&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=74b2e2&fcHover=0070a3&iconColorHover=2694e8&bgColorActive=3baae3&bgTextureActive=02_glass.png&bgImgOpacityActive=50&borderColorActive=2694e8&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=ffef8f&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=25&borderColorHighlight=f9dd34&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=cd0a0a&bgTextureError=01_flat.png&bgImgOpacityError=15&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=eeeeee&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=90&opacityOverlay=80&bgColorShadow=000000&bgTextureShadow=04_highlight_hard.png&bgImgOpacityShadow=70&opacityShadow=30&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px
*/
/* Component containers
----------------------------------*/
.ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1.1em; }
.ui-widget .ui-widget { font-size: 1em; }
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1em; }
.ui-widget-content { border: 1px solid #dddddd; background: #f2f5f7; color: #362b36; }
.ui-widget-content a { color: #362b36; }
.ui-widget-header { border: 1px solid #cccccc; background: #dddddd; color: #222222; font-weight: bold; }
.ui-widget-header a { color: #222222; }
/* Interaction states
----------------------------------*/
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #444; background: #666; font-weight: bold; color: #eee; }
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #eee; text-decoration: none; }
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999; background: #555; font-weight: bold; color: #ddd; }
.ui-state-hover a, .ui-state-hover a:hover { color: #0070a3; text-decoration: none; }
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #222222; background: #333333; font-weight: bold; color: #ffffff; }
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #ffffff; text-decoration: none; }
.ui-widget :active { outline: none; }
/* Interaction Cues
----------------------------------*/
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #f9dd34; background: #ffef8f; color: #363636; }
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #cd0a0a; color: #ffffff; }
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
/* Icons
----------------------------------*/
/* states and ../img */
.ui-icon { width: 16px; height: 16px; background-image: url(../img/ui-icons_72a7cf_256x240.png); }
.ui-widget-content .ui-icon {background-image: url(../img/ui-icons_72a7cf_256x240.png); }
.ui-widget-header .ui-icon {background-image: url(../img/ui-icons_72a7cf_256x240.png); }
.ui-state-default .ui-icon { background-image: url(../img/ui-icons_3d80b3_256x240.png); }
.ui-state-active .ui-icon {background-image: url(../img/ui-icons_ffffff_256x240.png); }
.ui-state-highlight .ui-icon {background-image: url(../img/ui-icons_2e83ff_256x240.png); }
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(../img/ui-icons_ffffff_256x240.png); }
/* positioning */
.ui-icon-carat-1-n { background-position: 0 0; }
.ui-icon-carat-1-ne { background-position: -16px 0; }
.ui-icon-carat-1-e { background-position: -32px 0; }
.ui-icon-carat-1-se { background-position: -48px 0; }
.ui-icon-carat-1-s { background-position: -64px 0; }
.ui-icon-carat-1-sw { background-position: -80px 0; }
.ui-icon-carat-1-w { background-position: -96px 0; }
.ui-icon-carat-1-nw { background-position: -112px 0; }
.ui-icon-carat-2-n-s { background-position: -128px 0; }
.ui-icon-carat-2-e-w { background-position: -144px 0; }
.ui-icon-triangle-1-n { background-position: 0 -16px; }
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
.ui-icon-triangle-1-e { background-position: -32px -16px; }
.ui-icon-triangle-1-se { background-position: -48px -16px; }
.ui-icon-triangle-1-s { background-position: -64px -16px; }
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
.ui-icon-triangle-1-w { background-position: -96px -16px; }
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
.ui-icon-arrow-1-n { background-position: 0 -32px; }
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
.ui-icon-arrow-1-e { background-position: -32px -32px; }
.ui-icon-arrow-1-se { background-position: -48px -32px; }
.ui-icon-arrow-1-s { background-position: -64px -32px; }
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
.ui-icon-arrow-1-w { background-position: -96px -32px; }
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
.ui-icon-arrow-4 { background-position: 0 -80px; }
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
.ui-icon-extlink { background-position: -32px -80px; }
.ui-icon-newwin { background-position: -48px -80px; }
.ui-icon-refresh { background-position: -64px -80px; }
.ui-icon-shuffle { background-position: -80px -80px; }
.ui-icon-transfer-e-w { background-position: -96px -80px; }
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
.ui-icon-folder-collapsed { background-position: 0 -96px; }
.ui-icon-folder-open { background-position: -16px -96px; }
.ui-icon-document { background-position: -32px -96px; }
.ui-icon-document-b { background-position: -48px -96px; }
.ui-icon-note { background-position: -64px -96px; }
.ui-icon-mail-closed { background-position: -80px -96px; }
.ui-icon-mail-open { background-position: -96px -96px; }
.ui-icon-suitcase { background-position: -112px -96px; }
.ui-icon-comment { background-position: -128px -96px; }
.ui-icon-person { background-position: -144px -96px; }
.ui-icon-print { background-position: -160px -96px; }
.ui-icon-trash { background-position: -176px -96px; }
.ui-icon-locked { background-position: -192px -96px; }
.ui-icon-unlocked { background-position: -208px -96px; }
.ui-icon-bookmark { background-position: -224px -96px; }
.ui-icon-tag { background-position: -240px -96px; }
.ui-icon-home { background-position: 0 -112px; }
.ui-icon-flag { background-position: -16px -112px; }
.ui-icon-calendar { background-position: -32px -112px; }
.ui-icon-cart { background-position: -48px -112px; }
.ui-icon-pencil { background-position: -64px -112px; }
.ui-icon-clock { background-position: -80px -112px; }
.ui-icon-disk { background-position: -96px -112px; }
.ui-icon-calculator { background-position: -112px -112px; }
.ui-icon-zoomin { background-position: -128px -112px; }
.ui-icon-zoomout { background-position: -144px -112px; }
.ui-icon-search { background-position: -160px -112px; }
.ui-icon-wrench { background-position: -176px -112px; }
.ui-icon-gear { background-position: -192px -112px; }
.ui-icon-heart { background-position: -208px -112px; }
.ui-icon-star { background-position: -224px -112px; }
.ui-icon-link { background-position: -240px -112px; }
.ui-icon-cancel { background-position: 0 -128px; }
.ui-icon-plus { background-position: -16px -128px; }
.ui-icon-plusthick { background-position: -32px -128px; }
.ui-icon-minus { background-position: -48px -128px; }
.ui-icon-minusthick { background-position: -64px -128px; }
.ui-icon-close { background-position: -80px -128px; }
.ui-icon-closethick { background-position: -96px -128px; }
.ui-icon-key { background-position: -112px -128px; }
.ui-icon-lightbulb { background-position: -128px -128px; }
.ui-icon-scissors { background-position: -144px -128px; }
.ui-icon-clipboard { background-position: -160px -128px; }
.ui-icon-copy { background-position: -176px -128px; }
.ui-icon-contact { background-position: -192px -128px; }
.ui-icon-image { background-position: -208px -128px; }
.ui-icon-video { background-position: -224px -128px; }
.ui-icon-script { background-position: -240px -128px; }
.ui-icon-alert { background-position: 0 -144px; }
.ui-icon-info { background-position: -16px -144px; }
.ui-icon-notice { background-position: -32px -144px; }
.ui-icon-help { background-position: -48px -144px; }
.ui-icon-check { background-position: -64px -144px; }
.ui-icon-bullet { background-position: -80px -144px; }
.ui-icon-radio-off { background-position: -96px -144px; }
.ui-icon-radio-on { background-position: -112px -144px; }
.ui-icon-pin-w { background-position: -128px -144px; }
.ui-icon-pin-s { background-position: -144px -144px; }
.ui-icon-play { background-position: 0 -160px; }
.ui-icon-pause { background-position: -16px -160px; }
.ui-icon-seek-next { background-position: -32px -160px; }
.ui-icon-seek-prev { background-position: -48px -160px; }
.ui-icon-seek-end { background-position: -64px -160px; }
.ui-icon-seek-start { background-position: -80px -160px; }
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
.ui-icon-seek-first { background-position: -80px -160px; }
.ui-icon-stop { background-position: -96px -160px; }
.ui-icon-eject { background-position: -112px -160px; }
.ui-icon-volume-off { background-position: -128px -160px; }
.ui-icon-volume-on { background-position: -144px -160px; }
.ui-icon-power { background-position: 0 -176px; }
.ui-icon-signal-diag { background-position: -16px -176px; }
.ui-icon-signal { background-position: -32px -176px; }
.ui-icon-battery-0 { background-position: -48px -176px; }
.ui-icon-battery-1 { background-position: -64px -176px; }
.ui-icon-battery-2 { background-position: -80px -176px; }
.ui-icon-battery-3 { background-position: -96px -176px; }
.ui-icon-circle-plus { background-position: 0 -192px; }
.ui-icon-circle-minus { background-position: -16px -192px; }
.ui-icon-circle-close { background-position: -32px -192px; }
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
.ui-icon-circle-zoomin { background-position: -176px -192px; }
.ui-icon-circle-zoomout { background-position: -192px -192px; }
.ui-icon-circle-check { background-position: -208px -192px; }
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
.ui-icon-circlesmall-close { background-position: -32px -208px; }
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
.ui-icon-squaresmall-close { background-position: -80px -208px; }
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
/* Misc visuals
----------------------------------*/
/* Corner radius */
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 2px; -webkit-border-top-left-radius: 2px; -khtml-border-top-left-radius: 2px; border-top-left-radius: 2px; }
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 2px; -webkit-border-top-right-radius: 2px; -khtml-border-top-right-radius: 2px; border-top-right-radius: 2px; }
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 2px; -webkit-border-bottom-left-radius: 2px; -khtml-border-bottom-left-radius: 2px; border-bottom-left-radius: 2px; }
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 2px; -webkit-border-bottom-right-radius: 2px; -khtml-border-bottom-right-radius: 2px; border-bottom-right-radius: 2px; }
/* Overlays */
.ui-widget-overlay { background: #eeeeee; opacity: .80;filter:Alpha(Opacity=80); }
.ui-widget-shadow { margin: -7px 0 0 -7px; padding: 7px; background: #000000; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*!
* jQuery UI Resizable 1.8.23
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Resizable#theming
*/
.ui-resizable { position: relative;}
.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
+12
View File
@@ -0,0 +1,12 @@
/* Easy Pie Chart CSS */
.easyPieChart {
position: relative;
text-align: center;
}
.easyPieChart canvas {
position: absolute;
top: 0;
left: 0;
}
File diff suppressed because one or more lines are too long
+116
View File
@@ -0,0 +1,116 @@
.sh_acid{background:none; padding:0; margin:0; border:0 none;}.sh_acid .sh_sourceCode{background-color:#eee;color:#000;font-weight:normal;font-style:normal;}.sh_acid .sh_sourceCode .sh_keyword{color:#bb7977;font-weight:bold;font-style:normal;}.sh_acid .sh_sourceCode .sh_type{color:#8080c0;font-weight:bold;font-style:normal;}.sh_acid .sh_sourceCode .sh_string{color:#a68500;font-weight:normal;font-style:normal;}.sh_acid .sh_sourceCode .sh_regexp{color:#a68500;font-weight:normal;font-style:normal;}.sh_acid .sh_sourceCode .sh_specialchar{color:#f0f;font-weight:bold;font-style:normal;}.sh_acid .sh_sourceCode .sh_comment{color:#ff8000;font-weight:normal;font-style:normal;}.sh_acid .sh_sourceCode .sh_number{color:#800080;font-weight:bold;font-style:normal;}.sh_acid .sh_sourceCode .sh_preproc{color:#0080c0;font-weight:bold;font-style:normal;}.sh_acid .sh_sourceCode .sh_symbol{color:#ff0080;font-weight:bold;font-style:normal;}.sh_acid .sh_sourceCode .sh_function{color:#046;font-weight:normal;font-style:normal;}.sh_acid .sh_sourceCode .sh_cbracket{color:#ff0080;font-weight:bold;font-style:normal;}.sh_acid .sh_sourceCode .sh_url{color:#a68500;font-weight:normal;font-style:normal;}.sh_acid .sh_sourceCode .sh_date{color:#bb7977;font-weight:bold;font-style:normal;}.sh_acid .sh_sourceCode .sh_time{color:#bb7977;font-weight:bold;font-style:normal;}.sh_acid .sh_sourceCode .sh_file{color:#bb7977;font-weight:bold;font-style:normal;}.sh_acid .sh_sourceCode .sh_ip{color:#a68500;font-weight:normal;font-style:normal;}.sh_acid .sh_sourceCode .sh_name{color:#a68500;font-weight:normal;font-style:normal;}.sh_acid .sh_sourceCode .sh_variable{color:#0080c0;font-weight:normal;font-style:normal;}.sh_acid .sh_sourceCode .sh_oldfile{color:#f0f;font-weight:bold;font-style:normal;}.sh_acid .sh_sourceCode .sh_newfile{color:#a68500;font-weight:normal;font-style:normal;}.sh_acid .sh_sourceCode .sh_difflines{color:#bb7977;font-weight:bold;font-style:normal;}.sh_acid .sh_sourceCode .sh_selector{color:#0080c0;font-weight:normal;font-style:normal;}.sh_acid .sh_sourceCode .sh_property{color:#bb7977;font-weight:bold;font-style:normal;}.sh_acid .sh_sourceCode .sh_value{color:#a68500;font-weight:normal;font-style:normal;}
.sh_berries-dark{background:none; padding:0; margin:0; border:0 none;}.sh_berries-dark .sh_sourceCode{background-color:#80bfff;color:#400080;font-weight:normal;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_keyword{color:#3f2bf0;font-weight:bold;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_type{color:#3f2bf0;font-weight:normal;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_string{color:#c40000;font-weight:normal;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_regexp{color:#c40000;font-weight:normal;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_specialchar{color:#77379a;font-weight:normal;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_comment{color:#df0959;font-weight:normal;font-style:italic;}.sh_berries-dark .sh_sourceCode .sh_number{color:#20755a;font-weight:normal;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_preproc{color:#0628cb;font-weight:normal;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_symbol{color:#000;font-weight:normal;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_function{color:#901164;font-weight:bold;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_cbracket{color:#000;font-weight:normal;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_url{color:#c40000;font-weight:normal;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_date{color:#3f2bf0;font-weight:bold;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_time{color:#3f2bf0;font-weight:bold;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_file{color:#3f2bf0;font-weight:bold;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_ip{color:#c40000;font-weight:normal;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_name{color:#c40000;font-weight:normal;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_variable{color:#a91ea7;font-weight:normal;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_oldfile{color:#77379a;font-weight:normal;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_newfile{color:#c40000;font-weight:normal;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_difflines{color:#3f2bf0;font-weight:bold;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_selector{color:#a91ea7;font-weight:normal;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_property{color:#3f2bf0;font-weight:bold;font-style:normal;}.sh_berries-dark .sh_sourceCode .sh_value{color:#c40000;font-weight:normal;font-style:normal;}
.sh_berries-light{background:none; padding:0; margin:0; border:0 none;}.sh_berries-light .sh_sourceCode{background-color:#d7ffff;color:#47406d;font-weight:normal;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_keyword{color:#2cae1e;font-weight:bold;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_type{color:#8b51c0;font-weight:normal;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_string{color:#5f81b3;font-weight:normal;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_regexp{color:#5f81b3;font-weight:normal;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_specialchar{color:#5f81b3;font-weight:normal;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_comment{color:#9c3caf;font-weight:normal;font-style:italic;}.sh_berries-light .sh_sourceCode .sh_number{color:#20755a;font-weight:normal;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_preproc{color:#0628cb;font-weight:normal;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_symbol{color:#d2073b;font-weight:normal;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_function{color:#901164;font-weight:bold;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_cbracket{color:#d2073b;font-weight:normal;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_url{color:#5f81b3;font-weight:normal;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_date{color:#2cae1e;font-weight:bold;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_time{color:#2cae1e;font-weight:bold;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_file{color:#2cae1e;font-weight:bold;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_ip{color:#5f81b3;font-weight:normal;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_name{color:#5f81b3;font-weight:normal;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_variable{color:#0628cb;font-weight:bold;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_oldfile{color:#5f81b3;font-weight:normal;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_newfile{color:#5f81b3;font-weight:normal;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_difflines{color:#2cae1e;font-weight:bold;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_selector{color:#0628cb;font-weight:bold;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_property{color:#2cae1e;font-weight:bold;font-style:normal;}.sh_berries-light .sh_sourceCode .sh_value{color:#5f81b3;font-weight:normal;font-style:normal;}
.sh_bipolar{background:none; padding:0; margin:0; border:0 none;}.sh_bipolar .sh_sourceCode{background-color:#000;color:#d149a6;font-weight:normal;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_keyword{color:#ee85e2;font-weight:bold;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_type{color:#aadd8b;font-weight:bold;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_string{color:#9ef457;font-weight:normal;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_regexp{color:#9ef457;font-weight:normal;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_specialchar{color:#9ef457;font-weight:normal;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_comment{color:#35d6e5;font-weight:normal;font-style:italic;}.sh_bipolar .sh_sourceCode .sh_number{color:#fff;font-weight:normal;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_preproc{color:#07f6bf;font-weight:normal;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_symbol{color:#348fef;font-weight:normal;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_function{color:#d51993;font-weight:bold;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_cbracket{color:#348fef;font-weight:normal;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_url{color:#9ef457;font-weight:normal;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_date{color:#ee85e2;font-weight:bold;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_time{color:#ee85e2;font-weight:bold;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_file{color:#ee85e2;font-weight:bold;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_ip{color:#9ef457;font-weight:normal;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_name{color:#9ef457;font-weight:normal;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_variable{color:#72d42c;font-weight:bold;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_oldfile{color:#9ef457;font-weight:normal;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_newfile{color:#9ef457;font-weight:normal;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_difflines{color:#ee85e2;font-weight:bold;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_selector{color:#72d42c;font-weight:bold;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_property{color:#ee85e2;font-weight:bold;font-style:normal;}.sh_bipolar .sh_sourceCode .sh_value{color:#9ef457;font-weight:normal;font-style:normal;}
.sh_blacknblue{background:none; padding:0; margin:0; border:0 none;}.sh_blacknblue .sh_sourceCode{background-color:#000;color:#2346d5;font-weight:normal;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_keyword{color:#1ededc;font-weight:bold;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_type{color:#c06cf8;font-weight:bold;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_string{color:#cfc631;font-weight:normal;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_regexp{color:#cfc631;font-weight:normal;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_specialchar{color:#ccc6c6;font-weight:normal;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_comment{color:#6fb2c4;font-weight:normal;font-style:italic;}.sh_blacknblue .sh_sourceCode .sh_number{color:#c4ac60;font-weight:normal;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_preproc{color:#8080ff;font-weight:normal;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_symbol{color:#ccc6c6;font-weight:normal;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_function{color:#1c96ed;font-weight:normal;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_cbracket{color:#ccc6c6;font-weight:normal;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_url{color:#cfc631;font-weight:normal;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_date{color:#1ededc;font-weight:bold;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_time{color:#1ededc;font-weight:bold;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_file{color:#1ededc;font-weight:bold;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_ip{color:#cfc631;font-weight:normal;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_name{color:#cfc631;font-weight:normal;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_variable{color:#ecea26;font-weight:normal;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_oldfile{color:#ccc6c6;font-weight:normal;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_newfile{color:#cfc631;font-weight:normal;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_difflines{color:#1ededc;font-weight:bold;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_selector{color:#ecea26;font-weight:normal;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_property{color:#1ededc;font-weight:bold;font-style:normal;}.sh_blacknblue .sh_sourceCode .sh_value{color:#cfc631;font-weight:normal;font-style:normal;}
.sh_bright{background:none; padding:0; margin:0; border:0 none;}.sh_bright .sh_sourceCode{background-color:#fff;color:#401e7a;font-weight:normal;font-style:normal;}.sh_bright .sh_sourceCode .sh_keyword{color:#ff3030;font-weight:bold;font-style:normal;}.sh_bright .sh_sourceCode .sh_type{color:#f7b92c;font-weight:normal;font-style:normal;}.sh_bright .sh_sourceCode .sh_string{color:#1861a7;font-weight:normal;font-style:normal;}.sh_bright .sh_sourceCode .sh_regexp{color:#1861a7;font-weight:normal;font-style:normal;}.sh_bright .sh_sourceCode .sh_specialchar{color:#1861a7;font-weight:normal;font-style:normal;}.sh_bright .sh_sourceCode .sh_comment{color:#38ad24;font-weight:normal;font-style:normal;}.sh_bright .sh_sourceCode .sh_number{color:#32ba06;font-weight:normal;font-style:normal;}.sh_bright .sh_sourceCode .sh_preproc{color:#5374b0;font-weight:normal;font-style:normal;}.sh_bright .sh_sourceCode .sh_symbol{color:#3030ee;font-weight:normal;font-style:normal;}.sh_bright .sh_sourceCode .sh_function{color:#d11ced;font-weight:normal;font-style:normal;}.sh_bright .sh_sourceCode .sh_cbracket{color:#3030ee;font-weight:normal;font-style:normal;}.sh_bright .sh_sourceCode .sh_url{color:#1861a7;font-weight:normal;font-style:normal;}.sh_bright .sh_sourceCode .sh_date{color:#ff3030;font-weight:bold;font-style:normal;}.sh_bright .sh_sourceCode .sh_time{color:#ff3030;font-weight:bold;font-style:normal;}.sh_bright .sh_sourceCode .sh_file{color:#ff3030;font-weight:bold;font-style:normal;}.sh_bright .sh_sourceCode .sh_ip{color:#1861a7;font-weight:normal;font-style:normal;}.sh_bright .sh_sourceCode .sh_name{color:#1861a7;font-weight:normal;font-style:normal;}.sh_bright .sh_sourceCode .sh_variable{color:#00f;font-weight:normal;font-style:normal;}.sh_bright .sh_sourceCode .sh_oldfile{color:#1861a7;font-weight:normal;font-style:normal;}.sh_bright .sh_sourceCode .sh_newfile{color:#1861a7;font-weight:normal;font-style:normal;}.sh_bright .sh_sourceCode .sh_difflines{color:#ff3030;font-weight:bold;font-style:normal;}.sh_bright .sh_sourceCode .sh_selector{color:#00f;font-weight:normal;font-style:normal;}.sh_bright .sh_sourceCode .sh_property{color:#ff3030;font-weight:bold;font-style:normal;}.sh_bright .sh_sourceCode .sh_value{color:#1861a7;font-weight:normal;font-style:normal;}
.sh_contrast{background:none; padding:0; margin:0; border:0 none;}.sh_contrast .sh_sourceCode{background-color:#ed6104;color:#00f;font-weight:normal;font-style:normal;}.sh_contrast .sh_sourceCode .sh_keyword{color:#fff;font-weight:bold;font-style:normal;}.sh_contrast .sh_sourceCode .sh_type{color:#fff;font-weight:bold;font-style:normal;}.sh_contrast .sh_sourceCode .sh_string{color:#11f80c;font-weight:normal;font-style:normal;}.sh_contrast .sh_sourceCode .sh_regexp{color:#11f80c;font-weight:normal;font-style:normal;}.sh_contrast .sh_sourceCode .sh_specialchar{color:#11f80c;font-weight:normal;font-style:normal;}.sh_contrast .sh_sourceCode .sh_comment{color:#000;font-weight:normal;font-style:normal;}.sh_contrast .sh_sourceCode .sh_number{color:#971ad8;font-weight:normal;font-style:normal;}.sh_contrast .sh_sourceCode .sh_preproc{color:#7b44e0;font-weight:normal;font-style:normal;}.sh_contrast .sh_sourceCode .sh_symbol{color:#dedede;font-weight:bold;font-style:normal;}.sh_contrast .sh_sourceCode .sh_function{color:#fff700;font-weight:bold;font-style:normal;}.sh_contrast .sh_sourceCode .sh_cbracket{color:#dedede;font-weight:bold;font-style:normal;}.sh_contrast .sh_sourceCode .sh_url{color:#11f80c;font-weight:normal;font-style:normal;}.sh_contrast .sh_sourceCode .sh_date{color:#fff;font-weight:bold;font-style:normal;}.sh_contrast .sh_sourceCode .sh_time{color:#fff;font-weight:bold;font-style:normal;}.sh_contrast .sh_sourceCode .sh_file{color:#fff;font-weight:bold;font-style:normal;}.sh_contrast .sh_sourceCode .sh_ip{color:#11f80c;font-weight:normal;font-style:normal;}.sh_contrast .sh_sourceCode .sh_name{color:#11f80c;font-weight:normal;font-style:normal;}.sh_contrast .sh_sourceCode .sh_variable{color:#11f80c;font-weight:bold;font-style:normal;}.sh_contrast .sh_sourceCode .sh_oldfile{color:#11f80c;font-weight:normal;font-style:normal;}.sh_contrast .sh_sourceCode .sh_newfile{color:#11f80c;font-weight:normal;font-style:normal;}.sh_contrast .sh_sourceCode .sh_difflines{color:#fff;font-weight:bold;font-style:normal;}.sh_contrast .sh_sourceCode .sh_selector{color:#11f80c;font-weight:bold;font-style:normal;}.sh_contrast .sh_sourceCode .sh_property{color:#fff;font-weight:bold;font-style:normal;}.sh_contrast .sh_sourceCode .sh_value{color:#11f80c;font-weight:normal;font-style:normal;}
.sh_darkblue{background:none; padding:0; margin:0; border:0 none;}.sh_darkblue .sh_sourceCode{background-color:#000040;color:#C7C7C7;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_keyword{color:#ffff60;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_type{color:#60ff60;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_string{color:#ffa0a0;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_regexp{color:#ffa0a0;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_specialchar{color:#ffa500;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_comment{color:#80a0ff;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_number{color:#42cad9;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_preproc{color:#ff80ff;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_symbol{color:#d8e91b;font-weight:bold;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_function{color:#fff;font-weight:bold;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_cbracket{color:#d8e91b;font-weight:bold;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_url{color:#ffa0a0;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_date{color:#ffff60;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_time{color:#ffff60;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_file{color:#ffff60;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_ip{color:#ffa0a0;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_name{color:#ffa0a0;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_variable{color:#26e0e7;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_oldfile{color:#ffa500;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_newfile{color:#ffa0a0;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_difflines{color:#ffff60;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_selector{color:#26e0e7;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_property{color:#ffff60;font-weight:normal;font-style:normal;}.sh_darkblue .sh_sourceCode .sh_value{color:#ffa0a0;font-weight:normal;font-style:normal;}
.sh_darkness{background:none; padding:0; margin:0; border:0 none;}.sh_darkness .sh_sourceCode{background-color:#000;color:#fff;font-weight:normal;font-style:normal;}.sh_darkness .sh_sourceCode .sh_keyword{color:#ff0;font-weight:bold;font-style:normal;}.sh_darkness .sh_sourceCode .sh_type{color:#0f0;font-weight:normal;font-style:normal;}.sh_darkness .sh_sourceCode .sh_string{color:#abab00;font-weight:bold;font-style:normal;}.sh_darkness .sh_sourceCode .sh_regexp{color:#abab00;font-weight:bold;font-style:normal;}.sh_darkness .sh_sourceCode .sh_specialchar{color:#bfbfbf;font-weight:normal;font-style:normal;}.sh_darkness .sh_sourceCode .sh_comment{color:#888;font-weight:normal;font-style:italic;}.sh_darkness .sh_sourceCode .sh_number{color:#619de7;font-weight:normal;font-style:normal;}.sh_darkness .sh_sourceCode .sh_preproc{color:#1da3cf;font-weight:normal;font-style:normal;}.sh_darkness .sh_sourceCode .sh_symbol{color:#f0f;font-weight:normal;font-style:normal;}.sh_darkness .sh_sourceCode .sh_function{color:#f34627;font-weight:normal;font-style:normal;}.sh_darkness .sh_sourceCode .sh_cbracket{color:#f0f;font-weight:normal;font-style:normal;}.sh_darkness .sh_sourceCode .sh_url{color:#abab00;font-weight:bold;font-style:normal;}.sh_darkness .sh_sourceCode .sh_date{color:#ff0;font-weight:bold;font-style:normal;}.sh_darkness .sh_sourceCode .sh_time{color:#ff0;font-weight:bold;font-style:normal;}.sh_darkness .sh_sourceCode .sh_file{color:#ff0;font-weight:bold;font-style:normal;}.sh_darkness .sh_sourceCode .sh_ip{color:#abab00;font-weight:bold;font-style:normal;}.sh_darkness .sh_sourceCode .sh_name{color:#abab00;font-weight:bold;font-style:normal;}.sh_darkness .sh_sourceCode .sh_variable{color:#26e0e7;font-weight:normal;font-style:normal;}.sh_darkness .sh_sourceCode .sh_oldfile{color:#bfbfbf;font-weight:normal;font-style:normal;}.sh_darkness .sh_sourceCode .sh_newfile{color:#abab00;font-weight:bold;font-style:normal;}.sh_darkness .sh_sourceCode .sh_difflines{color:#ff0;font-weight:bold;font-style:normal;}.sh_darkness .sh_sourceCode .sh_selector{color:#26e0e7;font-weight:normal;font-style:normal;}.sh_darkness .sh_sourceCode .sh_property{color:#ff0;font-weight:bold;font-style:normal;}.sh_darkness .sh_sourceCode .sh_value{color:#abab00;font-weight:bold;font-style:normal;}
.sh_desert{background:none; padding:0; margin:0; border:0 none;}.sh_desert .sh_sourceCode{background-color:#af947e;color:#fffdec;font-weight:normal;font-style:normal;}.sh_desert .sh_sourceCode .sh_keyword{color:#fef8bc;font-weight:bold;font-style:normal;}.sh_desert .sh_sourceCode .sh_type{color:#fef8bc;font-weight:normal;font-style:normal;}.sh_desert .sh_sourceCode .sh_string{color:#f6f647;font-weight:normal;font-style:normal;}.sh_desert .sh_sourceCode .sh_regexp{color:#f6f647;font-weight:normal;font-style:normal;}.sh_desert .sh_sourceCode .sh_specialchar{color:#f6f647;font-weight:normal;font-style:normal;}.sh_desert .sh_sourceCode .sh_comment{color:#a00000;font-weight:normal;font-style:italic;}.sh_desert .sh_sourceCode .sh_number{color:#3e3f25;font-weight:normal;font-style:normal;}.sh_desert .sh_sourceCode .sh_preproc{color:#833914;font-weight:normal;font-style:normal;}.sh_desert .sh_sourceCode .sh_symbol{color:#66574f;font-weight:normal;font-style:normal;}.sh_desert .sh_sourceCode .sh_function{color:#f3d266;font-weight:bold;font-style:normal;}.sh_desert .sh_sourceCode .sh_cbracket{color:#66574f;font-weight:normal;font-style:normal;}.sh_desert .sh_sourceCode .sh_url{color:#f6f647;font-weight:normal;font-style:normal;}.sh_desert .sh_sourceCode .sh_date{color:#fef8bc;font-weight:bold;font-style:normal;}.sh_desert .sh_sourceCode .sh_time{color:#fef8bc;font-weight:bold;font-style:normal;}.sh_desert .sh_sourceCode .sh_file{color:#fef8bc;font-weight:bold;font-style:normal;}.sh_desert .sh_sourceCode .sh_ip{color:#f6f647;font-weight:normal;font-style:normal;}.sh_desert .sh_sourceCode .sh_name{color:#f6f647;font-weight:normal;font-style:normal;}.sh_desert .sh_sourceCode .sh_variable{color:#000;font-weight:bold;font-style:normal;}.sh_desert .sh_sourceCode .sh_oldfile{color:#f6f647;font-weight:normal;font-style:normal;}.sh_desert .sh_sourceCode .sh_newfile{color:#f6f647;font-weight:normal;font-style:normal;}.sh_desert .sh_sourceCode .sh_difflines{color:#fef8bc;font-weight:bold;font-style:normal;}.sh_desert .sh_sourceCode .sh_selector{color:#000;font-weight:bold;font-style:normal;}.sh_desert .sh_sourceCode .sh_property{color:#fef8bc;font-weight:bold;font-style:normal;}.sh_desert .sh_sourceCode .sh_value{color:#f6f647;font-weight:normal;font-style:normal;}
.sh_dull{background:none; padding:0; margin:0; border:0 none;}.sh_dull .sh_sourceCode{background-color:#bfbfbf;color:#656565;font-weight:normal;font-style:normal;}.sh_dull .sh_sourceCode .sh_keyword{color:#353535;font-weight:bold;font-style:normal;}.sh_dull .sh_sourceCode .sh_type{color:#3241c6;font-weight:normal;font-style:normal;}.sh_dull .sh_sourceCode .sh_string{color:#059;font-weight:normal;font-style:normal;}.sh_dull .sh_sourceCode .sh_regexp{color:#059;font-weight:normal;font-style:normal;}.sh_dull .sh_sourceCode .sh_specialchar{color:#059;font-weight:normal;font-style:normal;}.sh_dull .sh_sourceCode .sh_comment{color:#d11d20;font-weight:normal;font-style:italic;}.sh_dull .sh_sourceCode .sh_number{color:#16930d;font-weight:normal;font-style:normal;}.sh_dull .sh_sourceCode .sh_preproc{color:#003;font-weight:normal;font-style:normal;}.sh_dull .sh_sourceCode .sh_symbol{color:#222;font-weight:normal;font-style:normal;}.sh_dull .sh_sourceCode .sh_function{color:#38255c;font-weight:normal;font-style:normal;}.sh_dull .sh_sourceCode .sh_cbracket{color:#222;font-weight:normal;font-style:normal;}.sh_dull .sh_sourceCode .sh_url{color:#059;font-weight:normal;font-style:normal;}.sh_dull .sh_sourceCode .sh_date{color:#353535;font-weight:bold;font-style:normal;}.sh_dull .sh_sourceCode .sh_time{color:#353535;font-weight:bold;font-style:normal;}.sh_dull .sh_sourceCode .sh_file{color:#353535;font-weight:bold;font-style:normal;}.sh_dull .sh_sourceCode .sh_ip{color:#059;font-weight:normal;font-style:normal;}.sh_dull .sh_sourceCode .sh_name{color:#059;font-weight:normal;font-style:normal;}.sh_dull .sh_sourceCode .sh_variable{color:#ae5a16;font-weight:normal;font-style:normal;}.sh_dull .sh_sourceCode .sh_oldfile{color:#059;font-weight:normal;font-style:normal;}.sh_dull .sh_sourceCode .sh_newfile{color:#059;font-weight:normal;font-style:normal;}.sh_dull .sh_sourceCode .sh_difflines{color:#353535;font-weight:bold;font-style:normal;}.sh_dull .sh_sourceCode .sh_selector{color:#ae5a16;font-weight:normal;font-style:normal;}.sh_dull .sh_sourceCode .sh_property{color:#353535;font-weight:bold;font-style:normal;}.sh_dull .sh_sourceCode .sh_value{color:#059;font-weight:normal;font-style:normal;}
.sh_easter{background:none; padding:0; margin:0; border:0 none;}.sh_easter .sh_sourceCode{background-color:#ffff80;color:#2C7B34;font-weight:normal;font-style:normal;}.sh_easter .sh_sourceCode .sh_keyword{color:#1d45d6;font-weight:bold;font-style:normal;}.sh_easter .sh_sourceCode .sh_type{color:#ed0f55;font-weight:bold;font-style:normal;}.sh_easter .sh_sourceCode .sh_string{color:#ca4be3;font-weight:normal;font-style:normal;}.sh_easter .sh_sourceCode .sh_regexp{color:#ca4be3;font-weight:normal;font-style:normal;}.sh_easter .sh_sourceCode .sh_specialchar{color:#ca4be3;font-weight:normal;font-style:normal;}.sh_easter .sh_sourceCode .sh_comment{color:#24c815;font-weight:normal;font-style:italic;}.sh_easter .sh_sourceCode .sh_number{color:#e11a70;font-weight:normal;font-style:normal;}.sh_easter .sh_sourceCode .sh_preproc{color:#1583b1;font-weight:normal;font-style:normal;}.sh_easter .sh_sourceCode .sh_symbol{color:#fa4700;font-weight:normal;font-style:normal;}.sh_easter .sh_sourceCode .sh_function{color:#1d45d6;font-weight:normal;font-style:normal;}.sh_easter .sh_sourceCode .sh_cbracket{color:#fa4700;font-weight:normal;font-style:normal;}.sh_easter .sh_sourceCode .sh_url{color:#ca4be3;font-weight:normal;font-style:normal;}.sh_easter .sh_sourceCode .sh_date{color:#1d45d6;font-weight:bold;font-style:normal;}.sh_easter .sh_sourceCode .sh_time{color:#1d45d6;font-weight:bold;font-style:normal;}.sh_easter .sh_sourceCode .sh_file{color:#1d45d6;font-weight:bold;font-style:normal;}.sh_easter .sh_sourceCode .sh_ip{color:#ca4be3;font-weight:normal;font-style:normal;}.sh_easter .sh_sourceCode .sh_name{color:#ca4be3;font-weight:normal;font-style:normal;}.sh_easter .sh_sourceCode .sh_variable{color:#26aae7;font-weight:bold;font-style:normal;}.sh_easter .sh_sourceCode .sh_oldfile{color:#ca4be3;font-weight:normal;font-style:normal;}.sh_easter .sh_sourceCode .sh_newfile{color:#ca4be3;font-weight:normal;font-style:normal;}.sh_easter .sh_sourceCode .sh_difflines{color:#1d45d6;font-weight:bold;font-style:normal;}.sh_easter .sh_sourceCode .sh_selector{color:#26aae7;font-weight:bold;font-style:normal;}.sh_easter .sh_sourceCode .sh_property{color:#1d45d6;font-weight:bold;font-style:normal;}.sh_easter .sh_sourceCode .sh_value{color:#ca4be3;font-weight:normal;font-style:normal;}
.sh_emacs{background:none; padding:0; margin:0; border:0 none;}.sh_emacs .sh_sourceCode{background-color:#fff;color:#000;font-weight:normal;font-style:normal;}.sh_emacs .sh_sourceCode .sh_keyword{color:#9c20ee;font-weight:bold;font-style:normal;}.sh_emacs .sh_sourceCode .sh_type{color:#208920;font-weight:normal;font-style:normal;}.sh_emacs .sh_sourceCode .sh_string{color:#bd8d8b;font-weight:normal;font-style:normal;}.sh_emacs .sh_sourceCode .sh_regexp{color:#bd8d8b;font-weight:normal;font-style:normal;}.sh_emacs .sh_sourceCode .sh_specialchar{color:#bd8d8b;font-weight:normal;font-style:normal;}.sh_emacs .sh_sourceCode .sh_comment{color:#ac2020;font-weight:normal;font-style:italic;}.sh_emacs .sh_sourceCode .sh_number{color:#000;font-weight:normal;font-style:normal;}.sh_emacs .sh_sourceCode .sh_preproc{color:#000;font-weight:normal;font-style:normal;}.sh_emacs .sh_sourceCode .sh_function{color:#000;font-weight:normal;font-style:normal;}.sh_emacs .sh_sourceCode .sh_url{color:#bd8d8b;font-weight:normal;font-style:normal;}.sh_emacs .sh_sourceCode .sh_date{color:#9c20ee;font-weight:bold;font-style:normal;}.sh_emacs .sh_sourceCode .sh_time{color:#9c20ee;font-weight:bold;font-style:normal;}.sh_emacs .sh_sourceCode .sh_file{color:#9c20ee;font-weight:bold;font-style:normal;}.sh_emacs .sh_sourceCode .sh_ip{color:#bd8d8b;font-weight:normal;font-style:normal;}.sh_emacs .sh_sourceCode .sh_name{color:#bd8d8b;font-weight:normal;font-style:normal;}.sh_emacs .sh_sourceCode .sh_variable{color:#00f;font-weight:normal;font-style:normal;}.sh_emacs .sh_sourceCode .sh_oldfile{color:#bd8d8b;font-weight:normal;font-style:normal;}.sh_emacs .sh_sourceCode .sh_newfile{color:#bd8d8b;font-weight:normal;font-style:normal;}.sh_emacs .sh_sourceCode .sh_difflines{color:#9c20ee;font-weight:bold;font-style:normal;}.sh_emacs .sh_sourceCode .sh_selector{color:#00f;font-weight:normal;font-style:normal;}.sh_emacs .sh_sourceCode .sh_property{color:#9c20ee;font-weight:bold;font-style:normal;}.sh_emacs .sh_sourceCode .sh_value{color:#bd8d8b;font-weight:normal;font-style:normal;}
.sh_golden{background:none; padding:0; margin:0; border:0 none;}.sh_golden .sh_sourceCode{background-color:#000;color:#db0;font-weight:normal;font-style:normal;}.sh_golden .sh_sourceCode .sh_keyword{color:#ffed8a;font-weight:bold;font-style:normal;}.sh_golden .sh_sourceCode .sh_type{color:#ffed8a;font-weight:normal;font-style:normal;}.sh_golden .sh_sourceCode .sh_string{color:#f00;font-weight:normal;font-style:normal;}.sh_golden .sh_sourceCode .sh_regexp{color:#f00;font-weight:normal;font-style:normal;}.sh_golden .sh_sourceCode .sh_specialchar{color:#f00;font-weight:normal;font-style:normal;}.sh_golden .sh_sourceCode .sh_comment{color:#978345;font-weight:normal;font-style:italic;}.sh_golden .sh_sourceCode .sh_number{color:#fff;font-weight:normal;font-style:normal;}.sh_golden .sh_sourceCode .sh_preproc{color:#fda;font-weight:normal;font-style:normal;}.sh_golden .sh_sourceCode .sh_symbol{color:#ababab;font-weight:normal;font-style:normal;}.sh_golden .sh_sourceCode .sh_function{color:#db0;font-weight:bold;font-style:normal;}.sh_golden .sh_sourceCode .sh_cbracket{color:#ababab;font-weight:normal;font-style:normal;}.sh_golden .sh_sourceCode .sh_url{color:#f00;font-weight:normal;font-style:normal;}.sh_golden .sh_sourceCode .sh_date{color:#ffed8a;font-weight:bold;font-style:normal;}.sh_golden .sh_sourceCode .sh_time{color:#ffed8a;font-weight:bold;font-style:normal;}.sh_golden .sh_sourceCode .sh_file{color:#ffed8a;font-weight:bold;font-style:normal;}.sh_golden .sh_sourceCode .sh_ip{color:#f00;font-weight:normal;font-style:normal;}.sh_golden .sh_sourceCode .sh_name{color:#f00;font-weight:normal;font-style:normal;}.sh_golden .sh_sourceCode .sh_variable{color:#dedede;font-weight:bold;font-style:normal;}.sh_golden .sh_sourceCode .sh_oldfile{color:#f00;font-weight:normal;font-style:normal;}.sh_golden .sh_sourceCode .sh_newfile{color:#f00;font-weight:normal;font-style:normal;}.sh_golden .sh_sourceCode .sh_difflines{color:#ffed8a;font-weight:bold;font-style:normal;}.sh_golden .sh_sourceCode .sh_selector{color:#dedede;font-weight:bold;font-style:normal;}.sh_golden .sh_sourceCode .sh_property{color:#ffed8a;font-weight:bold;font-style:normal;}.sh_golden .sh_sourceCode .sh_value{color:#f00;font-weight:normal;font-style:normal;}
.sh_greenlcd{background:none; padding:0; margin:0; border:0 none;}.sh_greenlcd .sh_sourceCode{background-color:#003400;color:#0b0;font-weight:normal;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_keyword{color:#00ed00;font-weight:bold;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_type{color:#00ed00;font-weight:normal;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_string{color:#dfdfdf;font-weight:normal;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_regexp{color:#dfdfdf;font-weight:normal;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_specialchar{color:#dfdfdf;font-weight:normal;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_comment{color:#888;font-weight:normal;font-style:italic;}.sh_greenlcd .sh_sourceCode .sh_number{color:#fff;font-weight:normal;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_preproc{color:#bfbfbf;font-weight:normal;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_symbol{color:#2fe7a9;font-weight:normal;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_function{color:#c0ff73;font-weight:normal;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_cbracket{color:#2fe7a9;font-weight:normal;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_url{color:#dfdfdf;font-weight:normal;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_date{color:#00ed00;font-weight:bold;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_time{color:#00ed00;font-weight:bold;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_file{color:#00ed00;font-weight:bold;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_ip{color:#dfdfdf;font-weight:normal;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_name{color:#dfdfdf;font-weight:normal;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_variable{color:#beef13;font-weight:normal;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_oldfile{color:#dfdfdf;font-weight:normal;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_newfile{color:#dfdfdf;font-weight:normal;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_difflines{color:#00ed00;font-weight:bold;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_selector{color:#beef13;font-weight:normal;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_property{color:#00ed00;font-weight:bold;font-style:normal;}.sh_greenlcd .sh_sourceCode .sh_value{color:#dfdfdf;font-weight:normal;font-style:normal;}
.sh_ide-anjuta{background:none; padding:0; margin:0; border:0 none;}.sh_ide-anjuta .sh_sourceCode{background-color:#fff;color:#000;font-weight:normal;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_keyword{color:#000080;font-weight:bold;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_type{color:#000080;font-weight:normal;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_string{color:#db0;font-weight:normal;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_regexp{color:#db0;font-weight:normal;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_specialchar{color:#db0;font-weight:normal;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_comment{color:#f00;font-weight:normal;font-style:italic;}.sh_ide-anjuta .sh_sourceCode .sh_number{color:#080;font-weight:normal;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_preproc{color:#678000;font-weight:normal;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_function{color:#000;font-weight:normal;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_url{color:#db0;font-weight:normal;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_date{color:#000080;font-weight:bold;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_time{color:#000080;font-weight:bold;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_file{color:#000080;font-weight:bold;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_ip{color:#db0;font-weight:normal;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_name{color:#db0;font-weight:normal;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_variable{color:#00f;font-weight:normal;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_oldfile{color:#db0;font-weight:normal;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_newfile{color:#db0;font-weight:normal;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_difflines{color:#000080;font-weight:bold;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_selector{color:#00f;font-weight:normal;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_property{color:#000080;font-weight:bold;font-style:normal;}.sh_ide-anjuta .sh_sourceCode .sh_value{color:#db0;font-weight:normal;font-style:normal;}
.sh_ide-codewarrior{background:none; padding:0; margin:0; border:0 none;}.sh_ide-codewarrior .sh_sourceCode{background-color:#fff;color:#000;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_keyword{color:#0000b3;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_type{color:#4c73a6;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_string{color:#666;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_regexp{color:#666;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_specialchar{color:#666;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_comment{color:#b30000;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_number{color:#000;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_preproc{color:#0000b3;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_function{color:#000;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_url{color:#666;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_date{color:#0000b3;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_time{color:#0000b3;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_file{color:#0000b3;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_ip{color:#666;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_name{color:#666;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_variable{color:#0000b3;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_oldfile{color:#666;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_newfile{color:#666;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_difflines{color:#0000b3;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_selector{color:#0000b3;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_property{color:#0000b3;font-weight:normal;font-style:normal;}.sh_ide-codewarrior .sh_sourceCode .sh_value{color:#666;font-weight:normal;font-style:normal;}
.sh_ide-devcpp{background:none; padding:0; margin:0; border:0 none;}.sh_ide-devcpp .sh_sourceCode{background-color:#fff;color:#000;font-weight:normal;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_keyword{color:#000;font-weight:bold;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_type{color:#000;font-weight:normal;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_string{color:#f00;font-weight:normal;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_regexp{color:#f00;font-weight:normal;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_specialchar{color:#f00;font-weight:normal;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_comment{color:#000080;font-weight:normal;font-style:italic;}.sh_ide-devcpp .sh_sourceCode .sh_number{color:#00f;font-weight:normal;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_preproc{color:#008000;font-weight:normal;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_function{color:#000;font-weight:normal;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_url{color:#f00;font-weight:normal;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_date{color:#000;font-weight:bold;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_time{color:#000;font-weight:bold;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_file{color:#000;font-weight:bold;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_ip{color:#f00;font-weight:normal;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_name{color:#f00;font-weight:normal;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_variable{color:#000;font-weight:bold;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_oldfile{color:#f00;font-weight:normal;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_newfile{color:#f00;font-weight:normal;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_difflines{color:#000;font-weight:bold;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_selector{color:#000;font-weight:bold;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_property{color:#000;font-weight:bold;font-style:normal;}.sh_ide-devcpp .sh_sourceCode .sh_value{color:#f00;font-weight:normal;font-style:normal;}
.sh_ide-eclipse{background:none; padding:0; margin:0; border:0 none;}.sh_ide-eclipse .sh_sourceCode{background-color:#fff;color:#000;font-weight:normal;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_keyword{color:#7f0055;font-weight:bold;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_type{color:#7f0055;font-weight:bold;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_string{color:#00f;font-weight:normal;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_regexp{color:#00f;font-weight:normal;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_specialchar{color:#00f;font-weight:normal;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_comment{color:#717ab3;font-weight:normal;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_number{color:#000;font-weight:normal;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_preproc{color:#3f5fbf;font-weight:normal;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_function{color:#000;font-weight:normal;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_url{color:#00f;font-weight:normal;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_date{color:#7f0055;font-weight:bold;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_time{color:#7f0055;font-weight:bold;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_file{color:#7f0055;font-weight:bold;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_ip{color:#00f;font-weight:normal;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_name{color:#00f;font-weight:normal;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_variable{color:#7f0055;font-weight:bold;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_oldfile{color:#00f;font-weight:normal;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_newfile{color:#00f;font-weight:normal;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_difflines{color:#7f0055;font-weight:bold;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_selector{color:#7f0055;font-weight:bold;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_property{color:#7f0055;font-weight:bold;font-style:normal;}.sh_ide-eclipse .sh_sourceCode .sh_value{color:#00f;font-weight:normal;font-style:normal;}
.sh_ide-kdev{background:none; padding:0; margin:0; border:0 none;}.sh_ide-kdev .sh_sourceCode{background-color:#fff;color:#000;font-weight:normal;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_keyword{color:#600000;font-weight:bold;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_type{color:#600000;font-weight:normal;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_string{color:#f00;font-weight:normal;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_regexp{color:#f00;font-weight:normal;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_specialchar{color:#f00;font-weight:normal;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_comment{color:#bfbfbf;font-weight:normal;font-style:italic;}.sh_ide-kdev .sh_sourceCode .sh_number{color:#00f;font-weight:normal;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_preproc{color:#008000;font-weight:normal;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_function{color:#000;font-weight:normal;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_url{color:#f00;font-weight:normal;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_date{color:#600000;font-weight:bold;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_time{color:#600000;font-weight:bold;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_file{color:#600000;font-weight:bold;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_ip{color:#f00;font-weight:normal;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_name{color:#f00;font-weight:normal;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_variable{color:#600000;font-weight:bold;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_oldfile{color:#f00;font-weight:normal;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_newfile{color:#f00;font-weight:normal;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_difflines{color:#600000;font-weight:bold;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_selector{color:#600000;font-weight:bold;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_property{color:#600000;font-weight:bold;font-style:normal;}.sh_ide-kdev .sh_sourceCode .sh_value{color:#f00;font-weight:normal;font-style:normal;}
.sh_ide-msvcpp{background:none; padding:0; margin:0; border:0 none;}.sh_ide-msvcpp .sh_sourceCode{background-color:#fff;color:#000;font-weight:normal;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_keyword{color:#00f;font-weight:bold;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_type{color:#00f;font-weight:normal;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_string{color:#000;font-weight:normal;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_regexp{color:#000;font-weight:normal;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_specialchar{color:#000;font-weight:normal;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_comment{color:#008000;font-weight:normal;font-style:italic;}.sh_ide-msvcpp .sh_sourceCode .sh_number{color:#000;font-weight:normal;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_preproc{color:#00f;font-weight:normal;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_function{color:#000;font-weight:normal;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_url{color:#000;font-weight:normal;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_date{color:#00f;font-weight:bold;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_time{color:#00f;font-weight:bold;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_file{color:#00f;font-weight:bold;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_ip{color:#000;font-weight:normal;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_name{color:#000;font-weight:normal;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_variable{color:#00f;font-weight:bold;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_oldfile{color:#000;font-weight:normal;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_newfile{color:#000;font-weight:normal;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_difflines{color:#00f;font-weight:bold;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_selector{color:#00f;font-weight:bold;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_property{color:#00f;font-weight:bold;font-style:normal;}.sh_ide-msvcpp .sh_sourceCode .sh_value{color:#000;font-weight:normal;font-style:normal;}
.sh_kwrite{background:none; padding:0; margin:0; border:0 none;}.sh_kwrite .sh_sourceCode{background-color:#fff;color:#000;font-weight:normal;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_keyword{color:#000;font-weight:bold;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_type{color:#830000;font-weight:normal;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_string{color:#f00;font-weight:normal;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_regexp{color:#f00;font-weight:normal;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_specialchar{color:#f0f;font-weight:normal;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_comment{color:#838183;font-weight:normal;font-style:italic;}.sh_kwrite .sh_sourceCode .sh_number{color:#2928ff;font-weight:normal;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_preproc{color:#008200;font-weight:normal;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_function{color:#010181;font-weight:normal;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_url{color:#f00;font-weight:normal;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_date{color:#000;font-weight:bold;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_time{color:#000;font-weight:bold;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_file{color:#000;font-weight:bold;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_ip{color:#f00;font-weight:normal;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_name{color:#f00;font-weight:normal;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_variable{color:#000;font-weight:bold;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_oldfile{color:#f0f;font-weight:normal;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_newfile{color:#f00;font-weight:normal;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_difflines{color:#000;font-weight:bold;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_selector{color:#000;font-weight:bold;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_property{color:#000;font-weight:bold;font-style:normal;}.sh_kwrite .sh_sourceCode .sh_value{color:#f00;font-weight:normal;font-style:normal;}
.sh_matlab{background:none; padding:0; margin:0; border:0 none;}.sh_matlab .sh_sourceCode{background-color:#fff;color:#000;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_keyword{color:#00f;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_type{color:#000;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_string{color:#800000;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_regexp{color:#800000;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_specialchar{color:#000;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_number{color:#000;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_function{color:#000;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_url{color:#800000;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_date{color:#00f;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_time{color:#00f;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_file{color:#00f;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_ip{color:#800000;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_name{color:#800000;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_variable{color:#00f;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_oldfile{color:#000;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_newfile{color:#800000;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_difflines{color:#00f;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_selector{color:#00f;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_property{color:#00f;font-weight:normal;font-style:normal;}.sh_matlab .sh_sourceCode .sh_value{color:#800000;font-weight:normal;font-style:normal;}
.sh_navy{background:none; padding:0; margin:0; border:0 none;}.sh_navy .sh_sourceCode{background-color:#000035;color:#008bff;font-weight:normal;font-style:normal;}.sh_navy .sh_sourceCode .sh_keyword{color:#f8c50b;font-weight:bold;font-style:normal;}.sh_navy .sh_sourceCode .sh_type{color:#e1e72f;font-weight:normal;font-style:normal;}.sh_navy .sh_sourceCode .sh_string{color:#fff;font-weight:normal;font-style:normal;}.sh_navy .sh_sourceCode .sh_regexp{color:#fff;font-weight:normal;font-style:normal;}.sh_navy .sh_sourceCode .sh_specialchar{color:#fff;font-weight:normal;font-style:normal;}.sh_navy .sh_sourceCode .sh_comment{color:#fb0;font-weight:normal;font-style:italic;}.sh_navy .sh_sourceCode .sh_number{color:#f87ff4;font-weight:normal;font-style:normal;}.sh_navy .sh_sourceCode .sh_preproc{color:#b0f;font-weight:normal;font-style:normal;}.sh_navy .sh_sourceCode .sh_symbol{color:#fff;font-weight:normal;font-style:normal;}.sh_navy .sh_sourceCode .sh_function{color:#fff;font-weight:normal;font-style:normal;}.sh_navy .sh_sourceCode .sh_cbracket{color:#fff;font-weight:normal;font-style:normal;}.sh_navy .sh_sourceCode .sh_url{color:#fff;font-weight:normal;font-style:normal;}.sh_navy .sh_sourceCode .sh_date{color:#f8c50b;font-weight:bold;font-style:normal;}.sh_navy .sh_sourceCode .sh_time{color:#f8c50b;font-weight:bold;font-style:normal;}.sh_navy .sh_sourceCode .sh_file{color:#f8c50b;font-weight:bold;font-style:normal;}.sh_navy .sh_sourceCode .sh_ip{color:#fff;font-weight:normal;font-style:normal;}.sh_navy .sh_sourceCode .sh_name{color:#fff;font-weight:normal;font-style:normal;}.sh_navy .sh_sourceCode .sh_variable{color:#13d8ef;font-weight:normal;font-style:normal;}.sh_navy .sh_sourceCode .sh_oldfile{color:#fff;font-weight:normal;font-style:normal;}.sh_navy .sh_sourceCode .sh_newfile{color:#fff;font-weight:normal;font-style:normal;}.sh_navy .sh_sourceCode .sh_difflines{color:#f8c50b;font-weight:bold;font-style:normal;}.sh_navy .sh_sourceCode .sh_selector{color:#13d8ef;font-weight:normal;font-style:normal;}.sh_navy .sh_sourceCode .sh_property{color:#f8c50b;font-weight:bold;font-style:normal;}.sh_navy .sh_sourceCode .sh_value{color:#fff;font-weight:normal;font-style:normal;}
.sh_nedit{background:none; padding:0; margin:0; border:0 none;}.sh_nedit .sh_sourceCode{background-color:#fff;color:#000;font-weight:normal;font-style:normal;}.sh_nedit .sh_sourceCode .sh_keyword{color:#000;font-weight:bold;font-style:normal;}.sh_nedit .sh_sourceCode .sh_type{color:#a52a2a;font-weight:bold;font-style:normal;}.sh_nedit .sh_sourceCode .sh_string{color:#006400;font-weight:normal;font-style:normal;}.sh_nedit .sh_sourceCode .sh_regexp{color:#006400;font-weight:normal;font-style:normal;}.sh_nedit .sh_sourceCode .sh_specialchar{color:#2e8b57;font-weight:normal;font-style:normal;}.sh_nedit .sh_sourceCode .sh_comment{color:#000;font-weight:normal;font-style:italic;}.sh_nedit .sh_sourceCode .sh_number{color:#006400;font-weight:normal;font-style:normal;}.sh_nedit .sh_sourceCode .sh_preproc{color:#27408b;font-weight:normal;font-style:normal;}.sh_nedit .sh_sourceCode .sh_symbol{color:#000;font-weight:bold;font-style:normal;}.sh_nedit .sh_sourceCode .sh_function{color:#000;font-weight:normal;font-style:normal;}.sh_nedit .sh_sourceCode .sh_cbracket{color:#000;font-weight:bold;font-style:normal;}.sh_nedit .sh_sourceCode .sh_url{color:#006400;font-weight:normal;font-style:normal;}.sh_nedit .sh_sourceCode .sh_date{color:#000;font-weight:bold;font-style:normal;}.sh_nedit .sh_sourceCode .sh_time{color:#000;font-weight:bold;font-style:normal;}.sh_nedit .sh_sourceCode .sh_file{color:#000;font-weight:bold;font-style:normal;}.sh_nedit .sh_sourceCode .sh_ip{color:#006400;font-weight:normal;font-style:normal;}.sh_nedit .sh_sourceCode .sh_name{color:#006400;font-weight:normal;font-style:normal;}.sh_nedit .sh_sourceCode .sh_variable{color:#dda0dd;font-weight:bold;font-style:normal;}.sh_nedit .sh_sourceCode .sh_oldfile{color:#2e8b57;font-weight:normal;font-style:normal;}.sh_nedit .sh_sourceCode .sh_newfile{color:#006400;font-weight:normal;font-style:normal;}.sh_nedit .sh_sourceCode .sh_difflines{color:#000;font-weight:bold;font-style:normal;}.sh_nedit .sh_sourceCode .sh_selector{color:#dda0dd;font-weight:bold;font-style:normal;}.sh_nedit .sh_sourceCode .sh_property{color:#000;font-weight:bold;font-style:normal;}.sh_nedit .sh_sourceCode .sh_value{color:#006400;font-weight:normal;font-style:normal;}
.sh_neon{background:none; padding:0; margin:0; border:0 none;}.sh_neon .sh_sourceCode{background-color:#000;color:#fff;font-weight:normal;font-style:normal;}.sh_neon .sh_sourceCode .sh_keyword{color:#0ff;font-weight:bold;font-style:normal;}.sh_neon .sh_sourceCode .sh_type{color:#ff0;font-weight:normal;font-style:normal;}.sh_neon .sh_sourceCode .sh_string{color:#cd00ff;font-weight:normal;font-style:normal;}.sh_neon .sh_sourceCode .sh_regexp{color:#cd00ff;font-weight:normal;font-style:normal;}.sh_neon .sh_sourceCode .sh_specialchar{color:#cd00ff;font-weight:normal;font-style:normal;}.sh_neon .sh_sourceCode .sh_comment{color:#0f0;font-weight:normal;font-style:italic;}.sh_neon .sh_sourceCode .sh_number{color:#f0f;font-weight:normal;font-style:normal;}.sh_neon .sh_sourceCode .sh_preproc{color:#fb0;font-weight:normal;font-style:normal;}.sh_neon .sh_sourceCode .sh_symbol{color:#ee5896;font-weight:bold;font-style:normal;}.sh_neon .sh_sourceCode .sh_function{color:#fff;font-weight:bold;font-style:normal;}.sh_neon .sh_sourceCode .sh_cbracket{color:#ee5896;font-weight:bold;font-style:normal;}.sh_neon .sh_sourceCode .sh_url{color:#cd00ff;font-weight:normal;font-style:normal;}.sh_neon .sh_sourceCode .sh_date{color:#0ff;font-weight:bold;font-style:normal;}.sh_neon .sh_sourceCode .sh_time{color:#0ff;font-weight:bold;font-style:normal;}.sh_neon .sh_sourceCode .sh_file{color:#0ff;font-weight:bold;font-style:normal;}.sh_neon .sh_sourceCode .sh_ip{color:#cd00ff;font-weight:normal;font-style:normal;}.sh_neon .sh_sourceCode .sh_name{color:#cd00ff;font-weight:normal;font-style:normal;}.sh_neon .sh_sourceCode .sh_variable{color:#ef1347;font-weight:bold;font-style:normal;}.sh_neon .sh_sourceCode .sh_oldfile{color:#cd00ff;font-weight:normal;font-style:normal;}.sh_neon .sh_sourceCode .sh_newfile{color:#cd00ff;font-weight:normal;font-style:normal;}.sh_neon .sh_sourceCode .sh_difflines{color:#0ff;font-weight:bold;font-style:normal;}.sh_neon .sh_sourceCode .sh_selector{color:#ef1347;font-weight:bold;font-style:normal;}.sh_neon .sh_sourceCode .sh_property{color:#0ff;font-weight:bold;font-style:normal;}.sh_neon .sh_sourceCode .sh_value{color:#cd00ff;font-weight:normal;font-style:normal;}
.sh_night{background:none; padding:0; margin:0; border:0 none;}.sh_night .sh_sourceCode{background-color:#004;color:#d0f;font-weight:normal;font-style:normal;}.sh_night .sh_sourceCode .sh_keyword{color:#fff;font-weight:bold;font-style:normal;}.sh_night .sh_sourceCode .sh_type{color:#f1157c;font-weight:bold;font-style:normal;}.sh_night .sh_sourceCode .sh_string{color:#fff;font-weight:normal;font-style:normal;}.sh_night .sh_sourceCode .sh_regexp{color:#fff;font-weight:normal;font-style:normal;}.sh_night .sh_sourceCode .sh_specialchar{color:#82d66d;font-weight:normal;font-style:normal;}.sh_night .sh_sourceCode .sh_comment{color:#bfbfbf;font-weight:normal;font-style:normal;}.sh_night .sh_sourceCode .sh_number{color:#8ee119;font-weight:normal;font-style:normal;}.sh_night .sh_sourceCode .sh_preproc{color:#0b0;font-weight:normal;font-style:normal;}.sh_night .sh_sourceCode .sh_symbol{color:#e7ee5c;font-weight:bold;font-style:normal;}.sh_night .sh_sourceCode .sh_function{color:#ff06cd;font-weight:bold;font-style:normal;}.sh_night .sh_sourceCode .sh_cbracket{color:#e7ee5c;font-weight:bold;font-style:normal;}.sh_night .sh_sourceCode .sh_url{color:#fff;font-weight:normal;font-style:normal;}.sh_night .sh_sourceCode .sh_date{color:#fff;font-weight:bold;font-style:normal;}.sh_night .sh_sourceCode .sh_time{color:#fff;font-weight:bold;font-style:normal;}.sh_night .sh_sourceCode .sh_file{color:#fff;font-weight:bold;font-style:normal;}.sh_night .sh_sourceCode .sh_ip{color:#fff;font-weight:normal;font-style:normal;}.sh_night .sh_sourceCode .sh_name{color:#fff;font-weight:normal;font-style:normal;}.sh_night .sh_sourceCode .sh_variable{color:#7aec27;font-weight:bold;font-style:normal;}.sh_night .sh_sourceCode .sh_oldfile{color:#82d66d;font-weight:normal;font-style:normal;}.sh_night .sh_sourceCode .sh_newfile{color:#fff;font-weight:normal;font-style:normal;}.sh_night .sh_sourceCode .sh_difflines{color:#fff;font-weight:bold;font-style:normal;}.sh_night .sh_sourceCode .sh_selector{color:#7aec27;font-weight:bold;font-style:normal;}.sh_night .sh_sourceCode .sh_property{color:#fff;font-weight:bold;font-style:normal;}.sh_night .sh_sourceCode .sh_value{color:#fff;font-weight:normal;font-style:normal;}
.sh_pablo{background:none; padding:0; margin:0; border:0 none;}.sh_pablo .sh_sourceCode{background-color:#000;color:#fff;font-weight:normal;font-style:normal;}.sh_pablo .sh_sourceCode .sh_keyword{color:#c0c000;font-weight:bold;font-style:normal;}.sh_pablo .sh_sourceCode .sh_type{color:#00c000;font-weight:bold;font-style:normal;}.sh_pablo .sh_sourceCode .sh_string{color:#0ff;font-weight:normal;font-style:normal;}.sh_pablo .sh_sourceCode .sh_regexp{color:#0ff;font-weight:normal;font-style:normal;}.sh_pablo .sh_sourceCode .sh_specialchar{color:#00f;font-weight:normal;font-style:normal;}.sh_pablo .sh_sourceCode .sh_comment{color:#808080;font-weight:normal;font-style:normal;}.sh_pablo .sh_sourceCode .sh_number{color:#0ff;font-weight:normal;font-style:normal;}.sh_pablo .sh_sourceCode .sh_preproc{color:#0f0;font-weight:normal;font-style:normal;}.sh_pablo .sh_sourceCode .sh_symbol{color:#f00;font-weight:normal;font-style:normal;}.sh_pablo .sh_sourceCode .sh_function{color:#ff22b9;font-weight:normal;font-style:normal;}.sh_pablo .sh_sourceCode .sh_cbracket{color:#f00;font-weight:normal;font-style:normal;}.sh_pablo .sh_sourceCode .sh_url{color:#0ff;font-weight:normal;font-style:normal;}.sh_pablo .sh_sourceCode .sh_date{color:#c0c000;font-weight:bold;font-style:normal;}.sh_pablo .sh_sourceCode .sh_time{color:#c0c000;font-weight:bold;font-style:normal;}.sh_pablo .sh_sourceCode .sh_file{color:#c0c000;font-weight:bold;font-style:normal;}.sh_pablo .sh_sourceCode .sh_ip{color:#0ff;font-weight:normal;font-style:normal;}.sh_pablo .sh_sourceCode .sh_name{color:#0ff;font-weight:normal;font-style:normal;}.sh_pablo .sh_sourceCode .sh_variable{color:#0000c0;font-weight:bold;font-style:normal;}.sh_pablo .sh_sourceCode .sh_oldfile{color:#00f;font-weight:normal;font-style:normal;}.sh_pablo .sh_sourceCode .sh_newfile{color:#0ff;font-weight:normal;font-style:normal;}.sh_pablo .sh_sourceCode .sh_difflines{color:#c0c000;font-weight:bold;font-style:normal;}.sh_pablo .sh_sourceCode .sh_selector{color:#0000c0;font-weight:bold;font-style:normal;}.sh_pablo .sh_sourceCode .sh_property{color:#c0c000;font-weight:bold;font-style:normal;}.sh_pablo .sh_sourceCode .sh_value{color:#0ff;font-weight:normal;font-style:normal;}
.sh_peachpuff{background:none; padding:0; margin:0; border:0 none;}.sh_peachpuff .sh_sourceCode{background-color:#ffdab9;color:#000;font-weight:normal;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_keyword{color:#a52a2a;font-weight:bold;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_type{color:#2e8b57;font-weight:bold;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_string{color:#c00058;font-weight:normal;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_regexp{color:#c00058;font-weight:normal;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_specialchar{color:#6a5acd;font-weight:normal;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_comment{color:#406090;font-weight:normal;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_number{color:#c00058;font-weight:normal;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_preproc{color:#cd00cd;font-weight:normal;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_function{color:#521cc7;font-weight:normal;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_url{color:#c00058;font-weight:normal;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_date{color:#a52a2a;font-weight:bold;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_time{color:#a52a2a;font-weight:bold;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_file{color:#a52a2a;font-weight:bold;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_ip{color:#c00058;font-weight:normal;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_name{color:#c00058;font-weight:normal;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_variable{color:#275fec;font-weight:bold;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_oldfile{color:#6a5acd;font-weight:normal;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_newfile{color:#c00058;font-weight:normal;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_difflines{color:#a52a2a;font-weight:bold;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_selector{color:#275fec;font-weight:bold;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_property{color:#a52a2a;font-weight:bold;font-style:normal;}.sh_peachpuff .sh_sourceCode .sh_value{color:#c00058;font-weight:normal;font-style:normal;}
.sh_print{background:none; padding:0; margin:0; border:0 none;}.sh_print .sh_sourceCode{background-color:#fff;color:#000;font-weight:normal;font-style:normal;}.sh_print .sh_sourceCode .sh_keyword{color:#000;font-weight:bold;font-style:normal;}.sh_print .sh_sourceCode .sh_type{color:#000;font-weight:bold;font-style:normal;}.sh_print .sh_sourceCode .sh_string{color:#000;font-weight:normal;font-style:normal;}.sh_print .sh_sourceCode .sh_regexp{color:#000;font-weight:normal;font-style:normal;}.sh_print .sh_sourceCode .sh_specialchar{color:#000;font-weight:normal;font-style:normal;}.sh_print .sh_sourceCode .sh_comment{color:#666;font-weight:normal;font-style:italic;}.sh_print .sh_sourceCode .sh_number{color:#000;font-weight:normal;font-style:normal;}.sh_print .sh_sourceCode .sh_preproc{color:#000;font-weight:bold;font-style:normal;}.sh_print .sh_sourceCode .sh_symbol{color:#000;font-weight:bold;font-style:normal;}.sh_print .sh_sourceCode .sh_cbracket{color:#000;font-weight:bold;font-style:normal;}.sh_print .sh_sourceCode .sh_url{color:#000;font-weight:normal;font-style:normal;}.sh_print .sh_sourceCode .sh_date{color:#000;font-weight:bold;font-style:normal;}.sh_print .sh_sourceCode .sh_time{color:#000;font-weight:bold;font-style:normal;}.sh_print .sh_sourceCode .sh_file{color:#000;font-weight:bold;font-style:normal;}.sh_print .sh_sourceCode .sh_ip{color:#000;font-weight:normal;font-style:normal;}.sh_print .sh_sourceCode .sh_name{color:#000;font-weight:normal;font-style:normal;}.sh_print .sh_sourceCode .sh_variable{color:#000;font-weight:bold;font-style:normal;}.sh_print .sh_sourceCode .sh_oldfile{color:#000;font-weight:normal;font-style:normal;}.sh_print .sh_sourceCode .sh_newfile{color:#000;font-weight:normal;font-style:normal;}.sh_print .sh_sourceCode .sh_difflines{color:#000;font-weight:bold;font-style:normal;}.sh_print .sh_sourceCode .sh_selector{color:#000;font-weight:bold;font-style:normal;}.sh_print .sh_sourceCode .sh_property{color:#000;font-weight:bold;font-style:normal;}.sh_print .sh_sourceCode .sh_value{color:#000;font-weight:normal;font-style:normal;}
.sh_rand01{background:none; padding:0; margin:0; border:0 none;}.sh_rand01 .sh_sourceCode{background-color:#fff;color:#121b28;font-weight:normal;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_keyword{color:#0a7f6d;font-weight:bold;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_type{color:#c42638;font-weight:bold;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_string{color:#2b83ba;font-weight:normal;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_regexp{color:#2b83ba;font-weight:normal;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_specialchar{color:#a764cb;font-weight:normal;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_comment{color:#ababab;font-weight:normal;font-style:italic;}.sh_rand01 .sh_sourceCode .sh_number{color:#0da344;font-weight:normal;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_preproc{color:#620ac6;font-weight:normal;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_symbol{color:#0000de;font-weight:normal;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_function{color:#000;font-weight:bold;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_cbracket{color:#0000de;font-weight:normal;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_url{color:#2b83ba;font-weight:normal;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_date{color:#0a7f6d;font-weight:bold;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_time{color:#0a7f6d;font-weight:bold;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_file{color:#0a7f6d;font-weight:bold;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_ip{color:#2b83ba;font-weight:normal;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_name{color:#2b83ba;font-weight:normal;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_variable{color:#e12f76;font-weight:bold;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_oldfile{color:#a764cb;font-weight:normal;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_newfile{color:#2b83ba;font-weight:normal;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_difflines{color:#0a7f6d;font-weight:bold;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_selector{color:#e12f76;font-weight:bold;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_property{color:#0a7f6d;font-weight:bold;font-style:normal;}.sh_rand01 .sh_sourceCode .sh_value{color:#2b83ba;font-weight:normal;font-style:normal;}
.sh_the{background:none; padding:0; margin:0; border:0 none;}.sh_the .sh_sourceCode{background-color:#fff;color:#000;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_keyword{color:#00f;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_type{color:#808;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_string{color:#008;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_regexp{color:#008;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_specialchar{color:#000;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_comment{color:#0f0;font-weight:normal;font-style:italic;}.sh_the .sh_sourceCode .sh_number{color:#f00;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_preproc{color:#f00;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_function{color:#000;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_url{color:#008;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_date{color:#00f;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_time{color:#00f;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_file{color:#00f;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_ip{color:#008;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_name{color:#008;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_variable{color:#00f;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_oldfile{color:#000;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_newfile{color:#008;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_difflines{color:#00f;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_selector{color:#00f;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_property{color:#00f;font-weight:normal;font-style:normal;}.sh_the .sh_sourceCode .sh_value{color:#008;font-weight:normal;font-style:normal;}
.sh_typical{background:none; padding:0; margin:0; border:0 none;}.sh_typical .sh_sourceCode{background-color:#fff;color:#000;font-weight:normal;font-style:normal;}.sh_typical .sh_sourceCode .sh_keyword{color:#00f;font-weight:bold;font-style:normal;}.sh_typical .sh_sourceCode .sh_type{color:#00f;font-weight:normal;font-style:normal;}.sh_typical .sh_sourceCode .sh_string{color:#f00;font-weight:normal;font-style:normal;}.sh_typical .sh_sourceCode .sh_regexp{color:#f00;font-weight:normal;font-style:normal;}.sh_typical .sh_sourceCode .sh_specialchar{color:#C42DA8;font-weight:normal;font-style:normal;}.sh_typical .sh_sourceCode .sh_comment{color:#666;font-weight:normal;font-style:italic;}.sh_typical .sh_sourceCode .sh_number{color:#a900a9;font-weight:normal;font-style:normal;}.sh_typical .sh_sourceCode .sh_preproc{color:#00b800;font-weight:normal;font-style:normal;}.sh_typical .sh_sourceCode .sh_symbol{color:#f00;font-weight:normal;font-style:normal;}.sh_typical .sh_sourceCode .sh_function{color:#000;font-weight:bold;font-style:normal;}.sh_typical .sh_sourceCode .sh_cbracket{color:#f00;font-weight:normal;font-style:normal;}.sh_typical .sh_sourceCode .sh_url{color:#f00;font-weight:normal;font-style:normal;}.sh_typical .sh_sourceCode .sh_date{color:#00f;font-weight:bold;font-style:normal;}.sh_typical .sh_sourceCode .sh_time{color:#00f;font-weight:bold;font-style:normal;}.sh_typical .sh_sourceCode .sh_file{color:#00f;font-weight:bold;font-style:normal;}.sh_typical .sh_sourceCode .sh_ip{color:#f00;font-weight:normal;font-style:normal;}.sh_typical .sh_sourceCode .sh_name{color:#f00;font-weight:normal;font-style:normal;}.sh_typical .sh_sourceCode .sh_variable{color:#ec7f15;font-weight:normal;font-style:normal;}.sh_typical .sh_sourceCode .sh_oldfile{color:#C42DA8;font-weight:normal;font-style:normal;}.sh_typical .sh_sourceCode .sh_newfile{color:#f00;font-weight:normal;font-style:normal;}.sh_typical .sh_sourceCode .sh_difflines{color:#00f;font-weight:bold;font-style:normal;}.sh_typical .sh_sourceCode .sh_selector{color:#ec7f15;font-weight:normal;font-style:normal;}.sh_typical .sh_sourceCode .sh_property{color:#00f;font-weight:bold;font-style:normal;}.sh_typical .sh_sourceCode .sh_value{color:#f00;font-weight:normal;font-style:normal;}
.sh_vampire{background:none; padding:0; margin:0; border:0 none;}.sh_vampire .sh_sourceCode{background-color:#000;color:#f00;font-weight:normal;font-style:normal;}.sh_vampire .sh_sourceCode .sh_keyword{color:#fff;font-weight:bold;font-style:normal;}.sh_vampire .sh_sourceCode .sh_type{color:#F35E1E;font-weight:bold;font-style:normal;}.sh_vampire .sh_sourceCode .sh_string{color:#b0f;font-weight:normal;font-style:normal;}.sh_vampire .sh_sourceCode .sh_regexp{color:#b0f;font-weight:normal;font-style:normal;}.sh_vampire .sh_sourceCode .sh_specialchar{color:#fff;font-weight:normal;font-style:normal;}.sh_vampire .sh_sourceCode .sh_comment{color:#ababab;font-weight:normal;font-style:italic;}.sh_vampire .sh_sourceCode .sh_number{color:#b0f;font-weight:normal;font-style:normal;}.sh_vampire .sh_sourceCode .sh_preproc{color:#ababab;font-weight:normal;font-style:normal;}.sh_vampire .sh_sourceCode .sh_symbol{color:#F3E651;font-weight:normal;font-style:normal;}.sh_vampire .sh_sourceCode .sh_function{color:#7bc710;font-weight:normal;font-style:normal;}.sh_vampire .sh_sourceCode .sh_cbracket{color:#F3E651;font-weight:normal;font-style:normal;}.sh_vampire .sh_sourceCode .sh_url{color:#b0f;font-weight:normal;font-style:normal;}.sh_vampire .sh_sourceCode .sh_date{color:#fff;font-weight:bold;font-style:normal;}.sh_vampire .sh_sourceCode .sh_time{color:#fff;font-weight:bold;font-style:normal;}.sh_vampire .sh_sourceCode .sh_file{color:#fff;font-weight:bold;font-style:normal;}.sh_vampire .sh_sourceCode .sh_ip{color:#b0f;font-weight:normal;font-style:normal;}.sh_vampire .sh_sourceCode .sh_name{color:#b0f;font-weight:normal;font-style:normal;}.sh_vampire .sh_sourceCode .sh_variable{color:#fff;font-weight:normal;font-style:normal;}.sh_vampire .sh_sourceCode .sh_oldfile{color:#fff;font-weight:normal;font-style:normal;}.sh_vampire .sh_sourceCode .sh_newfile{color:#b0f;font-weight:normal;font-style:normal;}.sh_vampire .sh_sourceCode .sh_difflines{color:#fff;font-weight:bold;font-style:normal;}.sh_vampire .sh_sourceCode .sh_selector{color:#fff;font-weight:normal;font-style:normal;}.sh_vampire .sh_sourceCode .sh_property{color:#fff;font-weight:bold;font-style:normal;}.sh_vampire .sh_sourceCode .sh_value{color:#b0f;font-weight:normal;font-style:normal;}
.sh_vim-dark{background:none; padding:0; margin:0; border:0 none;}.sh_vim-dark .sh_sourceCode{background-color:#000;color:#fff;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_keyword{color:#B26818;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_type{color:#0f0;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_string{color:#f00;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_regexp{color:#f00;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_specialchar{color:#f2f;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_comment{color:#00f;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_number{color:#f00;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_preproc{color:#f2f;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_function{color:#fff;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_url{color:#f00;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_date{color:#B26818;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_time{color:#B26818;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_file{color:#B26818;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_ip{color:#f00;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_name{color:#f00;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_variable{color:#B26818;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_oldfile{color:#f2f;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_newfile{color:#f00;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_difflines{color:#B26818;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_selector{color:#B26818;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_property{color:#B26818;font-weight:normal;font-style:normal;}.sh_vim-dark .sh_sourceCode .sh_value{color:#f00;font-weight:normal;font-style:normal;}
.sh_vim{background:none; padding:0; margin:0; border:0 none;}.sh_vim .sh_sourceCode{background-color:#fff;color:#000;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_keyword{color:#B26818;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_type{color:#0f0;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_string{color:#f00;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_regexp{color:#f00;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_specialchar{color:#f2f;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_comment{color:#00f;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_number{color:#f00;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_preproc{color:#f2f;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_function{color:#000;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_url{color:#f00;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_date{color:#B26818;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_time{color:#B26818;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_file{color:#B26818;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_ip{color:#f00;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_name{color:#f00;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_variable{color:#B26818;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_oldfile{color:#f2f;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_newfile{color:#f00;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_difflines{color:#B26818;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_selector{color:#B26818;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_property{color:#B26818;font-weight:normal;font-style:normal;}.sh_vim .sh_sourceCode .sh_value{color:#f00;font-weight:normal;font-style:normal;}
.sh_whatis{background:none; padding:0; margin:0; border:0 none;}.sh_whatis .sh_sourceCode{background-color:#000;color:#0f0;font-weight:normal;font-style:normal;}.sh_whatis .sh_sourceCode .sh_keyword{color:#fa5a03;font-weight:bold;font-style:normal;}.sh_whatis .sh_sourceCode .sh_type{color:#fff;font-weight:bold;font-style:normal;}.sh_whatis .sh_sourceCode .sh_string{color:#fb0;font-weight:normal;font-style:normal;}.sh_whatis .sh_sourceCode .sh_regexp{color:#fb0;font-weight:normal;font-style:normal;}.sh_whatis .sh_sourceCode .sh_specialchar{color:#fb0;font-weight:normal;font-style:normal;}.sh_whatis .sh_sourceCode .sh_comment{color:#f00;font-weight:normal;font-style:normal;}.sh_whatis .sh_sourceCode .sh_number{color:#ff0;font-weight:normal;font-style:normal;}.sh_whatis .sh_sourceCode .sh_preproc{color:#bfbfbf;font-weight:normal;font-style:normal;}.sh_whatis .sh_sourceCode .sh_symbol{color:#0ff;font-weight:normal;font-style:normal;}.sh_whatis .sh_sourceCode .sh_function{color:#e721d3;font-weight:normal;font-style:normal;}.sh_whatis .sh_sourceCode .sh_cbracket{color:#0ff;font-weight:normal;font-style:normal;}.sh_whatis .sh_sourceCode .sh_url{color:#fb0;font-weight:normal;font-style:normal;}.sh_whatis .sh_sourceCode .sh_date{color:#fa5a03;font-weight:bold;font-style:normal;}.sh_whatis .sh_sourceCode .sh_time{color:#fa5a03;font-weight:bold;font-style:normal;}.sh_whatis .sh_sourceCode .sh_file{color:#fa5a03;font-weight:bold;font-style:normal;}.sh_whatis .sh_sourceCode .sh_ip{color:#fb0;font-weight:normal;font-style:normal;}.sh_whatis .sh_sourceCode .sh_name{color:#fb0;font-weight:normal;font-style:normal;}.sh_whatis .sh_sourceCode .sh_variable{color:#efe219;font-weight:bold;font-style:normal;}.sh_whatis .sh_sourceCode .sh_oldfile{color:#fb0;font-weight:normal;font-style:normal;}.sh_whatis .sh_sourceCode .sh_newfile{color:#fb0;font-weight:normal;font-style:normal;}.sh_whatis .sh_sourceCode .sh_difflines{color:#fa5a03;font-weight:bold;font-style:normal;}.sh_whatis .sh_sourceCode .sh_selector{color:#efe219;font-weight:bold;font-style:normal;}.sh_whatis .sh_sourceCode .sh_property{color:#fa5a03;font-weight:bold;font-style:normal;}.sh_whatis .sh_sourceCode .sh_value{color:#fb0;font-weight:normal;font-style:normal;}
.sh_whitengrey{background:none; padding:0; margin:0; border:0 none;}.sh_whitengrey .sh_sourceCode{background-color:#fff;color:#696969;font-weight:normal;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_keyword{color:#696969;font-weight:bold;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_type{color:#696969;font-weight:normal;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_string{color:#080;font-weight:normal;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_regexp{color:#080;font-weight:normal;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_specialchar{color:#080;font-weight:normal;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_comment{color:#1326a2;font-weight:normal;font-style:italic;}.sh_whitengrey .sh_sourceCode .sh_number{color:#b0f;font-weight:normal;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_preproc{color:#470000;font-weight:normal;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_function{color:#000;font-weight:normal;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_url{color:#080;font-weight:normal;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_date{color:#696969;font-weight:bold;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_time{color:#696969;font-weight:bold;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_file{color:#696969;font-weight:bold;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_ip{color:#080;font-weight:normal;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_name{color:#080;font-weight:normal;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_variable{color:#696969;font-weight:bold;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_oldfile{color:#080;font-weight:normal;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_newfile{color:#080;font-weight:normal;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_difflines{color:#696969;font-weight:bold;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_selector{color:#696969;font-weight:bold;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_property{color:#696969;font-weight:bold;font-style:normal;}.sh_whitengrey .sh_sourceCode .sh_value{color:#080;font-weight:normal;font-style:normal;}
.sh_zellner{background:none; padding:0; margin:0; border:0 none;}.sh_zellner .sh_sourceCode{background-color:#fff;color:#000;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_keyword{color:#a52a2a;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_type{color:#00f;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_string{color:#f0f;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_regexp{color:#f0f;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_specialchar{color:#f0f;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_comment{color:#f00;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_number{color:#f0f;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_preproc{color:#a020f0;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_function{color:#000;font-weight:bold;font-style:normal;}.sh_zellner .sh_sourceCode .sh_url{color:#f0f;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_date{color:#a52a2a;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_time{color:#a52a2a;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_file{color:#a52a2a;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_ip{color:#f0f;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_name{color:#f0f;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_variable{color:#225f2d;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_oldfile{color:#f0f;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_newfile{color:#f0f;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_difflines{color:#a52a2a;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_selector{color:#225f2d;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_property{color:#a52a2a;font-weight:normal;font-style:normal;}.sh_zellner .sh_sourceCode .sh_value{color:#f0f;font-weight:normal;font-style:normal;}
.snippet-wrap {position:relative;}
*:first-child+html .snippet-wrap {display:inline-block;}
* html .snippet-wrap {display:inline-block;}
.snippet-reveal{text-decoration:underline;}
.snippet-wrap .snippet-menu, .snippet-wrap .snippet-hide {position:absolute; top:10px; right:15px; font-size:.9em;z-index:1;background-color:transparent;}
.snippet-wrap .snippet-hide {top:auto; bottom:10px;}
*:first-child+html .snippet-wrap .snippet-hide {bottom:25px;}
* html .snippet-wrap .snippet-hide {bottom:25px;}
.snippet-wrap .snippet-menu pre, .snippet-wrap .snippet-hide pre {background-color:transparent; margin:0; padding:0;}
.snippet-wrap .snippet-menu a, .snippet-wrap .snippet-hide a {padding:0 5px; text-decoration:underline;}
.snippet-wrap pre.sh_sourceCode{padding:1em;line-height:1.8em;overflow:auto;position:relative;
-moz-border-radius:15px;
-webkit-border-radius:15px;
border-radius:15px;
box-shadow: 2px 2px 5px #000;
-moz-box-shadow: 2px 2px 5px #000;
-webkit-box-shadow: 2px 2px 5px #000;}
.snippet-wrap pre.snippet-textonly {padding:2em;}
*:first-child+html .snippet-wrap pre.snippet-formatted {padding:2em 1em;}
* html .snippet-wrap pre.snippet-formatted {padding:2em 1em;}
.snippet-reveal pre.sh_sourceCode {padding:.5em 1em; text-align:right;}
.snippet-wrap .snippet-num li{padding-left:1.5em;}
.snippet-wrap .snippet-no-num{list-style:none; padding:.6em 1em; margin:0;}
.snippet-wrap .snippet-no-num li {list-style:none; padding-left:0;}
.snippet-wrap .snippet-num {margin:1em 0 1em 1em; padding-left:3em;}
.snippet-wrap .snippet-num li {list-style:decimal-leading-zero outside none;}
.snippet-wrap .snippet-no-num li.box {padding:0 6px; margin-left:-6px;}
.snippet-wrap .snippet-num li.box {border:1px solid; list-style-position:inside; margin-left:-3em; padding-left:6px;}
*:first-child+html .snippet-wrap .snippet-num li.box {margin-left:-2.4em;}
* html .snippet-wrap .snippet-num li.box {margin-left:-2.4em;}
.snippet-wrap li.box-top {border-width:1px 1px 0 !important;}
.snippet-wrap li.box-bot {border-width:0 1px 1px !important;}
.snippet-wrap li.box-mid {border-width:0 1px !important;}
.snippet-wrap .snippet-num li .box-sp {width:18px; display:inline-block;}
*:first-child+html .snippet-wrap .snippet-num li .box-sp {width:27px;}
* html .snippet-wrap .snippet-num li .box-sp {width:27px;}
.snippet-wrap .snippet-no-num li.box {border:1px solid;}
.snippet-wrap .snippet-no-num li .box-sp {display:none;}
+7890
View File
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,3 @@
// Place all the styles related to the password_resets controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
+1480
View File
File diff suppressed because one or more lines are too long
+84
View File
@@ -0,0 +1,84 @@
.bootstrap-timepicker.dropdown-menu {
border-radius: 4px 4px 4px 4px;
display: none;
left: 0;
margin-top: 1px;
padding: 4px;
color: #fff;
top: 0;
min-width: 10px;
z-index: 99999;
}
.bootstrap-timepicker.dropdown-menu.open {
display: inline-block;
}
.bootstrap-timepicker.dropdown-menu:before {
border-bottom: 7px solid rgba(0, 0, 0, 0.2);
border-left: 7px solid transparent;
border-right: 7px solid transparent;
content: "";
left: 6px;
position: absolute;
top: -7px;
}
.bootstrap-timepicker.dropdown-menu:after {
border-bottom: 6px solid #000;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
content: "";
left: 7px;
position: absolute;
top: -6px;
}
.bootstrap-timepicker.modal {
margin-left: -100px;
margin-top: 0;
top: 30%;
width: 200px;
left: 50% !important;
}
.bootstrap-timepicker.modal .modal-content {
padding: 0;
}
.bootstrap-timepicker table {
margin: 0;
width: 100%;
}
.bootstrap-timepicker table td {
height: 30px;
margin: 0;
padding: 2px;
text-align: center;
}
.bootstrap-timepicker table td span {
width: 100%;
}
.bootstrap-timepicker table td a {
border: 1px solid transparent;
display: inline-block;
margin: 0;
outline: 0 none;
padding: 8px 0;
width: 3em;
}
.bootstrap-timepicker table td a:hover {
background-color: #EEEEEE;
border-color: #DDDDDD;
border-radius: 4px 4px 4px 4px;
}
.bootstrap-timepicker table td a i {
margin-top: 2px;
}
.bootstrap-timepicker table td input {
margin: 0;
text-align: center;
width: 25px;
}
.bootstrap-timepicker-component .add-on {
cursor: pointer;
}
.bootstrap-timepicker-component .add-on i {
display: block;
height: 16px;
width: 16px;
}
+78
View File
@@ -0,0 +1,78 @@
# frozen_string_literal: true
class AdminController < ApplicationController
before_action :administrative, if: :admin_param, except: [:get_user]
skip_before_action :has_info
def dashboard
end
def analytics
if params[:field].nil?
fields = "*"
else
fields = custom_fields.join(",")
end
if params[:ip]
@analytics = Analytics.hits_by_ip(params[:ip], fields)
else
@analytics = Analytics.all
end
end
def get_all_users
@users = User.all
end
def get_user
@user = User.find_by_id(params[:admin_id].to_s)
arr = ["true", "false"]
@admin_select = @user.admin ? arr : arr.reverse
end
def update_user
user = User.find_by_id(params[:admin_id])
if user
# VULNERABILITY: Using params[:user] directly without strong parameters
# This allows mass assignment of any user attribute including 'admin'
# See wiki: Extras:-Mass-Assignment-Admin-Role.md
user_params = params[:user].to_unsafe_h if params[:user].respond_to?(:to_unsafe_h)
user_params ||= params[:user]
# Filter out password fields if blank to avoid validation errors
filtered_params = user_params.reject { |k, v| (k == "password" || k == "password_confirmation") && v.blank? }
user.update(filtered_params)
user.save!
flash[:success] = "User updated successfully"
redirect_to admin_get_all_users_path(current_user.id)
else
flash[:error] = "User not found"
redirect_to admin_get_all_users_path(current_user.id)
end
end
def delete_user
user = User.find_by(id: params[:admin_id])
if user && !(current_user.id == user.id)
# Call destroy here so that all association records w/ id are destroyed as well
# Example user.retirement records would be destroyed
user.destroy
flash[:success] = "User deleted successfully"
else
flash[:error] = "Cannot delete this user"
end
redirect_to admin_get_all_users_path(current_user.id)
end
private
def custom_fields
params.require(:field).keys
end
helper_method :custom_fields
def admin_param
params[:admin_id] != "1"
end
end
@@ -0,0 +1,33 @@
# frozen_string_literal: true
class Api::V1::MobileController < ApplicationController
skip_before_action :authenticated
before_action :mobile_request?
respond_to :json
def show
if params[:class]
model = params[:class].classify.constantize
respond_with model.find(params[:id]).to_json
end
end
def index
if params[:class]
model = params[:class].classify.constantize
respond_with model.all.to_json
else
respond_with nil.to_json
end
end
private
def mobile_request?
if session[:mobile_param]
session[:mobile_param] == "1"
else
request.user_agent =~ /ios|android/i
end
end
end
@@ -0,0 +1,56 @@
# frozen_string_literal: true
class Api::V1::UsersController < ApplicationController
skip_before_action :authenticated
before_action :valid_api_token
before_action :extrapolate_user
respond_to :json
def index
respond_with @user.admin ? User.all : @user
end
def show
respond_with @user.as_json
end
private
def valid_api_token
authenticate_or_request_with_http_token do |token, options|
# TODO :add some functionality to check if the HTTP Header is valid
if !identify_user(token)
redirect_to root_url
else
true
end
end
end
def identify_user(token = "")
# We've had issues with URL encoding, etc. causing issues so just to be safe
# we will go ahead and unescape the user's token
unescape_token(token)
@clean_token =~ /(.*?)-(.*)/
id = $1
hash = $2
check_hash(id, hash)
end
def check_hash(id, hash)
digest = OpenSSL::Digest::SHA1.hexdigest("#{ACCESS_TOKEN_SALT}:#{id}")
hash == digest
end
# We had some issues with the token and url encoding...
# this is an attempt to normalize the data.
def unescape_token(token = "")
@clean_token = CGI::unescape(token)
end
# Added a method to make it easy to figure out who the user is.
def extrapolate_user
@user = User.find_by_id(@clean_token.split("-").first)
end
end
+61
View File
@@ -0,0 +1,61 @@
# frozen_string_literal: true
class ApplicationController < ActionController::Base
before_action :authenticated, :has_info, :create_analytic, :mailer_options
helper_method :current_user, :is_admin?, :sanitize_font
# Our security guy keep talking about sea-surfing, cool story bro.
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
#protect_from_forgery with: :exception
private
def mailer_options
ActionMailer::Base.default_url_options[:protocol] = request.protocol
ActionMailer::Base.default_url_options[:host] = request.host_with_port
end
def current_user
@current_user ||= (
User.find_by(auth_token: cookies[:auth_token].to_s) ||
User.find_by(id: session[:user_id].to_s)
)
end
def authenticated
path = request.fullpath.present? ? root_url(url: request.fullpath) : root_url
redirect_to path and reset_session if !current_user
end
def is_admin?
current_user.admin if current_user
end
def administrative
if !is_admin?
redirect_to root_url
end
end
def has_info
redirect = false
if current_user
begin
if !(current_user.retirement || current_user.paid_time_off || current_user.paid_time_off.schedule || current_user.work_info || current_user.performance)
redirect = true
end
rescue
redirect = true
end
end
redirect_to home_dashboard_index_path if redirect
end
def create_analytic
Analytics.create({ ip_address: request.remote_ip, referrer: request.referrer, user_agent: request.user_agent})
end
def sanitize_font(css)
css
end
end
@@ -0,0 +1,80 @@
# frozen_string_literal: true
class BenefitFormsController < ApplicationController
def index
@benefits = Benefits.new
load_uploaded_files
end
def download
begin
path = params[:name]
file = params[:type].constantize.new(path)
send_file file, disposition: "attachment"
rescue
redirect_to user_benefit_forms_path(user_id: current_user.id)
end
end
def redirect_to_benefit_forms
flash[:info] = "Please use the upload form below to upload files"
redirect_to user_benefit_forms_path(user_id: current_user.id)
end
def upload
file = params[:benefits][:upload]
if file.nil?
flash.now[:error] = "Please select a file to upload"
@benefits = Benefits.new
load_uploaded_files
render :index
return
end
# Validate file type
allowed_extensions = %w[.pdf .doc .docx .jpg .jpeg .png]
file_extension = File.extname(file.original_filename).downcase
unless allowed_extensions.include?(file_extension)
flash.now[:error] = "Invalid file type. Accepted formats: PDF, DOC, DOCX, JPG, PNG. You uploaded: #{file_extension}"
@benefits = Benefits.new
load_uploaded_files
render :index
return
end
# Validate file size (10MB max)
max_size = 10.megabytes
if file.size > max_size
flash.now[:error] = "File too large. Maximum size: 10MB. Your file: #{(file.size / 1.megabyte.to_f).round(2)}MB"
@benefits = Benefits.new
load_uploaded_files
render :index
return
end
begin
Benefits.save(file, params[:benefits][:backup])
flash[:success] = "File '#{file.original_filename}' uploaded successfully!"
rescue => e
flash[:error] = "Failed to upload file: #{e.message}"
end
redirect_to user_benefit_forms_path(user_id: current_user.id)
end
private
def load_uploaded_files
data_path = Rails.root.join("public", "data")
@uploaded_files = Dir.glob("#{data_path}/*").reject { |f| File.directory?(f) || File.basename(f) == '.gitkeep' }.map do |file|
{
name: File.basename(file),
size: File.size(file),
modified: File.mtime(file)
}
end.sort_by { |f| f[:modified] }.reverse
end
end
View File
+25
View File
@@ -0,0 +1,25 @@
# frozen_string_literal: true
class DashboardController < ApplicationController
skip_before_action :has_info
layout false, only: [:change_graph]
def home
@user = current_user
# See if the user has a font preference
if params[:font]
cookies[:font] = params[:font]
end
end
def change_graph
self.try(params[:graph])
if params[:graph] == "bar_graph"
render "dashboard/bar_graph"
else
@user = current_user
render "dashboard/pie_charts"
end
end
end
+44
View File
@@ -0,0 +1,44 @@
# frozen_string_literal: true
class MessagesController < ApplicationController
def index
@messages = current_user.messages
@message = Message.new
sleep(3)
end
def show
@message = Message.where(id: params[:id]).first
end
def destroy
message = Message.where(id: params[:id]).first
if message.destroy
flash[:success] = "Your message has been deleted."
redirect_to user_messages_path(user_id: current_user.id)
else
flash[:error] = "Could not delete message."
end
end
def create
if Message.create(message_params)
respond_to do |format|
format.html { redirect_to user_messages_path(user_id: current_user.id) }
format.json { render json: {msg: "success"} }
end
else
respond_to do |format|
format.html { redirect_to user_messages_path }
format.json { render json: {msg: "failure"} }
end
end
end
private
def message_params
params.require(:message).permit(:creator_id, :message, :read, :receiver_id)
end
end
@@ -0,0 +1,8 @@
# frozen_string_literal: true
class PaidTimeOffController < ApplicationController
def index
@pto = current_user.paid_time_off
@schedule = Schedule.new
end
end
@@ -0,0 +1,63 @@
# frozen_string_literal: true
class PasswordResetsController < ApplicationController
skip_before_action :authenticated
def reset_password
user = Marshal.load(Base64.decode64(params[:user])) unless params[:user].nil?
if user && params[:password] && params[:confirm_password] && params[:password] == params[:confirm_password]
user.password = params[:password]
user.save!
flash[:success] = "Your password has been reset please login"
redirect_to :login
else
flash[:error] = "Error resetting your password. Please try again."
redirect_to :login
end
end
def confirm_token
if !params[:token].nil? && is_valid?(params[:token])
flash[:success] = "Password reset token confirmed! Please create a new password."
render "password_resets/reset_password"
else
flash[:error] = "Invalid password reset token. Please try again."
redirect_to :login
end
end
def send_forgot_password
@user = User.find_by_email(params[:email]) unless params[:email].nil?
if @user && password_reset_mailer(@user)
flash[:success] = "Password reset email sent to #{params[:email]}"
redirect_to :login
else
flash[:error] = "There was an issue sending password reset email to #{params[:email]}".html_safe unless params[:email].nil?
end
end
private
def password_reset_mailer(user)
token = generate_token(user.id, user.email)
UserMailer.forgot_password(user.email, token).deliver
end
def generate_token(id, email)
hash = Digest::MD5.hexdigest(email)
"#{id}-#{hash}"
end
def is_valid?(token)
if token =~ /(?<user>\d+)-(?<email_hash>[A-Z0-9]{32})/i
# Fetch the user by their id, and hash their email address
@user = User.find_by(id: $~[:user])
email = Digest::MD5.hexdigest(@user.email)
# Compare and validate our hashes
return true if email == $~[:email_hash]
end
end
end
+44
View File
@@ -0,0 +1,44 @@
# frozen_string_literal: true
class PayController < ApplicationController
def index
end
def update_dd_info
msg = false
pay = Pay.new(
bank_account_num: params[:bank_account_num],
bank_routing_num: params[:bank_routing_num],
percent_of_deposit: params[:dd_percent],
user_id: current_user.id
)
msg = true if pay.save!
respond_to do |format|
format.json { render json: {msg: msg } }
end
end
def show
respond_to do |format|
format.json { render json: {user: current_user.pay.as_json} }
end
end
def destroy
pay = Pay.find_by_id(params[:id])
if pay.present? and pay.destroy
flash[:success] = "Successfully Deleted Entry"
else
flash[:error] = "Unable to process that request at this time"
end
redirect_to user_pay_index_path
end
def decrypted_bank_acct_num
decrypted = Encryption.decrypt_sensitive_value(params[:value_to_decrypt])
respond_to do |format|
format.json { render json: {account_num: decrypted || "No Data" } }
end
end
end
@@ -0,0 +1,7 @@
# frozen_string_literal: true
class PerformanceController < ApplicationController
def index
@perf = current_user.performance
end
end
+7
View File
@@ -0,0 +1,7 @@
# frozen_string_literal: true
class RetirementController < ApplicationController
def index
@info = current_user.retirement
end
end
+64
View File
@@ -0,0 +1,64 @@
# frozen_string_literal: true
class ScheduleController < ApplicationController
def create
message = false
if params[:schedule][:event_type] == "pto"
sched = Schedule.new(schedule_params)
sched.date_begin, sched.date_end = format_schedule_date(params[:date_range1])
sched.user_id = current_user.id
a = sched.date_end
if sched.save
message = true
end
end
respond_to do |format|
format.json { render json: {msg: message ? "success" : "failure" } }
end
end
def get_pto_schedule
begin
schedules = current_user.paid_time_off.schedule
jfs = []
schedules.each do |s|
hash = Hash.new
hash[:id] = s[:id]
hash[:title] = s[:event_name]
hash[:start] = s[:date_begin]
hash[:end] = s[:date_end]
jfs << hash
end
rescue
end
respond_to do |format|
format.json { render json: jfs.to_json }
end
end
private
# Returns a two part array consisting of dates
# First value is the begin date and the second is the end date
def format_schedule_date(date_array)
begin
vals = []
return vals if date_array.empty?
date_array.split("-").each do |s|
date = Date.strptime(s.strip, "%m/%d/%Y")
vals <<(date)
end
rescue ArgumentError
return []
end
return vals
end
private
def schedule_params
params.require(:schedule).permit(:date_begin, :date_end, :event_desc, :event_name, :event_type)
end
end

Some files were not shown because too many files have changed in this diff Show More