diff --git a/app/main/controller/api/github.php b/app/main/controller/api/github.php
index a7992886..e9078788 100644
--- a/app/main/controller/api/github.php
+++ b/app/main/controller/api/github.php
@@ -62,11 +62,18 @@ class GitHub extends Controller\Controller {
$md = \Markdown::instance();
foreach($releasesData as &$releaseData){
if(isset($releaseData->body)){
+ $body = $releaseData->body;
+
+ // remove "update information" from release text
+ // -> keep everything until first "***" -> horizontal line
+ if( ($pos = strpos($body, '***')) !== false){
+ $body = substr($body, 0, $pos);
+ }
// convert list style
- $body = str_replace(' - ', '* ', $releaseData->body );
+ $body = str_replace(' - ', '* ', $body );
- $releaseData->body = $md->convert( $body );
+ $releaseData->body = $md->convert( trim($body) );
}
}
$f3->set($cacheKey, $releasesData, $ttl);
diff --git a/app/main/controller/api/user.php b/app/main/controller/api/user.php
index 07764ecb..552d078d 100644
--- a/app/main/controller/api/user.php
+++ b/app/main/controller/api/user.php
@@ -26,8 +26,6 @@ class User extends Controller\Controller{
// character specific session keys
const SESSION_KEY_CHARACTERS = 'SESSION.CHARACTERS';
- //const SESSION_KEY_CHARACTERS_PREV_SYSTEM_ID = 'SESSION.CHARACTERS.PREV_SYSTEM_ID';
- const SESSION_KEY_CHARACTERS_PREV_SYSTEM_ID = 'SESSION.TEST.PREV_SYSTEM_ID';
// temp login character ID (during HTTP redirects on login)
const SESSION_KEY_TEMP_CHARACTER_ID = 'SESSION.TEMP_CHARACTER_ID';
diff --git a/public/js/v1.1.5/app.js b/public/js/v1.1.5/app.js
index 9864489d..9d17f192 100644
--- a/public/js/v1.1.5/app.js
+++ b/public/js/v1.1.5/app.js
@@ -1,168 +1,2 @@
-// main script path
-var mainScriptPath = document.body.getAttribute('data-script');
-
-// js baseURL. Depends on the environment.
-// e.g. use raw files (develop) or build files (production)
-var jsBaseUrl = document.body.getAttribute('data-js-path');
-
-// requireJs configuration
-requirejs.config({
- baseUrl: 'js', // path for baseUrl - dynamically set !below! ("build_js" | "js")
-
- paths: {
- layout: 'layout',
- config: 'app/config', // path for "configuration" files dir
- dialog: 'app/ui/dialog', // path for "dialog" files dir
- templates: '../../templates', // template dir
- img: '../../img', // images dir
-
- // main views
- login: './app/login', // initial start "login page" view
- mappage: './app/mappage', // initial start "map page" view
- setup: './app/setup', // initial start "setup page" view
-
- jquery: 'lib/jquery-3.0.0.min', // v3.0.0 jQuery
- bootstrap: 'lib/bootstrap.min', // v3.3.0 Bootstrap js code - http://getbootstrap.com/javascript
- text: 'lib/requirejs/text', // v2.0.12 A RequireJS/AMD loader plugin for loading text resources.
- mustache: 'lib/mustache.min', // v1.0.0 Javascript template engine - http://mustache.github.io
- localForage: 'lib/localforage.min', // v1.4.2 localStorage library - https://mozilla.github.io/localForage
- velocity: 'lib/velocity.min', // v1.2.2 animation engine - http://julian.com/research/velocity
- velocityUI: 'lib/velocity.ui.min', // v5.0.4 plugin for velocity - http://julian.com/research/velocity/#uiPack
- slidebars: 'lib/slidebars', // v0.10 Slidebars - side menu plugin http://plugins.adchsm.me/slidebars
- jsPlumb: 'lib/dom.jsPlumb-1.7.6', // v1.7.6 jsPlumb (Vanilla)- main map draw plugin https://jsplumbtoolkit.com
- farahey: 'lib/farahey-0.5', // v0.5 jsPlumb "magnetizing" extension - https://github.com/jsplumb/farahey
- customScrollbar: 'lib/jquery.mCustomScrollbar.min', // v3.1.3 Custom scroll bars - http://manos.malihu.gr
- mousewheel: 'lib/jquery.mousewheel.min', // v3.1.13 Mousewheel - https://github.com/jquery/jquery-mousewheel
- xEditable: 'lib/bootstrap-editable.min', // v1.5.1 X-editable - in placed editing
- morris: 'lib/morris.min', // v0.5.1 Morris.js - graphs and charts
- raphael: 'lib/raphael-min', // v2.1.2 Raphaël - required for morris (dependency)
- bootbox: 'lib/bootbox.min', // v4.4.0 Bootbox.js - custom dialogs - http://bootboxjs.com
- easyPieChart: 'lib/jquery.easypiechart.min', // v2.1.6 Easy Pie Chart - HTML 5 pie charts - http://rendro.github.io/easy-pie-chart
- dragToSelect: 'lib/jquery.dragToSelect', // v1.1 Drag to Select - http://andreaslagerkvist.com/jquery/drag-to-select
- hoverIntent: 'lib/jquery.hoverIntent.minified', // v1.8.0 Hover intention - http://cherne.net/brian/resources/jquery.hoverIntent.html
- fullScreen: 'lib/jquery.fullscreen.min', // v0.5.0 Full screen mode - https://github.com/private-face/jquery.fullscreen
- select2: 'lib/select2.min', // v4.0.3 Drop Down customization - https://select2.github.io
- validator: 'lib/validator.min', // v0.10.1 Validator for Bootstrap 3 - https://github.com/1000hz/bootstrap-validator
- lazylinepainter: 'lib/jquery.lazylinepainter-1.5.1.min', // v1.5.1 SVG line animation plugin - http://lazylinepainter.info
- blueImpGallery: 'lib/blueimp-gallery', // v2.21.3 Image Gallery - https://github.com/blueimp/Gallery
- blueImpGalleryHelper: 'lib/blueimp-helper', // helper function for Blue Imp Gallery
- blueImpGalleryBootstrap: 'lib/bootstrap-image-gallery', // v3.4.2 Bootstrap extension for Blue Imp Gallery - https://blueimp.github.io/Bootstrap-Image-Gallery
- bootstrapConfirmation: 'lib/bootstrap-confirmation', // v1.0.1 Bootstrap extension for inline confirm dialog - https://github.com/tavicu/bs-confirmation
- bootstrapToggle: 'lib/bootstrap2-toggle.min', // v2.2.0 Bootstrap Toggle (Checkbox) - http://www.bootstraptoggle.com
- lazyload: 'lib/jquery.lazyload.min', // v1.9.5 LazyLoader images - http://www.appelsiini.net/projects/lazyload
-
- // header animation
- easePack: 'lib/EasePack.min',
- tweenLite: 'lib/TweenLite.min',
-
- // datatables // v1.10.12 DataTables - https://datatables.net
- 'datatables.net': 'lib/datatables/DataTables-1.10.12/js/jquery.dataTables.min',
- 'datatables.net-buttons': 'lib/datatables/Buttons-1.2.1/js/dataTables.buttons.min',
- 'datatables.net-buttons-html': 'lib/datatables/Buttons-1.2.1/js/buttons.html5.min',
- 'datatables.net-responsive': 'lib/datatables/Responsive-2.1.0/js/dataTables.responsive.min',
- 'datatables.net-select': 'lib/datatables/Select-1.2.0/js/dataTables.select.min',
-
- // notification plugin
- pnotify: 'lib/pnotify/pnotify', // v3.0.0 PNotify - notification core file - https://sciactive.com/pnotify/
- 'pnotify.buttons': 'lib/pnotify/pnotify.buttons', // PNotify - buttons notification extension
- 'pnotify.confirm': 'lib/pnotify/pnotify.confirm', // PNotify - confirmation notification extension
- 'pnotify.nonblock': 'lib/pnotify/pnotify.nonblock', // PNotify - notification non-block extension (hover effect)
- 'pnotify.desktop': 'lib/pnotify/pnotify.desktop', // PNotify - desktop push notification extension
- 'pnotify.history': 'lib/pnotify/pnotify.history', // PNotify - history push notification history extension
- 'pnotify.callbacks': 'lib/pnotify/pnotify.callbacks', // PNotify - callbacks push notification extension
- 'pnotify.reference': 'lib/pnotify/pnotify.reference' // PNotify - reference push notification extension
- },
- shim: {
- bootstrap: {
- deps: ['jquery']
- },
- farahey: {
- deps: ['jsPlumb']
- },
- velocity: {
- deps: ['jquery']
- },
- velocityUI: {
- deps: ['velocity']
- },
- slidebars: {
- deps: ['jquery']
- },
- customScrollbar: {
- deps: ['jquery', 'mousewheel']
- },
- 'datatables.net': {
- deps: ['jquery']
- },
- 'datatables.net-buttons': {
- deps: ['datatables.net']
- },
- 'datatables.net-buttons-html': {
- deps: ['datatables.net-buttons']
- },
- 'datatables.net-responsive': {
- deps: ['datatables.net']
- },
- 'datatables.net-select': {
- deps: ['datatables.net']
- },
- xEditable: {
- deps: ['bootstrap']
- },
- bootbox: {
- deps: ['jquery', 'bootstrap'],
- exports: 'bootbox'
- },
- morris: {
- deps: ['jquery', 'raphael'],
- exports: 'Morris'
- },
- pnotify: {
- deps : ['jquery']
- },
- easyPieChart: {
- deps : ['jquery']
- },
- dragToSelect: {
- deps : ['jquery']
- },
- hoverIntent: {
- deps : ['jquery']
- },
- fullScreen: {
- deps : ['jquery']
- },
- select2: {
- deps : ['jquery'],
- exports: 'Select2'
- },
- validator: {
- deps : ['jquery', 'bootstrap']
- },
- lazylinepainter: {
- deps : ['jquery', 'bootstrap']
- },
- blueImpGallery: {
- deps : ['jquery']
- },
- bootstrapConfirmation: {
- deps : ['bootstrap']
- },
- bootstrapToggle: {
- deps : ['jquery']
- },
- lazyload: {
- deps : ['jquery']
- }
- }
-});
-
-// switch baseUrl to js "build_js" in production environment
-// this has no effect for js build process!
-// check build.js for build configuration
-require.config({
- baseUrl: jsBaseUrl
-});
-
-// load the main app module -> initial app start
-requirejs( [mainScriptPath] );
+var mainScriptPath=document.body.getAttribute("data-script"),jsBaseUrl=document.body.getAttribute("data-js-path");requirejs.config({baseUrl:"js",paths:{layout:"layout",config:"app/config",dialog:"app/ui/dialog",templates:"../../templates",img:"../../img",login:"./app/login",mappage:"./app/mappage",setup:"./app/setup",jquery:"lib/jquery-3.0.0.min",bootstrap:"lib/bootstrap.min",text:"lib/requirejs/text",mustache:"lib/mustache.min",localForage:"lib/localforage.min",velocity:"lib/velocity.min",velocityUI:"lib/velocity.ui.min",slidebars:"lib/slidebars",jsPlumb:"lib/dom.jsPlumb-1.7.6",farahey:"lib/farahey-0.5",customScrollbar:"lib/jquery.mCustomScrollbar.min",mousewheel:"lib/jquery.mousewheel.min",xEditable:"lib/bootstrap-editable.min",morris:"lib/morris.min",raphael:"lib/raphael-min",bootbox:"lib/bootbox.min",easyPieChart:"lib/jquery.easypiechart.min",dragToSelect:"lib/jquery.dragToSelect",hoverIntent:"lib/jquery.hoverIntent.minified",fullScreen:"lib/jquery.fullscreen.min",select2:"lib/select2.min",validator:"lib/validator.min",lazylinepainter:"lib/jquery.lazylinepainter-1.5.1.min",blueImpGallery:"lib/blueimp-gallery",blueImpGalleryHelper:"lib/blueimp-helper",blueImpGalleryBootstrap:"lib/bootstrap-image-gallery",bootstrapConfirmation:"lib/bootstrap-confirmation",bootstrapToggle:"lib/bootstrap2-toggle.min",lazyload:"lib/jquery.lazyload.min",easePack:"lib/EasePack.min",tweenLite:"lib/TweenLite.min","datatables.net":"lib/datatables/DataTables-1.10.12/js/jquery.dataTables.min","datatables.net-buttons":"lib/datatables/Buttons-1.2.1/js/dataTables.buttons.min","datatables.net-buttons-html":"lib/datatables/Buttons-1.2.1/js/buttons.html5.min","datatables.net-responsive":"lib/datatables/Responsive-2.1.0/js/dataTables.responsive.min","datatables.net-select":"lib/datatables/Select-1.2.0/js/dataTables.select.min",pnotify:"lib/pnotify/pnotify","pnotify.buttons":"lib/pnotify/pnotify.buttons","pnotify.confirm":"lib/pnotify/pnotify.confirm","pnotify.nonblock":"lib/pnotify/pnotify.nonblock","pnotify.desktop":"lib/pnotify/pnotify.desktop","pnotify.history":"lib/pnotify/pnotify.history","pnotify.callbacks":"lib/pnotify/pnotify.callbacks","pnotify.reference":"lib/pnotify/pnotify.reference"},shim:{bootstrap:{deps:["jquery"]},farahey:{deps:["jsPlumb"]},velocity:{deps:["jquery"]},velocityUI:{deps:["velocity"]},slidebars:{deps:["jquery"]},customScrollbar:{deps:["jquery","mousewheel"]},"datatables.net":{deps:["jquery"]},"datatables.net-buttons":{deps:["datatables.net"]},"datatables.net-buttons-html":{deps:["datatables.net-buttons"]},"datatables.net-responsive":{deps:["datatables.net"]},"datatables.net-select":{deps:["datatables.net"]},xEditable:{deps:["bootstrap"]},bootbox:{deps:["jquery","bootstrap"],exports:"bootbox"},morris:{deps:["jquery","raphael"],exports:"Morris"},pnotify:{deps:["jquery"]},easyPieChart:{deps:["jquery"]},dragToSelect:{deps:["jquery"]},hoverIntent:{deps:["jquery"]},fullScreen:{deps:["jquery"]},select2:{deps:["jquery"],exports:"Select2"},validator:{deps:["jquery","bootstrap"]},lazylinepainter:{deps:["jquery","bootstrap"]},blueImpGallery:{deps:["jquery"]},bootstrapConfirmation:{deps:["bootstrap"]},bootstrapToggle:{deps:["jquery"]},lazyload:{deps:["jquery"]}}});require.config({baseUrl:jsBaseUrl});requirejs([mainScriptPath]);
+//# sourceMappingURL=app.js.map
\ No newline at end of file
diff --git a/public/js/v1.1.5/app.js.map b/public/js/v1.1.5/app.js.map
new file mode 100644
index 00000000..7b780f8f
--- /dev/null
+++ b/public/js/v1.1.5/app.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["app.js.src.js"],"names":["mainScriptPath","document","body","getAttribute","jsBaseUrl","requirejs","config","baseUrl","paths","layout","dialog","templates","img","login","mappage","setup","jquery","bootstrap","text","mustache","localForage","velocity","velocityUI","slidebars","jsPlumb","farahey","customScrollbar","mousewheel","xEditable","morris","raphael","bootbox","easyPieChart","dragToSelect","hoverIntent","fullScreen","select2","validator","lazylinepainter","blueImpGallery","blueImpGalleryHelper","blueImpGalleryBootstrap","bootstrapConfirmation","bootstrapToggle","lazyload","easePack","tweenLite","datatables.net","datatables.net-buttons","datatables.net-buttons-html","datatables.net-responsive","datatables.net-select","pnotify","pnotify.buttons","pnotify.confirm","pnotify.nonblock","pnotify.desktop","pnotify.history","pnotify.callbacks","pnotify.reference","shim","deps","exports","require"],"mappings":"AACA,GAAIA,gBAAiBC,SAASC,KAAKC,aAAa,eAI5CC,UAAYH,SAASC,KAAKC,aAAa,eAG3CE,WAAUC,QACNC,QAAS,KAETC,OACIC,OAAQ,SACRH,OAAQ,aACRI,OAAQ,gBACRC,UAAW,kBACXC,IAAK,YAGLC,MAAO,cACPC,QAAS,gBACTC,MAAO,cAEPC,OAAQ,uBACRC,UAAW,oBACXC,KAAM,qBACNC,SAAU,mBACVC,YAAa,sBACbC,SAAU,mBACVC,WAAY,sBACZC,UAAW,gBACXC,QAAS,wBACTC,QAAS,kBACTC,gBAAiB,kCACjBC,WAAY,4BACZC,UAAW,6BACXC,OAAQ,iBACRC,QAAS,kBACTC,QAAS,kBACTC,aAAc,8BACdC,aAAc,0BACdC,YAAa,kCACbC,WAAY,4BACZC,QAAS,kBACTC,UAAW,oBACXC,gBAAiB,uCACjBC,eAAgB,sBAChBC,qBAAsB,qBACtBC,wBAAyB,8BACzBC,sBAAuB,6BACvBC,gBAAiB,4BACjBC,SAAU,0BAGVC,SAAU,mBACVC,UAAW,oBAGXC,iBAAkB,6DAClBC,yBAA0B,yDAC1BC,8BAA+B,oDAC/BC,4BAA6B,+DAC7BC,wBAAyB,uDAGzBC,QAAS,sBACTC,kBAAmB,8BACnBC,kBAAmB,8BACnBC,mBAAoB,+BACpBC,kBAAmB,8BACnBC,kBAAmB,8BACnBC,oBAAqB,gCACrBC,oBAAqB,iCAEzBC,MACI3C,WACI4C,MAAO,WAEXpC,SACIoC,MAAO,YAEXxC,UACIwC,MAAO,WAEXvC,YACIuC,MAAO,aAEXtC,WACIsC,MAAO,WAEXnC,iBACImC,MAAO,SAAU,eAErBd,kBACIc,MAAO,WAEXb,0BACIa,MAAO,mBAEXZ,+BACIY,MAAO,2BAEXX,6BACIW,MAAO,mBAEXV,yBACIU,MAAO,mBAEXjC,WACIiC,MAAO,cAEX9B,SACI8B,MAAO,SAAU,aACjBC,QAAS,WAEbjC,QACIgC,MAAO,SAAU,WACjBC,QAAS,UAEbV,SACIS,MAAQ,WAEZ7B,cACI6B,MAAQ,WAEZ5B,cACI4B,MAAQ,WAEZ3B,aACI2B,MAAQ,WAEZ1B,YACI0B,MAAQ,WAEZzB,SACIyB,MAAQ,UACRC,QAAS,WAEbzB,WACIwB,MAAQ,SAAU,cAEtBvB,iBACIuB,MAAQ,SAAU,cAEtBtB,gBACIsB,MAAQ,WAEZnB,uBACImB,MAAQ,cAEZlB,iBACIkB,MAAQ,WAEZjB,UACIiB,MAAQ,aAQpBE,SAAQzD,QACJC,QAASH,WAIbC,YAAYL","file":"app.js.map"}
\ No newline at end of file
diff --git a/public/js/v1.1.5/app.js.src.js b/public/js/v1.1.5/app.js.src.js
new file mode 100644
index 00000000..9864489d
--- /dev/null
+++ b/public/js/v1.1.5/app.js.src.js
@@ -0,0 +1,168 @@
+// main script path
+var mainScriptPath = document.body.getAttribute('data-script');
+
+// js baseURL. Depends on the environment.
+// e.g. use raw files (develop) or build files (production)
+var jsBaseUrl = document.body.getAttribute('data-js-path');
+
+// requireJs configuration
+requirejs.config({
+ baseUrl: 'js', // path for baseUrl - dynamically set !below! ("build_js" | "js")
+
+ paths: {
+ layout: 'layout',
+ config: 'app/config', // path for "configuration" files dir
+ dialog: 'app/ui/dialog', // path for "dialog" files dir
+ templates: '../../templates', // template dir
+ img: '../../img', // images dir
+
+ // main views
+ login: './app/login', // initial start "login page" view
+ mappage: './app/mappage', // initial start "map page" view
+ setup: './app/setup', // initial start "setup page" view
+
+ jquery: 'lib/jquery-3.0.0.min', // v3.0.0 jQuery
+ bootstrap: 'lib/bootstrap.min', // v3.3.0 Bootstrap js code - http://getbootstrap.com/javascript
+ text: 'lib/requirejs/text', // v2.0.12 A RequireJS/AMD loader plugin for loading text resources.
+ mustache: 'lib/mustache.min', // v1.0.0 Javascript template engine - http://mustache.github.io
+ localForage: 'lib/localforage.min', // v1.4.2 localStorage library - https://mozilla.github.io/localForage
+ velocity: 'lib/velocity.min', // v1.2.2 animation engine - http://julian.com/research/velocity
+ velocityUI: 'lib/velocity.ui.min', // v5.0.4 plugin for velocity - http://julian.com/research/velocity/#uiPack
+ slidebars: 'lib/slidebars', // v0.10 Slidebars - side menu plugin http://plugins.adchsm.me/slidebars
+ jsPlumb: 'lib/dom.jsPlumb-1.7.6', // v1.7.6 jsPlumb (Vanilla)- main map draw plugin https://jsplumbtoolkit.com
+ farahey: 'lib/farahey-0.5', // v0.5 jsPlumb "magnetizing" extension - https://github.com/jsplumb/farahey
+ customScrollbar: 'lib/jquery.mCustomScrollbar.min', // v3.1.3 Custom scroll bars - http://manos.malihu.gr
+ mousewheel: 'lib/jquery.mousewheel.min', // v3.1.13 Mousewheel - https://github.com/jquery/jquery-mousewheel
+ xEditable: 'lib/bootstrap-editable.min', // v1.5.1 X-editable - in placed editing
+ morris: 'lib/morris.min', // v0.5.1 Morris.js - graphs and charts
+ raphael: 'lib/raphael-min', // v2.1.2 Raphaël - required for morris (dependency)
+ bootbox: 'lib/bootbox.min', // v4.4.0 Bootbox.js - custom dialogs - http://bootboxjs.com
+ easyPieChart: 'lib/jquery.easypiechart.min', // v2.1.6 Easy Pie Chart - HTML 5 pie charts - http://rendro.github.io/easy-pie-chart
+ dragToSelect: 'lib/jquery.dragToSelect', // v1.1 Drag to Select - http://andreaslagerkvist.com/jquery/drag-to-select
+ hoverIntent: 'lib/jquery.hoverIntent.minified', // v1.8.0 Hover intention - http://cherne.net/brian/resources/jquery.hoverIntent.html
+ fullScreen: 'lib/jquery.fullscreen.min', // v0.5.0 Full screen mode - https://github.com/private-face/jquery.fullscreen
+ select2: 'lib/select2.min', // v4.0.3 Drop Down customization - https://select2.github.io
+ validator: 'lib/validator.min', // v0.10.1 Validator for Bootstrap 3 - https://github.com/1000hz/bootstrap-validator
+ lazylinepainter: 'lib/jquery.lazylinepainter-1.5.1.min', // v1.5.1 SVG line animation plugin - http://lazylinepainter.info
+ blueImpGallery: 'lib/blueimp-gallery', // v2.21.3 Image Gallery - https://github.com/blueimp/Gallery
+ blueImpGalleryHelper: 'lib/blueimp-helper', // helper function for Blue Imp Gallery
+ blueImpGalleryBootstrap: 'lib/bootstrap-image-gallery', // v3.4.2 Bootstrap extension for Blue Imp Gallery - https://blueimp.github.io/Bootstrap-Image-Gallery
+ bootstrapConfirmation: 'lib/bootstrap-confirmation', // v1.0.1 Bootstrap extension for inline confirm dialog - https://github.com/tavicu/bs-confirmation
+ bootstrapToggle: 'lib/bootstrap2-toggle.min', // v2.2.0 Bootstrap Toggle (Checkbox) - http://www.bootstraptoggle.com
+ lazyload: 'lib/jquery.lazyload.min', // v1.9.5 LazyLoader images - http://www.appelsiini.net/projects/lazyload
+
+ // header animation
+ easePack: 'lib/EasePack.min',
+ tweenLite: 'lib/TweenLite.min',
+
+ // datatables // v1.10.12 DataTables - https://datatables.net
+ 'datatables.net': 'lib/datatables/DataTables-1.10.12/js/jquery.dataTables.min',
+ 'datatables.net-buttons': 'lib/datatables/Buttons-1.2.1/js/dataTables.buttons.min',
+ 'datatables.net-buttons-html': 'lib/datatables/Buttons-1.2.1/js/buttons.html5.min',
+ 'datatables.net-responsive': 'lib/datatables/Responsive-2.1.0/js/dataTables.responsive.min',
+ 'datatables.net-select': 'lib/datatables/Select-1.2.0/js/dataTables.select.min',
+
+ // notification plugin
+ pnotify: 'lib/pnotify/pnotify', // v3.0.0 PNotify - notification core file - https://sciactive.com/pnotify/
+ 'pnotify.buttons': 'lib/pnotify/pnotify.buttons', // PNotify - buttons notification extension
+ 'pnotify.confirm': 'lib/pnotify/pnotify.confirm', // PNotify - confirmation notification extension
+ 'pnotify.nonblock': 'lib/pnotify/pnotify.nonblock', // PNotify - notification non-block extension (hover effect)
+ 'pnotify.desktop': 'lib/pnotify/pnotify.desktop', // PNotify - desktop push notification extension
+ 'pnotify.history': 'lib/pnotify/pnotify.history', // PNotify - history push notification history extension
+ 'pnotify.callbacks': 'lib/pnotify/pnotify.callbacks', // PNotify - callbacks push notification extension
+ 'pnotify.reference': 'lib/pnotify/pnotify.reference' // PNotify - reference push notification extension
+ },
+ shim: {
+ bootstrap: {
+ deps: ['jquery']
+ },
+ farahey: {
+ deps: ['jsPlumb']
+ },
+ velocity: {
+ deps: ['jquery']
+ },
+ velocityUI: {
+ deps: ['velocity']
+ },
+ slidebars: {
+ deps: ['jquery']
+ },
+ customScrollbar: {
+ deps: ['jquery', 'mousewheel']
+ },
+ 'datatables.net': {
+ deps: ['jquery']
+ },
+ 'datatables.net-buttons': {
+ deps: ['datatables.net']
+ },
+ 'datatables.net-buttons-html': {
+ deps: ['datatables.net-buttons']
+ },
+ 'datatables.net-responsive': {
+ deps: ['datatables.net']
+ },
+ 'datatables.net-select': {
+ deps: ['datatables.net']
+ },
+ xEditable: {
+ deps: ['bootstrap']
+ },
+ bootbox: {
+ deps: ['jquery', 'bootstrap'],
+ exports: 'bootbox'
+ },
+ morris: {
+ deps: ['jquery', 'raphael'],
+ exports: 'Morris'
+ },
+ pnotify: {
+ deps : ['jquery']
+ },
+ easyPieChart: {
+ deps : ['jquery']
+ },
+ dragToSelect: {
+ deps : ['jquery']
+ },
+ hoverIntent: {
+ deps : ['jquery']
+ },
+ fullScreen: {
+ deps : ['jquery']
+ },
+ select2: {
+ deps : ['jquery'],
+ exports: 'Select2'
+ },
+ validator: {
+ deps : ['jquery', 'bootstrap']
+ },
+ lazylinepainter: {
+ deps : ['jquery', 'bootstrap']
+ },
+ blueImpGallery: {
+ deps : ['jquery']
+ },
+ bootstrapConfirmation: {
+ deps : ['bootstrap']
+ },
+ bootstrapToggle: {
+ deps : ['jquery']
+ },
+ lazyload: {
+ deps : ['jquery']
+ }
+ }
+});
+
+// switch baseUrl to js "build_js" in production environment
+// this has no effect for js build process!
+// check build.js for build configuration
+require.config({
+ baseUrl: jsBaseUrl
+});
+
+// load the main app module -> initial app start
+requirejs( [mainScriptPath] );
diff --git a/public/js/v1.1.5/app/config/signature_type.js b/public/js/v1.1.5/app/config/signature_type.js
deleted file mode 100644
index e4a2b0b0..00000000
--- a/public/js/v1.1.5/app/config/signature_type.js
+++ /dev/null
@@ -1,419 +0,0 @@
-/**
- * Created by exodus4d on 06.07.2015.
- * static signature types
- *
- * (*) marked fields are in-game verified and
- * proofed, signature names (copy & paste from scanning window)
- */
-
-define(['jquery'], function($) {
-
- 'use strict';
-
- // signature sources
- // http://de.sistersprobe.wikia.com/wiki/EVE_Sister_Core_Scanner_Probe_Wiki
-
-
- // NullSec Relic sites, which can also spawn in C1, C2, C3 wormholes
- var nullSecRelicSites = {
- 10: 'Ruined Angel Crystal Quarry',
- 11: 'Ruined Angel Monument Site',
- 12: 'Ruined Angel Science Outpost',
- 13: 'Ruined Angel Temple Site',
- 14: 'Ruined Blood Raider Crystal Quarry',
- 15: 'Ruined Blood Raider Monument Site',
- 16: 'Ruined Blood Raider Science Outpost',
- 17: 'Ruined Blood Raider Temple Site',
- 18: 'Ruined Guristas Crystal Quarry',
- 19: 'Ruined Guristas Monument Site',
- 20: 'Ruined Guristas Science Outpost',
- 21: 'Ruined Guristas Temple Site',
- 22: 'Ruined Sansha Crystal Quarry',
- 23: 'Ruined Sansha Monument Site',
- 24: 'Ruined Sansha Science Outpost',
- 25: 'Ruined Sansha Temple Site',
- 26: 'Ruined Serpentis Crystal Quarry',
- 27: 'Ruined Serpentis Monument Site',
- 28: 'Ruined Serpentis Science Outpost',
- 29: 'Ruined Serpentis Temple Site'
- };
-
- // NulSec Data sites, which can also spawn in C1, C2, C3 wormholes
- var nullSecDataSites = {
- 10: 'Abandoned Research Complex DA005',
- 11: 'Abandoned Research Complex DA015',
- 12: 'Abandoned Research Complex DC007',
- 13: 'Abandoned Research Complex DC021',
- 14: 'Abandoned Research Complex DC035',
- 15: 'Abandoned Research Complex DG003',
- 16: 'Central Angel Command Center',
- 17: 'Central Angel Data Mining Site',
- 18: 'Central Angel Sparking Transmitter',
- 19: 'Central Angel Survey Site',
- 20: 'Central Blood Raider Command Center',
- 21: 'Central Blood Raider Data Mining Site',
- 22: 'Central Blood Raider Sparking Transmitter',
- 23: 'Central Blood Raider Survey Site',
- 24: 'Central Guristas Command Center',
- 25: 'Central Guristas Data Mining Center',
- 26: 'Central Guristas Sparking Transmitter',
- 27: 'Central Guristas Survey Site',
- 28: 'Central Sansha Command Center',
- 29: 'Central Sansha Data Mining Site',
- 30: 'Central Sansha Sparking Transmitter',
- 31: 'Central Sansha Survey Site',
- 32: 'Central Serpentis Command Center',
- 33: 'Central Serpentis Data Mining Site',
- 34: 'Central Serpentis Sparking Transmitter',
- 35: 'Central Serpentis Survey Site'
- };
-
-
- // signature types
- var signatureTypes = {
- 1: { // system type (wh)
- 1: { // C1 (area id)
- 1: { // Combat
- 1: 'Perimeter Ambush Point',
- 2: 'Perimeter Camp',
- 3: 'Phase Catalyst Node',
- 4: 'The Line'
- },
- 2: $.extend({}, nullSecRelicSites, { // Relic
- 1: 'Forgotten Perimeter Coronation Platform', //*
- 2: 'Forgotten Perimeter Power Array' //*
- }),
- 3: $.extend({}, nullSecDataSites, { // Data
- 1: 'Unsecured Perimeter Amplifier', //*
- 2: 'Unsecured Perimeter Information Center' //*
- }),
- 4: { // Gas
- 1: 'Barren Perimeter Reservoir', //*
- 2: 'Token Perimeter Reservoir', //*
- 3: 'Minor Perimeter Reservoir', //*
- 4: 'Sizeable Perimeter Reservoir', //*
- 5: 'Ordinary Perimeter Reservoir' //*
- },
- 5: { // Wormhole
- 1: 'H121 - C1',
- 2: 'C125 - C2',
- 3: 'O883 - C3',
- 4: 'M609 - C4',
- 5: 'L614 - C5',
- 6: 'S804 - C6',
- 7: 'F135 - Thera'
- },
- 6: { // ORE
- 1: 'Ordinary Perimeter Deposit', //*
- 2: 'Common Perimeter Deposit', //*
- 3: 'Unexceptional Frontier Deposit', //*
- 4: 'Average Frontier Deposit', //*
- 5: 'Isolated Core Deposit', //*
- 6: 'Uncommon Core Deposit' //*
- },
- 7: { // Ghost
-
- }
- },
- 2: { // C2
- 1: { // Combat
- 1: 'Perimeter Checkpoint',
- 2: 'Perimeter Hangar',
- 3: 'The Ruins of Enclave Cohort 27',
- 4: 'Sleeper Data Sanctuary'
- },
- 2: $.extend({}, nullSecRelicSites, { // Relic
- 1: 'Forgotten Perimeter Gateway', //*
- 2: 'Forgotten Perimeter Habitation Coils' //*
- }),
- 3: $.extend({}, nullSecDataSites, { // Data
- 1: 'Unsecured Perimeter Comms Relay', //*
- 2: 'Unsecured Perimeter Transponder Farm' //*
- }),
- 4: { // Gas
- 1: 'Barren Perimeter Reservoir', //*
- 2: 'Token Perimeter Reservoir', //*
- 3: 'Minor Perimeter Reservoir', //*
- 4: 'Sizeable Perimeter Reservoir', //*
- 5: 'Ordinary Perimeter Reservoir' //*
- },
- 5: { // Wormhole
- 1: 'Z647 - C1',
- 2: 'D382 - C2',
- 3: 'O477 - C3',
- 4: 'Y683 - C4',
- 5: 'N062 - C5',
- 6: 'R474 - C6',
- 7: 'F135 - Thera'
- },
- 6: { // ORE
- 1: 'Ordinary Perimeter Deposit', //*
- 2: 'Common Perimeter Deposit', //*
- 3: 'Unexceptional Frontier Deposit', //*
- 4: 'Average Frontier Deposit', //*
- 5: 'Isolated Core Deposit', //*
- 6: 'Uncommon Core Deposit' //*
- },
- 7: { // Ghost
-
- }
- },
- 3: { // C3
- 1: { // Combat
- 1: 'Fortification Frontier Stronghold',
- 2: 'Outpost Frontier Stronghold',
- 3: 'Solar Cell',
- 4: 'The Oruze Construct'
- },
- 2: $.extend({}, nullSecRelicSites, { // Relic
- 1: 'Forgotten Frontier Quarantine Outpost', //*
- 2: 'Forgotten Frontier Recursive Depot' //*
- }),
- 3: $.extend({}, nullSecDataSites, { // Data
- 1: 'Unsecured Frontier Database', //*
- 2: 'Unsecured Frontier Receiver' //*
- }),
- 4: { // Gas
- 1: 'Barren Perimeter Reservoir', //*
- 2: 'Token Perimeter Reservoir', //*
- 3: 'Minor Perimeter Reservoir', //*
- 4: 'Sizeable Perimeter Reservoir', //*
- 5: 'Ordinary Perimeter Reservoir', //*
- 6: 'Bountiful Frontier Reservoir', //*
- 7: 'Vast Frontier Reservoir' //*
- },
- 5: { // Wormhole
- 1: 'V301 - C1',
- 2: 'I182 - C2',
- 3: 'N968 - C3',
- 4: 'T405 - C4',
- 5: 'N770 - C5',
- 6: 'A982 - C6',
- 7: 'F135 - Thera'
- },
- 6: { // ORE
- 1: 'Ordinary Perimeter Deposit', //*
- 2: 'Common Perimeter Deposit', //*
- 3: 'Unexceptional Frontier Deposit', //*
- 4: 'Average Frontier Deposit', //*
- 5: 'Infrequent Core Deposit', //*
- 6: 'Unusual Core Deposit' //*
- },
- 7: { // Ghost
-
- }
- },
- 4: { // C4
- 1: { // Combat
- 1: 'Frontier Barracks',
- 2: 'Frontier Command Post',
- 3: 'Integrated Terminus',
- 4: 'Sleeper Information Sanctum'
- },
- 2: { // Relic
- 1: 'Forgotten Frontier Conversion Module',
- 2: 'Forgotten Frontier Evacuation Center'
- },
- 3: { // Data
- 1: 'Unsecured Frontier Digital Nexus',
- 2: 'Unsecured Frontier Trinary Hub'
- },
- 4: { // Gas
- 1: 'Barren Perimeter Reservoir', //*
- 2: 'Token Perimeter Reservoir', //*
- 3: 'Minor Perimeter Reservoir', //*
- 4: 'Sizeable Perimeter Reservoir', //*
- 5: 'Ordinary Perimeter Reservoir', //*
- 6: 'Vast Frontier Reservoir' //*
- },
- 5: { // Wormhole
- // no *wandering* w-space -> k-space wormholes
- // all holes are statics or K162
- },
- 6: { // ORE
- 1: 'Ordinary Perimeter Deposit', //*
- 2: 'Common Perimeter Deposit', //*
- 3: 'Unexceptional Frontier Deposit', //*
- 4: 'Average Frontier Deposit', //*
- 5: 'Unusual Core Deposit' //*
- },
- 7: { // Ghost
-
- }
- },
- 5: { // C5
- 1: { // Combat
- 1: 'Core Garrison', //*
- 2: 'Core Stronghold', //*
- 3: 'Oruze Osobnyk', //*
- 4: 'Quarantine Area'
- },
- 2: { // Relic
- 1: 'Forgotten Core Data Field',
- 2: 'Forgotten Core Information Pen'
- },
- 3: { // Data
- 1: 'Unsecured Frontier Enclave Relay',
- 2: 'Unsecured Frontier Server Bank'
- },
- 4: { // Gas
- 1: 'Barren Perimeter Reservoir', //*
- 2: 'Minor Perimeter Reservoir', //*
- 3: 'Ordinary Perimeter Reservoir', //*
- 4: 'Sizeable Perimeter Reservoir', //*
- 5: 'Token Perimeter Reservoir', //*
- 6: 'Bountiful Frontier Reservoir', //*
- 7: 'Vast Frontier Reservoir', //*
- 8: 'Instrumental Core Reservoir', //*
- 9: 'Vital Core Reservoir' //*
- },
- 5: { // Wormhole
- 1: 'D792 - HS',
- 2: 'C140 - LS',
- 3: 'Z142 - 0.0',
- 4: 'F135 - Thera'
- },
- 6: { // ORE
- 1: 'Average Frontier Deposit', //*
- 2: 'Unexceptional Frontier Deposit', //*
- 3: 'Uncommon Core Deposit', //*
- 4: 'Ordinary Perimeter Deposit', //*
- 5: 'Common Perimeter Deposit', //*
- 6: 'Exceptional Core Deposit', //*
- 7: 'Infrequent Core Deposit', //*
- 8: 'Unusual Core Deposit', //*
- 9: 'Rarified Core Deposit', //*
- 10: 'Isolated Core Deposit' //*
- },
- 7: { // Ghost
-
- }
- },
- 6: { // C6
- 1: { // Combat
- 1: 'Core Citadel', //*
- 2: 'Core Bastion', //*
- 3: 'Strange Energy Readings', //*
- 4: 'The Mirror' //*
- },
- 2: { // Relic
- 1: 'Forgotten Core Assembly Hall', //*
- 2: 'Forgotten Core Circuitry Disassembler' //*
- },
- 3: { // Data
- 1: 'Unsecured Core Backup Array', //*
- 2: 'Unsecured Core Emergence' //*
- },
- 4: { // Gas
- 1: 'Barren Perimeter Reservoir', //*
- 2: 'Minor Perimeter Reservoir', //*
- 3: 'Ordinary Perimeter Reservoir', //*
- 4: 'Sizeable Perimeter Reservoir', //*
- 5: 'Token Perimeter Reservoir', //*
- 6: 'Bountiful Frontier Reservoir', //*
- 7: 'Vast Frontier Reservoir', //*
- 8: 'Instrumental Core Reservoir', //*
- 9: 'Vital Core Reservoir' //*
- },
- 5: { // Wormhole
- 1: 'D792 - HS',
- 2: 'C391 - LS',
- 3: 'Z142 - 0.0',
- 4: 'F135 - Thera'
- },
- 6: { // ORE
- 1: 'Ordinary Perimeter Deposit', //*
- 2: 'Common Perimeter Deposit', //*
- 3: 'Unexceptional Frontier Deposit', //*
- 4: 'Average Frontier Deposit', //*
- 5: 'Rarified Core Deposit' //*
- },
- 7: { // Ghost
- 1: 'Superior Blood Raider Covert Research Facility' //*
- }
- },
- 13: { // Shattered Wormholes
- 5: { // Wormhole (some of them are static)
- 1: 'P060 - C1',
- 2: 'Z647 - C1',
- 3: 'D382 - C2',
- 4: 'L005 - C2',
- 5: 'N766 - C2',
- 6: 'C247 - C3',
- 7: 'K346 - C3',
- 8: 'M267 - C3',
- 9: 'O477 - C3',
- 10: 'X877 - C4',
- 11: 'Y683 - C4',
- 12: 'H296 - C5',
- 13: 'H900 - C5',
- 14: 'H296 - C5',
- 15: 'N062 - C5',
- 16: 'V911 - C5',
- 17: 'U574 - C6',
- 18: 'V753 - C6',
- 19: 'W237 - C6',
- 20: 'B274 - HS',
- 21: 'D792 - HS',
- 22: 'D845 - HS',
- 23: 'N110 - HS',
- 24: 'A239 - LS',
- 25: 'C391 - LS',
- 26: 'J244 - LS',
- 27: 'U201 - LS',
- 28: 'U210 - LS',
- 29: 'C248 - 0.0',
- 30: 'E545 - 0.0',
- 31: 'K346 - 0.0',
- 32: 'Z060 - 0.0'
- }
- }
- }, // system type (k-space)
- 2: {
- 10: { // High Sec
- 5: { // Wormhole
- 1: 'Z971 - C1',
- 2: 'R943 - C2',
- 3: 'X702 - C3',
- // no C4
- 4: 'M555 - C5',
- 5: 'B041 - C6',
- 6: 'A641 - HS',
- 7: 'R051 - LS',
- 8: 'V283 - 0.0',
- 9: 'T458 - Thera'
- }
- },
- 11: { // Low Sec
- 5: { // Wormhole
- 1: 'Z971 - C1',
- 2: 'R943 - C2',
- 3: 'X702 - C3',
- // no C4
- 4: 'N432 - C5',
- 5: 'U319 - C6',
- 6: 'B449 - HS',
- 7: 'N944 - LS',
- 8: 'S199 - 0.0',
- 9: 'M164 - Thera'
- }
- },
- 12: { // 0.0
- 5: { // Wormhole
- 1: 'Z971 - C1',
- 2: 'R943 - C2',
- 3: 'X702 - C3',
- // no C4
- 4: 'N432 - C5',
- 5: 'U319 - C6',
- 6: 'B449 - HS',
- 7: 'N944 - LS',
- 8: 'S199 - 0.0',
- 9: 'L031 - Thera'
- }
- }
- }
- };
-
- return signatureTypes;
-});
\ No newline at end of file
diff --git a/public/js/v1.1.5/app/config/system_effect.js b/public/js/v1.1.5/app/config/system_effect.js
deleted file mode 100644
index b433d937..00000000
--- a/public/js/v1.1.5/app/config/system_effect.js
+++ /dev/null
@@ -1,733 +0,0 @@
-/**
- * Created by exodus4d on 06.07.2015.
- * static system effects
- */
-
-
-define([], function() {
-
- 'use strict';
-
- // system effects
- var systemEffects = {
- wh: {
- magnetar: {
- 1: [
- {
- effect: 'Damage',
- value: '+30%'
- },{
- effect: 'Missile explosion radius',
- value: '+15%'
- },{
- effect: 'Drone Tracking',
- value: '-15%'
- },{
- effect: 'Targeting Range',
- value: '-15%'
- },{
- effect: 'Tracking Speed',
- value: '-15%'
- },{
- effect: 'Target Painter Strength',
- value: '-15%'
- }
- ],
- 2: [
- {
- effect: 'Damage',
- value: '+44%'
- },{
- effect: 'Missile explosion radius',
- value: '+22%'
- },{
- effect: 'Drone Tracking',
- value: '-22%'
- },{
- effect: 'Targeting Range',
- value: '-22%'
- },{
- effect: 'Tracking Speed',
- value: '-22%'
- },{
- effect: 'Target Painter Strength',
- value: '-22%'
- }
- ],
- 3: [
- {
- effect: 'Damage',
- value: '+58%'
- },{
- effect: 'Missile explosion radius',
- value: '+29%'
- },{
- effect: 'Drone Tracking',
- value: '-29%'
- },{
- effect: 'Targeting Range',
- value: '-29%'
- },{
- effect: 'Tracking Speed',
- value: '-29%'
- },{
- effect: 'Target Painter Strength',
- value: '-29%'
- }
- ],
- 4: [
- {
- effect: 'Damage',
- value: '+72%'
- },{
- effect: 'Missile explosion radius',
- value: '+36%'
- },{
- effect: 'Drone Tracking',
- value: '-36%'
- },{
- effect: 'Targeting Range',
- value: '-36%'
- },{
- effect: 'Tracking Speed',
- value: '-36%'
- },{
- effect: 'Target Painter Strength',
- value: '-36%'
- }
- ],
- 5: [
- {
- effect: 'Damage',
- value: '+86%'
- },{
- effect: 'Missile explosion radius',
- value: '+43%'
- },{
- effect: 'Drone Tracking',
- value: '-43%'
- },{
- effect: 'Targeting Range',
- value: '-43%'
- },{
- effect: 'Tracking Speed',
- value: '-43%'
- },{
- effect: 'Target Painter Strength',
- value: '-43%'
- }
- ],
- 6: [
- {
- effect: 'Damage',
- value: '+100%'
- },{
- effect: 'Missile explosion radius',
- value: '+50%'
- },{
- effect: 'Drone Tracking',
- value: '-50%'
- },{
- effect: 'Targeting Range',
- value: '-50%'
- },{
- effect: 'Tracking Speed',
- value: '-50%'
- },{
- effect: 'Target Painter Strength',
- value: '-50%'
- }
- ]
- },
- redGiant: {
- 1: [
- {
- effect: 'Heat Damage',
- value: '+15%'
- },{
- effect: 'Overload Bonus',
- value: '+30%'
- },{
- effect: 'Smart Bomb Range',
- value: '+30%'
- },{
- effect: 'Smart Bomb Damage',
- value: '+30%'
- },{
- effect: 'Bomb Damage',
- value: '+30%'
- }
- ],
- 2: [
- {
- effect: 'Heat Damage',
- value: '+22%'
- },{
- effect: 'Overload Bonus',
- value: '+44%'
- },{
- effect: 'Smart Bomb Range',
- value: '+44%'
- },{
- effect: 'Smart Bomb Damage',
- value: '+44%'
- },{
- effect: 'Bomb Damage',
- value: '+44%'
- }
- ],
- 3: [
- {
- effect: 'Heat Damage',
- value: '+29%'
- },{
- effect: 'Overload Bonus',
- value: '+58%'
- },{
- effect: 'Smart Bomb Range',
- value: '+58%'
- },{
- effect: 'Smart Bomb Damage',
- value: '+58%'
- },{
- effect: 'Bomb Damage',
- value: '+58%'
- }
- ],
- 4: [
- {
- effect: 'Heat Damage',
- value: '+36%'
- },{
- effect: 'Overload Bonus',
- value: '+72%'
- },{
- effect: 'Smart Bomb Range',
- value: '+72%'
- },{
- effect: 'Smart Bomb Damage',
- value: '+72%'
- },{
- effect: 'Bomb Damage',
- value: '+72%'
- }
- ],
- 5: [
- {
- effect: 'Heat Damage',
- value: '+43%'
- },{
- effect: 'Overload Bonus',
- value: '+86%'
- },{
- effect: 'Smart Bomb Range',
- value: '+86%'
- },{
- effect: 'Smart Bomb Damage',
- value: '+86%'
- },{
- effect: 'Bomb Damage',
- value: '+86%'
- }
- ],
- 6: [
- {
- effect: 'Heat Damage',
- value: '+50%'
- },{
- effect: 'Overload Bonus',
- value: '+100%'
- },{
- effect: 'Smart Bomb Range',
- value: '+100%'
- },{
- effect: 'Smart Bomb Damage',
- value: '+100%'
- },{
- effect: 'Bomb Damage',
- value: '+100%'
- }
- ]
- },
- pulsar: {
- 1: [
- {
- effect: 'Shield HP',
- value: '+30%'
- },{
- effect: 'Armor Resists',
- value: '-15%'
- },{
- effect: 'Capacitor recharge',
- value: '-15%'
- },{
- effect: 'Signature',
- value: '+30%'
- },{
- effect: 'NOS / Neut Drain Amount',
- value: '+30%'
- }
- ],
- 2: [
- {
- effect: 'Shield HP',
- value: '+44%'
- },{
- effect: 'Armor Resists',
- value: '-22%'
- },{
- effect: 'Capacitor recharge',
- value: '-22%'
- },{
- effect: 'Signature',
- value: '+44%'
- },{
- effect: 'NOS / Neut Drain Amount',
- value: '+44%'
- }
- ],
- 3: [
- {
- effect: 'Shield HP',
- value: '+58%'
- },{
- effect: 'Armor Resists',
- value: '-29%'
- },{
- effect: 'Capacitor recharge',
- value: '-29%'
- },{
- effect: 'Signature',
- value: '+58%'
- },{
- effect: 'NOS / Neut Drain Amount',
- value: '+58%'
- }
- ],
- 4: [
- {
- effect: 'Shield HP',
- value: '+72%'
- },{
- effect: 'Armor Resists',
- value: '-36%'
- },{
- effect: 'Capacitor recharge',
- value: '-36%'
- },{
- effect: 'Signature',
- value: '+72%'
- },{
- effect: 'NOS / Neut Drain Amount',
- value: '+72%'
- }
- ],
- 5: [
- {
- effect: 'Shield HP',
- value: '+86%'
- },{
- effect: 'Armor Resists',
- value: '-43%'
- },{
- effect: 'Capacitor recharge',
- value: '-43%'
- },{
- effect: 'Signature',
- value: '+86%'
- },{
- effect: 'NOS / Neut Drain Amount',
- value: '+86%'
- }
- ],
- 6: [
- {
- effect: 'Shield HP',
- value: '+100%'
- },{
- effect: 'Armor Resists',
- value: '-50%'
- },{
- effect: 'Capacitor recharge',
- value: '-50%'
- },{
- effect: 'Signature',
- value: '+100%'
- },{
- effect: 'NOS / Neut Drain Amount',
- value: '+100%'
- }
- ]
- },
- wolfRayet: {
- 1: [
- {
- effect: 'Armor HP',
- value: '+30%'
- },{
- effect: 'Shield Resist',
- value: '-15%'
- },{
- effect: 'Small Weapon Damage',
- value: '+60%'
- },{
- effect: 'Signature Size',
- value: '-15%'
- }
- ],
- 2: [
- {
- effect: 'Armor HP',
- value: '+44%'
- },{
- effect: 'Shield Resist',
- value: '-22%'
- },{
- effect: 'Small Weapon Damage',
- value: '+88%'
- },{
- effect: 'Signature Size',
- value: '-22%'
- }
- ],
- 3: [
- {
- effect: 'Armor HP',
- value: '+58%'
- },{
- effect: 'Shield Resist',
- value: '-29%'
- },{
- effect: 'Small Weapon Damage',
- value: '+116%'
- },{
- effect: 'Signature Size',
- value: '-29%'
- }
- ],
- 4: [
- {
- effect: 'Armor HP',
- value: '+72%'
- },{
- effect: 'Shield Resist',
- value: '-36%'
- },{
- effect: 'Small Weapon Damage',
- value: '+144%'
- },{
- effect: 'Signature Size',
- value: '-36%'
- }
- ],
- 5: [
- {
- effect: 'Armor HP',
- value: '+86%'
- },{
- effect: 'Shield Resist',
- value: '-43%'
- },{
- effect: 'Small Weapon Damage',
- value: '+172%'
- },{
- effect: 'Signature Size',
- value: '-43%'
- }
- ],
- 6: [
- {
- effect: 'Armor HP',
- value: '+100%'
- },{
- effect: 'Shield Resist',
- value: '-50%'
- },{
- effect: 'Small Weapon Damage',
- value: '+200%'
- },{
- effect: 'Signature Size',
- value: '-50%'
- }
- ]
- },
- cataclysmic: {
- 1: [
- {
- effect: 'Local armor repair amount',
- value: '-15%'
- },{
- effect: 'Local shield boost amount',
- value: '-15%'
- },{
- effect: 'Shield transfer amount',
- value: '+30%'
- },{
- effect: 'Remote repair amount',
- value: '+30%'
- },{
- effect: 'Capacitor capacity',
- value: '+30%'
- },{
- effect: 'Capacitor recharge time',
- value: '+15%'
- },{
- effect: 'Remote Capacitor Transmitter amount',
- value: '-15%'
- }
- ],
- 2: [
- {
- effect: 'Local armor repair amount',
- value: '-22%'
- },{
- effect: 'Local shield boost amount',
- value: '-22%'
- },{
- effect: 'Shield transfer amount',
- value: '+44%'
- },{
- effect: 'Remote repair amount',
- value: '+44%'
- },{
- effect: 'Capacitor capacity',
- value: '+44%'
- },{
- effect: 'Capacitor recharge time',
- value: '+22%'
- },{
- effect: 'Remote Capacitor Transmitter amount',
- value: '-22%'
- }
- ],
- 3: [
- {
- effect: 'Local armor repair amount',
- value: '-29%'
- },{
- effect: 'Local shield boost amount',
- value: '-29%'
- },{
- effect: 'Shield transfer amount',
- value: '+58%'
- },{
- effect: 'Remote repair amount',
- value: '+58%'
- },{
- effect: 'Capacitor capacity',
- value: '+58%'
- },{
- effect: 'Capacitor recharge time',
- value: '+29%'
- },{
- effect: 'Remote Capacitor Transmitter amount',
- value: '-29%'
- }
- ],
- 4: [
- {
- effect: 'Local armor repair amount',
- value: '-36%'
- },{
- effect: 'Local shield boost amount',
- value: '-36%'
- },{
- effect: 'Shield transfer amount',
- value: '+72%'
- },{
- effect: 'Remote repair amount',
- value: '+72%'
- },{
- effect: 'Capacitor capacity',
- value: '+72%'
- },{
- effect: 'Capacitor recharge time',
- value: '+36%'
- },{
- effect: 'Remote Capacitor Transmitter amount',
- value: '-36%'
- }
- ],
- 5: [
- {
- effect: 'Local armor repair amount',
- value: '-43%'
- },{
- effect: 'Local shield boost amount',
- value: '-43%'
- },{
- effect: 'Shield transfer amount',
- value: '+86%'
- },{
- effect: 'Remote repair amount',
- value: '+86%'
- },{
- effect: 'Capacitor capacity',
- value: '+86%'
- },{
- effect: 'Capacitor recharge time',
- value: '+43%'
- },{
- effect: 'Remote Capacitor Transmitter amount',
- value: '-43%'
- }
- ],
- 6: [
- {
- effect: 'Local armor repair amount',
- value: '-50%'
- },{
- effect: 'Local shield boost amount',
- value: '-50%'
- },{
- effect: 'Shield transfer amount',
- value: '+100%'
- },{
- effect: 'Remote repair amount',
- value: '+100%'
- },{
- effect: 'Capacitor capacity',
- value: '+100%'
- },{
- effect: 'Capacitor recharge time',
- value: '+50%'
- },{
- effect: 'Remote Capacitor Transmitter amount',
- value: '-50%'
- }
- ]
- },
- blackHole: {
- 1: [
- {
- effect: 'Missile velocity',
- value: '+15%'
- },{
- effect: 'Missile Explosion Velocity',
- value: '+30%'
- },{
- effect: 'Ship velocity',
- value: '+30%'
- },{
- effect: 'Stasis Webifier Strength',
- value: '-15%'
- },{
- effect: 'Inertia',
- value: '+15%'
- },{
- effect: 'Targeting range',
- value: '+30%'
- }
- ],
- 2: [
- {
- effect: 'Missile velocity',
- value: '+22%'
- },{
- effect: 'Missile Explosion Velocity',
- value: '+44%'
- },{
- effect: 'Ship velocity',
- value: '+44%'
- },{
- effect: 'Stasis Webifier Strength',
- value: '-22%'
- },{
- effect: 'Inertia',
- value: '+22%'
- },{
- effect: 'Targeting range',
- value: '+44%'
- }
- ],
- 3: [
- {
- effect: 'Missile velocity',
- value: '+29%'
- },{
- effect: 'Missile Explosion Velocity',
- value: '+58%'
- },{
- effect: 'Ship velocity',
- value: '+58%'
- },{
- effect: 'Stasis Webifier Strength',
- value: '-29%'
- },{
- effect: 'Inertia',
- value: '+29%'
- },{
- effect: 'Targeting range',
- value: '+58%'
- }
- ],
- 4: [
- {
- effect: 'Missile velocity',
- value: '+36%'
- },{
- effect: 'Missile Explosion Velocity',
- value: '+72%'
- },{
- effect: 'Ship velocity',
- value: '+72%'
- },{
- effect: 'Stasis Webifier Strength',
- value: '-36%'
- },{
- effect: 'Inertia',
- value: '+36%'
- },{
- effect: 'Targeting range',
- value: '+72%'
- }
- ],
- 5: [
- {
- effect: 'Missile velocity',
- value: '+43%'
- },{
- effect: 'Missile Explosion Velocity',
- value: '+86%'
- },{
- effect: 'Ship velocity',
- value: '+86%'
- },{
- effect: 'Stasis Webifier Strength',
- value: '-43%'
- },{
- effect: 'Inertia',
- value: '+43%'
- },{
- effect: 'Targeting range',
- value: '+86%'
- }
- ],
- 6: [
- {
- effect: 'Missile velocity',
- value: '+50%'
- },{
- effect: 'Missile Explosion Velocity',
- value: '+100%'
- },{
- effect: 'Ship velocity',
- value: '+100%'
- },{
- effect: 'Stasis Webifier Strength',
- value: '-50%'
- },{
- effect: 'Inertia',
- value: '+50%'
- },{
- effect: 'Targeting range',
- value: '+100%'
- }
- ]
- }
- }
- };
-
-
- return systemEffects;
-});
\ No newline at end of file
diff --git a/public/js/v1.1.5/app/counter.js b/public/js/v1.1.5/app/counter.js
deleted file mode 100644
index 6bfc90bc..00000000
--- a/public/js/v1.1.5/app/counter.js
+++ /dev/null
@@ -1,87 +0,0 @@
-define([
- 'jquery',
- 'app/init',
- 'app/util'
-], function($, Init, Util) {
- 'use strict';
-
- var config = {
- counterDigitSmallClass: 'pf-digit-counter-small',
- counterDigitLargeClass: 'pf-digit-counter-large'
- };
-
- /**
- * update element with time information
- * @param element
- * @param tempDate
- */
- var updateDateDiff = function(element, tempDate){
- var diff = Util.getTimeDiffParts(tempDate, new Date());
- var days = diff.days;
- var hrs = diff.hours;
- var min = diff.min;
- var leftSec = diff.sec;
- var value = [];
-
- if(
- days > 0 ||
- value.length > 0
- ){
- value.push('' + days + 'd' + '');
- }
- if(
- hrs > 0 ||
- value.length > 0
- ){
- value.push('' + hrs + 'h' + '');
- }
- if(
- min > 0 ||
- value.length > 0
- ){
- value.push('' + min + 'm' + '');
- }
-
- if(
- leftSec >= 0 ||
- value.length > 0
- ){
- value.push('' + leftSec + 's' + '');
- }
-
- element.html(value.join(' '));
- };
-
- /**
- * init a live counter based on a unix timestamp
- * @returns {*}
- */
- $.fn.initTimestampCounter = function(){
- return this.each(function(){
- var element = $(this);
- var timestamp = parseInt( element.text() );
-
- // do not init twice
- if(timestamp > 0){
- // mark as init
- element.attr('data-counter', 'init');
-
- var date = new Date( timestamp * 1000);
-
- updateDateDiff(element, date);
-
- var refreshIntervalId = window.setInterval(function(){
-
- // update element with current time
- if( !element.hasClass('stopCounter')){
- updateDateDiff(element, date);
- }else{
- clearInterval( element.data('interval') );
- }
- }, 500);
-
- element.data('interval', refreshIntervalId);
- }
- });
- };
-});
diff --git a/public/js/v1.1.5/app/init.js b/public/js/v1.1.5/app/init.js
deleted file mode 100644
index fbbf142a..00000000
--- a/public/js/v1.1.5/app/init.js
+++ /dev/null
@@ -1,417 +0,0 @@
-/**
- * Init
- */
-
-define(['jquery'], function($) {
-
- 'use strict';
-
- var Config = {
- path: {
- img: 'public/img/', // path for images
- // user API
- getCaptcha: 'api/user/getCaptcha', // ajax URL - get captcha image
- getServerStatus: 'api/user/getEveServerStatus', // ajax URL - get EVE-Online server status
- getCookieCharacterData: 'api/user/getCookieCharacter', // ajax URL - get character data from cookie
- logIn: 'api/user/logIn', // ajax URL - login
- logout: 'api/user/logout', // ajax URL - logout
- deleteLog: 'api/user/deleteLog', // ajax URL - delete character log
- saveUserConfig: 'api/user/saveAccount', // ajax URL - saves/update user account
- deleteAccount: 'api/user/deleteAccount', // ajax URL - delete Account data
- // access API
- searchAccess: 'api/access/search', // ajax URL - search user/corporation/ally by name
- // main config/map ping API
- initMap: 'api/map/init', // ajax URL - get static data
- updateMapData: 'api/map/updateData', // ajax URL - main map update trigger
- updateUserData: 'api/map/updateUserData', // ajax URL - main map user data trigger
- // map API
- saveMap: 'api/map/save', // ajax URL - save/update map
- deleteMap: 'api/map/delete', // ajax URL - delete map
- importMap: 'api/map/import', // ajax URL - import map
- // system API
- searchSystem: 'api/system/search', // ajax URL - search system by name
- saveSystem: 'api/system/save', // ajax URL - saves system to map
- deleteSystem: 'api/system/delete', // ajax URL - delete system from map
- getSystemGraphData: 'api/system/graphData', // ajax URL - get all system graph data
- getConstellationData: 'api/system/constellationData', // ajax URL - get system constellation data
- setDestination: 'api/system/setDestination', // ajax URL - set destination
-
- // connection API
- saveConnection: 'api/connection/save', // ajax URL - save new connection to map
- deleteConnection: 'api/connection/delete', // ajax URL - delete connection from map
- // signature API
- getSignatures: 'api/signature/getAll', // ajax URL - get all signature data for system
- saveSignatureData: 'api/signature/save', // ajax URL - save signature data for system
- deleteSignatureData: 'api/signature/delete', // ajax URL - delete signature data for system
- // route API
- searchRoute: 'api/route/search', // ajax URL - search system routes
- // GitHub API
- gitHubReleases: 'api/github/releases' // ajax URL - get release info from GitHub
- },
- url: {
- ccpImageServer: 'https://image.eveonline.com/', // CCP image Server
- zKillboard: 'https://zkillboard.com/api/' // killboard api
- },
- animationSpeed: {
- splashOverlay: 300, // "splash" loading overlay
- headerLink: 100, // links in head bar
- mapOverlay: 200, // show/hide duration for map overlays
- mapMoveSystem: 300, // system position has changed animation
- mapDeleteSystem: 200, // remove system from map
- mapModule: 200, // show/hide of an map module
- dialogEvents: 180 // dialog events /slide/show/...
- },
- mapIcons: [ // map tab-icons
- {
- class: 'fa-desktop',
- label: 'desktop',
- unicode: ''
- },{
- class: 'fa-bookmark',
- label: 'bookmark',
- unicode: ''
- },{
- class: 'fa-cube',
- label: 'cube',
- unicode: ''
- },{
- class: 'fa-plane',
- label: 'plane',
- unicode: ''
- },{
- class: 'fa-globe',
- label: 'globe',
- unicode: ''
- },{
- class: 'fa-rocket',
- label: 'rocket',
- unicode: ''
- },{
- class: 'fa-life-ring',
- label: 'life ring',
- unicode: ''
- },{
- class: 'fa-heart',
- label: 'heart',
- unicode: ''
- }
- ],
-
- classes: {
- // log types
- logTypes: {
- info: {
- class: 'pf-log-info',
- label: 'info'
- },
- warning: {
- class: 'pf-log-warning',
- label: 'warning'
- },
- error: {
- class: 'pf-log-error',
- label: 'error'
- }
- },
- // system effects
- systemEffects: {
-
- effect: {
- class: 'pf-system-effect',
- name: 'no effect'
- },
- magnetar: {
- class: 'pf-system-effect-magnetar',
- name: 'magnetar'
- },
- redGiant: {
- class: 'pf-system-effect-redgiant',
- name: 'red giant'
- },
- pulsar: {
- class: 'pf-system-effect-pulsar',
- name: 'pulsar'
- },
- wolfRayet: {
- class: 'pf-system-effect-wolfrayet',
- name: 'wolf rayet'
- },
- cataclysmic: {
- class: 'pf-system-effect-cataclysmic',
- name: 'cataclysmic'
- },
- blackHole: {
- class: 'pf-system-effect-blackhole',
- name: 'black hole'
- }
- },
- // system security
- systemSecurity: {
- security: {
- class: 'pf-system-sec'
- },
- 'SH': {
- class: 'pf-system-sec-unknown'
- },
- 'H': {
- class: 'pf-system-sec-highSec'
- },
- 'L': {
- class: 'pf-system-sec-lowSec'
- },
- '0.0': {
- class: 'pf-system-sec-nullSec'
- },
- 'C6': {
- class: 'pf-system-sec-high'
- },
- 'C5': {
- class: 'pf-system-sec-high'
- },
- 'C4': {
- class: 'pf-system-sec-mid'
- },
- 'C3': {
- class: 'pf-system-sec-mid'
- },
- 'C2': {
- class: 'pf-system-sec-low'
- },
- 'C1': {
- class: 'pf-system-sec-low'
- }
- },
- // true sec
- trueSec: {
- '0.0': {
- class: 'pf-system-security-0-0'
- },
- '0.1': {
- class: 'pf-system-security-0-1'
- },
- '0.2': {
- class: 'pf-system-security-0-2'
- },
- '0.3': {
- class: 'pf-system-security-0-3'
- },
- '0.4': {
- class: 'pf-system-security-0-4'
- },
- '0.5': {
- class: 'pf-system-security-0-5'
- },
- '0.6': {
- class: 'pf-system-security-0-6'
- },
- '0.7': {
- class: 'pf-system-security-0-7'
- },
- '0.8': {
- class: 'pf-system-security-0-8'
- },
- '0.9': {
- class: 'pf-system-security-0-9'
- },
- '1.0': {
- class: 'pf-system-security-1-0'
- }
- },
- // system info
- systemInfo: {
- rally: {
- class: 'pf-system-info-rally',
- label: 'rally point'
- }
- },
- // easy-pie-charts
- pieChart: {
- class: 'pf-pie-chart', // class for all pie charts
- pieChartMapCounterClass: 'pf-pie-chart-map-timer' // class for timer chart
- }
- },
- // map scopes
- defaultMapScope: 'wh', // default scope for connection
- // map connection types
- connectionTypes: {
- jumpbridge: {
- cssClass: 'pf-map-connection-jumpbridge',
- paintStyle: {
- dashstyle: '4 2 1 2'
- }
- },
- stargate: {
- cssClass: 'pf-map-connection-stargate',
- paintStyle: {
- dashstyle: '0' // solid line
- }
- },
- wh_eol: {
- cssClass: 'pf-map-connection-wh-eol',
- paintStyle: {
- dashstyle: '0' // solid line
- }
- },
- wh_fresh: {
- cssClass: 'pf-map-connection-wh-fresh',
- paintStyle: {
- dashstyle: '0' // solid line
- }
- },
- wh_reduced: {
- cssClass: 'pf-map-connection-wh-reduced',
- paintStyle: {
- dashstyle: '0' // solid line
- }
- },
- wh_critical: {
- cssClass: 'pf-map-connection-wh-critical',
- paintStyle: {
- dashstyle: '0' // solid line
- }
- },
- frigate: {
- cssClass: 'pf-map-connection-frig',
- paintStyle: {
- dashstyle: '0.99'
- },
- overlays:[
- ['Label',
- {
- label: 'frig',
- cssClass: ['pf-map-connection-overlay', 'frig'].join(' '),
- location: 0.6
- }]
- ]
- },
- preserve_mass: {
- cssClass: 'pf-map-connection-preserve-mass',
- overlays:[
- ['Label',
- {
- label: ' save mass',
- cssClass: ['pf-map-connection-overlay', 'mass'].join(' '),
- location: 0.6
- }]
- ]
- }
- },
- // signature groups
- signatureGroups: {
- 1: {
- name: 'combat site', //*
- label: 'Combat'
- },
- 2: {
- name: 'relic site', //*
- label: 'Relic'
- },
- 3: {
- name: 'data site',
- label: 'Data'
- },
- 4: {
- name: 'gas site',
- label: 'Gas'
- },
- 5: {
- name: 'wormhole',
- label: 'Wormhole'
- },
- 6: {
- name: 'ore site',
- label: 'Ore'
- },
- 7: {
- name: 'ghost',
- label: 'Ghost'
- }
- },
- // frigate wormholes
- frigateWormholes: {
- 1: { // C1
- 1: 'E004 - C1',
- 2: 'L005 - C2',
- 3: 'Z006 - C3',
- 4: 'M001 - C4',
- 5: 'C008 - C5',
- 6: 'G008 - C6',
- 7: 'Q003 - 0.0',
- 8: 'A009 - (shattered)'
- },
- 2: { // C2
- 1: 'E004 - C1',
- 2: 'L005 - C2',
- 3: 'Z006 - C3',
- 4: 'M001 - C4',
- 5: 'C008 - C5',
- 6: 'G008 - C6',
- 7: 'Q003 - 0.0',
- 8: 'A009 - (shattered)'
- },
- 3: { // C3
- 1: 'E004 - C1',
- 2: 'L005 - C2',
- 3: 'Z006 - C3',
- 4: 'M001 - C4',
- 5: 'C008 - C5',
- 6: 'G008 - C6',
- 7: 'Q003 - 0.0',
- 8: 'A009 - (shattered)'
- },
- 4: { // C4
- 1: 'E004 - C1',
- 2: 'L005 - C2',
- 3: 'Z006 - C3',
- 4: 'M001 - C4',
- 5: 'C008 - C5',
- 6: 'G008 - C6',
- 7: 'Q003 - 0.0',
- 8: 'A009 - (shattered)'
- },
- 5: { // C5
- 1: 'E004 - C1',
- 2: 'L005 - C2',
- 3: 'Z006 - C3',
- 4: 'M001 - C4',
- 5: 'C008 - C5',
- 6: 'G008 - C6',
- 7: 'Q003 - 0.0',
- 8: 'A009 - (shattered)'
- },
- 6: { // C6
- 1: 'E004 - C1',
- 2: 'L005 - C2',
- 3: 'Z006 - C3',
- 4: 'M001 - C4',
- 5: 'C008 - C5',
- 6: 'G008 - C6',
- 7: 'Q003 - 0.0',
- 8: 'A009 - (shattered)'
- },
- 13: { // Shattered Wormholes (some of them are static)
- 1: 'E004 - C1',
- 2: 'L005 - C2',
- 3: 'Z006 - C3',
- 4: 'M001 - C4',
- 5: 'C008 - C5',
- 6: 'G008 - C6',
- 7: 'Q003 - 0.0',
- 8: 'A009 - (shattered)'
- }
- },
- // incoming wormholes
- incomingWormholes: {
- 1: 'K162 - C1/2/3 (unknown)',
- 2: 'K162 - C4/5 (dangerous)',
- 3: 'K162 - C6 (deadly)',
- 4: 'K162 - HS',
- 5: 'K162 - LS',
- 6: 'K162 - 0.0',
- 7: 'K162 - Thera'
- }
-
- };
-
- return Config;
-});
diff --git a/public/js/v1.1.5/app/logging.js b/public/js/v1.1.5/app/logging.js
deleted file mode 100644
index 64280fde..00000000
--- a/public/js/v1.1.5/app/logging.js
+++ /dev/null
@@ -1,504 +0,0 @@
-/**
- * logging
- */
-
-define([
- 'jquery',
- 'app/init',
- 'app/util',
- 'bootbox'
-], function($, Init, Util, bootbox) {
-
- 'use strict';
-
- var logData = []; // cache object for all log entries
- var logDataTable = null; // "Datatables" Object
-
- // Morris charts data
- var maxGraphDataCount = 30; // max date entries for a graph
- var chartData = {}; // chart Data object for all Morris Log graphs
-
- var config = {
- dialogDynamicAreaClass: 'pf-dynamic-area', // class for dynamic areas
- logGraphClass: 'pf-log-graph', // class for all log Morris graphs
- tableToolsClass: 'pf-table-tools' // class for table tools
- };
-
- /**
- * get log time string
- * @returns {string}
- */
- var getLogTime = function(){
-
- var serverTime = Util.getServerTime();
-
- var logTime = serverTime.toLocaleTimeString('en-US', { hour12: false });
-
- return logTime;
- };
-
- /**
- * shows the logging dialog
- */
- var showDialog = function(){
-
- // dialog content
-
- var content = $('
');
-
- // content row for log graphs
- var rowElementGraphs = $('
', {
- class: 'row'
- });
-
- content.append(rowElementGraphs);
-
-
-
- var tableHeadline = $('
', {
- text: ' Processes'
- }).prepend( $('', {
- class: ['fa', 'fa-fw', 'fa-lg', 'fa-list-alt'].join(' ')
- }));
-
- // add content Structure to dome before table initialization
- content.append(tableHeadline);
-
- // log table area --------------------------------------------------
- var logTableArea = $('', {
- class: config.dialogDynamicAreaClass
- });
-
- var logTableActionBar = $('
', {
- class: config.tableToolsClass
- });
- logTableArea.append(logTableActionBar);
-
- var logTable = $('
', {
- class: ['compact', 'stripe', 'order-column', 'row-border'].join(' ')
- });
- logTableArea.append(logTable);
-
- content.append(logTableArea);
-
- // init log table
- logDataTable = logTable.DataTable({
- paging: true,
- ordering: true,
- order: [ 1, 'desc' ],
- autoWidth: false,
- hover: false,
- pageLength: 15,
- lengthMenu: [[10, 15, 25, 50, 50], [10, 15, 25, 50, 50]],
- data: logData, // load cached logs (if available)
- language: {
- emptyTable: 'No entries',
- zeroRecords: 'No entries found',
- lengthMenu: 'Show _MENU_ entries',
- info: 'Showing _START_ to _END_ of _TOTAL_ entries'
- },
- columnDefs: [
- {
- targets: 0,
- title: '',
- width: '18px',
- searchable: false,
- class: ['text-center'].join(' '),
- data: 'status'
- },{
- targets: 1,
- title: ' ',
- width: '50px',
- searchable: true,
- class: 'text-right',
- data: 'time'
- },{
- targets: 2,
- title: ' ',
- width: '35px',
- searchable: false,
- class: 'text-right',
- sType: 'html',
- data: 'duration'
- },{
- targets: 3,
- title: 'description',
- searchable: true,
- data: 'description'
- },{
- targets: 4,
- title: 'type',
- width: '40px',
- searchable: true,
- class: ['text-center'].join(' '),
- data: 'type'
- },{
- targets: 5,
- title: 'Prozess-ID ',
- width: '80px',
- searchable: false,
- class: 'text-right',
- data: 'key'
- }
- ]
-
- });
-
- // open dialog
- var logDialog = bootbox.dialog({
- title: 'Task-Manager',
- message: content,
- size: 'large',
- buttons: {
- close: {
- label: 'close',
- className: 'btn-default'
- }
- }
- });
-
- // modal dialog is shown
- logDialog.on('shown.bs.modal', function(e) {
-
- // show Morris graphs ----------------------------------------------------------
-
- // function for chart label formation
- var labelYFormat = function(y){
- return Math.round(y) + 'ms';
- };
-
- for(var key in chartData) {
- if(chartData.hasOwnProperty(key)) {
- // create a chart for each key
-
- var colElementGraph = $('', {
- class: ['col-md-6'].join(' ')
- });
-
-
- // graph element
- var graphElement = $('
', {
- class: config.logGraphClass
- });
-
- var graphArea = $('
', {
- class: config.dialogDynamicAreaClass
- }).append( graphElement );
-
- // headline
- var headline = $('
', {
- text: key
- }).prepend(
- $('', {
- class: ['txt-color', 'txt-color-grayLight'].join(' '),
- text: 'Prozess-ID: '
- })
- );
-
- // show update ping between function calls
- var updateElement = $('', {
- class: ['txt-color', 'txt-color-blue', 'pull-right'].join(' ')
- });
- headline.append(updateElement).append('
');
-
- // show average execution time
- var averageElement = $('', {
- class: 'pull-right'
- });
- headline.append(averageElement);
-
- colElementGraph.append( headline );
- colElementGraph.append( graphArea );
-
- graphArea.showLoadingAnimation();
-
- rowElementGraphs.append( colElementGraph );
-
- // cache DOM Elements that will be updated frequently
- chartData[key].averageElement = averageElement;
- chartData[key].updateElement = updateElement;
-
- chartData[key].graph = Morris.Area({
- element: graphElement,
- data: [],
- xkey: 'x',
- ykeys: ['y'],
- labels: [key],
- units: 'ms',
- parseTime: false,
- ymin: 0,
- yLabelFormat: labelYFormat,
- padding: 10,
- hideHover: true,
- pointSize: 3,
- lineColors: ['#375959'],
- pointFillColors: ['#477372'],
- pointStrokeColors: ['#313335'],
- lineWidth: 2,
- grid: false,
- gridStrokeWidth: 0.3,
- gridTextSize: 9,
- gridTextFamily: 'Oxygen Bold',
- gridTextColor: '#63676a',
- behaveLikeLine: true,
- goals: [],
- goalLineColors: ['#66c84f'],
- smooth: false,
- fillOpacity: 0.3,
- resize: true
- });
-
- graphArea.hideLoadingAnimation();
-
- }
- }
-
- // ------------------------------------------------------------------------------
- // add dataTable buttons (extension)
-
- var buttons = new $.fn.dataTable.Buttons( logDataTable, {
- buttons: [
- {
- extend: 'copy',
- className: 'btn btn-sm btn-default',
- text: ' copy'
- },{
- extend: 'csv',
- className: 'btn btn-sm btn-default',
- text: ' csv'
- }
- ]
- } );
-
- logDataTable.buttons().container().appendTo( $(this).find('.' + config.tableToolsClass));
- });
-
-
- // modal dialog is closed
- logDialog.on('hidden.bs.modal', function(e) {
- // clear memory -> destroy all charts
- for (var key in chartData) {
- if (chartData.hasOwnProperty(key)) {
- chartData[key].graph = null;
- }
- }
- });
-
- // modal dialog before hide
- logDialog.on('hide.bs.modal', function(e) {
-
- // destroy logTable
- logDataTable.destroy(true);
- logDataTable= null;
-
- // remove event -> prevent calling this multiple times
- $(this).off('hide.bs.modal');
- });
-
- };
-
- /**
- * updates the log graph for a log key
- * @param key
- * @param duration
- */
- var updateLogGraph = function(key, duration){
-
- // check if graph data already exist
- if( !(chartData.hasOwnProperty(key))){
- chartData[key] = {};
- chartData[key].data = [];
- chartData[key].graph = null;
- chartData[key].averageElement = null;
- chartData[key].updateElement = null;
- }
-
- // add new value
- chartData[key].data.unshift(duration);
-
- if(chartData[key].data.length > maxGraphDataCount){
- chartData[key].data = chartData[key].data.slice(0, maxGraphDataCount);
- }
-
- function getGraphData(data) {
- var tempChartData = {
- data: [],
- dataSum: 0,
- average: 0
- };
-
- for(var x = 0; x < maxGraphDataCount; x++){
- var value = 0;
- if(data[x]){
- value = data[x];
- tempChartData.dataSum = Number( (tempChartData.dataSum + value).toFixed(2) );
- }
-
- tempChartData.data.push({
- x: x,
- y: value
- });
- }
-
- // calculate average
- tempChartData.average = Number( ( tempChartData.dataSum / data.length ).toFixed(2) );
-
- return tempChartData;
- }
-
- var tempChartData = getGraphData(chartData[key].data);
-
- // add new data to graph (Morris chart) - if is already initialized
- if(chartData[key].graph !== null){
- var avgElement = chartData[key].averageElement;
- var updateElement = chartData[key].updateElement;
-
- var delay = Util.getCurrentTriggerDelay( key, 0 );
-
- if(delay){
- updateElement[0].textContent = ' delay: ' + delay + 'ms ';
- }
-
- // set/change average line
- chartData[key].graph.options.goals = [tempChartData.average];
-
- // change avg. display
- avgElement[0].textContent = 'Avg. ' + tempChartData.average + 'ms';
-
- var avgStatus = getLogStatusByDuration(key, tempChartData.average);
- var avgStatusClass = Util.getLogInfo( avgStatus, 'class' );
-
- //change avg. display class
- if( !avgElement.hasClass(avgStatusClass) ){
- // avg status changed!
- avgElement.removeClass().addClass('pull-right txt-color ' + avgStatusClass);
-
- // change goals line color
- if(avgStatus === 'warning'){
- chartData[key].graph.options.goalLineColors = ['#e28a0d'];
- $(document).setProgramStatus('problem');
- }else{
- chartData[key].graph.options.goalLineColors = ['#5cb85c'];
- }
- }
-
- // set new data and redraw
- chartData[key].graph.setData( tempChartData.data );
- }
-
- return tempChartData.data;
- };
-
- /**
- * get the log "status" by log duration (ms).
- * If duration > warning limit -> show as warning
- * @param logKey
- * @param logDuration
- * @returns {string}
- */
- var getLogStatusByDuration = function(logKey, logDuration){
-
- var logStatus = 'info';
- if( logDuration > Init.timer[logKey].EXECUTION_LIMIT ){
- logStatus = 'warning';
- }
- return logStatus;
- };
-
- /**
- * get the css class for a specific log type
- * @param logType
- * @returns {string}
- */
- var getLogTypeIconClass = function(logType){
-
- var logIconClass = '';
-
- switch(logType){
- case 'client':
- logIconClass = 'fa-user';
- break;
- case 'server':
- logIconClass = 'fa-download';
- break;
- }
-
- return logIconClass;
- };
-
- /**
- * init logging -> set global log event
- */
- var init = function(){
-
- var maxEntries = 150;
-
- // set global logging listener
- $(window).on('pf:log', function(e, logKey, options){
-
- // check required logging information
- if(
- options &&
- options.duration &&
- options.description
- ){
- var logDescription = options.description;
- var logDuration = options.duration;
- var logType = options.type;
-
- // check log status by duration
- var logStatus = getLogStatusByDuration(logKey, logDuration);
-
- var statusClass = Util.getLogInfo( logStatus, 'class' );
-
- var typeIconClass = getLogTypeIconClass(logType);
-
- // update graph data
- updateLogGraph(logKey, logDuration);
-
- var logRowData = {
- status: '',
- time: getLogTime(),
- duration: '' + logDuration + 'ms',
- description: logDescription,
- type: '',
- key: logKey
- };
-
-
- if(logDataTable){
- // add row if dataTable is initialized before new log
- logDataTable.row.add( logRowData ).draw(false);
- }else{
- // add row data to cache
- logData.push(logRowData);
- }
- }
-
- // delete old log entries from table ---------------------------------
- var rowCount = logData.length;
-
- if( rowCount >= maxEntries ){
-
- if(logDataTable){
- logDataTable.rows(0, {order:'index'}).remove().draw(false);
- }else{
- logData.shift();
- }
- }
-
- // cache logs in order to keep previous logs in table after reopening the dialog
- if(logDataTable){
- logData = logDataTable.rows({order:'index'}).data();
- }
-
- });
- };
-
-
- return {
- init: init,
- getLogTime: getLogTime,
- showDialog: showDialog
- };
-});
\ No newline at end of file
diff --git a/public/js/v1.1.5/app/login.js b/public/js/v1.1.5/app/login.js
index 192a289e..30c358b5 100644
--- a/public/js/v1.1.5/app/login.js
+++ b/public/js/v1.1.5/app/login.js
@@ -1,711 +1,16 @@
-/**
- * Main loginPage application
- */
-
-define([
- 'jquery',
- 'app/init',
- 'app/util',
- 'app/render',
- 'blueImpGallery',
- 'bootbox',
- 'lazyload',
- 'app/ui/header',
- 'app/ui/logo',
- 'app/ui/demo_map',
- 'dialog/account_settings',
- 'dialog/notification',
- 'dialog/manual',
- 'dialog/releases',
- 'dialog/credit'
-], function($, Init, Util, Render, Gallery, bootbox) {
-
- 'use strict';
-
- var config = {
- splashOverlayClass: 'pf-splash', // class for "splash" overlay
-
- // header
- headerId: 'pf-landing-top', // id for header
- headerContainerId: 'pf-header-container', // id for header container
- logoContainerId: 'pf-logo-container', // id for main header logo container
- headHeaderMapId: 'pf-header-map', // id for header image (svg animation)
-
- // map bg
- headMapBgId: 'pf-header-map-bg', // id for header background container
- mapNeocomId: 'pf-map-neocom', // id for map "neocom" image
- mapBrowserId: 'pf-map-browser', // id for "browser" image
- mapBgImageId: 'pf-map-bg-image', // id for "background" map image
-
- // navigation
- navigationElementId: 'pf-navbar', // id for navbar element
- navigationLinkManualClass: 'pf-navbar-manual', // class for "manual" trigger link
- navigationLinkLicenseClass: 'pf-navbar-license', // class for "license" trigger link
- navigationVersionLinkClass: 'pf-navbar-version-info', // class for "version information"
-
- // cookie hint
- cookieHintId: 'pf-cookie-hint', // id for "cookie hint" element
-
- // character select
- characterSelectionClass: 'pf-character-selection', // class for character panel wrapper
- characterRowAnimateClass: 'pf-character-row-animate', // class for character panel row during animation
- characterImageWrapperClass: 'pf-character-image-wrapper', // class for image wrapper (animated)
- characterImageInfoClass: 'pf-character-info', // class for character info layer (visible on hover)
- dynamicMessageContainerClass: 'pf-dynamic-message-container', // class for "dynamic" (JS) message container
-
- // gallery
- galleryId: 'pf-gallery', // id for gallery container
- galleryThumbImageClass: 'pf-landing-image-preview', // class for gallery thumb images
- galleryThumbContainerId: 'pf-landing-gallery-thumb-container', // id for gallery thumb images
- galleryCarouselId: 'pf-landing-gallery-carousel', // id for "carousel" element
-
- // server panel
- serverPanelId: 'pf-server-panel', // id for EVE Online server status panel
-
- // animation
- animateElementClass: 'pf-animate-on-visible' // class for elements that will be animated to show
- };
-
- /**
- * set a cookie
- * @param cname
- * @param cvalue
- * @param exdays
- */
- var setCookie = function(cname, cvalue, exdays) {
- var d = new Date();
- d.setTime(d.getTime() + (exdays*24*60*60*1000));
- var expires = 'expires=' + d.toUTCString();
- var path = 'path=' + Util.getDocumentPath();
- document.cookie = cname + '=' + cvalue + '; ' + expires + '; ' + path;
- };
-
- /**
- * get cookie value by name
- * @param cname
- * @returns {*}
- */
- var getCookie = function(cname) {
- var name = cname + '=';
- var ca = document.cookie.split(';');
-
- for(var i = 0; i ')
- .addClass('text-content')
- .attr('imgTitle', obj.title);
-
- var moduleConfig = {
- name: obj.href, // template name
- position: newSlideContent,
- functions: {
- after: function(){
- // element inserted -> load complete
- callback({
- type: 'complete',
- target: newSlideContent[0]
- });
- }
- }
- };
-
- // render HTML file (template)
- var moduleData = {
- id: config.headHeaderMapId,
- bgId: config.headMapBgId,
- neocomId: config.mapNeocomId,
- browserId: config.mapBrowserId,
- mapBgImageId: config.mapBgImageId
- };
-
- Render.showModule(moduleConfig, moduleData);
-
- return newSlideContent[0];
- };
-
- // initialize carousel ------------------------------------------------
- var carousel = new Gallery([
- {
- imgTitle: 'Browser',
- href: 'ui/map',
- type: 'text/html'
- },
- {
- href: 'public/img/landing/responsive.jpg',
- imgTitle: 'Responsive layout',
- type: 'image/jpg',
- thumbnail: ''
- },
- {
- href: 'public/img/landing/pathfinder_1.jpg',
- imgTitle: 'Map view',
- type: 'image/jpg',
- thumbnail: ''
- },
- {
- href: 'public/img/landing/pathfinder_3.jpg',
- imgTitle: 'Map information',
- type: 'image/jpg',
- thumbnail: ''
- },
- {
- href: 'public/img/landing/pathfinder_2.jpg',
- imgTitle: 'System information',
- type: 'image/jpg',
- thumbnail: ''
- }
- ], {
- container: '#' + config.galleryCarouselId,
- carousel: true,
- startSlideshow: false,
- titleProperty: 'imgTitle',
- transitionSpeed: 600,
- slideshowInterval: 5000,
- onopened: function () {
- // Callback function executed when the Gallery has been initialized
- // and the initialization transition has been completed.
- // -> show "demo" map
-
- // set title for first slide
- $( this.options.container ).find( this.options.titleElement).text('Browser view');
-
- $('#' + config.headHeaderMapId).drawDemoMap(function(){
-
- // zoom map SVGs
- $('#' + config.headHeaderMapId + ' svg').velocity({
- scaleX: 0.66,
- scaleY: 0.66
- }, {
- duration: 360
- });
-
- // position map container
- $('#' + config.headHeaderMapId).velocity({
- marginTop: '130px',
- marginLeft: '-50px'
- }, {
- duration: 360,
- complete: function(){
- // show browser
- $('#' + config.mapBrowserId).velocity('transition.slideUpBigIn', {
- duration: 360,
- complete: function(){
- // show neocom
- $('#' + config.mapNeocomId).velocity('transition.slideLeftIn', {
- duration: 180
- });
-
- // show background
- $('#' + config.mapBgImageId).velocity('transition.shrinkIn', {
- duration: 360
- });
-
- // when map is shown -> start carousel looping
- carousel.play();
- }
- });
- }
- });
- });
-
- }
- });
- };
-
- /**
- * get all thumbnail elements
- * @returns {*|jQuery|HTMLElement}
- */
- var getThumbnailElements = function(){
- return $('a[data-gallery="#' + config.galleryId + '"]');
- };
-
- /**
- * init gallery for thumbnail elements
- * @param newElements
- */
- var initGallery = function(newElements){
- if( newElements.length > 0){
- // We have to add ALL thumbnail elements to the gallery!
- // -> even those wthat are invisible (not lazyLoaded) now!
- // -> This is required for "swipe" through all images
- var allThumbLinks = getThumbnailElements();
-
- requirejs(['blueImpGalleryBootstrap'], function() {
- $(newElements).each(function() {
- var borderless = false;
-
- var galleryElement = $('#' + config.galleryId);
- galleryElement.data('useBootstrapModal', !borderless);
- galleryElement.toggleClass('blueimp-gallery-controls', borderless);
-
- $(this).on('click', function(e){
- e.preventDefault();
-
- e = e || window.event;
- var target = e.target || e.srcElement;
- var link = target.src ? target.parentNode : target;
-
- var options = {
- index: link,
- event: e,
- container: '#' + config.galleryId,
- titleProperty: 'description'
- };
-
- new Gallery(allThumbLinks, options);
- });
- });
- });
- }
- };
-
- var initYoutube = function(){
-
- $('.youtube').each(function() {
- // Based on the YouTube ID, we can easily find the thumbnail image
- $(this).css('background-image', 'url(https://i.ytimg.com/vi/' + this.id + '/sddefault.jpg)');
-
- // Overlay the Play icon to make it look like a video player
- $(this).append($('', {'class': 'play'}));
-
- $(document).delegate('#' + this.id, 'click', function() {
- // Create an iFrame with autoplay set to true
- var iFrameUrl = 'https://www.youtube.com/embed/' + this.id + '?autoplay=1&autohide=1';
- if ( $(this).data('params') ){
- iFrameUrl += '&'+$(this).data('params');
- }
-
- // The height and width of the iFrame should be the same as parent
- var iFrame = $('', {
- frameborder: '0',
- src: iFrameUrl,
- width: $(this).width(),
- height: $(this).height(),
- class: 'pricing-big'
- });
-
- // Replace the YouTube thumbnail with YouTube HTML5 Player
- $(this).replaceWith(iFrame);
- });
- });
- };
-
-
- /**
- * init scrollspy for navigation bar
- */
- var initScrollspy = function(){
- // init scrollspy
-
- // show elements that are currently in the viewport
- var showVisibleElements = function(){
- // find all elements that should be animated
- var visibleElements = $('.' + config.animateElementClass).isInViewport();
-
- $(visibleElements).removeClass( config.animateElementClass );
-
- $(visibleElements).velocity('transition.flipXIn', {
- duration: 600,
- stagger: 60,
- delay: 500,
- complete: function(element){
- // show "fade" modules (e.g. ribbons)
- $(element).find('.fade').addClass('in');
-
- // init gallery for "now" visible elements
- var newGalleryElements = $(element).filter('[data-gallery="#' + config.galleryId + '"]');
- initGallery(newGalleryElements);
- },
- visibility: 'visible'
- });
- };
-
- $( window ).scroll(function() {
- // check for new visible elements
- showVisibleElements();
- });
-
- // initial check for visible elements
- showVisibleElements();
-
- // event listener for navigation links
- $('.page-scroll').on('click', function(){
- // get element to scroll
- var anchorTag = $(this).attr('data-anchor');
-
- // scroll to container
- $(anchorTag).velocity('scroll', {
- duration: 300,
- easing: 'swing'
- });
- });
- };
-
- /**
- * get current EVE-Online server status
- * -> show "server panel"
- */
- var initServerStatus = function(){
- $.ajax({
- type: 'POST',
- url: Init.path.getServerStatus,
- dataType: 'json'
- }).done(function(responseData, textStatus, request){
-
- if(responseData.hasOwnProperty('status')){
- var data = responseData.status;
- data.serverPanelId = config.serverPanelId;
-
- var statusClass = '';
- switch(data.serviceStatus.toLowerCase()){
- case 'online': statusClass = 'txt-color-green'; break;
- case 'vip': statusClass = 'txt-color-orange'; break;
- case 'offline': statusClass = 'txt-color-redDarker'; break;
- }
- data.serviceStatus = {
- eve: data.serviceStatus,
- style: statusClass
- };
-
- requirejs(['text!templates/ui/server_panel.html', 'mustache'], function(template, Mustache) {
- var content = Mustache.render(template, data);
- $('#' + config.headerId).prepend(content);
- $('#' + config.serverPanelId).velocity('transition.slideLeftBigIn', {
- duration: 240
- });
- });
- }
-
- }).fail(handleAjaxErrorResponse);
- };
-
- /**
- * load character data from cookie information
- * -> all validation is done server side!
- */
- var initCharacterSelect = function(){
-
- /**
- * init panel animation for an element
- * @param imageWrapperElement
- */
- var initCharacterAnimation = function(imageWrapperElement){
-
- imageWrapperElement.velocity('stop').delay(300).velocity('transition.flipBounceXIn', {
- display: 'inline-block',
- stagger: 60,
- drag: true,
- duration: 600
- });
-
- // Hover effect for character info layer
- imageWrapperElement.hoverIntent(function(e){
- var characterInfoElement = $(this).find('.' + config.characterImageInfoClass);
-
- characterInfoElement.velocity('finish').velocity({
- width: ['100%', [ 400, 15 ] ]
- },{
- easing: 'easeInSine'
- });
- }, function(e){
- var characterInfoElement = $(this).find('.' + config.characterImageInfoClass);
-
- characterInfoElement.velocity('finish').velocity({
- width: 0
- },{
- duration: 150,
- easing: 'easeInOutSine'
- });
- });
- };
-
- // --------------------------------------------------------------------
-
- /**
- * update all character panels -> set CSS class (e.g. after some panels were added/removed,..)
- */
- var updateCharacterPanels = function(){
- var characterRows = $('.' + config.characterSelectionClass + ' .pf-dynamic-area').parent();
- var rowClassIdentifier = ((12 / characterRows.length ) <= 3) ? 3 : (12 / characterRows.length);
- $(characterRows).removeClass().addClass('col-sm-' + rowClassIdentifier);
- };
-
- // --------------------------------------------------------------------
-
- var removeCharacterPanel = function(panelElement){
- $(panelElement).velocity('transition.expandOut', {
- duration: 250,
- complete: function () {
- // lock row for CSS animations while removing...
- $(this).parent().addClass(config.characterRowAnimateClass);
-
- $(this).parent().velocity({
- width: 0
- },{
- easing: 'ease',
- duration: 300,
- complete: function(){
- $(this).remove();
- // reset column CSS classes for all existing panels
- updateCharacterPanels();
- }
- });
- }
- });
- };
- // --------------------------------------------------------------------
-
- // request character data for each character panel
- $('.' + config.characterSelectionClass + ' .pf-dynamic-area').each(function(){
- var characterElement = $(this);
-
- characterElement.showLoadingAnimation();
-
- var requestData = {
- cookie: characterElement.data('cookie')
- };
-
- $.ajax({
- type: 'POST',
- url: Init.path.getCookieCharacterData,
- data: requestData,
- dataType: 'json',
- context: {
- href: characterElement.data('href'),
- cookieName: requestData.cookie,
- characterElement: characterElement
- }
- }).done(function(responseData, textStatus, request){
- var characterElement = this.characterElement;
- characterElement.hideLoadingAnimation();
-
- if(
- responseData.error &&
- responseData.error.length > 0
- ){
- $('.' + config.dynamicMessageContainerClass).showMessage({
- type: responseData.error[0].type,
- title: 'Character verification failed',
- text: responseData.error[0].message
- });
- }
-
- if(responseData.hasOwnProperty('character')){
-
- var data = {
- link: this.href,
- cookieName: this.cookieName,
- character: responseData.character
- };
-
- requirejs(['text!templates/ui/character_panel.html', 'mustache'], function(template, Mustache) {
- var content = Mustache.render(template, data);
- characterElement.html(content);
-
- // show character panel (animation settings)
- initCharacterAnimation(characterElement.find('.' + config.characterImageWrapperClass));
- });
- }else{
- // character data not available -> remove panel
- removeCharacterPanel(this.characterElement);
- }
-
- }).fail(function( jqXHR, status, error) {
- var characterElement = this.characterElement;
- characterElement.hideLoadingAnimation();
-
- // character data not available -> remove panel
- removeCharacterPanel(this.characterElement);
- });
-
- });
- };
-
-
- /**
- * default ajax error handler
- * -> show user notifications
- * @param jqXHR
- * @param status
- * @param error
- */
- var handleAjaxErrorResponse = function(jqXHR, status, error){
-
- var type = status;
- var title = 'Status ' + jqXHR.status + ': ' + error;
- var message = '';
-
- if(jqXHR.responseText){
- var errorObj = $.parseJSON(jqXHR.responseText);
-
- if(
- errorObj.error &&
- errorObj.error.length > 0
- ){
- for(var i = 0; i < errorObj.error.length; i++){
- var errorData = errorObj.error[i];
- type = errorData.type;
- title = 'Status ' + errorData.code + ': ' + errorData.status;
- message = errorData.message;
-
- Util.showNotify({title: title, text: message, type: type});
- }
- }
- }else{
- Util.showNotify({title: title, text: message, type: type});
- }
- };
-
- /**
- * main init "landing" page
- */
- $(function(){
- // set Dialog default config
- Util.initDefaultBootboxConfig();
-
- // show app information in browser console
- Util.showVersionInfo();
-
- // show log off message
- var isLogOut = location.search.split('logout')[1];
- if(isLogOut !== undefined){
-
- // show logout dialog
- var options = {
- buttons: {
- close: {
- label: 'close',
- className: ['btn-default'].join(' ')
- }
- },
- content: {
- icon: 'fa-sign-out',
- class: 'txt-color-warning',
- title: 'Logout',
- headline: 'Logout',
- text: [
- 'For security reasons, you were logged out automatically',
- 'Please log in again'
- ]
- }
- };
-
- $.fn.showNotificationDialog(options);
-
- // change url (remove logout parameter)
- if (history.pushState) {
- history.pushState({}, '', location.protocol + '//' + location.host + location.pathname);
- }
- }
-
- // "Lock" default link action (=> open in new tab)!
- // -> until "gallery" is initialized (=> wait animation complete!)
- getThumbnailElements().on('click', function(e){
- e.preventDefault();
- });
-
- // init "lazy loading" for images
- $('.' + config.galleryThumbImageClass).lazyload({
- threshold : 300
- });
-
- // hide splash loading animation
- $('.' + config.splashOverlayClass).hideSplashOverlay();
-
- // init server status information
- initServerStatus();
-
- initCharacterSelect();
-
- // init page observer
- setPageObserver();
-
- // init carousel
- initCarousel();
-
- // init scrollspy
- // -> after "Carousel"! required for correct "viewport" calculation (Gallery)!
- initScrollspy();
-
- // init youtube videos
- initYoutube();
-
- // draw header logo
- $('#' + config.logoContainerId).drawLogo(function(){
- // init header animation
- $('#' + config.headerContainerId).initHeader(function(){
-
- });
- }, false);
-
- });
-
-
-});
\ No newline at end of file
+!function(t,e){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=t.document?e(t,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return e(t)}:e(t)}("undefined"!=typeof window?window:this,function(t,e){"use strict";function n(t,e){e=e||J;var n=e.createElement("script");n.text=t,e.head.appendChild(n).parentNode.removeChild(n)}function i(t){var e=!!t&&"length"in t&&t.length,n=ht.type(t);return"function"===n||ht.isWindow(t)?!1:"array"===n||0===e||"number"==typeof e&&e>0&&e-1 in t}function o(t,e,n){if(ht.isFunction(e))return ht.grep(t,function(t,i){return!!e.call(t,i,t)!==n});if(e.nodeType)return ht.grep(t,function(t){return t===e!==n});if("string"==typeof e){if(xt.test(e))return ht.filter(e,t,n);e=ht.filter(e,t)}return ht.grep(t,function(t){return ot.call(e,t)>-1!==n&&1===t.nodeType})}function r(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}function a(t){var e={};return ht.each(t.match(Et)||[],function(t,n){e[n]=!0}),e}function s(t){return t}function l(t){throw t}function c(t,e,n){var i;try{t&&ht.isFunction(i=t.promise)?i.call(t).done(e).fail(n):t&&ht.isFunction(i=t.then)?i.call(t,e,n):e.call(void 0,t)}catch(t){n.call(void 0,t)}}function u(){J.removeEventListener("DOMContentLoaded",u),t.removeEventListener("load",u),ht.ready()}function d(){this.expando=ht.expando+d.uid++}function h(t,e,n){var i;if(void 0===n&&1===t.nodeType)if(i="data-"+e.replace(Nt,"-$&").toLowerCase(),n=t.getAttribute(i),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:Rt.test(n)?JSON.parse(n):n}catch(o){}Mt.set(t,e,n)}else n=void 0;return n}function f(t,e,n,i){var o,r=1,a=20,s=i?function(){return i.cur()}:function(){return ht.css(t,e,"")},l=s(),c=n&&n[3]||(ht.cssNumber[e]?"":"px"),u=(ht.cssNumber[e]||"px"!==c&&+l)&&jt.exec(ht.css(t,e));if(u&&u[3]!==c){c=c||u[3],n=n||[],u=+l||1;do r=r||".5",u/=r,ht.style(t,e,u+c);while(r!==(r=s()/l)&&1!==r&&--a)}return n&&(u=+u||+l||0,o=n[1]?u+(n[1]+1)*n[2]:+n[2],i&&(i.unit=c,i.start=u,i.end=o)),o}function p(t){var e,n=t.ownerDocument,i=t.nodeName,o=Ht[i];return o?o:(e=n.body.appendChild(n.createElement(i)),o=ht.css(e,"display"),e.parentNode.removeChild(e),"none"===o&&(o="block"),Ht[i]=o,o)}function m(t,e){for(var n,i,o=[],r=0,a=t.length;a>r;r++)i=t[r],i.style&&(n=i.style.display,e?("none"===n&&(o[r]=$t.get(i,"display")||null,o[r]||(i.style.display="")),""===i.style.display&&Bt(i)&&(o[r]=p(i))):"none"!==n&&(o[r]="none",$t.set(i,"display",n)));for(r=0;a>r;r++)null!=o[r]&&(t[r].style.display=o[r]);return t}function g(t,e){var n="undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e||"*"):"undefined"!=typeof t.querySelectorAll?t.querySelectorAll(e||"*"):[];return void 0===e||e&&ht.nodeName(t,e)?ht.merge([t],n):n}function v(t,e){for(var n=0,i=t.length;i>n;n++)$t.set(t[n],"globalEval",!e||$t.get(e[n],"globalEval"))}function y(t,e,n,i,o){for(var r,a,s,l,c,u,d=e.createDocumentFragment(),h=[],f=0,p=t.length;p>f;f++)if(r=t[f],r||0===r)if("object"===ht.type(r))ht.merge(h,r.nodeType?[r]:r);else if(Yt.test(r)){a=a||d.appendChild(e.createElement("div")),s=(Vt.exec(r)||["",""])[1].toLowerCase(),l=zt[s]||zt._default,a.innerHTML=l[1]+ht.htmlPrefilter(r)+l[2],u=l[0];for(;u--;)a=a.lastChild;ht.merge(h,a.childNodes),a=d.firstChild,a.textContent=""}else h.push(e.createTextNode(r));d.textContent="",f=0;for(;r=h[f++];)if(i&&ht.inArray(r,i)>-1)o&&o.push(r);else if(c=ht.contains(r.ownerDocument,r),a=g(d.appendChild(r),"script"),c&&v(a),n){u=0;for(;r=a[u++];)Wt.test(r.type||"")&&n.push(r)}return d}function b(){return!0}function w(){return!1}function C(){try{return J.activeElement}catch(t){}}function x(t,e,n,i,o,r){var a,s;if("object"==typeof e){"string"!=typeof n&&(i=i||n,n=void 0);for(s in e)x(t,s,n,i,e[s],r);return t}if(null==i&&null==o?(o=n,i=n=void 0):null==o&&("string"==typeof n?(o=i,i=void 0):(o=i,i=n,n=void 0)),o===!1)o=w;else if(!o)return t;return 1===r&&(a=o,o=function(t){return ht().off(t),a.apply(this,arguments)},o.guid=a.guid||(a.guid=ht.guid++)),t.each(function(){ht.event.add(this,e,o,i,n)})}function S(t,e){return ht.nodeName(t,"table")&&ht.nodeName(11!==e.nodeType?e:e.firstChild,"tr")?t.getElementsByTagName("tbody")[0]||t:t}function T(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function _(t){var e=ee.exec(t.type);return e?t.type=e[1]:t.removeAttribute("type"),t}function k(t,e){var n,i,o,r,a,s,l,c;if(1===e.nodeType){if($t.hasData(t)&&(r=$t.access(t),a=$t.set(e,r),c=r.events)){delete a.handle,a.events={};for(o in c)for(n=0,i=c[o].length;i>n;n++)ht.event.add(e,o,c[o][n])}Mt.hasData(t)&&(s=Mt.access(t),l=ht.extend({},s),Mt.set(e,l))}}function D(t,e){var n=e.nodeName.toLowerCase();"input"===n&&qt.test(t.type)?e.checked=t.checked:"input"!==n&&"textarea"!==n||(e.defaultValue=t.defaultValue)}function E(t,e,i,o){e=nt.apply([],e);var r,a,s,l,c,u,d=0,h=t.length,f=h-1,p=e[0],m=ht.isFunction(p);if(m||h>1&&"string"==typeof p&&!ut.checkClone&&te.test(p))return t.each(function(n){var r=t.eq(n);m&&(e[0]=p.call(this,n,r.html())),E(r,e,i,o)});if(h&&(r=y(e,t[0].ownerDocument,!1,t,o),a=r.firstChild,1===r.childNodes.length&&(r=a),a||o)){for(s=ht.map(g(r,"script"),T),l=s.length;h>d;d++)c=r,d!==f&&(c=ht.clone(c,!0,!0),l&&ht.merge(s,g(c,"script"))),i.call(t[d],c,d);if(l)for(u=s[s.length-1].ownerDocument,ht.map(s,_),d=0;l>d;d++)c=s[d],Wt.test(c.type||"")&&!$t.access(c,"globalEval")&&ht.contains(u,c)&&(c.src?ht._evalUrl&&ht._evalUrl(c.src):n(c.textContent.replace(ne,""),u))}return t}function O(t,e,n){for(var i,o=e?ht.filter(e,t):t,r=0;null!=(i=o[r]);r++)n||1!==i.nodeType||ht.cleanData(g(i)),i.parentNode&&(n&&ht.contains(i.ownerDocument,i)&&v(g(i,"script")),i.parentNode.removeChild(i));return t}function I(t,e,n){var i,o,r,a,s=t.style;return n=n||re(t),n&&(a=n.getPropertyValue(e)||n[e],""!==a||ht.contains(t.ownerDocument,t)||(a=ht.style(t,e)),!ut.pixelMarginRight()&&oe.test(a)&&ie.test(e)&&(i=s.width,o=s.minWidth,r=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=i,s.minWidth=o,s.maxWidth=r)),void 0!==a?a+"":a}function A(t,e){return{get:function(){return t()?void delete this.get:(this.get=e).apply(this,arguments)}}}function P(t){if(t in ue)return t;for(var e=t[0].toUpperCase()+t.slice(1),n=ce.length;n--;)if(t=ce[n]+e,t in ue)return t}function $(t,e,n){var i=jt.exec(e);return i?Math.max(0,i[2]-(n||0))+(i[3]||"px"):e}function M(t,e,n,i,o){for(var r=n===(i?"border":"content")?4:"width"===e?1:0,a=0;4>r;r+=2)"margin"===n&&(a+=ht.css(t,n+Ft[r],!0,o)),i?("content"===n&&(a-=ht.css(t,"padding"+Ft[r],!0,o)),"margin"!==n&&(a-=ht.css(t,"border"+Ft[r]+"Width",!0,o))):(a+=ht.css(t,"padding"+Ft[r],!0,o),"padding"!==n&&(a+=ht.css(t,"border"+Ft[r]+"Width",!0,o)));return a}function R(t,e,n){var i,o=!0,r=re(t),a="border-box"===ht.css(t,"boxSizing",!1,r);if(t.getClientRects().length&&(i=t.getBoundingClientRect()[e]),0>=i||null==i){if(i=I(t,e,r),(0>i||null==i)&&(i=t.style[e]),oe.test(i))return i;o=a&&(ut.boxSizingReliable()||i===t.style[e]),i=parseFloat(i)||0}return i+M(t,e,n||(a?"border":"content"),o,r)+"px"}function N(t,e,n,i,o){return new N.prototype.init(t,e,n,i,o)}function L(){he&&(t.requestAnimationFrame(L),ht.fx.tick())}function j(){return t.setTimeout(function(){de=void 0}),de=ht.now()}function F(t,e){var n,i=0,o={height:t};for(e=e?1:0;4>i;i+=2-e)n=Ft[i],o["margin"+n]=o["padding"+n]=t;return e&&(o.opacity=o.width=t),o}function B(t,e,n){for(var i,o=(q.tweeners[e]||[]).concat(q.tweeners["*"]),r=0,a=o.length;a>r;r++)if(i=o[r].call(n,e,t))return i}function U(t,e,n){var i,o,r,a,s,l,c,u,d="width"in e||"height"in e,h=this,f={},p=t.style,g=t.nodeType&&Bt(t),v=$t.get(t,"fxshow");n.queue||(a=ht._queueHooks(t,"fx"),null==a.unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,h.always(function(){h.always(function(){a.unqueued--,ht.queue(t,"fx").length||a.empty.fire()})}));for(i in e)if(o=e[i],fe.test(o)){if(delete e[i],r=r||"toggle"===o,o===(g?"hide":"show")){if("show"!==o||!v||void 0===v[i])continue;g=!0}f[i]=v&&v[i]||ht.style(t,i)}if(l=!ht.isEmptyObject(e),l||!ht.isEmptyObject(f)){d&&1===t.nodeType&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],c=v&&v.display,null==c&&(c=$t.get(t,"display")),u=ht.css(t,"display"),"none"===u&&(c?u=c:(m([t],!0),c=t.style.display||c,u=ht.css(t,"display"),m([t]))),("inline"===u||"inline-block"===u&&null!=c)&&"none"===ht.css(t,"float")&&(l||(h.done(function(){p.display=c}),null==c&&(u=p.display,c="none"===u?"":u)),p.display="inline-block")),n.overflow&&(p.overflow="hidden",h.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]})),l=!1;for(i in f)l||(v?"hidden"in v&&(g=v.hidden):v=$t.access(t,"fxshow",{display:c}),r&&(v.hidden=!g),g&&m([t],!0),h.done(function(){g||m([t]),$t.remove(t,"fxshow");for(i in f)ht.style(t,i,f[i])})),l=B(g?v[i]:0,i,h),i in v||(v[i]=l.start,g&&(l.end=l.start,l.start=0))}}function H(t,e){var n,i,o,r,a;for(n in t)if(i=ht.camelCase(n),o=e[i],r=t[n],ht.isArray(r)&&(o=r[1],r=t[n]=r[0]),n!==i&&(t[i]=r,delete t[n]),a=ht.cssHooks[i],a&&"expand"in a){r=a.expand(r),delete t[i];for(n in r)n in t||(t[n]=r[n],e[n]=o)}else e[i]=o}function q(t,e,n){var i,o,r=0,a=q.prefilters.length,s=ht.Deferred().always(function(){delete l.elem}),l=function(){if(o)return!1;for(var e=de||j(),n=Math.max(0,c.startTime+c.duration-e),i=n/c.duration||0,r=1-i,a=0,l=c.tweens.length;l>a;a++)c.tweens[a].run(r);return s.notifyWith(t,[c,r,n]),1>r&&l?n:(s.resolveWith(t,[c]),!1)},c=s.promise({elem:t,props:ht.extend({},e),opts:ht.extend(!0,{specialEasing:{},easing:ht.easing._default},n),originalProperties:e,originalOptions:n,startTime:de||j(),duration:n.duration,tweens:[],createTween:function(e,n){var i=ht.Tween(t,c.opts,e,n,c.opts.specialEasing[e]||c.opts.easing);return c.tweens.push(i),i},stop:function(e){var n=0,i=e?c.tweens.length:0;if(o)return this;for(o=!0;i>n;n++)c.tweens[n].run(1);return e?(s.notifyWith(t,[c,1,0]),s.resolveWith(t,[c,e])):s.rejectWith(t,[c,e]),this}}),u=c.props;for(H(u,c.opts.specialEasing);a>r;r++)if(i=q.prefilters[r].call(c,t,u,c.opts))return ht.isFunction(i.stop)&&(ht._queueHooks(c.elem,c.opts.queue).stop=ht.proxy(i.stop,i)),i;return ht.map(u,B,c),ht.isFunction(c.opts.start)&&c.opts.start.call(t,c),ht.fx.timer(ht.extend(l,{elem:t,anim:c,queue:c.opts.queue})),c.progress(c.opts.progress).done(c.opts.done,c.opts.complete).fail(c.opts.fail).always(c.opts.always)}function V(t){return t.getAttribute&&t.getAttribute("class")||""}function W(t,e,n,i){var o;if(ht.isArray(e))ht.each(e,function(e,o){n||ke.test(t)?i(t,o):W(t+"["+("object"==typeof o&&null!=o?e:"")+"]",o,n,i)});else if(n||"object"!==ht.type(e))i(t,e);else for(o in e)W(t+"["+o+"]",e[o],n,i)}function z(t){return function(e,n){"string"!=typeof e&&(n=e,e="*");var i,o=0,r=e.toLowerCase().match(Et)||[];if(ht.isFunction(n))for(;i=r[o++];)"+"===i[0]?(i=i.slice(1)||"*",(t[i]=t[i]||[]).unshift(n)):(t[i]=t[i]||[]).push(n)}}function Y(t,e,n,i){function o(s){var l;return r[s]=!0,ht.each(t[s]||[],function(t,s){var c=s(e,n,i);return"string"!=typeof c||a||r[c]?a?!(l=c):void 0:(e.dataTypes.unshift(c),o(c),!1)}),l}var r={},a=t===je;return o(e.dataTypes[0])||!r["*"]&&o("*")}function X(t,e){var n,i,o=ht.ajaxSettings.flatOptions||{};for(n in e)void 0!==e[n]&&((o[n]?t:i||(i={}))[n]=e[n]);return i&&ht.extend(!0,t,i),t}function Q(t,e,n){for(var i,o,r,a,s=t.contents,l=t.dataTypes;"*"===l[0];)l.shift(),void 0===i&&(i=t.mimeType||e.getResponseHeader("Content-Type"));if(i)for(o in s)if(s[o]&&s[o].test(i)){l.unshift(o);break}if(l[0]in n)r=l[0];else{for(o in n){if(!l[0]||t.converters[o+" "+l[0]]){r=o;break}a||(a=o)}r=r||a}return r?(r!==l[0]&&l.unshift(r),n[r]):void 0}function K(t,e,n,i){var o,r,a,s,l,c={},u=t.dataTypes.slice();if(u[1])for(a in t.converters)c[a.toLowerCase()]=t.converters[a];r=u.shift();for(;r;)if(t.responseFields[r]&&(n[t.responseFields[r]]=e),!l&&i&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),l=r,r=u.shift())if("*"===r)r=l;else if("*"!==l&&l!==r){if(a=c[l+" "+r]||c["* "+r],!a)for(o in c)if(s=o.split(" "),s[1]===r&&(a=c[l+" "+s[0]]||c["* "+s[0]])){a===!0?a=c[o]:c[o]!==!0&&(r=s[0],u.unshift(s[1]));break}if(a!==!0)if(a&&t["throws"])e=a(e);else try{e=a(e)}catch(d){return{state:"parsererror",error:a?d:"No conversion from "+l+" to "+r}}}return{state:"success",data:e}}function G(t){return ht.isWindow(t)?t:9===t.nodeType&&t.defaultView}var Z=[],J=t.document,tt=Object.getPrototypeOf,et=Z.slice,nt=Z.concat,it=Z.push,ot=Z.indexOf,rt={},at=rt.toString,st=rt.hasOwnProperty,lt=st.toString,ct=lt.call(Object),ut={},dt="3.0.0",ht=function(t,e){return new ht.fn.init(t,e)},ft=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,pt=/^-ms-/,mt=/-([a-z])/g,gt=function(t,e){return e.toUpperCase()};ht.fn=ht.prototype={jquery:dt,constructor:ht,length:0,toArray:function(){return et.call(this)},get:function(t){return null!=t?0>t?this[t+this.length]:this[t]:et.call(this)},pushStack:function(t){var e=ht.merge(this.constructor(),t);return e.prevObject=this,e},each:function(t){return ht.each(this,t)},map:function(t){return this.pushStack(ht.map(this,function(e,n){return t.call(e,n,e)}))},slice:function(){return this.pushStack(et.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(t){var e=this.length,n=+t+(0>t?e:0);return this.pushStack(n>=0&&e>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:it,sort:Z.sort,splice:Z.splice},ht.extend=ht.fn.extend=function(){var t,e,n,i,o,r,a=arguments[0]||{},s=1,l=arguments.length,c=!1;for("boolean"==typeof a&&(c=a,a=arguments[s]||{},s++),"object"==typeof a||ht.isFunction(a)||(a={}),s===l&&(a=this,s--);l>s;s++)if(null!=(t=arguments[s]))for(e in t)n=a[e],i=t[e],a!==i&&(c&&i&&(ht.isPlainObject(i)||(o=ht.isArray(i)))?(o?(o=!1,r=n&&ht.isArray(n)?n:[]):r=n&&ht.isPlainObject(n)?n:{},a[e]=ht.extend(c,r,i)):void 0!==i&&(a[e]=i));return a},ht.extend({expando:"jQuery"+(dt+Math.random()).replace(/\D/g,""),isReady:!0,error:function(t){throw new Error(t)},noop:function(){},isFunction:function(t){return"function"===ht.type(t)},isArray:Array.isArray,isWindow:function(t){return null!=t&&t===t.window},isNumeric:function(t){var e=ht.type(t);return("number"===e||"string"===e)&&!isNaN(t-parseFloat(t))},isPlainObject:function(t){var e,n;return t&&"[object Object]"===at.call(t)?(e=tt(t))?(n=st.call(e,"constructor")&&e.constructor,"function"==typeof n&<.call(n)===ct):!0:!1},isEmptyObject:function(t){var e;for(e in t)return!1;return!0},type:function(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?rt[at.call(t)]||"object":typeof t},globalEval:function(t){n(t)},camelCase:function(t){return t.replace(pt,"ms-").replace(mt,gt)},nodeName:function(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()},each:function(t,e){var n,o=0;if(i(t))for(n=t.length;n>o&&e.call(t[o],o,t[o])!==!1;o++);else for(o in t)if(e.call(t[o],o,t[o])===!1)break;return t},trim:function(t){return null==t?"":(t+"").replace(ft,"")},makeArray:function(t,e){var n=e||[];return null!=t&&(i(Object(t))?ht.merge(n,"string"==typeof t?[t]:t):it.call(n,t)),n},inArray:function(t,e,n){return null==e?-1:ot.call(e,t,n)},merge:function(t,e){for(var n=+e.length,i=0,o=t.length;n>i;i++)t[o++]=e[i];return t.length=o,t},grep:function(t,e,n){for(var i,o=[],r=0,a=t.length,s=!n;a>r;r++)i=!e(t[r],r),i!==s&&o.push(t[r]);return o},map:function(t,e,n){var o,r,a=0,s=[];if(i(t))for(o=t.length;o>a;a++)r=e(t[a],a,n),null!=r&&s.push(r);else for(a in t)r=e(t[a],a,n),null!=r&&s.push(r);return nt.apply([],s)},guid:1,proxy:function(t,e){var n,i,o;return"string"==typeof e&&(n=t[e],e=t,t=n),ht.isFunction(t)?(i=et.call(arguments,2),o=function(){return t.apply(e||this,i.concat(et.call(arguments)))},o.guid=t.guid=t.guid||ht.guid++,o):void 0},now:Date.now,support:ut}),"function"==typeof Symbol&&(ht.fn[Symbol.iterator]=Z[Symbol.iterator]),ht.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(t,e){rt["[object "+e+"]"]=e.toLowerCase()});var vt=function(t){function e(t,e,n,i){var o,r,a,s,l,c,u,h=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!i&&((e?e.ownerDocument||e:U)!==$&&P(e),e=e||$,R)){if(11!==p&&(l=vt.exec(t)))if(o=l[1]){if(9===p){if(!(a=e.getElementById(o)))return n;if(a.id===o)return n.push(a),n}else if(h&&(a=h.getElementById(o))&&F(e,a)&&a.id===o)return n.push(a),n}else{if(l[2])return Z.apply(n,e.getElementsByTagName(t)),n;if((o=l[3])&&x.getElementsByClassName&&e.getElementsByClassName)return Z.apply(n,e.getElementsByClassName(o)),n}if(x.qsa&&!z[t+" "]&&(!N||!N.test(t))){if(1!==p)h=e,u=t;else if("object"!==e.nodeName.toLowerCase()){(s=e.getAttribute("id"))?s=s.replace(Ct,xt):e.setAttribute("id",s=B),c=k(t),r=c.length;for(;r--;)c[r]="#"+s+" "+f(c[r]);u=c.join(","),h=yt.test(t)&&d(e.parentNode)||e}if(u)try{return Z.apply(n,h.querySelectorAll(u)),n}catch(m){}finally{s===B&&e.removeAttribute("id")}}}return E(t.replace(st,"$1"),e,n,i)}function n(){function t(n,i){return e.push(n+" ")>S.cacheLength&&delete t[e.shift()],t[n+" "]=i}var e=[];return t}function i(t){return t[B]=!0,t}function o(t){var e=$.createElement("fieldset");try{return!!t(e)}catch(n){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function r(t,e){for(var n=t.split("|"),i=n.length;i--;)S.attrHandle[n[i]]=e}function a(t,e){var n=e&&t,i=n&&1===t.nodeType&&1===e.nodeType&&t.sourceIndex-e.sourceIndex;if(i)return i;if(n)for(;n=n.nextSibling;)if(n===e)return-1;return t?1:-1}function s(t){return function(e){var n=e.nodeName.toLowerCase();return"input"===n&&e.type===t}}function l(t){return function(e){var n=e.nodeName.toLowerCase();return("input"===n||"button"===n)&&e.type===t}}function c(t){return function(e){return"label"in e&&e.disabled===t||"form"in e&&e.disabled===t||"form"in e&&e.disabled===!1&&(e.isDisabled===t||e.isDisabled!==!t&&("label"in e||!Tt(e))!==t)}}function u(t){return i(function(e){return e=+e,i(function(n,i){for(var o,r=t([],n.length,e),a=r.length;a--;)n[o=r[a]]&&(n[o]=!(i[o]=n[o]))})})}function d(t){return t&&"undefined"!=typeof t.getElementsByTagName&&t}function h(){}function f(t){for(var e=0,n=t.length,i="";n>e;e++)i+=t[e].value;return i}function p(t,e,n){var i=e.dir,o=e.next,r=o||i,a=n&&"parentNode"===r,s=q++;return e.first?function(e,n,o){for(;e=e[i];)if(1===e.nodeType||a)return t(e,n,o)}:function(e,n,l){var c,u,d,h=[H,s];if(l){for(;e=e[i];)if((1===e.nodeType||a)&&t(e,n,l))return!0}else for(;e=e[i];)if(1===e.nodeType||a)if(d=e[B]||(e[B]={}),u=d[e.uniqueID]||(d[e.uniqueID]={}),o&&o===e.nodeName.toLowerCase())e=e[i]||e;else{if((c=u[r])&&c[0]===H&&c[1]===s)return h[2]=c[2];if(u[r]=h,h[2]=t(e,n,l))return!0}}}function m(t){return t.length>1?function(e,n,i){for(var o=t.length;o--;)if(!t[o](e,n,i))return!1;return!0}:t[0]}function g(t,n,i){for(var o=0,r=n.length;r>o;o++)e(t,n[o],i);return i}function v(t,e,n,i,o){for(var r,a=[],s=0,l=t.length,c=null!=e;l>s;s++)(r=t[s])&&(n&&!n(r,i,o)||(a.push(r),c&&e.push(s)));return a}function y(t,e,n,o,r,a){return o&&!o[B]&&(o=y(o)),r&&!r[B]&&(r=y(r,a)),i(function(i,a,s,l){var c,u,d,h=[],f=[],p=a.length,m=i||g(e||"*",s.nodeType?[s]:s,[]),y=!t||!i&&e?m:v(m,h,t,s,l),b=n?r||(i?t:p||o)?[]:a:y;if(n&&n(y,b,s,l),o){c=v(b,f),o(c,[],s,l),u=c.length;for(;u--;)(d=c[u])&&(b[f[u]]=!(y[f[u]]=d))}if(i){if(r||t){if(r){c=[],u=b.length;for(;u--;)(d=b[u])&&c.push(y[u]=d);r(null,b=[],c,l)}u=b.length;for(;u--;)(d=b[u])&&(c=r?tt(i,d):h[u])>-1&&(i[c]=!(a[c]=d))}}else b=v(b===a?b.splice(p,b.length):b),r?r(null,a,b,l):Z.apply(a,b)})}function b(t){for(var e,n,i,o=t.length,r=S.relative[t[0].type],a=r||S.relative[" "],s=r?1:0,l=p(function(t){return t===e},a,!0),c=p(function(t){return tt(e,t)>-1},a,!0),u=[function(t,n,i){var o=!r&&(i||n!==O)||((e=n).nodeType?l(t,n,i):c(t,n,i));return e=null,o}];o>s;s++)if(n=S.relative[t[s].type])u=[p(m(u),n)];else{if(n=S.filter[t[s].type].apply(null,t[s].matches),n[B]){for(i=++s;o>i&&!S.relative[t[i].type];i++);return y(s>1&&m(u),s>1&&f(t.slice(0,s-1).concat({value:" "===t[s-2].type?"*":""})).replace(st,"$1"),n,i>s&&b(t.slice(s,i)),o>i&&b(t=t.slice(i)),o>i&&f(t))}u.push(n)}return m(u)}function w(t,n){var o=n.length>0,r=t.length>0,a=function(i,a,s,l,c){var u,d,h,f=0,p="0",m=i&&[],g=[],y=O,b=i||r&&S.find.TAG("*",c),w=H+=null==y?1:Math.random()||.1,C=b.length;for(c&&(O=a===$||a||c);p!==C&&null!=(u=b[p]);p++){if(r&&u){d=0,a||u.ownerDocument===$||(P(u),s=!R);for(;h=t[d++];)if(h(u,a||$,s)){l.push(u);break}c&&(H=w)}o&&((u=!h&&u)&&f--,i&&m.push(u))}if(f+=p,o&&p!==f){d=0;for(;h=n[d++];)h(m,g,a,s);if(i){if(f>0)for(;p--;)m[p]||g[p]||(g[p]=K.call(l));g=v(g)}Z.apply(l,g),c&&!i&&g.length>0&&f+n.length>1&&e.uniqueSort(l)}return c&&(H=w,O=y),m};return o?i(a):a}var C,x,S,T,_,k,D,E,O,I,A,P,$,M,R,N,L,j,F,B="sizzle"+1*new Date,U=t.document,H=0,q=0,V=n(),W=n(),z=n(),Y=function(t,e){return t===e&&(A=!0),0},X={}.hasOwnProperty,Q=[],K=Q.pop,G=Q.push,Z=Q.push,J=Q.slice,tt=function(t,e){for(var n=0,i=t.length;i>n;n++)if(t[n]===e)return n;return-1},et="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",nt="[\\x20\\t\\r\\n\\f]",it="(?:\\\\.|[\\w-]|[^\x00-\\xa0])+",ot="\\["+nt+"*("+it+")(?:"+nt+"*([*^$|!~]?=)"+nt+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+it+"))|)"+nt+"*\\]",rt=":("+it+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ot+")*)|.*)\\)|)",at=new RegExp(nt+"+","g"),st=new RegExp("^"+nt+"+|((?:^|[^\\\\])(?:\\\\.)*)"+nt+"+$","g"),lt=new RegExp("^"+nt+"*,"+nt+"*"),ct=new RegExp("^"+nt+"*([>+~]|"+nt+")"+nt+"*"),ut=new RegExp("="+nt+"*([^\\]'\"]*?)"+nt+"*\\]","g"),dt=new RegExp(rt),ht=new RegExp("^"+it+"$"),ft={ID:new RegExp("^#("+it+")"),CLASS:new RegExp("^\\.("+it+")"),TAG:new RegExp("^("+it+"|[*])"),ATTR:new RegExp("^"+ot),PSEUDO:new RegExp("^"+rt),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+nt+"*(even|odd|(([+-]|)(\\d*)n|)"+nt+"*(?:([+-]|)"+nt+"*(\\d+)|))"+nt+"*\\)|)","i"),bool:new RegExp("^(?:"+et+")$","i"),needsContext:new RegExp("^"+nt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+nt+"*((?:-\\d)?\\d*)"+nt+"*\\)|)(?=[^-]|$)","i")},pt=/^(?:input|select|textarea|button)$/i,mt=/^h\d$/i,gt=/^[^{]+\{\s*\[native \w/,vt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,yt=/[+~]/,bt=new RegExp("\\\\([\\da-f]{1,6}"+nt+"?|("+nt+")|.)","ig"),wt=function(t,e,n){var i="0x"+e-65536;return i!==i||n?e:0>i?String.fromCharCode(i+65536):String.fromCharCode(i>>10|55296,1023&i|56320)},Ct=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,xt=function(t,e){return e?"\x00"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t},St=function(){P()},Tt=p(function(t){return t.disabled===!0},{dir:"parentNode",next:"legend"});try{Z.apply(Q=J.call(U.childNodes),U.childNodes),Q[U.childNodes.length].nodeType}catch(_t){Z={apply:Q.length?function(t,e){G.apply(t,J.call(e))}:function(t,e){for(var n=t.length,i=0;t[n++]=e[i++];);t.length=n-1}}}x=e.support={},_=e.isXML=function(t){var e=t&&(t.ownerDocument||t).documentElement;return e?"HTML"!==e.nodeName:!1},P=e.setDocument=function(t){var e,n,i=t?t.ownerDocument||t:U;return i!==$&&9===i.nodeType&&i.documentElement?($=i,M=$.documentElement,R=!_($),U!==$&&(n=$.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",St,!1):n.attachEvent&&n.attachEvent("onunload",St)),x.attributes=o(function(t){return t.className="i",!t.getAttribute("className")}),x.getElementsByTagName=o(function(t){return t.appendChild($.createComment("")),!t.getElementsByTagName("*").length}),x.getElementsByClassName=gt.test($.getElementsByClassName),x.getById=o(function(t){return M.appendChild(t).id=B,!$.getElementsByName||!$.getElementsByName(B).length}),x.getById?(S.find.ID=function(t,e){if("undefined"!=typeof e.getElementById&&R){var n=e.getElementById(t);return n?[n]:[]}},S.filter.ID=function(t){var e=t.replace(bt,wt);return function(t){return t.getAttribute("id")===e}}):(delete S.find.ID,S.filter.ID=function(t){var e=t.replace(bt,wt);return function(t){var n="undefined"!=typeof t.getAttributeNode&&t.getAttributeNode("id");return n&&n.value===e}}),S.find.TAG=x.getElementsByTagName?function(t,e){return"undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t):x.qsa?e.querySelectorAll(t):void 0}:function(t,e){var n,i=[],o=0,r=e.getElementsByTagName(t);if("*"===t){for(;n=r[o++];)1===n.nodeType&&i.push(n);return i}return r},S.find.CLASS=x.getElementsByClassName&&function(t,e){return"undefined"!=typeof e.getElementsByClassName&&R?e.getElementsByClassName(t):void 0},L=[],N=[],(x.qsa=gt.test($.querySelectorAll))&&(o(function(t){M.appendChild(t).innerHTML="",t.querySelectorAll("[msallowcapture^='']").length&&N.push("[*^$]="+nt+"*(?:''|\"\")"),t.querySelectorAll("[selected]").length||N.push("\\["+nt+"*(?:value|"+et+")"),t.querySelectorAll("[id~="+B+"-]").length||N.push("~="),t.querySelectorAll(":checked").length||N.push(":checked"),t.querySelectorAll("a#"+B+"+*").length||N.push(".#.+[+~]")}),o(function(t){t.innerHTML="";var e=$.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&N.push("name"+nt+"*[*^$|!~]?="),2!==t.querySelectorAll(":enabled").length&&N.push(":enabled",":disabled"),M.appendChild(t).disabled=!0,2!==t.querySelectorAll(":disabled").length&&N.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),N.push(",.*:")})),(x.matchesSelector=gt.test(j=M.matches||M.webkitMatchesSelector||M.mozMatchesSelector||M.oMatchesSelector||M.msMatchesSelector))&&o(function(t){x.disconnectedMatch=j.call(t,"*"),j.call(t,"[s!='']:x"),L.push("!=",rt)}),N=N.length&&new RegExp(N.join("|")),L=L.length&&new RegExp(L.join("|")),e=gt.test(M.compareDocumentPosition),F=e||gt.test(M.contains)?function(t,e){var n=9===t.nodeType?t.documentElement:t,i=e&&e.parentNode;return t===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):t.compareDocumentPosition&&16&t.compareDocumentPosition(i)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},Y=e?function(t,e){if(t===e)return A=!0,0;var n=!t.compareDocumentPosition-!e.compareDocumentPosition;return n?n:(n=(t.ownerDocument||t)===(e.ownerDocument||e)?t.compareDocumentPosition(e):1,1&n||!x.sortDetached&&e.compareDocumentPosition(t)===n?t===$||t.ownerDocument===U&&F(U,t)?-1:e===$||e.ownerDocument===U&&F(U,e)?1:I?tt(I,t)-tt(I,e):0:4&n?-1:1)}:function(t,e){if(t===e)return A=!0,0;var n,i=0,o=t.parentNode,r=e.parentNode,s=[t],l=[e];if(!o||!r)return t===$?-1:e===$?1:o?-1:r?1:I?tt(I,t)-tt(I,e):0;if(o===r)return a(t,e);n=t;for(;n=n.parentNode;)s.unshift(n);n=e;for(;n=n.parentNode;)l.unshift(n);for(;s[i]===l[i];)i++;return i?a(s[i],l[i]):s[i]===U?-1:l[i]===U?1:0},$):$},e.matches=function(t,n){return e(t,null,null,n)},e.matchesSelector=function(t,n){if((t.ownerDocument||t)!==$&&P(t),n=n.replace(ut,"='$1']"),x.matchesSelector&&R&&!z[n+" "]&&(!L||!L.test(n))&&(!N||!N.test(n)))try{var i=j.call(t,n);if(i||x.disconnectedMatch||t.document&&11!==t.document.nodeType)return i}catch(o){}return e(n,$,null,[t]).length>0},e.contains=function(t,e){return(t.ownerDocument||t)!==$&&P(t),F(t,e)},e.attr=function(t,e){(t.ownerDocument||t)!==$&&P(t);var n=S.attrHandle[e.toLowerCase()],i=n&&X.call(S.attrHandle,e.toLowerCase())?n(t,e,!R):void 0;return void 0!==i?i:x.attributes||!R?t.getAttribute(e):(i=t.getAttributeNode(e))&&i.specified?i.value:null},e.escape=function(t){return(t+"").replace(Ct,xt)},e.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},e.uniqueSort=function(t){var e,n=[],i=0,o=0;if(A=!x.detectDuplicates,I=!x.sortStable&&t.slice(0),t.sort(Y),A){for(;e=t[o++];)e===t[o]&&(i=n.push(o));for(;i--;)t.splice(n[i],1)}return I=null,t},T=e.getText=function(t){var e,n="",i=0,o=t.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)n+=T(t)}else if(3===o||4===o)return t.nodeValue}else for(;e=t[i++];)n+=T(e);return n},S=e.selectors={cacheLength:50,createPseudo:i,match:ft,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(bt,wt),t[3]=(t[3]||t[4]||t[5]||"").replace(bt,wt),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(t){var e,n=!t[6]&&t[2];return ft.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":n&&dt.test(n)&&(e=k(n,!0))&&(e=n.indexOf(")",n.length-e)-n.length)&&(t[0]=t[0].slice(0,e),t[2]=n.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(bt,wt).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=V[t+" "];return e||(e=new RegExp("(^|"+nt+")"+t+"("+nt+"|$)"))&&V(t,function(t){return e.test("string"==typeof t.className&&t.className||"undefined"!=typeof t.getAttribute&&t.getAttribute("class")||"")})},ATTR:function(t,n,i){return function(o){var r=e.attr(o,t);return null==r?"!="===n:n?(r+="","="===n?r===i:"!="===n?r!==i:"^="===n?i&&0===r.indexOf(i):"*="===n?i&&r.indexOf(i)>-1:"$="===n?i&&r.slice(-i.length)===i:"~="===n?(" "+r.replace(at," ")+" ").indexOf(i)>-1:"|="===n?r===i||r.slice(0,i.length+1)===i+"-":!1):!0}},CHILD:function(t,e,n,i,o){var r="nth"!==t.slice(0,3),a="last"!==t.slice(-4),s="of-type"===e;return 1===i&&0===o?function(t){return!!t.parentNode}:function(e,n,l){var c,u,d,h,f,p,m=r!==a?"nextSibling":"previousSibling",g=e.parentNode,v=s&&e.nodeName.toLowerCase(),y=!l&&!s,b=!1;if(g){if(r){for(;m;){h=e;for(;h=h[m];)if(s?h.nodeName.toLowerCase()===v:1===h.nodeType)return!1;p=m="only"===t&&!p&&"nextSibling"}return!0}if(p=[a?g.firstChild:g.lastChild],a&&y){h=g,d=h[B]||(h[B]={}),u=d[h.uniqueID]||(d[h.uniqueID]={}),c=u[t]||[],f=c[0]===H&&c[1],b=f&&c[2],h=f&&g.childNodes[f];for(;h=++f&&h&&h[m]||(b=f=0)||p.pop();)if(1===h.nodeType&&++b&&h===e){u[t]=[H,f,b];break}}else if(y&&(h=e,d=h[B]||(h[B]={}),u=d[h.uniqueID]||(d[h.uniqueID]={}),c=u[t]||[],f=c[0]===H&&c[1],b=f),b===!1)for(;(h=++f&&h&&h[m]||(b=f=0)||p.pop())&&((s?h.nodeName.toLowerCase()!==v:1!==h.nodeType)||!++b||(y&&(d=h[B]||(h[B]={}),u=d[h.uniqueID]||(d[h.uniqueID]={}),u[t]=[H,b]),h!==e)););return b-=o,b===i||b%i===0&&b/i>=0}}},PSEUDO:function(t,n){var o,r=S.pseudos[t]||S.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return r[B]?r(n):r.length>1?(o=[t,t,"",n],S.setFilters.hasOwnProperty(t.toLowerCase())?i(function(t,e){for(var i,o=r(t,n),a=o.length;a--;)i=tt(t,o[a]),t[i]=!(e[i]=o[a])}):function(t){return r(t,0,o)}):r}},pseudos:{not:i(function(t){var e=[],n=[],o=D(t.replace(st,"$1"));return o[B]?i(function(t,e,n,i){for(var r,a=o(t,null,i,[]),s=t.length;s--;)(r=a[s])&&(t[s]=!(e[s]=r))}):function(t,i,r){return e[0]=t,o(e,null,r,n),e[0]=null,!n.pop()}}),has:i(function(t){return function(n){return e(t,n).length>0}}),contains:i(function(t){return t=t.replace(bt,wt),function(e){return(e.textContent||e.innerText||T(e)).indexOf(t)>-1}}),lang:i(function(t){return ht.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(bt,wt).toLowerCase(),function(e){var n;do if(n=R?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return n=n.toLowerCase(),n===t||0===n.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var n=t.location&&t.location.hash;return n&&n.slice(1)===e.id},root:function(t){return t===M},focus:function(t){return t===$.activeElement&&(!$.hasFocus||$.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:c(!1),disabled:c(!0),checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,
+t.selected===!0},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!S.pseudos.empty(t)},header:function(t){return mt.test(t.nodeName)},input:function(t){return pt.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:u(function(){return[0]}),last:u(function(t,e){return[e-1]}),eq:u(function(t,e,n){return[0>n?n+e:n]}),even:u(function(t,e){for(var n=0;e>n;n+=2)t.push(n);return t}),odd:u(function(t,e){for(var n=1;e>n;n+=2)t.push(n);return t}),lt:u(function(t,e,n){for(var i=0>n?n+e:n;--i>=0;)t.push(i);return t}),gt:u(function(t,e,n){for(var i=0>n?n+e:n;++i2&&"ID"===(a=r[0]).type&&x.getById&&9===e.nodeType&&R&&S.relative[r[1].type]){if(e=(S.find.ID(a.matches[0].replace(bt,wt),e)||[])[0],!e)return n;c&&(e=e.parentNode),t=t.slice(r.shift().value.length)}o=ft.needsContext.test(t)?0:r.length;for(;o--&&(a=r[o],!S.relative[s=a.type]);)if((l=S.find[s])&&(i=l(a.matches[0].replace(bt,wt),yt.test(r[0].type)&&d(e.parentNode)||e))){if(r.splice(o,1),t=i.length&&f(r),!t)return Z.apply(n,i),n;break}}return(c||D(t,u))(i,e,!R,n,!e||yt.test(t)&&d(e.parentNode)||e),n},x.sortStable=B.split("").sort(Y).join("")===B,x.detectDuplicates=!!A,P(),x.sortDetached=o(function(t){return 1&t.compareDocumentPosition($.createElement("fieldset"))}),o(function(t){return t.innerHTML="","#"===t.firstChild.getAttribute("href")})||r("type|href|height|width",function(t,e,n){return n?void 0:t.getAttribute(e,"type"===e.toLowerCase()?1:2)}),x.attributes&&o(function(t){return t.innerHTML="",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")})||r("value",function(t,e,n){return n||"input"!==t.nodeName.toLowerCase()?void 0:t.defaultValue}),o(function(t){return null==t.getAttribute("disabled")})||r(et,function(t,e,n){var i;return n?void 0:t[e]===!0?e.toLowerCase():(i=t.getAttributeNode(e))&&i.specified?i.value:null}),e}(t);ht.find=vt,ht.expr=vt.selectors,ht.expr[":"]=ht.expr.pseudos,ht.uniqueSort=ht.unique=vt.uniqueSort,ht.text=vt.getText,ht.isXMLDoc=vt.isXML,ht.contains=vt.contains,ht.escapeSelector=vt.escape;var yt=function(t,e,n){for(var i=[],o=void 0!==n;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(o&&ht(t).is(n))break;i.push(t)}return i},bt=function(t,e){for(var n=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&n.push(t);return n},wt=ht.expr.match.needsContext,Ct=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,xt=/^.[^:#\[\.,]*$/;ht.filter=function(t,e,n){var i=e[0];return n&&(t=":not("+t+")"),1===e.length&&1===i.nodeType?ht.find.matchesSelector(i,t)?[i]:[]:ht.find.matches(t,ht.grep(e,function(t){return 1===t.nodeType}))},ht.fn.extend({find:function(t){var e,n,i=this.length,o=this;if("string"!=typeof t)return this.pushStack(ht(t).filter(function(){for(e=0;i>e;e++)if(ht.contains(o[e],this))return!0}));for(n=this.pushStack([]),e=0;i>e;e++)ht.find(t,o[e],n);return i>1?ht.uniqueSort(n):n},filter:function(t){return this.pushStack(o(this,t||[],!1))},not:function(t){return this.pushStack(o(this,t||[],!0))},is:function(t){return!!o(this,"string"==typeof t&&wt.test(t)?ht(t):t||[],!1).length}});var St,Tt=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,_t=ht.fn.init=function(t,e,n){var i,o;if(!t)return this;if(n=n||St,"string"==typeof t){if(i="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:Tt.exec(t),!i||!i[1]&&e)return!e||e.jquery?(e||n).find(t):this.constructor(e).find(t);if(i[1]){if(e=e instanceof ht?e[0]:e,ht.merge(this,ht.parseHTML(i[1],e&&e.nodeType?e.ownerDocument||e:J,!0)),Ct.test(i[1])&&ht.isPlainObject(e))for(i in e)ht.isFunction(this[i])?this[i](e[i]):this.attr(i,e[i]);return this}return o=J.getElementById(i[2]),o&&(this[0]=o,this.length=1),this}return t.nodeType?(this[0]=t,this.length=1,this):ht.isFunction(t)?void 0!==n.ready?n.ready(t):t(ht):ht.makeArray(t,this)};_t.prototype=ht.fn,St=ht(J);var kt=/^(?:parents|prev(?:Until|All))/,Dt={children:!0,contents:!0,next:!0,prev:!0};ht.fn.extend({has:function(t){var e=ht(t,this),n=e.length;return this.filter(function(){for(var t=0;n>t;t++)if(ht.contains(this,e[t]))return!0})},closest:function(t,e){var n,i=0,o=this.length,r=[],a="string"!=typeof t&&ht(t);if(!wt.test(t))for(;o>i;i++)for(n=this[i];n&&n!==e;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&ht.find.matchesSelector(n,t))){r.push(n);break}return this.pushStack(r.length>1?ht.uniqueSort(r):r)},index:function(t){return t?"string"==typeof t?ot.call(ht(t),this[0]):ot.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(ht.uniqueSort(ht.merge(this.get(),ht(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}});ht.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return yt(t,"parentNode")},parentsUntil:function(t,e,n){return yt(t,"parentNode",n)},next:function(t){return r(t,"nextSibling")},prev:function(t){return r(t,"previousSibling")},nextAll:function(t){return yt(t,"nextSibling")},prevAll:function(t){return yt(t,"previousSibling")},nextUntil:function(t,e,n){return yt(t,"nextSibling",n)},prevUntil:function(t,e,n){return yt(t,"previousSibling",n)},siblings:function(t){return bt((t.parentNode||{}).firstChild,t)},children:function(t){return bt(t.firstChild)},contents:function(t){return t.contentDocument||ht.merge([],t.childNodes)}},function(t,e){ht.fn[t]=function(n,i){var o=ht.map(this,e,n);return"Until"!==t.slice(-5)&&(i=n),i&&"string"==typeof i&&(o=ht.filter(i,o)),this.length>1&&(Dt[t]||ht.uniqueSort(o),kt.test(t)&&o.reverse()),this.pushStack(o)}});var Et=/\S+/g;ht.Callbacks=function(t){t="string"==typeof t?a(t):ht.extend({},t);var e,n,i,o,r=[],s=[],l=-1,c=function(){for(o=t.once,i=e=!0;s.length;l=-1){n=s.shift();for(;++l-1;)r.splice(n,1),l>=n&&l--}),this},has:function(t){return t?ht.inArray(t,r)>-1:r.length>0},empty:function(){return r&&(r=[]),this},disable:function(){return o=s=[],r=n="",this},disabled:function(){return!r},lock:function(){return o=s=[],n||e||(r=n=""),this},locked:function(){return!!o},fireWith:function(t,n){return o||(n=n||[],n=[t,n.slice?n.slice():n],s.push(n),e||c()),this},fire:function(){return u.fireWith(this,arguments),this},fired:function(){return!!i}};return u};ht.extend({Deferred:function(e){var n=[["notify","progress",ht.Callbacks("memory"),ht.Callbacks("memory"),2],["resolve","done",ht.Callbacks("once memory"),ht.Callbacks("once memory"),0,"resolved"],["reject","fail",ht.Callbacks("once memory"),ht.Callbacks("once memory"),1,"rejected"]],i="pending",o={state:function(){return i},always:function(){return r.done(arguments).fail(arguments),this},"catch":function(t){return o.then(null,t)},pipe:function(){var t=arguments;return ht.Deferred(function(e){ht.each(n,function(n,i){var o=ht.isFunction(t[i[4]])&&t[i[4]];r[i[1]](function(){var t=o&&o.apply(this,arguments);t&&ht.isFunction(t.promise)?t.promise().progress(e.notify).done(e.resolve).fail(e.reject):e[i[0]+"With"](this,o?[t]:arguments)})}),t=null}).promise()},then:function(e,i,o){function r(e,n,i,o){return function(){var c=this,u=arguments,d=function(){var t,d;if(!(a>e)){if(t=i.apply(c,u),t===n.promise())throw new TypeError("Thenable self-resolution");d=t&&("object"==typeof t||"function"==typeof t)&&t.then,ht.isFunction(d)?o?d.call(t,r(a,n,s,o),r(a,n,l,o)):(a++,d.call(t,r(a,n,s,o),r(a,n,l,o),r(a,n,s,n.notifyWith))):(i!==s&&(c=void 0,u=[t]),(o||n.resolveWith)(c,u))}},h=o?d:function(){try{d()}catch(t){ht.Deferred.exceptionHook&&ht.Deferred.exceptionHook(t,h.stackTrace),e+1>=a&&(i!==l&&(c=void 0,u=[t]),n.rejectWith(c,u))}};e?h():(ht.Deferred.getStackHook&&(h.stackTrace=ht.Deferred.getStackHook()),t.setTimeout(h))}}var a=0;return ht.Deferred(function(t){n[0][3].add(r(0,t,ht.isFunction(o)?o:s,t.notifyWith)),n[1][3].add(r(0,t,ht.isFunction(e)?e:s)),n[2][3].add(r(0,t,ht.isFunction(i)?i:l))}).promise()},promise:function(t){return null!=t?ht.extend(t,o):o}},r={};return ht.each(n,function(t,e){var a=e[2],s=e[5];o[e[1]]=a.add,s&&a.add(function(){i=s},n[3-t][2].disable,n[0][2].lock),a.add(e[3].fire),r[e[0]]=function(){return r[e[0]+"With"](this===r?void 0:this,arguments),this},r[e[0]+"With"]=a.fireWith}),o.promise(r),e&&e.call(r,r),r},when:function(t){var e=arguments.length,n=e,i=Array(n),o=et.call(arguments),r=ht.Deferred(),a=function(t){return function(n){i[t]=this,o[t]=arguments.length>1?et.call(arguments):n,--e||r.resolveWith(i,o)}};if(1>=e&&(c(t,r.done(a(n)).resolve,r.reject),"pending"===r.state()||ht.isFunction(o[n]&&o[n].then)))return r.then();for(;n--;)c(o[n],a(n),r.reject);return r.promise()}});var Ot=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;ht.Deferred.exceptionHook=function(e,n){t.console&&t.console.warn&&e&&Ot.test(e.name)&&t.console.warn("jQuery.Deferred exception: "+e.message,e.stack,n)};var It=ht.Deferred();ht.fn.ready=function(t){return It.then(t),this},ht.extend({isReady:!1,readyWait:1,holdReady:function(t){t?ht.readyWait++:ht.ready(!0)},ready:function(t){(t===!0?--ht.readyWait:ht.isReady)||(ht.isReady=!0,t!==!0&&--ht.readyWait>0||It.resolveWith(J,[ht]))}}),ht.ready.then=It.then;"complete"===J.readyState||"loading"!==J.readyState&&!J.documentElement.doScroll?t.setTimeout(ht.ready):(J.addEventListener("DOMContentLoaded",u),t.addEventListener("load",u));var At=function(t,e,n,i,o,r,a){var s=0,l=t.length,c=null==n;if("object"===ht.type(n)){o=!0;for(s in n)At(t,e,s,n[s],!0,r,a)}else if(void 0!==i&&(o=!0,ht.isFunction(i)||(a=!0),c&&(a?(e.call(t,i),e=null):(c=e,e=function(t,e,n){return c.call(ht(t),n)})),e))for(;l>s;s++)e(t[s],n,a?i:i.call(t[s],s,e(t[s],n)));return o?t:c?e.call(t):l?e(t[0],n):r},Pt=function(t){return 1===t.nodeType||9===t.nodeType||!+t.nodeType};d.uid=1,d.prototype={cache:function(t){var e=t[this.expando];return e||(e={},Pt(t)&&(t.nodeType?t[this.expando]=e:Object.defineProperty(t,this.expando,{value:e,configurable:!0}))),e},set:function(t,e,n){var i,o=this.cache(t);if("string"==typeof e)o[ht.camelCase(e)]=n;else for(i in e)o[ht.camelCase(i)]=e[i];return o},get:function(t,e){return void 0===e?this.cache(t):t[this.expando]&&t[this.expando][ht.camelCase(e)]},access:function(t,e,n){return void 0===e||e&&"string"==typeof e&&void 0===n?this.get(t,e):(this.set(t,e,n),void 0!==n?n:e)},remove:function(t,e){var n,i=t[this.expando];if(void 0!==i){if(void 0!==e){ht.isArray(e)?e=e.map(ht.camelCase):(e=ht.camelCase(e),e=e in i?[e]:e.match(Et)||[]),n=e.length;for(;n--;)delete i[e[n]]}(void 0===e||ht.isEmptyObject(i))&&(t.nodeType?t[this.expando]=void 0:delete t[this.expando])}},hasData:function(t){var e=t[this.expando];return void 0!==e&&!ht.isEmptyObject(e)}};var $t=new d,Mt=new d,Rt=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Nt=/[A-Z]/g;ht.extend({hasData:function(t){return Mt.hasData(t)||$t.hasData(t)},data:function(t,e,n){return Mt.access(t,e,n)},removeData:function(t,e){Mt.remove(t,e)},_data:function(t,e,n){return $t.access(t,e,n)},_removeData:function(t,e){$t.remove(t,e)}}),ht.fn.extend({data:function(t,e){var n,i,o,r=this[0],a=r&&r.attributes;if(void 0===t){if(this.length&&(o=Mt.get(r),1===r.nodeType&&!$t.get(r,"hasDataAttrs"))){n=a.length;for(;n--;)a[n]&&(i=a[n].name,0===i.indexOf("data-")&&(i=ht.camelCase(i.slice(5)),h(r,i,o[i])));$t.set(r,"hasDataAttrs",!0)}return o}return"object"==typeof t?this.each(function(){Mt.set(this,t)}):At(this,function(e){var n;if(r&&void 0===e){if(n=Mt.get(r,t),void 0!==n)return n;if(n=h(r,t),void 0!==n)return n}else this.each(function(){Mt.set(this,t,e)})},null,e,arguments.length>1,null,!0)},removeData:function(t){return this.each(function(){Mt.remove(this,t)})}}),ht.extend({queue:function(t,e,n){var i;return t?(e=(e||"fx")+"queue",i=$t.get(t,e),n&&(!i||ht.isArray(n)?i=$t.access(t,e,ht.makeArray(n)):i.push(n)),i||[]):void 0},dequeue:function(t,e){e=e||"fx";var n=ht.queue(t,e),i=n.length,o=n.shift(),r=ht._queueHooks(t,e),a=function(){ht.dequeue(t,e)};"inprogress"===o&&(o=n.shift(),i--),o&&("fx"===e&&n.unshift("inprogress"),delete r.stop,o.call(t,a,r)),!i&&r&&r.empty.fire()},_queueHooks:function(t,e){var n=e+"queueHooks";return $t.get(t,n)||$t.access(t,n,{empty:ht.Callbacks("once memory").add(function(){$t.remove(t,[e+"queue",n])})})}}),ht.fn.extend({queue:function(t,e){var n=2;return"string"!=typeof t&&(e=t,t="fx",n--),arguments.length\x20\t\r\n\f]+)/i,Wt=/^$|\/(?:java|ecma)script/i,zt={option:[1,""],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};zt.optgroup=zt.option,zt.tbody=zt.tfoot=zt.colgroup=zt.caption=zt.thead,zt.th=zt.td;var Yt=/<|?\w+;/;!function(){var t=J.createDocumentFragment(),e=t.appendChild(J.createElement("div")),n=J.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),ut.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",ut.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var Xt=J.documentElement,Qt=/^key/,Kt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Gt=/^([^.]*)(?:\.(.+)|)/;ht.event={global:{},add:function(t,e,n,i,o){var r,a,s,l,c,u,d,h,f,p,m,g=$t.get(t);if(g){n.handler&&(r=n,n=r.handler,o=r.selector),o&&ht.find.matchesSelector(Xt,o),n.guid||(n.guid=ht.guid++),(l=g.events)||(l=g.events={}),(a=g.handle)||(a=g.handle=function(e){return"undefined"!=typeof ht&&ht.event.triggered!==e.type?ht.event.dispatch.apply(t,arguments):void 0}),e=(e||"").match(Et)||[""],c=e.length;for(;c--;)s=Gt.exec(e[c])||[],f=m=s[1],p=(s[2]||"").split(".").sort(),f&&(d=ht.event.special[f]||{},f=(o?d.delegateType:d.bindType)||f,d=ht.event.special[f]||{},u=ht.extend({type:f,origType:m,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&&ht.expr.match.needsContext.test(o),namespace:p.join(".")},r),(h=l[f])||(h=l[f]=[],h.delegateCount=0,d.setup&&d.setup.call(t,i,p,a)!==!1||t.addEventListener&&t.addEventListener(f,a)),d.add&&(d.add.call(t,u),u.handler.guid||(u.handler.guid=n.guid)),o?h.splice(h.delegateCount++,0,u):h.push(u),ht.event.global[f]=!0)}},remove:function(t,e,n,i,o){var r,a,s,l,c,u,d,h,f,p,m,g=$t.hasData(t)&&$t.get(t);if(g&&(l=g.events)){e=(e||"").match(Et)||[""],c=e.length;for(;c--;)if(s=Gt.exec(e[c])||[],f=m=s[1],p=(s[2]||"").split(".").sort(),f){d=ht.event.special[f]||{},f=(i?d.delegateType:d.bindType)||f,h=l[f]||[],s=s[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=r=h.length;for(;r--;)u=h[r],!o&&m!==u.origType||n&&n.guid!==u.guid||s&&!s.test(u.namespace)||i&&i!==u.selector&&("**"!==i||!u.selector)||(h.splice(r,1),u.selector&&h.delegateCount--,d.remove&&d.remove.call(t,u));a&&!h.length&&(d.teardown&&d.teardown.call(t,p,g.handle)!==!1||ht.removeEvent(t,f,g.handle),delete l[f])}else for(f in l)ht.event.remove(t,f+e[c],n,i,!0);ht.isEmptyObject(l)&&$t.remove(t,"handle events")}},dispatch:function(t){var e,n,i,o,r,a,s=ht.event.fix(t),l=new Array(arguments.length),c=($t.get(this,"events")||{})[s.type]||[],u=ht.event.special[s.type]||{};for(l[0]=s,e=1;en;n++)r=e[n],o=r.selector+" ",void 0===i[o]&&(i[o]=r.needsContext?ht(o,this).index(l)>-1:ht.find(o,this,null,[l]).length),i[o]&&i.push(r);i.length&&a.push({elem:l,handlers:i})}return s\x20\t\r\n\f]*)[^>]*)\/>/gi,Jt=/