/*
 * @file
 * This javascript is returned and executed when you create a new node.
 */

$('#new_topic').fadeOut('fast');
$('#topic_name').data().autocomplete.term = null;
$('.ui-autocomplete').children().remove();
$('.ui-autocomplete').css('display','none');
$('#topic_name').attr('value','');
$('#topic_grabTopic').attr('value','null');
$('#topic_addSynapse').attr('value','false');



var newnode = <%= @topic.self_as_json.html_safe %>;
var x = <%= @position['x'] %>;
var y = <%= @position['y'] %>;
  

if (!$.isEmptyObject(Mconsole.graph.nodes)) {
  Mconsole.graph.addNode(newnode);
  
  // set the animation for everything back to normal
  Mconsole.graph.eachNode( function (n) {
    n.setData('dim', 25, 'start');
    n.setData('dim', 25, 'end');
  });
  var temp = Mconsole.graph.getNode('<%= @topic.id %>');
  temp.setData('dim', 1, 'start');
  temp.setData('dim', 40, 'end');
  temp.setData('onCanvas', false);
  temp.setData('inCommons', false);
  
  if (gType == "centered") {
    var tempPos = new $jit.Complex(x, y);
    tempPos = tempPos.toPolar();
    temp.setPos(tempPos, 'current');
    temp.setPos(tempPos, 'start');
    temp.setPos(tempPos, 'end');
  }
  else if (gType == "arranged" || gType == "chaotic") {
    temp.setData('xloc',0);
    temp.setData('yloc',0);
    temp.setData('mappingid', '<%= @mapping.id %>');
    temp.setPos(new $jit.Complex(x, y), 'current');
    temp.setPos(new $jit.Complex(x, y), 'start');
    temp.setPos(new $jit.Complex(x, y), 'end');
  }
  
  if ( '<%= @synapse %>' == "true" ) {
    $('#synapse_topic1id').val(tempNode.id);
    $('#synapse_topic2id').val(temp.id);
    $('#new_synapse').fadeIn('fast');
    $('#synapse_desc').focus();
    Mconsole.fx.animate({  
      modes: ['node-property:dim'],  
      duration: 500,
      onComplete: function() {
        renderMidArrow({ x: tempNode.pos.getc().x, y: tempNode.pos.getc().y }, { x: temp.pos.getc().x, y: temp.pos.getc().y }, 13, false, Mconsole.canvas);
        Mconsole.fx.plotNode(tempNode, Mconsole.canvas);
        Mconsole.fx.plotNode(temp, Mconsole.canvas);
        tempNode = null;
		    tempNode2 = null;
		    tempInit = false;
     }    
    });
  } else if ( '<%= @synapse %>' == "false" ) {
      Mconsole.fx.plotNode(temp, Mconsole.canvas);
      Mconsole.fx.animate({  
        modes: ['node-property:dim'],  
        duration: 500,
        onComplete: function() {
            selectNodeOnClickHandler(temp);
        }
      });
      
  }
  
} else {
  json = newnode;
  Mconsole.loadJSON(json);
  var temp = Mconsole.graph.getNode('<%= @topic.id %>');
  temp.setData('dim', 1, 'start');
  temp.setData('dim', 25, 'end');
  temp.setData('onCanvas', false);
  temp.setData('inCommons', false);
  temp.setPos(new $jit.Complex(x, y), 'current');
  temp.setPos(new $jit.Complex(x, y), 'start');
  temp.setPos(new $jit.Complex(x, y), 'end');
  Mconsole.fx.plotNode(temp, Mconsole.canvas);
  Mconsole.fx.animate({  
        modes: ['node-property:dim'],  
        duration: 500,
        onComplete: function() {
            selectNodeOnClickHandler(temp);
        }
      });
}