/*
 * @file
 * This javascript is returned and executed when you create a new node.
 */
$('#new_topic').fadeOut('fast');
$('#topic_name').typeahead('setQuery','');
$('#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('whiteCircle', false);
  temp.setData('greenCircle', 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');
    temp._depth = tempNode._depth + 1;
  }
  else if (gType == "arranged" || gType == "chaotic") {
    temp.setData('xloc',0);
    temp.setData('yloc',0);
    <% if not @mapping.nil? %>
      temp.setData('mappingid', <%= @mapping.id %>);
    <% elsif @mapping.nil? %>
      temp.setData('mappingid', null);
    <% end %>
    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);
    $('#synapse_desc').val("");
    $('#new_synapse').fadeIn('fast');
    $('#synapse_desc').focus();
    Mconsole.fx.animate({  
      modes: ['node-property:dim'],  
      duration: 500,
      onComplete: function() {
        setTimeout(function (){
          temp.setData('dim', 25, 'current');
          Mconsole.plot();
        }, 3000);
        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() {
            setTimeout(function (){
              temp.setData('dim', 25, 'current');
              Mconsole.plot();
            }, 3000);
        }
      });
      
  }
  
} 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('whiteCircle', false);
  temp.setData('greenCircle', false);
  if (gType == "arranged" || gType == "chaotic") {
    <% if not @mapping.nil? %>
      temp.setData('mappingid', <%= @mapping.id %>);
    <% elsif @mapping.nil? %>
      temp.setData('mappingid', null);
    <% end %>
  }
  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() {
            setTimeout(function (){
              temp.setData('dim', 25, 'current');
              Mconsole.plot();
            }, 3000);
        }
      });
}
