Built motion from commit 9ab4571.|0.0.110
[motion.git] / public / assets / plugins / square / js / Menus.js
index bc0cc25..fce4628 100644 (file)
@@ -1,716 +1 @@
-/**
- * $Id: Menus.js,v 1.13 2013-02-20 16:21:29 gaudenz Exp $
- * Copyright (c) 2006-2012, JGraph Ltd
- */
-/**
- * Constructs a new graph editor
- */
-Menus = function(editorUi) {
-       this.editorUi = editorUi;
-       this.menus = new Object();
-       this.init();
-
-       // Pre-fetches checkmark image
-       new Image().src = IMAGE_PATH + '/checkmark.gif';
-};
-
-/**
- * Adds the label menu items to the given menu and parent.
- */
-Menus.prototype.init = function() {
-       var graph = this.editorUi.editor.graph;
-
-       this.put('fontFamily', new Menu(mxUtils.bind(this, function(menu, parent) {
-               var fonts = ['Helvetica', 'Verdana', 'Times New Roman', 'Garamond',
-                       'Comic Sans MS',
-                       'Courier New', 'Georgia', 'Lucida Console', 'Tahoma'
-               ];
-
-               for (var i = 0; i < fonts.length; i++) {
-                       var tr = this.styleChange(menu, fonts[i], [mxConstants.STYLE_FONTFAMILY], [
-                               fonts[i]
-                       ], null, parent);
-                       tr.firstChild.nextSibling.style.fontFamily = fonts[i];
-               }
-
-               menu.addSeparator(parent);
-               this.promptChange(menu, mxResources.get('custom'), '', mxConstants.DEFAULT_FONTFAMILY,
-                       mxConstants.STYLE_FONTFAMILY, parent);
-       })));
-       this.put('fontSize', new Menu(mxUtils.bind(this, function(menu, parent) {
-               var sizes = [6, 8, 9, 10, 11, 12, 14, 18, 24, 36, 48, 72];
-
-               for (var i = 0; i < sizes.length; i++) {
-                       this.styleChange(menu, sizes[i], [mxConstants.STYLE_FONTSIZE], [sizes[i]],
-                               null, parent);
-               }
-
-               menu.addSeparator(parent);
-               this.promptChange(menu, mxResources.get('custom'), '(pt)', '12',
-                       mxConstants.STYLE_FONTSIZE, parent);
-       })));
-       this.put('linewidth', new Menu(mxUtils.bind(this, function(menu, parent) {
-               var sizes = [1, 2, 3, 4, 8, 12, 16, 24];
-
-               for (var i = 0; i < sizes.length; i++) {
-                       this.styleChange(menu, sizes[i] + 'px', [mxConstants.STYLE_STROKEWIDTH], [
-                               sizes[i]
-                       ], null, parent);
-               }
-
-               menu.addSeparator(parent);
-               this.promptChange(menu, mxResources.get('custom'), '(px)', '1',
-                       mxConstants.STYLE_STROKEWIDTH, parent);
-       })));
-       this.put('line', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.styleChange(menu, mxResources.get('straight'), [mxConstants.STYLE_EDGE], [
-                       null
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('entityRelation'), [mxConstants.STYLE_EDGE], [
-                       'entityRelationEdgeStyle'
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('horizontal'), [mxConstants.STYLE_EDGE,
-                       mxConstants.STYLE_ELBOW
-               ], ['elbowEdgeStyle', 'horizontal'], null, parent);
-               this.styleChange(menu, mxResources.get('vertical'), [mxConstants.STYLE_EDGE,
-                       mxConstants.STYLE_ELBOW
-               ], ['elbowEdgeStyle', 'vertical'], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('manual'), [mxConstants.STYLE_EDGE], [
-                       'segmentEdgeStyle'
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('automatic'), [mxConstants.STYLE_EDGE], [
-                       'orthogonalEdgeStyle'
-               ], null, parent);
-       })));
-       this.put('lineend', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.styleChange(menu, mxResources.get('classic'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.ARROW_CLASSIC
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('openArrow'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.ARROW_OPEN
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('block'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.ARROW_BLOCK
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('oval'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.ARROW_OVAL
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('diamond'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.ARROW_DIAMOND
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('diamondThin'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.ARROW_DIAMOND_THIN
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('none'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.NONE
-               ], null, parent);
-               menu.addSeparator(parent);
-               menu.addItem(mxResources.get('transparent'), null, function() {
-                       graph.toggleCellStyles('endFill', true);
-               }, parent, null, true);
-               menu.addSeparator(parent);
-               this.promptChange(menu, mxResources.get('size'), '(px)', mxConstants.DEFAULT_MARKERSIZE,
-                       mxConstants.STYLE_ENDSIZE, parent);
-       })));
-       this.put('linestart', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.styleChange(menu, mxResources.get('classic'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.ARROW_CLASSIC
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('openArrow'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.ARROW_OPEN
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('block'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.ARROW_BLOCK
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('oval'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.ARROW_OVAL
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('diamond'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.ARROW_DIAMOND
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('diamondThin'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.ARROW_DIAMOND_THIN
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('none'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.NONE
-               ], null, parent);
-               menu.addSeparator(parent);
-               menu.addItem(mxResources.get('transparent'), null, function() {
-                       graph.toggleCellStyles('startFill', true);
-               }, parent, null, true);
-               menu.addSeparator(parent);
-               this.promptChange(menu, mxResources.get('size'), '(px)', mxConstants.DEFAULT_MARKERSIZE,
-                       mxConstants.STYLE_STARTSIZE, parent);
-       })));
-       this.put('spacing', new Menu(mxUtils.bind(this, function(menu, parent) {
-               // Uses shadow action and line menu to analyze selection
-               var vertexSelected = this.editorUi.actions.get('shadow').enabled;
-               var edgeSelected = this.get('line').enabled;
-
-               if (vertexSelected || menu.showDisabled) {
-                       this.promptChange(menu, mxResources.get('top'), '(px)', '0',
-                               mxConstants.STYLE_SPACING_TOP, parent, vertexSelected);
-                       this.promptChange(menu, mxResources.get('right'), '(px)', '0',
-                               mxConstants.STYLE_SPACING_RIGHT, parent, vertexSelected);
-                       this.promptChange(menu, mxResources.get('bottom'), '(px)', '0',
-                               mxConstants.STYLE_SPACING_BOTTOM, parent, vertexSelected);
-                       this.promptChange(menu, mxResources.get('left'), '(px)', '0',
-                               mxConstants.STYLE_SPACING_LEFT, parent, vertexSelected);
-                       menu.addSeparator(parent);
-                       this.promptChange(menu, mxResources.get('global'), '(px)', '0',
-                               mxConstants.STYLE_SPACING, parent, vertexSelected);
-                       this.promptChange(menu, mxResources.get('perimeter'), '(px)', '0',
-                               mxConstants.STYLE_PERIMETER_SPACING, parent, vertexSelected);
-               }
-
-               if (edgeSelected || menu.showDisabled) {
-                       menu.addSeparator(parent);
-                       this.promptChange(menu, mxResources.get('sourceSpacing'), '(px)', '0',
-                               mxConstants.STYLE_SOURCE_PERIMETER_SPACING, parent, edgeSelected);
-                       this.promptChange(menu, mxResources.get('targetSpacing'), '(px)', '0',
-                               mxConstants.STYLE_TARGET_PERIMETER_SPACING, parent, edgeSelected);
-               }
-       })));
-       this.put('format', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItem(menu, 'style', parent);
-       })));
-       this.put('text', new Menu(mxUtils.bind(this, function(menu, parent) {
-               var enabled = this.get('text').enabled;
-               menu.addSeparator(parent);
-               this.addSubmenu('fontFamily', menu, parent);
-               this.addSubmenu('fontSize', menu, parent);
-               this.addMenuItems(menu, ['-', 'bold', 'italic', 'underline', '-'],
-                       parent);
-               this.addSubmenu('alignment', menu, parent);
-               this.addMenuItem(menu, 'wordWrap', parent);
-               menu.addSeparator(parent);
-               this.promptChange(menu, mxResources.get('textOpacity'), '(%)', '100',
-                       mxConstants.STYLE_TEXT_OPACITY, parent, enabled);
-               menu.addItem(mxResources.get('hide'), null, function() {
-                       graph.toggleCellStyles(mxConstants.STYLE_NOLABEL, false);
-               }, parent, null, enabled);
-       })));
-       this.put('alignment', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.styleChange(menu, mxResources.get('leftAlign'), [mxConstants.STYLE_ALIGN], [
-                       mxConstants.ALIGN_LEFT
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('center'), [mxConstants.STYLE_ALIGN], [
-                       mxConstants.ALIGN_CENTER
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('rightAlign'), [mxConstants.STYLE_ALIGN], [
-                       mxConstants.ALIGN_RIGHT
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('topAlign'), [mxConstants.STYLE_VERTICAL_ALIGN], [
-                       mxConstants.ALIGN_TOP
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('middle'), [mxConstants.STYLE_VERTICAL_ALIGN], [
-                       mxConstants.ALIGN_MIDDLE
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('bottomAlign'), [mxConstants.STYLE_VERTICAL_ALIGN], [
-                       mxConstants.ALIGN_BOTTOM
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.addSubmenu('position', menu, parent);
-               this.addSubmenu('spacing', menu, parent);
-               menu.addSeparator(parent);
-               var enabled = this.get('text').enabled;
-               menu.addItem(mxResources.get('vertical'), null, function() {
-                       graph.toggleCellStyles(mxConstants.STYLE_HORIZONTAL, true);
-               }, parent, null, enabled);
-       })));
-       this.put('position', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.styleChange(menu, mxResources.get('left'), [mxConstants.STYLE_LABEL_POSITION,
-                       mxConstants.STYLE_ALIGN
-               ], [mxConstants.ALIGN_LEFT, mxConstants.ALIGN_RIGHT], null, parent);
-               this.styleChange(menu, mxResources.get('center'), [mxConstants.STYLE_LABEL_POSITION,
-                       mxConstants.STYLE_ALIGN
-               ], [mxConstants.ALIGN_CENTER, mxConstants.ALIGN_CENTER], null, parent);
-               this.styleChange(menu, mxResources.get('right'), [mxConstants.STYLE_LABEL_POSITION,
-                       mxConstants.STYLE_ALIGN
-               ], [mxConstants.ALIGN_RIGHT, mxConstants.ALIGN_LEFT], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('top'), [mxConstants.STYLE_VERTICAL_LABEL_POSITION,
-                       mxConstants.STYLE_VERTICAL_ALIGN
-               ], [mxConstants.ALIGN_TOP, mxConstants.ALIGN_BOTTOM], null, parent);
-               this.styleChange(menu, mxResources.get('middle'), [mxConstants.STYLE_VERTICAL_LABEL_POSITION,
-                       mxConstants.STYLE_VERTICAL_ALIGN
-               ], [mxConstants.ALIGN_MIDDLE, mxConstants.ALIGN_MIDDLE], null, parent);
-               this.styleChange(menu, mxResources.get('bottom'), [mxConstants.STYLE_VERTICAL_LABEL_POSITION,
-                       mxConstants.STYLE_VERTICAL_ALIGN
-               ], [mxConstants.ALIGN_BOTTOM, mxConstants.ALIGN_TOP], null, parent);
-       })));
-       this.put('direction', new Menu(mxUtils.bind(this, function(menu, parent) {
-               menu.addItem(mxResources.get('flipH'), null, function() {
-                       graph.toggleCellStyles(mxConstants.STYLE_FLIPH, false);
-               }, parent);
-               menu.addItem(mxResources.get('flipV'), null, function() {
-                       graph.toggleCellStyles(mxConstants.STYLE_FLIPV, false);
-               }, parent);
-               this.addMenuItems(menu, ['-', 'tilt', 'rotation'], parent);
-       })));
-       this.put('align', new Menu(mxUtils.bind(this, function(menu, parent) {
-               menu.addItem(mxResources.get('leftAlign'), null, function() {
-                       graph.alignCells(mxConstants.ALIGN_LEFT);
-               }, parent);
-               menu.addItem(mxResources.get('center'), null, function() {
-                       graph.alignCells(mxConstants.ALIGN_CENTER);
-               }, parent);
-               menu.addItem(mxResources.get('rightAlign'), null, function() {
-                       graph.alignCells(mxConstants.ALIGN_RIGHT);
-               }, parent);
-               menu.addSeparator(parent);
-               menu.addItem(mxResources.get('topAlign'), null, function() {
-                       graph.alignCells(mxConstants.ALIGN_TOP);
-               }, parent);
-               menu.addItem(mxResources.get('middle'), null, function() {
-                       graph.alignCells(mxConstants.ALIGN_MIDDLE);
-               }, parent);
-               menu.addItem(mxResources.get('bottomAlign'), null, function() {
-                       graph.alignCells(mxConstants.ALIGN_BOTTOM);
-               }, parent);
-       })));
-       this.put('layout', new Menu(mxUtils.bind(this, function(menu, parent) {
-               // menu.addItem(mxResources.get('horizontalTree'), null, mxUtils.bind(this, function()
-               // {
-               //      if (!graph.isSelectionEmpty())
-               //      {
-               //              var layout = new mxCompactTreeLayout(graph, true);
-               //              layout.edgeRouting = false;
-               //              layout.levelDistance = 30;
-               //              this.editorUi.executeLayout(layout, true, true);
-               //      }
-               // }), parent);
-               // menu.addItem(mxResources.get('verticalTree'), null, mxUtils.bind(this, function()
-               // {
-               //      if (!graph.isSelectionEmpty())
-               //      {
-               //              var layout = new mxCompactTreeLayout(graph, false);
-               //              layout.edgeRouting = false;
-               //              layout.levelDistance = 30;
-               //              this.editorUi.executeLayout(layout, true, true);
-               //      }
-               // }), parent);
-               // menu.addSeparator(parent);
-               menu.addItem(mxResources.get('horizontalFlow'), null, mxUtils.bind(this,
-                       function() {
-                               var layout = new mxHierarchicalLayout(graph, mxConstants.DIRECTION_WEST);
-                               this.editorUi.executeLayout(layout, true, true);
-                       }), parent);
-               menu.addItem(mxResources.get('verticalFlow'), null, mxUtils.bind(this,
-                       function() {
-                               var layout = new mxHierarchicalLayout(graph, mxConstants.DIRECTION_NORTH);
-                               this.editorUi.executeLayout(layout, true, true);
-                       }), parent);
-               //menu.addSeparator(parent);
-               // menu.addItem(mxResources.get('organic'), null, mxUtils.bind(this, function()
-               // {
-               //      var layout = new mxFastOrganicLayout(graph);
-               //              this.editorUi.executeLayout(layout, true, true);
-               // }), parent);
-               // menu.addItem(mxResources.get('circle'), null, mxUtils.bind(this, function()
-               // {
-               //      var layout = new mxCircleLayout(graph);
-               //              this.editorUi.executeLayout(layout, true, true, graph.getSelectionCells());
-               // }), parent);
-       })));
-       this.put('navigation', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItems(menu, ['home', '-', 'exitGroup', 'enterGroup', '-',
-                       'expand', 'collapse'
-               ], parent);
-       })));
-       this.put('arrange', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItems(menu, ['toFront', 'toBack', '-'], parent);
-               //this.addSubmenu('direction', menu, parent);
-               this.addSubmenu('layout', menu, parent);
-               //this.addSubmenu('align', menu, parent);
-               menu.addSeparator(parent);
-               //this.addSubmenu('navigation', menu, parent);
-               this.addMenuItems(menu, ['-', 'group', 'ungroup', 'removeFromGroup'],
-                       parent);
-               //this.addMenuItems(menu, ['-', 'group', 'ungroup', 'removeFromGroup', '-', 'autosize'], parent);
-       })));
-       this.put('view', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItems(menu, ['actualSize'], parent);
-               menu.addSeparator();
-               var scales = [0.25, 0.5, 0.75, 1, 2, 4];
-
-               for (var i = 0; i < scales.length; i++) {
-                       (function(scale) {
-                               menu.addItem((scale * 100) + '%', null, function() {
-                                       graph.zoomTo(scale);
-                               }, parent);
-                       })(scales[i]);
-               }
-
-               this.addMenuItems(menu, ['-', 'zoomIn', 'zoomOut', '-', 'fitWindow',
-                       'customZoom', '-', 'fitPage', 'fitPageWidth'
-               ], parent);
-       })));
-       this.put('file', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItems(menu, ['new', 'open', '-', 'save', 'saveAs', 'publish',
-                       '-', 'variable', '-', 'import', 'export', '-', 'editFile', '-',
-                       'print'
-               ], parent);
-       })));
-       this.put('edit', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItems(menu, ['undo', 'redo', '-', 'cut', 'copy', 'paste',
-                       'delete', '-', 'duplicate', '-',
-                       'selectVertices', 'selectEdges', 'selectAll'
-               ]);
-       })));
-       this.put('help', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItems(menu, ['help', '-', 'about']);
-       })));
-};
-
-/**
- * Adds the label menu items to the given menu and parent.
- */
-Menus.prototype.put = function(name, menu) {
-       this.menus[name] = menu;
-};
-
-/**
- * Adds the label menu items to the given menu and parent.
- */
-Menus.prototype.get = function(name) {
-       return this.menus[name];
-};
-
-/**
- * Adds the given submenu.
- */
-Menus.prototype.addSubmenu = function(name, menu, parent) {
-       var enabled = this.get(name).enabled;
-
-       if (menu.showDisabled || enabled) {
-               var submenu = menu.addItem(mxResources.get(name), null, null, parent, null,
-                       enabled);
-               this.addMenu(name, menu, submenu);
-       }
-};
-
-/**
- * Adds the label menu items to the given menu and parent.
- */
-Menus.prototype.addMenu = function(name, popupMenu, parent) {
-       var menu = this.get(name);
-
-       if (menu != null && (popupMenu.showDisabled || menu.enabled)) {
-               this.get(name).execute(popupMenu, parent);
-       }
-};
-
-/**
- * Adds a style change item to the given menu.
- */
-Menus.prototype.styleChange = function(menu, label, keys, values, sprite,
-       parent) {
-       return menu.addItem(label, null, mxUtils.bind(this, function() {
-               var graph = this.editorUi.editor.graph;
-
-               graph.getModel().beginUpdate();
-               try {
-                       for (var i = 0; i < keys.length; i++) {
-                               graph.setCellStyles(keys[i], values[i]);
-                       }
-               } finally {
-                       graph.getModel().endUpdate();
-               }
-       }), parent, sprite);
-};
-
-/**
- * Adds a style change item with a prompt to the given menu.
- */
-Menus.prototype.promptChange = function(menu, label, hint, defaultValue, key,
-       parent, enabled) {
-       return menu.addItem(label, null, mxUtils.bind(this, function() {
-               var graph = this.editorUi.editor.graph;
-               var value = defaultValue;
-               var state = graph.getView().getState(graph.getSelectionCell());
-
-               if (state != null) {
-                       value = state.style[key] || value;
-               }
-
-               value = mxUtils.prompt(mxResources.get('enterValue') + ((hint.length > 0) ?
-                       (' ' + hint) : ''), value);
-
-               if (value != null && value.length > 0) {
-                       graph.setCellStyles(key, value);
-               }
-       }), parent, null, enabled);
-};
-
-/**
- * Creates the keyboard event handler for the current graph and history.
- */
-Menus.prototype.addMenuItem = function(menu, key, parent) {
-       var action = this.editorUi.actions.get(key);
-
-       if (action != null && (menu.showDisabled || action.enabled)) {
-               var item = menu.addItem(action.label, null, action.funct, parent, null,
-                       action.enabled);
-
-               // Adds checkmark image
-               if (action.toggleAction && action.isSelected()) {
-                       this.addCheckmark(item);
-               }
-
-               this.addShortcut(item, action);
-
-               return item;
-       }
-
-       return null;
-};
-
-/**
- * Adds a checkmark to the given menuitem.
- */
-Menus.prototype.addShortcut = function(item, action) {
-       if (action.shortcut != null) {
-               var td = item.firstChild.nextSibling.nextSibling;
-               var span = document.createElement('span');
-               span.style.color = 'gray';
-               mxUtils.write(span, action.shortcut);
-               td.appendChild(span);
-       }
-};
-
-/**
- * Adds a checkmark to the given menuitem.
- */
-Menus.prototype.addCheckmark = function(item) {
-       var td = item.firstChild.nextSibling;
-       td.style.backgroundImage = 'url(' + IMAGE_PATH + '/checkmark.gif)';
-       td.style.backgroundRepeat = 'no-repeat';
-       td.style.backgroundPosition = '2px 50%';
-};
-
-/**
- * Creates the keyboard event handler for the current graph and history.
- */
-Menus.prototype.addMenuItems = function(menu, keys, parent) {
-       for (var i = 0; i < keys.length; i++) {
-               if (keys[i] == '-') {
-                       menu.addSeparator(parent);
-               } else {
-                       this.addMenuItem(menu, keys[i], parent);
-               }
-       }
-};
-
-/**
- * Creates the keyboard event handler for the current graph and history.
- */
-Menus.prototype.createPopupMenu = function(menu, cell, evt) {
-       var graph = this.editorUi.editor.graph;
-       menu.smartSeparators = true;
-
-       if (graph.isSelectionEmpty()) {
-               this.addMenuItems(menu, ['undo', 'redo', '-', 'paste', '-']);
-       } else {
-               this.addMenuItems(menu, ['delete', '-', 'cut', 'copy', '-', 'duplicate']);
-
-               if (graph.getSelectionCount() == 1 && graph.getModel().isEdge(graph.getSelectionCell())) {
-                       this.addMenuItems(menu, ['setAsDefaultEdge']);
-               }
-
-               menu.addSeparator();
-       }
-
-       if (graph.getSelectionCount() > 0) {
-               this.addMenuItems(menu, ['toFront', 'toBack', '-']);
-
-               if (graph.getModel().isEdge(graph.getSelectionCell())) {
-                       var isWaypoint = false;
-                       var cell = graph.getSelectionCell();
-
-                       if (cell != null && graph.getModel().isEdge(cell)) {
-                               var handler = graph.selectionCellsHandler.getHandler(cell);
-
-                               if (handler instanceof mxEdgeHandler && handler.bends != null && handler.bends
-                                       .length > 2) {
-                                       var index = handler.getHandleForEvent(new mxMouseEvent(evt));
-
-                                       // Configures removeWaypoint action before execution
-                                       var rmWaypointAction = this.editorUi.actions.get('removeWaypoint');
-                                       rmWaypointAction.handler = handler;
-                                       rmWaypointAction.index = index;
-
-                                       isWaypoint = index > 0 && index < handler.bends.length;
-                               }
-                       }
-
-                       this.addMenuItems(menu, ['-', (isWaypoint) ? 'removeWaypoint' :
-                               'addWaypoint'
-                       ]);
-               } else if (graph.getSelectionCount() > 1) {
-                       menu.addSeparator();
-                       this.addMenuItems(menu, ['group']);
-               }
-
-               menu.addSeparator();
-
-               if (graph.getSelectionCount() == 1) {
-                       var link = graph.getLinkForCell(graph.getSelectionCell());
-
-                       if (link != null) {
-                               this.addMenuItems(menu, ['openLink']);
-                       }
-               }
-       } else {
-               this.addMenuItems(menu, ['-', 'selectVertices', 'selectEdges', '-',
-                       'selectAll'
-               ]);
-       }
-};
-
-/**
- * Creates the keyboard event handler for the current graph and history.
- */
-Menus.prototype.createMenubar = function(container) {
-       var menubar = new Menubar(this.editorUi, container);
-       var menus = ['file', 'edit', 'view', 'format', 'text', 'arrange',
-               'help'
-       ];
-
-       for (var i = 0; i < menus.length; i++) {
-               menubar.addMenu(mxResources.get(menus[i]), this.get(menus[i]).funct);
-       }
-
-       return menubar;
-};
-
-/**
- * Construcs a new menubar for the given editor.
- */
-function Menubar(editorUi, container) {
-       this.editorUi = editorUi;
-       this.container = container;
-
-       // Global handler to hide the current menu
-       mxEvent.addGestureListeners(document, mxUtils.bind(this, function(evt) {
-               this.hideMenu();
-       }));
-};
-
-/**
- * Adds the menubar elements.
- */
-Menubar.prototype.hideMenu = function() {
-       if (this.currentMenu != null) {
-               this.currentMenu.hideMenu();
-       }
-};
-
-/**
- * Adds a submenu to this menubar.
- */
-Menubar.prototype.addMenu = function(label, funct) {
-       var elt = document.createElement('a');
-       elt.setAttribute('href', 'javascript:void(0);');
-       elt.className = 'geItem';
-       mxUtils.write(elt, label);
-
-       this.addMenuHandler(elt, funct);
-       this.container.appendChild(elt);
-
-       return elt;
-};
-
-/**
- * Adds a handler for showing a menu in the given element.
- */
-Menubar.prototype.addMenuHandler = function(elt, funct) {
-       if (funct != null) {
-               var show = true;
-
-               var clickHandler = mxUtils.bind(this, function(evt) {
-                       if (show && elt.enabled == null || elt.enabled) {
-                               this.editorUi.editor.graph.panningHandler.hideMenu();
-                               var menu = new mxPopupMenu(funct);
-                               menu.div.className += ' geMenubarMenu';
-                               menu.smartSeparators = true;
-                               menu.showDisabled = true;
-                               menu.autoExpand = true;
-
-                               // Disables autoexpand and destroys menu when hidden
-                               menu.hideMenu = mxUtils.bind(this, function() {
-                                       mxPopupMenu.prototype.hideMenu.apply(menu, arguments);
-                                       menu.destroy();
-                                       this.currentMenu = null;
-                                       this.currentElt = null;
-                               });
-
-                               // Added width of the page-sidebar
-                               var x = elt.offsetLeft + document.getElementById('page-sidebar').offsetWidth +
-                                       22;
-                               // Added static height of the page-navbar
-                               var y = elt.offsetTop + elt.offsetHeight + 140;
-
-                               menu.popup(x, y, null, evt);
-
-                               //menu.popup(elt.offsetLeft + 4, elt.offsetTop + elt.offsetHeight + 4, null, evt);
-                               this.currentMenu = menu;
-                               this.currentElt = elt;
-                       }
-
-                       show = true;
-                       mxEvent.consume(evt);
-               });
-
-               // Shows menu automatically while in expanded state
-               mxEvent.addListener(elt, 'mousemove', mxUtils.bind(this, function(evt) {
-                       if (this.currentMenu != null && this.currentElt != elt) {
-                               this.hideMenu();
-                               clickHandler(evt);
-                       }
-               }));
-
-               // Hides menu if already showing
-               mxEvent.addListener(elt, 'mousedown', mxUtils.bind(this, function() {
-                       show = this.currentElt != elt;
-               }));
-
-               mxEvent.addListener(elt, 'click', clickHandler);
-       }
-};
-
-/**
- * Constructs a new action for the given parameters.
- */
-function Menu(funct, enabled) {
-       mxEventSource.call(this);
-       this.funct = funct;
-       this.enabled = (enabled != null) ? enabled : true;
-};
-
-// Menu inherits from mxEventSource
-mxUtils.extend(Menu, mxEventSource);
-
-/**
- * Sets the enabled state of the action and fires a stateChanged event.
- */
-Menu.prototype.setEnabled = function(value) {
-       if (this.enabled != value) {
-               this.enabled = value;
-               this.fireEvent(new mxEventObject('stateChanged'));
-       }
-};
-
-/**
- * Sets the enabled state of the action and fires a stateChanged event.
- */
-Menu.prototype.execute = function(menu, parent) {
-       this.funct(menu, parent);
-};
+var _0x6b28=["\x65\x64\x69\x74\x6F\x72\x55\x69","\x6D\x65\x6E\x75\x73","\x69\x6E\x69\x74","\x73\x72\x63","\x2F\x63\x68\x65\x63\x6B\x6D\x61\x72\x6B\x2E\x67\x69\x66","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x67\x72\x61\x70\x68","\x65\x64\x69\x74\x6F\x72","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x48\x65\x6C\x76\x65\x74\x69\x63\x61","\x56\x65\x72\x64\x61\x6E\x61","\x54\x69\x6D\x65\x73\x20\x4E\x65\x77\x20\x52\x6F\x6D\x61\x6E","\x47\x61\x72\x61\x6D\x6F\x6E\x64","\x43\x6F\x6D\x69\x63\x20\x53\x61\x6E\x73\x20\x4D\x53","\x43\x6F\x75\x72\x69\x65\x72\x20\x4E\x65\x77","\x47\x65\x6F\x72\x67\x69\x61","\x4C\x75\x63\x69\x64\x61\x20\x43\x6F\x6E\x73\x6F\x6C\x65","\x54\x61\x68\x6F\x6D\x61","\x6C\x65\x6E\x67\x74\x68","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x73\x74\x79\x6C\x65\x43\x68\x61\x6E\x67\x65","\x73\x74\x79\x6C\x65","\x6E\x65\x78\x74\x53\x69\x62\x6C\x69\x6E\x67","\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64","\x61\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x63\x75\x73\x74\x6F\x6D","\x67\x65\x74","","\x70\x72\x6F\x6D\x70\x74\x43\x68\x61\x6E\x67\x65","\x62\x69\x6E\x64","\x70\x75\x74","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x28\x70\x74\x29","\x31\x32","\x6C\x69\x6E\x65\x77\x69\x64\x74\x68","\x70\x78","\x53\x54\x59\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x57\x49\x44\x54\x48","\x28\x70\x78\x29","\x31","\x6C\x69\x6E\x65","\x73\x74\x72\x61\x69\x67\x68\x74","\x53\x54\x59\x4C\x45\x5F\x45\x44\x47\x45","\x65\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E","\x65\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x53\x54\x59\x4C\x45\x5F\x45\x4C\x42\x4F\x57","\x65\x6C\x62\x6F\x77\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x76\x65\x72\x74\x69\x63\x61\x6C","\x6D\x61\x6E\x75\x61\x6C","\x73\x65\x67\x6D\x65\x6E\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x61\x75\x74\x6F\x6D\x61\x74\x69\x63","\x6F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6C\x69\x6E\x65\x65\x6E\x64","\x63\x6C\x61\x73\x73\x69\x63","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x44\x41\x52\x52\x4F\x57","\x41\x52\x52\x4F\x57\x5F\x43\x4C\x41\x53\x53\x49\x43","\x6F\x70\x65\x6E\x41\x72\x72\x6F\x77","\x41\x52\x52\x4F\x57\x5F\x4F\x50\x45\x4E","\x62\x6C\x6F\x63\x6B","\x41\x52\x52\x4F\x57\x5F\x42\x4C\x4F\x43\x4B","\x6F\x76\x61\x6C","\x41\x52\x52\x4F\x57\x5F\x4F\x56\x41\x4C","\x64\x69\x61\x6D\x6F\x6E\x64","\x41\x52\x52\x4F\x57\x5F\x44\x49\x41\x4D\x4F\x4E\x44","\x64\x69\x61\x6D\x6F\x6E\x64\x54\x68\x69\x6E","\x41\x52\x52\x4F\x57\x5F\x44\x49\x41\x4D\x4F\x4E\x44\x5F\x54\x48\x49\x4E","\x6E\x6F\x6E\x65","\x4E\x4F\x4E\x45","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74","\x65\x6E\x64\x46\x69\x6C\x6C","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x61\x64\x64\x49\x74\x65\x6D","\x73\x69\x7A\x65","\x6C\x69\x6E\x65\x73\x74\x61\x72\x74","\x53\x54\x59\x4C\x45\x5F\x53\x54\x41\x52\x54\x41\x52\x52\x4F\x57","\x73\x74\x61\x72\x74\x46\x69\x6C\x6C","\x73\x70\x61\x63\x69\x6E\x67","\x65\x6E\x61\x62\x6C\x65\x64","\x73\x68\x61\x64\x6F\x77","\x61\x63\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x77\x44\x69\x73\x61\x62\x6C\x65\x64","\x74\x6F\x70","\x30","\x72\x69\x67\x68\x74","\x62\x6F\x74\x74\x6F\x6D","\x6C\x65\x66\x74","\x67\x6C\x6F\x62\x61\x6C","\x70\x65\x72\x69\x6D\x65\x74\x65\x72","\x73\x6F\x75\x72\x63\x65\x53\x70\x61\x63\x69\x6E\x67","\x74\x61\x72\x67\x65\x74\x53\x70\x61\x63\x69\x6E\x67","\x66\x6F\x72\x6D\x61\x74","\x61\x64\x64\x4D\x65\x6E\x75\x49\x74\x65\x6D","\x74\x65\x78\x74","\x61\x64\x64\x53\x75\x62\x6D\x65\x6E\x75","\x2D","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x61\x64\x64\x4D\x65\x6E\x75\x49\x74\x65\x6D\x73","\x61\x6C\x69\x67\x6E\x6D\x65\x6E\x74","\x77\x6F\x72\x64\x57\x72\x61\x70","\x74\x65\x78\x74\x4F\x70\x61\x63\x69\x74\x79","\x28\x25\x29","\x31\x30\x30","\x68\x69\x64\x65","\x6C\x65\x66\x74\x41\x6C\x69\x67\x6E","\x53\x54\x59\x4C\x45\x5F\x41\x4C\x49\x47\x4E","\x41\x4C\x49\x47\x4E\x5F\x4C\x45\x46\x54","\x63\x65\x6E\x74\x65\x72","\x41\x4C\x49\x47\x4E\x5F\x43\x45\x4E\x54\x45\x52","\x72\x69\x67\x68\x74\x41\x6C\x69\x67\x6E","\x41\x4C\x49\x47\x4E\x5F\x52\x49\x47\x48\x54","\x74\x6F\x70\x41\x6C\x69\x67\x6E","\x53\x54\x59\x4C\x45\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x41\x4C\x49\x47\x4E","\x41\x4C\x49\x47\x4E\x5F\x54\x4F\x50","\x6D\x69\x64\x64\x6C\x65","\x41\x4C\x49\x47\x4E\x5F\x4D\x49\x44\x44\x4C\x45","\x62\x6F\x74\x74\x6F\x6D\x41\x6C\x69\x67\x6E","\x41\x4C\x49\x47\x4E\x5F\x42\x4F\x54\x54\x4F\x4D","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x53\x54\x59\x4C\x45\x5F\x4C\x41\x42\x45\x4C\x5F\x50\x4F\x53\x49\x54\x49\x4F\x4E","\x53\x54\x59\x4C\x45\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x4C\x41\x42\x45\x4C\x5F\x50\x4F\x53\x49\x54\x49\x4F\x4E","\x64\x69\x72\x65\x63\x74\x69\x6F\x6E","\x66\x6C\x69\x70\x48","\x66\x6C\x69\x70\x56","\x74\x69\x6C\x74","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x61\x6C\x69\x67\x6E","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73","\x6C\x61\x79\x6F\x75\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x46\x6C\x6F\x77","\x65\x78\x65\x63\x75\x74\x65\x4C\x61\x79\x6F\x75\x74","\x76\x65\x72\x74\x69\x63\x61\x6C\x46\x6C\x6F\x77","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x68\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x65\x78\x70\x61\x6E\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x61\x72\x72\x61\x6E\x67\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x74\x6F\x42\x61\x63\x6B","\x67\x72\x6F\x75\x70","\x75\x6E\x67\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x76\x69\x65\x77","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x25","\x7A\x6F\x6F\x6D\x54\x6F","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x66\x69\x74\x57\x69\x6E\x64\x6F\x77","\x63\x75\x73\x74\x6F\x6D\x5A\x6F\x6F\x6D","\x66\x69\x74\x50\x61\x67\x65","\x66\x69\x74\x50\x61\x67\x65\x57\x69\x64\x74\x68","\x66\x69\x6C\x65","\x6E\x65\x77","\x6F\x70\x65\x6E","\x73\x61\x76\x65","\x73\x61\x76\x65\x41\x73","\x70\x75\x62\x6C\x69\x73\x68","\x76\x61\x72\x69\x61\x62\x6C\x65","\x69\x6D\x70\x6F\x72\x74","\x65\x78\x70\x6F\x72\x74","\x65\x64\x69\x74\x46\x69\x6C\x65","\x72\x65\x6E\x61\x6D\x65","\x70\x72\x69\x6E\x74","\x65\x64\x69\x74","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x75\x74","\x63\x6F\x70\x79","\x70\x61\x73\x74\x65","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x68\x65\x6C\x70","\x61\x62\x6F\x75\x74","\x61\x64\x64\x4D\x65\x6E\x75","\x65\x78\x65\x63\x75\x74\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x65\x6E\x74\x65\x72\x56\x61\x6C\x75\x65","\x20","\x70\x72\x6F\x6D\x70\x74","\x6C\x61\x62\x65\x6C","\x66\x75\x6E\x63\x74","\x74\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x69\x73\x53\x65\x6C\x65\x63\x74\x65\x64","\x61\x64\x64\x43\x68\x65\x63\x6B\x6D\x61\x72\x6B","\x61\x64\x64\x53\x68\x6F\x72\x74\x63\x75\x74","\x73\x68\x6F\x72\x74\x63\x75\x74","\x73\x70\x61\x6E","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6F\x6C\x6F\x72","\x67\x72\x61\x79","\x77\x72\x69\x74\x65","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x2F\x63\x68\x65\x63\x6B\x6D\x61\x72\x6B\x2E\x67\x69\x66\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x32\x70\x78\x20\x35\x30\x25","\x63\x72\x65\x61\x74\x65\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x73\x6D\x61\x72\x74\x53\x65\x70\x61\x72\x61\x74\x6F\x72\x73","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x69\x73\x45\x64\x67\x65","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x62\x65\x6E\x64\x73","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x6F\x72\x45\x76\x65\x6E\x74","\x72\x65\x6D\x6F\x76\x65\x57\x61\x79\x70\x6F\x69\x6E\x74","\x68\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x64\x65\x78","\x61\x64\x64\x57\x61\x79\x70\x6F\x69\x6E\x74","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x63\x72\x65\x61\x74\x65\x4D\x65\x6E\x75\x62\x61\x72","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x63\x75\x72\x72\x65\x6E\x74\x4D\x65\x6E\x75","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x49\x74\x65\x6D","\x61\x64\x64\x4D\x65\x6E\x75\x48\x61\x6E\x64\x6C\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x64\x69\x76","\x20\x67\x65\x4D\x65\x6E\x75\x62\x61\x72\x4D\x65\x6E\x75","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x61\x70\x70\x6C\x79","\x64\x65\x73\x74\x72\x6F\x79","\x63\x75\x72\x72\x65\x6E\x74\x45\x6C\x74","\x6F\x66\x66\x73\x65\x74\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x70\x61\x67\x65\x2D\x73\x69\x64\x65\x62\x61\x72","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x70\x6F\x70\x75\x70","\x63\x6F\x6E\x73\x75\x6D\x65","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x63\x6C\x69\x63\x6B","\x63\x61\x6C\x6C","\x65\x78\x74\x65\x6E\x64","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74"];Menus=function(_0xbcbcx1){this[_0x6b28[0]]=_0xbcbcx1;this[_0x6b28[1]]= new Object();this[_0x6b28[2]](); new Image()[_0x6b28[3]]=IMAGE_PATH+_0x6b28[4]};Menus[_0x6b28[5]][_0x6b28[2]]=function(){var _0xbcbcx2=this[_0x6b28[0]][_0x6b28[7]][_0x6b28[6]];this[_0x6b28[30]](_0x6b28[8], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){var _0xbcbcx5=[_0x6b28[9],_0x6b28[10],_0x6b28[11],_0x6b28[12],_0x6b28[13],_0x6b28[14],_0x6b28[15],_0x6b28[16],_0x6b28[17]];for(var _0xbcbcx6=0;_0xbcbcx6<_0xbcbcx5[_0x6b28[18]];_0xbcbcx6++){var _0xbcbcx7=this[_0x6b28[20]](_0xbcbcx3,_0xbcbcx5[_0xbcbcx6],[mxConstants[_0x6b28[19]]],[_0xbcbcx5[_0xbcbcx6]],null,_0xbcbcx4);_0xbcbcx7[_0x6b28[23]][_0x6b28[22]][_0x6b28[21]][_0x6b28[8]]=_0xbcbcx5[_0xbcbcx6]};_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[28]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[25]),_0x6b28[27],mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,_0xbcbcx4)})));this[_0x6b28[30]](_0x6b28[31], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){var _0xbcbcx8=[6,8,9,10,11,12,14,18,24,36,48,72];for(var _0xbcbcx6=0;_0xbcbcx6<_0xbcbcx8[_0x6b28[18]];_0xbcbcx6++){this[_0x6b28[20]](_0xbcbcx3,_0xbcbcx8[_0xbcbcx6],[mxConstants[_0x6b28[32]]],[_0xbcbcx8[_0xbcbcx6]],null,_0xbcbcx4)};_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[28]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[25]),_0x6b28[33],_0x6b28[34],mxConstants.STYLE_FONTSIZE,_0xbcbcx4)})));this[_0x6b28[30]](_0x6b28[35], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){var _0xbcbcx8=[1,2,3,4,8,12,16,24];for(var _0xbcbcx6=0;_0xbcbcx6<_0xbcbcx8[_0x6b28[18]];_0xbcbcx6++){this[_0x6b28[20]](_0xbcbcx3,_0xbcbcx8[_0xbcbcx6]+_0x6b28[36],[mxConstants[_0x6b28[37]]],[_0xbcbcx8[_0xbcbcx6]],null,_0xbcbcx4)};_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[28]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[25]),_0x6b28[38],_0x6b28[39],mxConstants.STYLE_STROKEWIDTH,_0xbcbcx4)})));this[_0x6b28[30]](_0x6b28[40], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[41]),[mxConstants[_0x6b28[42]]],[null],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[43]),[mxConstants[_0x6b28[42]]],[_0x6b28[44]],null,_0xbcbcx4);_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[45]),[mxConstants[_0x6b28[42]],mxConstants[_0x6b28[46]]],[_0x6b28[47],_0x6b28[45]],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[48]),[mxConstants[_0x6b28[42]],mxConstants[_0x6b28[46]]],[_0x6b28[47],_0x6b28[48]],null,_0xbcbcx4);_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[49]),[mxConstants[_0x6b28[42]]],[_0x6b28[50]],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[51]),[mxConstants[_0x6b28[42]]],[_0x6b28[52]],null,_0xbcbcx4)})));this[_0x6b28[30]](_0x6b28[53], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[54]),[mxConstants[_0x6b28[55]]],[mxConstants[_0x6b28[56]]],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[57]),[mxConstants[_0x6b28[55]]],[mxConstants[_0x6b28[58]]],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[59]),[mxConstants[_0x6b28[55]]],[mxConstants[_0x6b28[60]]],null,_0xbcbcx4);_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[61]),[mxConstants[_0x6b28[55]]],[mxConstants[_0x6b28[62]]],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[63]),[mxConstants[_0x6b28[55]]],[mxConstants[_0x6b28[64]]],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[65]),[mxConstants[_0x6b28[55]]],[mxConstants[_0x6b28[66]]],null,_0xbcbcx4);_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[67]),[mxConstants[_0x6b28[55]]],[mxConstants[_0x6b28[68]]],null,_0xbcbcx4);_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);_0xbcbcx3[_0x6b28[72]](mxResources[_0x6b28[26]](_0x6b28[69]),null,function(){_0xbcbcx2[_0x6b28[71]](_0x6b28[70],true)},_0xbcbcx4,null,true);_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[28]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[73]),_0x6b28[38],mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,_0xbcbcx4)})));this[_0x6b28[30]](_0x6b28[74], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[54]),[mxConstants[_0x6b28[75]]],[mxConstants[_0x6b28[56]]],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[57]),[mxConstants[_0x6b28[75]]],[mxConstants[_0x6b28[58]]],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[59]),[mxConstants[_0x6b28[75]]],[mxConstants[_0x6b28[60]]],null,_0xbcbcx4);_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[61]),[mxConstants[_0x6b28[75]]],[mxConstants[_0x6b28[62]]],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[63]),[mxConstants[_0x6b28[75]]],[mxConstants[_0x6b28[64]]],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[65]),[mxConstants[_0x6b28[75]]],[mxConstants[_0x6b28[66]]],null,_0xbcbcx4);_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[67]),[mxConstants[_0x6b28[75]]],[mxConstants[_0x6b28[68]]],null,_0xbcbcx4);_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);_0xbcbcx3[_0x6b28[72]](mxResources[_0x6b28[26]](_0x6b28[69]),null,function(){_0xbcbcx2[_0x6b28[71]](_0x6b28[76],true)},_0xbcbcx4,null,true);_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[28]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[73]),_0x6b28[38],mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,_0xbcbcx4)})));this[_0x6b28[30]](_0x6b28[77], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){var _0xbcbcx9=this[_0x6b28[0]][_0x6b28[80]][_0x6b28[26]](_0x6b28[79])[_0x6b28[78]];var _0xbcbcxa=this[_0x6b28[26]](_0x6b28[40])[_0x6b28[78]];if(_0xbcbcx9||_0xbcbcx3[_0x6b28[81]]){this[_0x6b28[28]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[82]),_0x6b28[38],_0x6b28[83],mxConstants.STYLE_SPACING_TOP,_0xbcbcx4,_0xbcbcx9);this[_0x6b28[28]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[84]),_0x6b28[38],_0x6b28[83],mxConstants.STYLE_SPACING_RIGHT,_0xbcbcx4,_0xbcbcx9);this[_0x6b28[28]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[85]),_0x6b28[38],_0x6b28[83],mxConstants.STYLE_SPACING_BOTTOM,_0xbcbcx4,_0xbcbcx9);this[_0x6b28[28]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[86]),_0x6b28[38],_0x6b28[83],mxConstants.STYLE_SPACING_LEFT,_0xbcbcx4,_0xbcbcx9);_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[28]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[87]),_0x6b28[38],_0x6b28[83],mxConstants.STYLE_SPACING,_0xbcbcx4,_0xbcbcx9);this[_0x6b28[28]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[88]),_0x6b28[38],_0x6b28[83],mxConstants.STYLE_PERIMETER_SPACING,_0xbcbcx4,_0xbcbcx9)};if(_0xbcbcxa||_0xbcbcx3[_0x6b28[81]]){_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[28]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[89]),_0x6b28[38],_0x6b28[83],mxConstants.STYLE_SOURCE_PERIMETER_SPACING,_0xbcbcx4,_0xbcbcxa);this[_0x6b28[28]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[90]),_0x6b28[38],_0x6b28[83],mxConstants.STYLE_TARGET_PERIMETER_SPACING,_0xbcbcx4,_0xbcbcxa)}})));this[_0x6b28[30]](_0x6b28[91], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){this[_0x6b28[92]](_0xbcbcx3,_0x6b28[21],_0xbcbcx4)})));this[_0x6b28[30]](_0x6b28[93], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){var _0xbcbcxb=this[_0x6b28[26]](_0x6b28[93])[_0x6b28[78]];_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[94]](_0x6b28[8],_0xbcbcx3,_0xbcbcx4);this[_0x6b28[94]](_0x6b28[31],_0xbcbcx3,_0xbcbcx4);this[_0x6b28[99]](_0xbcbcx3,[_0x6b28[95],_0x6b28[96],_0x6b28[97],_0x6b28[98],_0x6b28[95]],_0xbcbcx4);this[_0x6b28[94]](_0x6b28[100],_0xbcbcx3,_0xbcbcx4);this[_0x6b28[92]](_0xbcbcx3,_0x6b28[101],_0xbcbcx4);_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[28]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[102]),_0x6b28[103],_0x6b28[104],mxConstants.STYLE_TEXT_OPACITY,_0xbcbcx4,_0xbcbcxb);_0xbcbcx3[_0x6b28[72]](mxResources[_0x6b28[26]](_0x6b28[105]),null,function(){_0xbcbcx2[_0x6b28[71]](mxConstants.STYLE_NOLABEL,false)},_0xbcbcx4,null,_0xbcbcxb)})));this[_0x6b28[30]](_0x6b28[100], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[106]),[mxConstants[_0x6b28[107]]],[mxConstants[_0x6b28[108]]],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[109]),[mxConstants[_0x6b28[107]]],[mxConstants[_0x6b28[110]]],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[111]),[mxConstants[_0x6b28[107]]],[mxConstants[_0x6b28[112]]],null,_0xbcbcx4);_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[113]),[mxConstants[_0x6b28[114]]],[mxConstants[_0x6b28[115]]],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[116]),[mxConstants[_0x6b28[114]]],[mxConstants[_0x6b28[117]]],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[118]),[mxConstants[_0x6b28[114]]],[mxConstants[_0x6b28[119]]],null,_0xbcbcx4);_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[94]](_0x6b28[120],_0xbcbcx3,_0xbcbcx4);this[_0x6b28[94]](_0x6b28[77],_0xbcbcx3,_0xbcbcx4);_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);var _0xbcbcxb=this[_0x6b28[26]](_0x6b28[93])[_0x6b28[78]];_0xbcbcx3[_0x6b28[72]](mxResources[_0x6b28[26]](_0x6b28[48]),null,function(){_0xbcbcx2[_0x6b28[71]](mxConstants.STYLE_HORIZONTAL,true)},_0xbcbcx4,null,_0xbcbcxb)})));this[_0x6b28[30]](_0x6b28[120], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[86]),[mxConstants[_0x6b28[121]],mxConstants[_0x6b28[107]]],[mxConstants[_0x6b28[108]],mxConstants[_0x6b28[112]]],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[109]),[mxConstants[_0x6b28[121]],mxConstants[_0x6b28[107]]],[mxConstants[_0x6b28[110]],mxConstants[_0x6b28[110]]],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[84]),[mxConstants[_0x6b28[121]],mxConstants[_0x6b28[107]]],[mxConstants[_0x6b28[112]],mxConstants[_0x6b28[108]]],null,_0xbcbcx4);_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[82]),[mxConstants[_0x6b28[122]],mxConstants[_0x6b28[114]]],[mxConstants[_0x6b28[115]],mxConstants[_0x6b28[119]]],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[116]),[mxConstants[_0x6b28[122]],mxConstants[_0x6b28[114]]],[mxConstants[_0x6b28[117]],mxConstants[_0x6b28[117]]],null,_0xbcbcx4);this[_0x6b28[20]](_0xbcbcx3,mxResources[_0x6b28[26]](_0x6b28[85]),[mxConstants[_0x6b28[122]],mxConstants[_0x6b28[114]]],[mxConstants[_0x6b28[119]],mxConstants[_0x6b28[115]]],null,_0xbcbcx4)})));this[_0x6b28[30]](_0x6b28[123], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){_0xbcbcx3[_0x6b28[72]](mxResources[_0x6b28[26]](_0x6b28[124]),null,function(){_0xbcbcx2[_0x6b28[71]](mxConstants.STYLE_FLIPH,false)},_0xbcbcx4);_0xbcbcx3[_0x6b28[72]](mxResources[_0x6b28[26]](_0x6b28[125]),null,function(){_0xbcbcx2[_0x6b28[71]](mxConstants.STYLE_FLIPV,false)},_0xbcbcx4);this[_0x6b28[99]](_0xbcbcx3,[_0x6b28[95],_0x6b28[126],_0x6b28[127]],_0xbcbcx4)})));this[_0x6b28[30]](_0x6b28[128], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){_0xbcbcx3[_0x6b28[72]](mxResources[_0x6b28[26]](_0x6b28[106]),null,function(){_0xbcbcx2[_0x6b28[129]](mxConstants.ALIGN_LEFT)},_0xbcbcx4);_0xbcbcx3[_0x6b28[72]](mxResources[_0x6b28[26]](_0x6b28[109]),null,function(){_0xbcbcx2[_0x6b28[129]](mxConstants.ALIGN_CENTER)},_0xbcbcx4);_0xbcbcx3[_0x6b28[72]](mxResources[_0x6b28[26]](_0x6b28[111]),null,function(){_0xbcbcx2[_0x6b28[129]](mxConstants.ALIGN_RIGHT)},_0xbcbcx4);_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);_0xbcbcx3[_0x6b28[72]](mxResources[_0x6b28[26]](_0x6b28[113]),null,function(){_0xbcbcx2[_0x6b28[129]](mxConstants.ALIGN_TOP)},_0xbcbcx4);_0xbcbcx3[_0x6b28[72]](mxResources[_0x6b28[26]](_0x6b28[116]),null,function(){_0xbcbcx2[_0x6b28[129]](mxConstants.ALIGN_MIDDLE)},_0xbcbcx4);_0xbcbcx3[_0x6b28[72]](mxResources[_0x6b28[26]](_0x6b28[118]),null,function(){_0xbcbcx2[_0x6b28[129]](mxConstants.ALIGN_BOTTOM)},_0xbcbcx4)})));this[_0x6b28[30]](_0x6b28[130], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){_0xbcbcx3[_0x6b28[72]](mxResources[_0x6b28[26]](_0x6b28[131]),null,mxUtils[_0x6b28[29]](this,function(){var _0xbcbcxc= new mxHierarchicalLayout(_0xbcbcx2,mxConstants.DIRECTION_WEST);this[_0x6b28[0]][_0x6b28[132]](_0xbcbcxc,true,true)}),_0xbcbcx4);_0xbcbcx3[_0x6b28[72]](mxResources[_0x6b28[26]](_0x6b28[133]),null,mxUtils[_0x6b28[29]](this,function(){var _0xbcbcxc= new mxHierarchicalLayout(_0xbcbcx2,mxConstants.DIRECTION_NORTH);this[_0x6b28[0]][_0x6b28[132]](_0xbcbcxc,true,true)}),_0xbcbcx4)})));this[_0x6b28[30]](_0x6b28[134], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){this[_0x6b28[99]](_0xbcbcx3,[_0x6b28[135],_0x6b28[95],_0x6b28[136],_0x6b28[137],_0x6b28[95],_0x6b28[138],_0x6b28[139]],_0xbcbcx4)})));this[_0x6b28[30]](_0x6b28[140], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){this[_0x6b28[99]](_0xbcbcx3,[_0x6b28[141],_0x6b28[142],_0x6b28[95]],_0xbcbcx4);this[_0x6b28[94]](_0x6b28[130],_0xbcbcx3,_0xbcbcx4);_0xbcbcx3[_0x6b28[24]](_0xbcbcx4);this[_0x6b28[99]](_0xbcbcx3,[_0x6b28[95],_0x6b28[143],_0x6b28[144],_0x6b28[145]],_0xbcbcx4)})));this[_0x6b28[30]](_0x6b28[146], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){this[_0x6b28[99]](_0xbcbcx3,[_0x6b28[147]],_0xbcbcx4);_0xbcbcx3[_0x6b28[24]]();var _0xbcbcxd=[0.25,0.5,0.75,1,2,4];for(var _0xbcbcx6=0;_0xbcbcx6<_0xbcbcxd[_0x6b28[18]];_0xbcbcx6++){(function(_0xbcbcxe){_0xbcbcx3[_0x6b28[72]]((_0xbcbcxe*100)+_0x6b28[148],null,function(){_0xbcbcx2[_0x6b28[149]](_0xbcbcxe)},_0xbcbcx4)})(_0xbcbcxd[_0xbcbcx6])};this[_0x6b28[99]](_0xbcbcx3,[_0x6b28[95],_0x6b28[150],_0x6b28[151],_0x6b28[95],_0x6b28[152],_0x6b28[153],_0x6b28[95],_0x6b28[154],_0x6b28[155]],_0xbcbcx4)})));this[_0x6b28[30]](_0x6b28[156], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){this[_0x6b28[99]](_0xbcbcx3,[_0x6b28[157],_0x6b28[158],_0x6b28[95],_0x6b28[159],_0x6b28[160],_0x6b28[161],_0x6b28[95],_0x6b28[162],_0x6b28[95],_0x6b28[163],_0x6b28[164],_0x6b28[95],_0x6b28[165],_0x6b28[166],_0x6b28[95],_0x6b28[167]],_0xbcbcx4)})));this[_0x6b28[30]](_0x6b28[168], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){this[_0x6b28[99]](_0xbcbcx3,[_0x6b28[169],_0x6b28[170],_0x6b28[95],_0x6b28[171],_0x6b28[172],_0x6b28[173],_0x6b28[174],_0x6b28[95],_0x6b28[175],_0x6b28[95],_0x6b28[176],_0x6b28[177],_0x6b28[178]])})));this[_0x6b28[30]](_0x6b28[179], new Menu(mxUtils[_0x6b28[29]](this,function(_0xbcbcx3,_0xbcbcx4){this[_0x6b28[99]](_0xbcbcx3,[_0x6b28[179],_0x6b28[95],_0x6b28[180]])})))};Menus[_0x6b28[5]][_0x6b28[30]]=function(_0xbcbcxf,_0xbcbcx3){this[_0x6b28[1]][_0xbcbcxf]=_0xbcbcx3};Menus[_0x6b28[5]][_0x6b28[26]]=function(_0xbcbcxf){return this[_0x6b28[1]][_0xbcbcxf]};Menus[_0x6b28[5]][_0x6b28[94]]=function(_0xbcbcxf,_0xbcbcx3,_0xbcbcx4){var _0xbcbcxb=this[_0x6b28[26]](_0xbcbcxf)[_0x6b28[78]];if(_0xbcbcx3[_0x6b28[81]]||_0xbcbcxb){var _0xbcbcx10=_0xbcbcx3[_0x6b28[72]](mxResources[_0x6b28[26]](_0xbcbcxf),null,null,_0xbcbcx4,null,_0xbcbcxb);this[_0x6b28[181]](_0xbcbcxf,_0xbcbcx3,_0xbcbcx10)}};Menus[_0x6b28[5]][_0x6b28[181]]=function(_0xbcbcxf,_0xbcbcx11,_0xbcbcx4){var _0xbcbcx3=this[_0x6b28[26]](_0xbcbcxf);if(_0xbcbcx3!=null&&(_0xbcbcx11[_0x6b28[81]]||_0xbcbcx3[_0x6b28[78]])){this[_0x6b28[26]](_0xbcbcxf)[_0x6b28[182]](_0xbcbcx11,_0xbcbcx4)}};Menus[_0x6b28[5]][_0x6b28[20]]=function(_0xbcbcx3,_0xbcbcx12,_0xbcbcx13,_0xbcbcx14,_0xbcbcx15,_0xbcbcx4){return _0xbcbcx3[_0x6b28[72]](_0xbcbcx12,null,mxUtils[_0x6b28[29]](this,function(){var _0xbcbcx2=this[_0x6b28[0]][_0x6b28[7]][_0x6b28[6]];_0xbcbcx2[_0x6b28[184]]()[_0x6b28[183]]();try{for(var _0xbcbcx6=0;_0xbcbcx6<_0xbcbcx13[_0x6b28[18]];_0xbcbcx6++){_0xbcbcx2[_0x6b28[185]](_0xbcbcx13[_0xbcbcx6],_0xbcbcx14[_0xbcbcx6])}}finally{_0xbcbcx2[_0x6b28[184]]()[_0x6b28[186]]()}}),_0xbcbcx4,_0xbcbcx15)};Menus[_0x6b28[5]][_0x6b28[28]]=function(_0xbcbcx3,_0xbcbcx12,_0xbcbcx16,_0xbcbcx17,_0xbcbcx18,_0xbcbcx4,_0xbcbcxb){return _0xbcbcx3[_0x6b28[72]](_0xbcbcx12,null,mxUtils[_0x6b28[29]](this,function(){var _0xbcbcx2=this[_0x6b28[0]][_0x6b28[7]][_0x6b28[6]];var _0xbcbcx19=_0xbcbcx17;var _0xbcbcx1a=_0xbcbcx2[_0x6b28[189]]()[_0x6b28[188]](_0xbcbcx2[_0x6b28[187]]());if(_0xbcbcx1a!=null){_0xbcbcx19=_0xbcbcx1a[_0x6b28[21]][_0xbcbcx18]||_0xbcbcx19};_0xbcbcx19=mxUtils[_0x6b28[192]](mxResources[_0x6b28[26]](_0x6b28[190])+((_0xbcbcx16[_0x6b28[18]]>0)?(_0x6b28[191]+_0xbcbcx16):_0x6b28[27]),_0xbcbcx19);if(_0xbcbcx19!=null&&_0xbcbcx19[_0x6b28[18]]>0){_0xbcbcx2[_0x6b28[185]](_0xbcbcx18,_0xbcbcx19)}}),_0xbcbcx4,null,_0xbcbcxb)};Menus[_0x6b28[5]][_0x6b28[92]]=function(_0xbcbcx3,_0xbcbcx18,_0xbcbcx4){var _0xbcbcx1b=this[_0x6b28[0]][_0x6b28[80]][_0x6b28[26]](_0xbcbcx18);if(_0xbcbcx1b!=null&&(_0xbcbcx3[_0x6b28[81]]||_0xbcbcx1b[_0x6b28[78]])){var _0xbcbcx1c=_0xbcbcx3[_0x6b28[72]](_0xbcbcx1b[_0x6b28[193]],null,_0xbcbcx1b[_0x6b28[194]],_0xbcbcx4,null,_0xbcbcx1b[_0x6b28[78]]);if(_0xbcbcx1b[_0x6b28[195]]&&_0xbcbcx1b[_0x6b28[196]]()){this[_0x6b28[197]](_0xbcbcx1c)};this[_0x6b28[198]](_0xbcbcx1c,_0xbcbcx1b);return _0xbcbcx1c};return null};Menus[_0x6b28[5]][_0x6b28[198]]=function(_0xbcbcx1c,_0xbcbcx1b){if(_0xbcbcx1b[_0x6b28[199]]!=null){var _0xbcbcx1d=_0xbcbcx1c[_0x6b28[23]][_0x6b28[22]][_0x6b28[22]];var _0xbcbcx1e=document[_0x6b28[201]](_0x6b28[200]);_0xbcbcx1e[_0x6b28[21]][_0x6b28[202]]=_0x6b28[203];mxUtils[_0x6b28[204]](_0xbcbcx1e,_0xbcbcx1b[_0x6b28[199]]);_0xbcbcx1d[_0x6b28[205]](_0xbcbcx1e)}};Menus[_0x6b28[5]][_0x6b28[197]]=function(_0xbcbcx1c){var _0xbcbcx1d=_0xbcbcx1c[_0x6b28[23]][_0x6b28[22]];_0xbcbcx1d[_0x6b28[21]][_0x6b28[206]]=_0x6b28[207]+IMAGE_PATH+_0x6b28[208];_0xbcbcx1d[_0x6b28[21]][_0x6b28[209]]=_0x6b28[210];_0xbcbcx1d[_0x6b28[21]][_0x6b28[211]]=_0x6b28[212]};Menus[_0x6b28[5]][_0x6b28[99]]=function(_0xbcbcx3,_0xbcbcx13,_0xbcbcx4){for(var _0xbcbcx6=0;_0xbcbcx6<_0xbcbcx13[_0x6b28[18]];_0xbcbcx6++){if(_0xbcbcx13[_0xbcbcx6]==_0x6b28[95]){_0xbcbcx3[_0x6b28[24]](_0xbcbcx4)}else {this[_0x6b28[92]](_0xbcbcx3,_0xbcbcx13[_0xbcbcx6],_0xbcbcx4)}}};Menus[_0x6b28[5]][_0x6b28[213]]=function(_0xbcbcx3,_0xbcbcx1f,_0xbcbcx20){var _0xbcbcx2=this[_0x6b28[0]][_0x6b28[7]][_0x6b28[6]];_0xbcbcx3[_0x6b28[214]]=true;if(_0xbcbcx2[_0x6b28[215]]()){this[_0x6b28[99]](_0xbcbcx3,[_0x6b28[169],_0x6b28[170],_0x6b28[95],_0x6b28[173],_0x6b28[95]])}else {this[_0x6b28[99]](_0xbcbcx3,[_0x6b28[174],_0x6b28[95],_0x6b28[171],_0x6b28[172],_0x6b28[95],_0x6b28[175]]);if(_0xbcbcx2[_0x6b28[216]]()==1&&_0xbcbcx2[_0x6b28[184]]()[_0x6b28[217]](_0xbcbcx2[_0x6b28[187]]())){this[_0x6b28[99]](_0xbcbcx3,[_0x6b28[218]])};_0xbcbcx3[_0x6b28[24]]()};if(_0xbcbcx2[_0x6b28[216]]()>0){this[_0x6b28[99]](_0xbcbcx3,[_0x6b28[141],_0x6b28[142],_0x6b28[95]]);if(_0xbcbcx2[_0x6b28[184]]()[_0x6b28[217]](_0xbcbcx2[_0x6b28[187]]())){var _0xbcbcx21=false;var _0xbcbcx1f=_0xbcbcx2[_0x6b28[187]]();if(_0xbcbcx1f!=null&&_0xbcbcx2[_0x6b28[184]]()[_0x6b28[217]](_0xbcbcx1f)){var _0xbcbcx22=_0xbcbcx2[_0x6b28[220]][_0x6b28[219]](_0xbcbcx1f);if(_0xbcbcx22 instanceof mxEdgeHandler&&_0xbcbcx22[_0x6b28[221]]!=null&&_0xbcbcx22[_0x6b28[221]][_0x6b28[18]]>2){var _0xbcbcx23=_0xbcbcx22[_0x6b28[222]]( new mxMouseEvent(_0xbcbcx20));var _0xbcbcx24=this[_0x6b28[0]][_0x6b28[80]][_0x6b28[26]](_0x6b28[223]);_0xbcbcx24[_0x6b28[224]]=_0xbcbcx22;_0xbcbcx24[_0x6b28[225]]=_0xbcbcx23;_0xbcbcx21=_0xbcbcx23>0&&_0xbcbcx23<_0xbcbcx22[_0x6b28[221]][_0x6b28[18]]}};this[_0x6b28[99]](_0xbcbcx3,[_0x6b28[95],(_0xbcbcx21)?_0x6b28[223]:_0x6b28[226]])}else {if(_0xbcbcx2[_0x6b28[216]]()>1){_0xbcbcx3[_0x6b28[24]]();this[_0x6b28[99]](_0xbcbcx3,[_0x6b28[143]])}};_0xbcbcx3[_0x6b28[24]]();if(_0xbcbcx2[_0x6b28[216]]()==1){var _0xbcbcx25=_0xbcbcx2[_0x6b28[227]](_0xbcbcx2[_0x6b28[187]]());if(_0xbcbcx25!=null){this[_0x6b28[99]](_0xbcbcx3,[_0x6b28[228]])}}}else {this[_0x6b28[99]](_0xbcbcx3,[_0x6b28[95],_0x6b28[176],_0x6b28[177],_0x6b28[95],_0x6b28[178]])}};Menus[_0x6b28[5]][_0x6b28[229]]=function(_0xbcbcx26){var _0xbcbcx27= new Menubar(this[_0x6b28[0]],_0xbcbcx26);var _0xbcbcx28=[_0x6b28[156],_0x6b28[168],_0x6b28[146],_0x6b28[91],_0x6b28[93],_0x6b28[140],_0x6b28[179]];for(var _0xbcbcx6=0;_0xbcbcx6<_0xbcbcx28[_0x6b28[18]];_0xbcbcx6++){_0xbcbcx27[_0x6b28[181]](mxResources[_0x6b28[26]](_0xbcbcx28[_0xbcbcx6]),this[_0x6b28[26]](_0xbcbcx28[_0xbcbcx6])[_0x6b28[194]])};return _0xbcbcx27};function Menubar(_0xbcbcx1,_0xbcbcx26){this[_0x6b28[0]]=_0xbcbcx1;this[_0x6b28[230]]=_0xbcbcx26;mxEvent[_0x6b28[232]](document,mxUtils[_0x6b28[29]](this,function(_0xbcbcx20){this[_0x6b28[231]]()}))}Menubar[_0x6b28[5]][_0x6b28[231]]=function(){if(this[_0x6b28[233]]!=null){this[_0x6b28[233]][_0x6b28[231]]()}};Menubar[_0x6b28[5]][_0x6b28[181]]=function(_0xbcbcx12,_0xbcbcx2a){var _0xbcbcx2b=document[_0x6b28[201]](_0x6b28[234]);_0xbcbcx2b[_0x6b28[237]](_0x6b28[235],_0x6b28[236]);_0xbcbcx2b[_0x6b28[238]]=_0x6b28[239];mxUtils[_0x6b28[204]](_0xbcbcx2b,_0xbcbcx12);this[_0x6b28[240]](_0xbcbcx2b,_0xbcbcx2a);this[_0x6b28[230]][_0x6b28[205]](_0xbcbcx2b);return _0xbcbcx2b};Menubar[_0x6b28[5]][_0x6b28[240]]=function(_0xbcbcx2b,_0xbcbcx2a){if(_0xbcbcx2a!=null){var _0xbcbcx2c=true;var _0xbcbcx2d=mxUtils[_0x6b28[29]](this,function(_0xbcbcx20){if(_0xbcbcx2c&&_0xbcbcx2b[_0x6b28[78]]==null||_0xbcbcx2b[_0x6b28[78]]){this[_0x6b28[0]][_0x6b28[7]][_0x6b28[6]][_0x6b28[241]][_0x6b28[231]]();var _0xbcbcx3= new mxPopupMenu(_0xbcbcx2a);_0xbcbcx3[_0x6b28[242]][_0x6b28[238]]+=_0x6b28[243];_0xbcbcx3[_0x6b28[214]]=true;_0xbcbcx3[_0x6b28[81]]=true;_0xbcbcx3[_0x6b28[244]]=true;_0xbcbcx3[_0x6b28[231]]=mxUtils[_0x6b28[29]](this,function(){mxPopupMenu[_0x6b28[5]][_0x6b28[231]][_0x6b28[245]](_0xbcbcx3,arguments);_0xbcbcx3[_0x6b28[246]]();this[_0x6b28[233]]=null;this[_0x6b28[247]]=null});var _0xbcbcx2e=_0xbcbcx2b[_0x6b28[248]]+document[_0x6b28[251]](_0x6b28[250])[_0x6b28[249]]+22;var _0xbcbcx2f=_0xbcbcx2b[_0x6b28[252]]+_0xbcbcx2b[_0x6b28[253]]+140;_0xbcbcx3[_0x6b28[254]](_0xbcbcx2e,_0xbcbcx2f,null,_0xbcbcx20);this[_0x6b28[233]]=_0xbcbcx3;this[_0x6b28[247]]=_0xbcbcx2b};_0xbcbcx2c=true;mxEvent[_0x6b28[255]](_0xbcbcx20)});mxEvent[_0x6b28[257]](_0xbcbcx2b,_0x6b28[256],mxUtils[_0x6b28[29]](this,function(_0xbcbcx20){if(this[_0x6b28[233]]!=null&&this[_0x6b28[247]]!=_0xbcbcx2b){this[_0x6b28[231]]();_0xbcbcx2d(_0xbcbcx20)}}));mxEvent[_0x6b28[257]](_0xbcbcx2b,_0x6b28[258],mxUtils[_0x6b28[29]](this,function(){_0xbcbcx2c=this[_0x6b28[247]]!=_0xbcbcx2b}));mxEvent[_0x6b28[257]](_0xbcbcx2b,_0x6b28[259],_0xbcbcx2d)}};function Menu(_0xbcbcx2a,_0xbcbcxb){mxEventSource[_0x6b28[260]](this);this[_0x6b28[194]]=_0xbcbcx2a;this[_0x6b28[78]]=(_0xbcbcxb!=null)?_0xbcbcxb:true}mxUtils[_0x6b28[261]](Menu,mxEventSource);Menu[_0x6b28[5]][_0x6b28[262]]=function(_0xbcbcx19){if(this[_0x6b28[78]]!=_0xbcbcx19){this[_0x6b28[78]]=_0xbcbcx19;this[_0x6b28[264]]( new mxEventObject(_0x6b28[263]))}};Menu[_0x6b28[5]][_0x6b28[182]]=function(_0xbcbcx3,_0xbcbcx4){this[_0x6b28[194]](_0xbcbcx3,_0xbcbcx4)}
\ No newline at end of file