moduleLoader.beginCacheLoading(["/script/entities/graph/api/index.js?v=91","/script/shared/point.js?v=91","/script/entities/edge/api/index.js?v=91","/script/entities/edge/model/BaseEdge.js?v=91","/script/entities/edge/model/EdgeModel.js?v=91","/script/entities/vertex/api/index.js?v=91","/script/entities/vertex/model/BaseVertex.js?v=91","/script/entities/vertex/model/VertexModel.js?v=91","/script/entities/graph/model/Graph.js?v=91","/script/pages/create_graph_by_matrix/model/createByMatrixMain.js?v=91","/script/pages/create_graph_by_matrix/model/main.js?v=91",]);{let modulDir="pages/create_graph_by_matrix/";doInclude([include("entities/graph/api/index.js"),include("model/createByMatrixMain.js",modulDir),include("model/main.js",modulDir)]);} {let modulDir="entities/graph/";doInclude([include("shared/point.js"),include("entities/edge/api/index.js"),include("entities/vertex/api/index.js"),include("model/Graph.js",modulDir)])}function Point(x,y){this.x=x||0;this.y=y||0;};Point.prototype.x=null;Point.prototype.y=null;Point.prototype.add=function(v){return new Point(this.x+v.x,this.y+v.y);};Point.prototype.addValue=function(v){return new Point(this.x+v,this.y+v);};Point.prototype.clone=function(){return new Point(this.x,this.y);};Point.prototype.degreesTo=function(v){var dx=this.x-v.x;var dy=this.y-v.y;var angle=Math.atan2(dy,dx);return angle*(180/Math.PI);};Point.prototype.distance=function(v){return Math.sqrt(this.distanceSqr(v));};Point.prototype.distanceSqr=function(v){var x=this.x-v.x;var y=this.y-v.y;return x*x+y*y;};Point.prototype.equals=function(toCompare){return this.x==toCompare.x&&this.y==toCompare.y;};Point.prototype.interpolate=function(v,f){return new Point((this.x+v.x)*f,(this.y+v.y)*f);};Point.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y);};Point.prototype.normalize=function(thickness){var l=this.length();this.x=this.x/l*thickness;this.y=this.y/l*thickness;return new Point(this.x,this.y);};Point.prototype.normalizeCopy=function(thickness){var l=this.length();return new Point(this.x/l*thickness,this.y/l*thickness);};Point.prototype.orbit=function(origin,arcWidth,arcHeight,degrees){var radians=degrees*(Math.PI/180);this.x=origin.x+arcWidth*Math.cos(radians);this.y=origin.y+arcHeight*Math.sin(radians);};Point.prototype.rotate=function(center,degrees){var radians=degrees*(Math.PI/180);offset=this.subtract(center);this.x=offset.x*Math.cos(radians)-offset.y*Math.sin(radians);this.y=offset.x*Math.sin(radians)+offset.y*Math.cos(radians);this.x=this.x+center.x;this.y=this.y+center.y;return this;};Point.prototype.offset=function(dx,dy){this.x+=dx;this.y+=dy;};Point.prototype.subtract=function(v){return new Point(this.x-v.x,this.y-v.y);};Point.prototype.subtractValue=function(value){return new Point(this.x-value,this.y-value);};Point.prototype.multiply=function(value){return new Point(this.x*value,this.y*value);};Point.prototype.toString=function(){return"(x="+this.x+", y="+this.y+")";};Point.prototype.normal=function(){return new Point(-this.y,this.x);};Point.prototype.min=function(point) {return new Point(Math.min(this.x,point.x),Math.min(this.y,point.y));};Point.prototype.max=function(point) {return new Point(Math.max(this.x,point.x),Math.max(this.y,point.y));};Point.prototype.inverse=function() {return new Point(-this.x,-this.y);};Point.prototype.cross=function(point) {return this.x*point.y-this.y*point.x;};Point.interpolate=function(pt1,pt2,f){return new Point(pt1.x*(1.0-f)+pt2.x*f,pt1.y*(1.0-f)+pt2.y*f);};Point.polar=function(len,angle){return new Point(len*Math.cos(angle),len*Math.sin(angle));};Point.distance=function(pt1,pt2){var x=pt1.x-pt2.x;var y=pt1.y-pt2.y;return Math.sqrt(x*x+y*y);};Point.center=function(pt1,pt2){return new Point((pt1.x+pt2.x)/2.0,(pt1.y+pt2.y)/2.0);};Point.toString=function(){return x+" "+y;} Point.projection=function(point,line1,line2) {var x=line2.y-line1.y;var y=line1.x-line2.x;var l=(line1.cross(line2)+line1.cross(point)+line2.cross(point))/(x*(line2.y-line1.y)+y*(line1.x-line2.x));var res=new Point(point.x+x*l,point.y+y*l);return res;} Point.hitTest=function(pt11,pt12,pt21,pt22) {var res=null;var n=0.0;var x1=pt11.x;var y1=pt11.y;var x2=pt12.x;var y2=pt12.y;var x3=pt21.x;var y3=pt21.y;var x4=pt22.x;var y4=pt22.y;if(y2-y1!=0.0) {var q=(x2-x1)/(y1-y2);var sn=(x3-x4)+(y3-y4)*q;if(sn==0.0) {return res;} var fn=(x3-x1)+(y3-y1)*q;n=fn/sn;} else {if((y3-y4)==0.0) {return res;} n=(y3-y1)/(y3-y4);} res=new Point(x3+(x4-x3)*n,y3+(y4-y3)*n);var epsilon=1E-5;if(!(res.x>=Math.min(x1,x2)-epsilon&&res.x>=Math.min(x3,x4)-epsilon&&res.x<=Math.max(x1,x2)+epsilon&&res.x<=Math.max(x3,x4)+epsilon&&res.y>=Math.min(y1,y2)-epsilon&&res.y>=Math.min(y3,y4)-epsilon&&res.y<=Math.max(y1,y2)+epsilon&&res.y<=Math.max(y3,y4)+epsilon)) {res=null;} return res;} function Rect(minPoint,maxPoint){this.minPoint=minPoint;this.maxPoint=maxPoint;};Rect.prototype.center=function() {return Point.center(this.minPoint,this.maxPoint);};Rect.prototype.size=function() {return this.maxPoint.subtract(this.minPoint);};Rect.prototype.left=function() {return this.minPoint.x;};Rect.prototype.top=function() {return this.minPoint.y;};Rect.prototype.isIn=function(v) {return this.minPoint.x<=v.x&&this.minPoint.y<=v.y&&this.maxPoint.x>v.x&&this.maxPoint.y>v.y;};{let modulDir="entities/edge/";doInclude([include("model/BaseEdge.js",modulDir),include("model/EdgeModel.js",modulDir)])} function BaseEdge(vertex1,vertex2,isDirect,weight,upText) {this.vertex1=vertex1;this.vertex2=vertex2;this.arrayStyleStart="";this.arrayStyleFinish="";this.isDirect=isDirect;this.weight=0;this.text="";this.useWeight=false;this.id=0;this.model=new EdgeModel();if(upText===undefined) this.upText="";else this.upText=upText;if(weight!==undefined) this.SetWeight(weight);this.ownStyles={};} BaseEdge.prototype.copyFrom=function(other) {this.vertex1=other.vertex1;this.vertex2=other.vertex2;this.arrayStyleStart=other.arrayStyleStart;this.arrayStyleFinish=other.arrayStyleFinish;this.isDirect=other.isDirect;this.weight=other.weight;this.text=other.text;this.useWeight=other.useWeight;this.id=other.id;this.model=new EdgeModel();this.model.copyFrom(other.model);this.upText=other.upText;this.ownStyles=FullObjectCopy(other.ownStyles);} BaseEdge.prototype.SaveToXML=function() {return"0)?"ownStyles = \""+gEncodeToHTML(JSON.stringify(this.ownStyles))+"\" ":"")+ this.model.SaveToXML()+">";} BaseEdge.prototype.LoadFromXML=function(xml,graph,defaultLoadEdges) {var attr=xml.attr('vertex1');if(typeof attr==='undefined') {attr=xml.attr('source');} this.vertex1=graph.FindVertex(typeof attr!=='undefined'?attr:xml.attr('graph1'));var attr=xml.attr('vertex2');if(typeof attr==='undefined') {attr=xml.attr('target');} this.vertex2=graph.FindVertex(typeof attr!=='undefined'?attr:xml.attr('graph2'));var directedAttribute=xml.attr('directed');if(typeof directedAttribute!=='undefined') {this.isDirect=directedAttribute=="true";} else {var isDirectedAttribute=xml.attr('isDirect');if(typeof isDirectedAttribute!=='undefined') {this.isDirect=isDirectedAttribute=="true";} else {this.isDirect=defaultLoadEdges=="directed";}} this.weight=parseFloat(xml.attr('weight'));if(isNaN(this.weight)) {this.weight=1;} this.hasPair=xml.attr('hasPair')=="true";this.useWeight=xml.attr('useWeight')=="true";this.id=xml.attr('id');this.text=xml.attr("text")==null?"":gDecodeFromHTML(xml.attr("text"));this.arrayStyleStart=xml.attr("arrayStyleStart")==null?"":xml.attr("arrayStyleStart");this.arrayStyleFinish=xml.attr("arrayStyleFinish")==null?"":xml.attr("arrayStyleFinish");this.upText=xml.attr('upText');if(typeof this.upText==='undefined') {this.upText="";} else {this.upText=gDecodeFromHTML(this.upText);} var ownStyle=xml.attr('ownStyles');if(typeof ownStyle!=='undefined') {var parsedSave=gDecodeFromHTML(JSON.parse(ownStyle));for(var indexField in parsedSave) {var index=parseInt(indexField);this.ownStyles[index]=FullObjectCopy(this.getStyleFor(index));for(var field in parsedSave[indexField]) {if(this.ownStyles[index].ShouldLoad(field)) this.ownStyles[index][field]=parsedSave[indexField][field];}}} this.model.LoadFromXML(xml);} BaseEdge.prototype.GetPixelLength=function() {if(this.vertex1==this.vertex2) {return this.model.GetLoopSize()*2*Math.PI;} else {return Point.distance(this.vertex1.position,this.vertex2.position);}} BaseEdge.prototype.GetWeight=function() {return this.useWeight?this.weight:1;} BaseEdge.prototype.GetText=function() {return this.text.length>0?this.text:(this.useWeight?this.weight.toString():"");} BaseEdge.prototype.GetUpText=function() {return this.upText;} BaseEdge.prototype.GetStartEdgeStyle=function() {return this.arrayStyleStart;} BaseEdge.prototype.GetFinishEdgeStyle=function() {return(this.arrayStyleFinish!=""?this.arrayStyleFinish:(this.isDirect?"arrow":""));} BaseEdge.prototype.HitTest=function(pos) {var positions=this.GetEdgePositionsShift();return this.model.HitTest(positions[0],positions[1],pos);} BaseEdge.prototype.GetEdgePositionsShift=function() {return this.GetEdgePositions();} BaseEdge.prototype.GetEdgePositions=function() {var res=[];if(this.vertex1==this.vertex2) {res.push(this.vertex1.position);res.push(this.vertex2.position);return res;} var position1=this.vertex1.position;var position2=this.vertex2.position;var diameter1=this.vertex1.model.diameter+parseInt(this.vertex1.currentStyle.GetStyle({},this.vertex1).lineWidth);var diameter2=this.vertex2.model.diameter+parseInt(this.vertex2.currentStyle.GetStyle({},this.vertex2).lineWidth);var direction=position1.subtract(position2);var direction1=direction;var direction2=direction;var d1=diameter1;var d2=diameter2;if(this.model.type==EdgeModels.curve) {var dist=position1.distance(position2);var point1=this.model.GetCurvePoint(position1,position2,10.0/dist);direction1=position1.subtract(point1);var point2=this.model.GetCurvePoint(position1,position2,1.0-10.0/dist);direction2=position2.subtract(point2);d2=diameter2;} else {direction2=direction2.multiply(-1);} direction1.normalize(1.0);direction2.normalize(1.0);var vertices=[];vertices.push({vertex:this.vertex1,direction:direction1,position:position1,diameter:d1});vertices.push({vertex:this.vertex2,direction:direction2,position:position2,diameter:d2});vertices.forEach(function(data) {var style=data.vertex.currentStyle.GetStyle({},data.vertex);var shape=style.shape;if(shape==VertexCircleShape) {var direction=data.direction.multiply(0.5);res.push(data.position.subtract(direction.multiply(data.diameter)));} else {var lineFinish1=data.direction.multiply(-1).multiply(1000.0);var pointsVertex1=GetPointsForShape(shape,data.diameter,{style:style,text:data.vertex.mainText});pointsVertex1.push(pointsVertex1[0]);for(var i=0;i=(new Point(r2,r12)).length()||r2>=(new Point(r1,r12)).length()) {} else {var distance=((pos1.y-pos2.y)*pos0.x+(pos2.x-pos1.x)*pos0.y+(pos1.x*pos2.y-pos2.x*pos1.y))/r12;if(Math.abs(distance)<=this.width*1.5*factor) {return true;}} return false;} EdgeModel.prototype.HitTestCurve=function(position1,position2,mousePos) {var pos1=position1;var pos2=position2;var pos0=mousePos;if(pos1.equals(pos2)) {var xCenter=pos1.x-Math.cos(this.GetLoopShiftAngel())*this.GetLoopSize();var yCenter=pos1.y-Math.sin(this.GetLoopShiftAngel())*this.GetLoopSize();return Math.abs((Point.distance(new Point(xCenter,yCenter),pos0))-this.GetLoopSize())<=this.width*1.5;} var interval_count=position1.distance(position2)/100*30;var start=position1;for(var i=0;i=0.0){normalCurve+=this.defaultCurve} return this.sizeOfLoop*Math.abs(normalCurve)*(1/this.defaultCurve);}} EdgeModel.prototype.GetLoopShiftAngel=function() {if(this.type==EdgeModels.line||this.curveValue>=0.0) {return this.loopShiftAngel;} else {return this.loopShiftAngel+Math.PI;}} {let modulDir="entities/vertex/";doInclude([include("model/BaseVertex.js",modulDir),include("model/VertexModel.js",modulDir)])} function BaseVertex(x,y,vertexEnumType) {this.position=new Point(x,y);this.id=0;this.mainText="";this.upText="";this.vertexEnumType=vertexEnumType;this.model=new VertexModel();this.hasUndefinedPosition=false;this.ownStyles={};};BaseVertex.prototype.position=new Point(0,0);BaseVertex.prototype.copyFrom=function(other) {this.position=new Point(other.position.x,other.position.y);this.id=other.id;this.mainText=other.mainText;this.upText=other.upText;this.vertexEnumType=other.vertexEnumType;this.model=new VertexModel();this.hasUndefinedPosition=other.hasUndefinedPosition;this.ownStyles=FullObjectCopy(other.ownStyles);} BaseVertex.prototype.SaveToXML=function() {return"0)?"ownStyles = \""+gEncodeToHTML(JSON.stringify(this.ownStyles))+"\" ":"")+"size=\""+this.model.diameter+"\" "+">";} BaseVertex.prototype.LoadFromXML=function(xml) {var xmlX=xml.attr('positionX');var xmlY=xml.attr('positionY');this.hasUndefinedPosition=(typeof xmlX==='undefined')||(typeof xmlY==='undefined');this.position=new Point(parseFloat(xmlX),parseFloat(xmlY));this.id=xml.attr('id');this.mainText=xml.attr('mainText');this.upText=xml.attr('upText');if(typeof this.mainText==='undefined') this.mainText=this.id;else this.mainText=gDecodeFromHTML(this.mainText);if(typeof this.upText==='undefined') this.upText="";else this.upText=gDecodeFromHTML(this.upText);var ownStyle=xml.attr('ownStyles');if(typeof ownStyle!=='undefined') {var parsedSave=gDecodeFromHTML(JSON.parse(ownStyle));for(var indexField in parsedSave) {var index=parseInt(indexField);this.ownStyles[index]=FullObjectCopy(this.getStyleFor(index));for(var field in parsedSave[indexField]) {if(this.ownStyles[index].ShouldLoad(field)) this.ownStyles[index][field]=parsedSave[indexField][field];}}} var size=xml.attr('size');if(typeof size!=='undefined') this.model.diameter=parseInt(size);} BaseVertex.prototype.SetId=function(id) {this.id=id;if(this.vertexEnumType!=null) this.mainText=this.vertexEnumType.GetVertexText(id);} BaseVertex.prototype.IsUndefinedPosition=function() {return this.hasUndefinedPosition;} BaseVertex.prototype.HitTest=function(pos) {var style=this.hasOwnProperty('currentStyle')?this.currentStyle.GetStyle({},this):null;var shape=style!=null?style.shape:VertexCircleShape;var width=style!=null?style.lineWidth:0;if(shape==VertexCircleShape) {return this.position.distance(pos)-1) {this.edges.splice(index,1);} this.isMultiGraph=this.checkMutiGraph();this.hasNegativeWeight=this.checkNegativeWeight();} Graph.prototype.DeleteVertex=function(vertexObject) {var index=this.vertices.indexOf(vertexObject);if(index>-1) {for(var i=0;i-1) {for(var i=0;imaxWeight) {res=edge;maxWeight=edge.weight;}}} return res;} Graph.prototype.FindEdgeMinIgnoreDirection=function(id1,id2) {var res=null;var minWeight=this.infinity;for(var i=0;i.+$/g,/^.+<.+$/g,/^.+-\(\d+\.?\d+\)-.+$/g,/^.+-\(\d+\.?\d+\)\>.+$/g,/^.+<\(\d+\.?\d+\)\-.+$/g];let res=true;for(let i=0;i0||cols[j][vertexIndex]>0)&&j!=vertexIndex) {relatedVertex.push(this.vertices[j]);}} var diameter=(new VertexModel()).diameter;if(relatedVertex.length>1) {for(var j=0;jmaxDistance) {var force=(otherVertex.position.subtract(currentVertex.object.position)).normalize(edgeGravityKof*(distance-maxDistance));currentVertex.net_force=currentVertex.net_force.add(force);}}} var distanceToCenter=centerPoint.distance(currentVertex.object.position);var force=centerPoint.subtract(currentVertex.object.position).normalize(distanceToCenter*kCenterForce);currentVertex.net_force=currentVertex.net_force.add(force);currentVertex.velocity=currentVertex.velocity.add(currentVertex.net_force);} bChanged=false;for(i=0;ivelocityMax) {velocity=velocity.normalize(velocityMax);} v.object.position=v.object.position.add(velocity);if(velocity.length()>=1) {bChanged=true;}} k++;} var bbox=this.getGraphBBox();if(bbox.size().length()>viewportSize.length()*1000) {for(i=0;i=this.vertices.length) {var newPos=this.GetRandomPositionOfVertex(matrix,j,viewportSize);newVertices.push(new BaseVertex(newPos.x,newPos.y,currentEnumVerticesType));this.AddNewVertex(newVertices[newVertices.length-1]);} if(cols[i][j]!=0) {var nEdgeIndex=this.AddNewEdgeSafe(this.vertices[i],this.vertices[j],cols[i][j]!=cols[j][i],cols[i][j],true);this.FixEdgeCurve(nEdgeIndex);if(nEdgeIndex>=0) {bWeightGraph=bWeightGraph||this.edges[nEdgeIndex].weight!=1;}}}} if(!bWeightGraph) {this.edges.forEach(function(part,index,theArray){theArray[index].useWeight=false;});} for(var i=rows.length;i(.+)$/g,/^(.+)<(.+)$/g,/^(.+)-\((-?\d+|-?\d+\.?\d+)\)-(.+)$/g,/^(.+)-\((-?\d+|-?\d+\.?\d+)\)\>(.+)$/g,/^(.+)<\((-?\d+|-?\d+\.?\d+)\)\-(.+)$/g,];let bWeightGraph=false;var newVertices=[];for(var i=0;i=0;--j){if(!line.match(regExp[j])){continue;} let groupes=Array.from(line.matchAll(regExp[j]));let groupe=groupes[0];let vetext1Title=groupe[1];let vertex1=this.FindVertexByTitle(vetext1Title);if(vertex1==null){let newPosition=this.GetRandomPosition(viewportSize);vertex1=this.vertices[this.AddNewVertex(new BaseVertex(newPosition.x,newPosition.y,currentEnumVerticesType))];vertex1.mainText=vetext1Title;newVertices.push(vertex1);} let vetext2Title=groupe[j<=2?2:3];let vertex2=this.FindVertexByTitle(vetext2Title);if(vertex2==null){let newPosition=this.GetRandomPosition(viewportSize);vertex2=this.vertices[this.AddNewVertex(new BaseVertex(newPosition.x,newPosition.y,currentEnumVerticesType))];vertex2.mainText=vetext2Title;newVertices.push(vertex2);} let isDirect=j==1||j==2||j==4||j==5;let weight=1;if(j>2){weight=groupe[2];bWeightGraph=true;} let isRevertEdge=j==2||j==5;let nEdgeIndex=this.AddNewEdgeSafe(isRevertEdge?vertex2:vertex1,isRevertEdge?vertex1:vertex2,isDirect,weight,false);this.FixEdgeCurve(nEdgeIndex);break;}} if(!bWeightGraph) {this.edges.forEach(function(part,index,theArray){theArray[index].useWeight=false;});} this.VerticesReposition(viewportSize,newVertices);}} Graph.prototype.TestIncidenceMatrix=function(matrix,rowsObj,colsObj,separator) {if(separator===undefined) {separator=",";} var bGoodFormat=true;rowsObj.rows=[];rowsObj.rows=matrix.split("\n");for(j=0;j=this.vertices.length) {var newPos=new Point(0,0);newVertices.push(new BaseVertex(newPos.x,newPos.y,currentEnumVerticesType));this.AddNewVertex(newVertices[newVertices.length-1]);} if(cols[j][i]!=0) {edgeValue.push(cols[j][i]);edgeIndex.push(j);}} if(edgeIndex.length==1) {edgeValue.push(edgeValue[0]);edgeIndex.push(edgeIndex[0]);} if(edgeIndex.length==2) {if(edgeValue[0]!=edgeValue[1]) {if(edgeValue[1]>0) {edgeValue=edgeValue.swap(0,1);edgeIndex=edgeIndex.swap(0,1);}} var nEdgeIndex=this.AddNewEdgeSafe(this.vertices[edgeIndex[0]],this.vertices[edgeIndex[1]],edgeValue[0]!=edgeValue[1],Math.abs(edgeValue[1]),false);this.FixEdgeCurve(nEdgeIndex);if(nEdgeIndex>=0) {bWeightGraph=bWeightGraph||this.edges[nEdgeIndex].weight!=1;}}} if(!bWeightGraph) {this.edges.forEach(function(part,index,theArray){theArray[index].useWeight=false;});} for(var i=cols.length;i0) {res.push(line.substr(0,i));} if(i==0) {i=1;} line=line.substr(i,line.length-i);i=-1;}} if(line.length>0) {res.push(line);}} else {for(i=0;i";var header="";var xmlBody="";for(var i=0;i0) {additionalField=""} return mainHeader+header+xmlBody+""+additionalField+"";} Graph.prototype.LoadFromXML=function(xmlText,additionalData) {xmlDoc=$.parseXML(xmlText);var $xml=$(xmlDoc);$graphs=$xml.find("graph");var loadedGraphId=0;var loadedEdgeId=0;var defaultLoadEdges="";$graphs.each(function(){loadedGraphId=parseInt($(this).attr('uidGraph'));loadedEdgeId=parseInt($(this).attr('uidEdge'));defaultLoadEdges=$(this).attr('edgedefault');});if(isNaN(loadedEdgeId)) {loadedEdgeId=this.edgesOffset;}else if(loadedEdgeId0;} Graph.prototype.clampPositions=function(viewportSize) {var diameter=(new VertexModel()).diameter;for(i=0;i=2) {var curve=this.GetAvailableCurveValue(neighborEdges,edgeObject);if(edgeObject.model.default) {edgeObject.model.type=EdgeModels.curve;edgeObject.model.curveValue=curve;}}} Graph.prototype.GetAvailableCurveValue=function(neighborEdges,originalEdge) {var values=[];for(var i=0;i0?element.value:"0")+", ";} matrix=matrix+"\n";} return matrix;} function getCharCode(event) {if(event.which==null) {return event.keyCode;} if(event.which!=0) {return event.which;} return null;} function getChar(event) {var k=getCharCode(event) return String.fromCharCode(k);} function CopyMatrixToTextInput(event) {document.getElementById("AdjacencyMatrixFieldPage").value=PackMatrix();if(event) {var key=getChar(event);var code=getCharCode(event);console.log(key+" code="+code);if(g_ctrlPressed) {var moveFocus=function(offsetX,offsetY) {var focused_element=document.activeElement;if(focused_element&&focused_element.name.includes("field")) {var name=focused_element.name;var coords=name.replace('field','').split("_");if(coords.length==2) {var focusName="field"+(parseInt(coords[0])+offsetY)+"_"+(parseInt(coords[1])+offsetX) var element=document.getElementsByName(focusName)[0];if(element) {element.focus();}}}} switch(code) {case 38:{moveFocus(0,-1);break;} case 40:{moveFocus(0,1);break;} case 37:{moveFocus(-1,0);break;} case 39:{moveFocus(1,0);break;}}}}} function _ShowTextInput() {$("#AdjacencyMatrixFieldPage").show();$("#MatrixForm").hide();$("#TextDescription").show();$("#MatrixDescription").hide();$("#idSeparatorList").show();} function _ShowMatrixInput() {$("#MatrixForm").show();$("#AdjacencyMatrixFieldPage").hide();$("#TextDescription").hide();$("#MatrixDescription").show();$("#idSeparatorList").hide();} function ShowTextInput() {_ShowTextInput();document.getElementById("showMatrix").className="btn btn-default";document.getElementById("showText").className="btn btn-default active";} function ShowMatrixInput() {_ShowMatrixInput();document.getElementById("showMatrix").className="btn btn-default active";document.getElementById("showText").className="btn btn-default";} function CopyMatrixToMatrixInput() {var graph=new Graph();var colsObj={};var rowsObj={};if(graph.TestAdjacencyMatrix($("#AdjacencyMatrixFieldPage").val(),rowsObj,colsObj)) {var rows=rowsObj.rows;var cols=colsObj.cols;for(var i=g_MatrixSize;i