var text = "";
var opened = false;
var sugg=["AJAX","Neo4J","Rhizi","Research","CRI","SageBionetworks","Hero.coli","CSS","NodeJS","HTML5","Angular","D3","ProofOfConcept","Graphs","CloudComputing","BigData","ProblemSolving","PHP","Javascript","BackBone","Cooperation","SemanticWeb"];
var typeindex=0;
var names=["Jean-ChristopheThalabard","MaévaVignes","AbdelElAbed","ValérieTaly","SébastienDutreuil","AntoineBERGEL","AntoineAngot","JérômeFeret","CharlèneGayrard","HugoJimenezPerez","CaterinaUrban","GaëlleChevalon","IanMarcus","AntoineTALY","ChantalLOTTON","Ana-MariaLennon-Duménil","FrédériqueCarlier-Grynkorn","PascalMartin","TamaraMilosevic","NicolasCarpi","StéphaneDaoudy","DanijelaMaticVignjevic","EugenioCinquemani","VincentDAHIREL","MartinLenz","MaïlysChassagne","AnneSchmidt","SophieSacquinMora","Richard-EmmanuelEastes","MichelMorange","EwaZlotek-Zlotkiewicz","A.m.o.d.s.e.nC.h.o.t.i.a","AlexandreVaugoux","AnnemiekJMCornelissen","ClémentNizak","AntoineFrenoy","ArielB.Lindner","BenjaminBrogniart","ChristopheZimmer","ClaireRibrault","DavidTareste","DenisLafeuille","DorGarbash","DusanMISEVIC","EddaNitschke","FrançoisTaddei","GregoryBatt","JeanLucLebrun","JesseHimmelstein","KevinLhoste","LauraCiriani","LivioRiboli-Sasco","NathalieSussfeld","JakeEdwinWintermute","MarlyneNogbou","MatthieuPiel","PascalHersen","Pierre-YvesBourguignon","TimoBetz","RaphaëlGoujet","StéphaneDebove","VincentDanos","TamKienDuong"];
var nodetypes=["person","project","skill","deliverable","objective"];
var previousorder="NOTHING";
var nodecounter=0;
var nodereplaced=false;
var newlink="";
var ExecutionStack=[];
$('#textanalyser').autocompleteTrigger({
triggerStart : '#',
triggerEnd: '',
source: sugg
});
$(document).keydown(function(e){
//RIGHT
if (e.keyCode == 37 && (previousorder==="EDITNODE" || previousorder==="NEWNODE")) {
changeType(null,"up");
return false;
}
//LEFT
if (e.keyCode == 39 && (previousorder==="EDITNODE" || previousorder==="NEWNODE")) {
changeType(null,"down");
return false;
}
//ENTER
if(e.keyCode == 13){
if(previousorder==="CLOSENODE"){
$('#textanalyser').val(text+" ");
}
}
if(e.keyCode == 73){
zoom();
}
//DELTE
if(e.keyCode == 46 || e.keyCode == 8){
if(previousorder==="CLOSENODE" || previousorder==="NEWNODE")return false;
}
});
function changeType(arg,id){
if(arg==='up'){
if(typeindex<4)typeindex++;
else typeindex=0;
graph.editType(id,"temp",nodetypes[typeindex]);
$('.typeselection').html('
|
| '+"Chosen Type: "+nodetypes[typeindex]+' |
');
}else{
if(typeindex>0)typeindex--;
else typeindex=4;
if(previousorder==="EDITNODE")graph.editType(id,"temp",nodetypes[typeindex]);
$('.typeselection').html(' |
| '+"Chosen Type: "+nodetypes[typeindex]+' |
');
}
}
window.setInterval(function(){
if ($('#textanalyser').val() != text )
{
$('.typeselection').css('top',-300);
$('.typeselection').css('left',0);
// text changed
text = $('#textanalyser').val();
console.log(text);
ExecutionStack.push(text);
TextAnalyser(text);
}
},5);
function TextAnalyser(newtext){
var states=["NOTHING","NEWNODE","EDITNODE","CLOSENODE","NEWLINK","EDITLINK"];
var order=previousorder;
var nodetype="new";
var array=[];
var arraytext="";
var newnode="";
var index=newtext.length;
array=newtext.match(/([#]\w+)/g);
for(var i=nodecounter-1;i<=nodecounter;i++){
if(addednodes[i]!==undefined)newlink=newtext.replace(addednodes[i],"");
newlink=newlink.replace("#","");
}
var lastchar=newtext.charAt(newtext.length-1);
switch(lastchar){
case " ":
if(previousorder==="NEWNODE")order="CLOSENODE";
if(previousorder==="EDITNODE")order="CLOSENODE";
if(previousorder==="NEWLINK")order="EDITLINK";
break;
case "#":
if(previousorder==="NEWNODE")order="EDITNODE";
else if(previousorder==="EDITNODE")order="EDITNODE";
else order="NEWNODE";
break;
default:
if(previousorder==="NEWNODE")order="EDITNODE";
if(previousorder==="CLOSENODE")order="NEWLINK";
if(previousorder==="NEWLINK")order="EDITLINK";
break;
}
console.log(order);
//ORDER CYCLE
previousorder=order;
var lol="";
for(var k=0;k0);
break;
case "CLOSENODE":
do{
newnode=newtext.charAt(index)+newnode;
newnode=newnode.replace(/\s/g, '');
index--;
}while(newtext.charAt(index)!=="#" && index>0);
break;
case "NEWLINK":
newlink="";
break;
case "EDITLINK":
newnode="";
break;
}
$('.debug').html("node n "+nodecounter+" state: "+order+" nodename: |"+newnode+ "| link: |"+newlink+"| lastnode: |"+addednodes[nodecounter-2]+"rep: "+nodereplaced);
switch(order){
case states[0]:
window.setTimeout(function(){$('#textanalyser').css('box-shadow','0 0 0px #303030')},200);
break;
case states[1]:
if(nodecounter%2 === 0){
graph.addNode("",nodetypes[typeindex],"temp");
}else{
graph.addNode("",nodetypes[typeindex],"temp");
}
graph.editType("x","temp",nodetypes[typeindex]);
nodecounter++;
break;
case states[2]:
if(nodereplaced===true){
//graph.removeLink();
//graph.addLink
graph.addNode(newnode,nodetypes[typeindex],"temp");
graph.editLinkTarget(addednodes[nodecounter-2],replacement,newnode);
replacement="";
}
nodereplaced=false;
if(AddedUnique(newnode)){
}else if(nodecounter%2===0){
console.log("not unique, replace");
graph.addLink(addednodes[nodecounter-2],newnode,newlink);
graph.removeNode("x","temp");
nodereplaced=true;
replacement=newnode;
}
graph.editName("x","temp",newnode);
graph.findCoordinates("x","temp");
break;
case states[3]:
nodereplaced=false;
graph.editState("x","temp","perm");
addednodes.push(newnode);
if(Unique(newnode))sugg.push(newnode);
if(nodecounter%2 === 0){
$('#textanalyser').css('box-shadow','0 0 30px #FFFF8F');
$('#textanalyser').val("");
graph.removeNode("x","temp");
previousorder=states[0];
newnode="";
}
break;
case states[4]:
graph.addNode("","empty","temp");
graph.addLink(addednodes[nodecounter-1],"",newlink);
break;
case states[5]:
graph.editLink(addednodes[nodecounter-1],"",newlink);
break;
}
}
function Unique(newnode){
truth=true;
for(var p=0;p