/* sigmajs.org - an open-source light-weight JavaScript graph drawing library - Version: 0.1 - Author: Alexis Jacomy - License: MIT */
var sigma={tools:{},classes:{},instances:{}};
(function(){if(!Array.prototype.some)Array.prototype.some=function(j,o){var h=this.length;if("function"!=typeof j)throw new TypeError;for(var k=0;k
"+b+" : "+d.p.globalProbes[b]()+"
";a+="LOCAL :
";for(b in d.p.localProbes)a+=""+b+" : "+d.p.localProbes[b]()+"
";d.p.dom.innerHTML=a;return d}sigma.classes.Cascade.call(this); var d=this;this.instance=b;this.monitoring=!1;this.p={fps:40,dom:i,globalProbes:{"Time (ms)":sigma.chronos.getExecutionTime,Queue:sigma.chronos.getQueuedTasksCount,Tasks:sigma.chronos.getTasksCount,FPS:sigma.chronos.getFPS},localProbes:{"Nodes count":function(){return d.instance.graph.nodes.length},"Edges count":function(){return d.instance.graph.edges.length}}};this.activate=function(){if(!d.monitoring)d.monitoring=window.setInterval(f,1E3/d.p.fps);return d};this.desactivate=function(){if(d.monitoring)window.clearInterval(d.monitoring), d.monitoring=null,d.p.dom.innerHTML="";return d}}function k(b){function i(b){if(a.p.mouseEnabled&&(f(a.mouseX,a.mouseY,a.ratio*(0<(void 0!=b.wheelDelta&&b.wheelDelta||void 0!=b.detail&&-b.detail)?a.p.zoomMultiply:1/a.p.zoomMultiply)),a.p.blockScroll))b.preventDefault?b.preventDefault():b.returnValue=!1}function f(b,c,f){if(!a.isMouseDown&&(window.clearInterval(a.interpolationID),o=void 0!=f,j=a.stageX,k=b,l=a.stageY,m=c,g=f||a.ratio,g=Math.min(Math.max(g,a.p.minRatio),a.p.maxRatio),v=a.p.directZooming? 1-(o?a.p.zoomDelta:a.p.dragDelta):0,a.ratio!=g||a.stageX!=k||a.stageY!=m))d(),a.interpolationID=window.setInterval(d,50),a.dispatch("startinterpolate")}function d(){v+=o?a.p.zoomDelta:a.p.dragDelta;v=Math.min(v,1);var b=sigma.easing.quadratic.easeout(v),c=a.ratio;a.ratio=c*(1-b)+g*b;o?(a.stageX=k+(a.stageX-k)*a.ratio/c,a.stageY=m+(a.stageY-m)*a.ratio/c):(a.stageX=j*(1-b)+k*b,a.stageY=l*(1-b)+m*b);a.dispatch("interpolate");if(1<=v)window.clearInterval(a.interpolationID),b=a.ratio,o?(a.ratio=g,a.stageX= k+(a.stageX-k)*a.ratio/b,a.stageY=m+(a.stageY-m)*a.ratio/b):(a.stageX=k,a.stageY=m),a.dispatch("stopinterpolate")}sigma.classes.Cascade.call(this);sigma.classes.EventDispatcher.call(this);var a=this;this.p={minRatio:1,maxRatio:32,marginRatio:1,zoomDelta:0.1,dragDelta:0.3,zoomMultiply:2,directZooming:!1,blockScroll:!0,inertia:1.1,mouseEnabled:!0};var h=0,c=0,j=0,l=0,g=1,k=0,m=0,t=0,r=0,A=0,n=0,v=0,o=!1;this.stageY=this.stageX=0;this.ratio=1;this.mouseY=this.mouseX=0;this.isMouseDown=!1;b.addEventListener("DOMMouseScroll", i,!0);b.addEventListener("mousewheel",i,!0);b.addEventListener("mousemove",function(b){a.mouseX=void 0!=b.offsetX&&b.offsetX||void 0!=b.layerX&&b.layerX||void 0!=b.clientX&&b.clientX;a.mouseY=void 0!=b.offsetY&&b.offsetY||void 0!=b.layerY&&b.layerY||void 0!=b.clientY&&b.clientY;if(a.isMouseDown){var d=a.mouseX-h+j,g=a.mouseY-c+l;if(d!=a.stageX||g!=a.stageY)r=t,n=A,t=d,A=g,a.stageX=d,a.stageY=g,a.dispatch("drag")}a.dispatch("move");b.preventDefault?b.preventDefault():b.returnValue=!1},!0);b.addEventListener("mousedown", function(b){if(a.p.mouseEnabled)a.isMouseDown=!0,a.dispatch("mousedown"),j=a.stageX,l=a.stageY,h=a.mouseX,c=a.mouseY,r=t=a.stageX,n=A=a.stageY,a.dispatch("startdrag"),b.preventDefault?b.preventDefault():b.returnValue=!1},!0);document.addEventListener("mouseup",function(b){if(a.p.mouseEnabled&&a.isMouseDown)a.isMouseDown=!1,a.dispatch("mouseup"),(j!=a.stageX||l!=a.stageY)&&f(a.stageX+a.p.inertia*(a.stageX-r),a.stageY+a.p.inertia*(a.stageY-n)),b.preventDefault?b.preventDefault():b.returnValue=!1},!0); this.checkBorders=function(){return a};this.interpolate=f}function n(b,i,f,d,a,h,c){function j(a){var b=d,c="fixed"==g.p.labelSize?g.p.defaultLabelSize:g.p.labelSizeRatio*a.displaySize;b.font=(g.p.hoverFontStyle||g.p.fontStyle||"")+" "+c+"px "+(g.p.hoverFont||g.p.font||"");b.fillStyle="node"==g.p.labelHoverBGColor?a.color||g.p.defaultNodeColor:g.p.defaultHoverLabelBGColor;b.beginPath();if(g.p.labelHoverShadow)b.shadowOffsetX=0,b.shadowOffsetY=0,b.shadowBlur=4,b.shadowColor=g.p.labelHoverShadowColor; sigma.tools.drawRoundRect(b,Math.round(a.displayX-c/2-2),Math.round(a.displayY-c/2-2),Math.round(b.measureText(a.label).width+1.5*a.displaySize+c/2+4),Math.round(c+4),Math.round(c/2+2),"left");b.closePath();b.fill();b.shadowOffsetX=0;b.shadowOffsetY=0;b.shadowBlur=0;b.beginPath();b.fillStyle="node"==g.p.nodeBorderColor?a.color||g.p.defaultNodeColor:g.p.defaultNodeBorderColor;b.arc(Math.round(a.displayX),Math.round(a.displayY),a.displaySize+g.p.borderSize,0,2*Math.PI,!0);b.closePath();b.fill();b.beginPath(); b.fillStyle="node"==g.p.nodeHoverColor?a.color||g.p.defaultNodeColor:g.p.defaultNodeHoverColor;b.arc(Math.round(a.displayX),Math.round(a.displayY),a.displaySize,0,2*Math.PI,!0);b.closePath();b.fill();b.fillStyle="node"==g.p.labelHoverColor?a.color||g.p.defaultNodeColor:g.p.defaultLabelHoverColor;b.fillText(a.label,Math.round(a.displayX+1.5*a.displaySize),Math.round(a.displayY+c/2-3));return g}function l(a){if(isNaN(a.x)||isNaN(a.y))throw Error("A node's coordinate is not a number (id: "+a.id+")"); return!a.hidden&&a.displayX+a.displaySize>-k/3&&a.displayX-a.displaySize<4*k/3&&a.displayY+a.displaySize>-m/3&&a.displayY-a.displaySize<4*m/3}sigma.classes.Cascade.call(this);var g=this;this.p={labelColor:"default",defaultLabelColor:"#000",labelHoverBGColor:"default",defaultHoverLabelBGColor:"#fff",labelHoverShadow:!0,labelHoverShadowColor:"#000",labelHoverColor:"default",defaultLabelHoverColor:"#000",labelActiveBGColor:"default",defaultActiveLabelBGColor:"#fff",labelActiveShadow:!0,labelActiveShadowColor:"#000", labelActiveColor:"default",defaultLabelActiveColor:"#000",labelSize:"fixed",defaultLabelSize:12,labelSizeRatio:2,labelThreshold:6,font:"Arial",hoverFont:"",activeFont:"",fontStyle:"",hoverFontStyle:"",activeFontStyle:"",edgeColor:"source",defaultEdgeColor:"#aaa",defaultEdgeType:"line",defaultNodeColor:"#aaa",nodeHoverColor:"node",defaultNodeHoverColor:"#fff",nodeActiveColor:"node",defaultNodeActiveColor:"#fff",borderSize:0,nodeBorderColor:"node",defaultNodeBorderColor:"#fff",edgesSpeed:200,nodesSpeed:200, labelsSpeed:200};var k=h,m=c;this.currentLabelIndex=this.currentNodeIndex=this.currentEdgeIndex=0;this.task_drawLabel=function(){for(var b=a.nodes.length,c=0;c++