| 
															
																@@ -15,22 +15,54 @@ import * as DowhiletruesManagement from './commands/dowhiletrue'; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import * as SwitchesManagement from './commands/switch'; 
															 | 
															
															 | 
															
																 import * as SwitchesManagement from './commands/switch'; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import * as FunctioncallsManagement from './commands/functioncall'; 
															 | 
															
															 | 
															
																 import * as FunctioncallsManagement from './commands/functioncall'; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import * as VariableValueMenuManagement from './commands/variable_value_menu'; 
															 | 
															
															 | 
															
																 import * as VariableValueMenuManagement from './commands/variable_value_menu'; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+import * as BreaksManagement from './commands/break'; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 var has_element_created_draged = false; 
															 | 
															
															 | 
															
																 var has_element_created_draged = false; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 var which_element_is_draged = null; 
															 | 
															
															 | 
															
																 var which_element_is_draged = null; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 export function removeCommand (command, function_obj, dom_obj) { 
															 | 
															
															 | 
															
																 export function removeCommand (command, function_obj, dom_obj) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	console.log('debugging removeCommand'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	console.log('command'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	console.log(command); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	console.log('function_obj'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	console.log(function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	console.log('dom_obj'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	console.log(dom_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	if (function_obj.commands.indexOf(command) > -1) { 
															 | 
															
															 | 
															
																 	if (function_obj.commands.indexOf(command) > -1) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		function_obj.commands.splice(function_obj.commands.indexOf(command), 1); 
															 | 
															
															 | 
															
																 		function_obj.commands.splice(function_obj.commands.indexOf(command), 1); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		return true; 
															 | 
															
															 | 
															
																 		return true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	} 
															 | 
															
															 | 
															
																 	} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	// Utilize dois parantNode, pois o primeiro é o div de comandos 
															 | 
															
															 | 
															
																 	// Utilize dois parantNode, pois o primeiro é o div de comandos 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-	if ($(dom_obj[0].parentNode.parentNode).data('command').commands_block.indexOf(command) > -1) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		$(dom_obj[0].parentNode.parentNode).data('command').commands_block.splice 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		($(dom_obj[0].parentNode.parentNode).data('command').commands_block.indexOf(command), 1); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	try { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		if (dom_obj.parent().parent().data('command').commands_block.indexOf(command) > -1) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			dom_obj.parent().parent().data('command').commands_block.splice 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			(dom_obj.parent().parent().data('command').commands_block.indexOf(command), 1); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			return true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		}	 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	} catch (err) {} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	try { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		if (dom_obj.parent().parent().data('command').type == Models.COMMAND_TYPES.iftrue) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (dom_obj.parent().parent().data('command').commands_else.indexOf(command) > -1) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				dom_obj.parent().parent().data('command').commands_else.splice 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				(dom_obj.parent().parent().data('command').commands_else.indexOf(command), 1); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				return true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	} catch (err) {} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	console.log('veja: '); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	console.log(dom_obj.parent()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	if (dom_obj.parent().data('switchcase')) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		console.log("o que encontrei: "); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		console.log(dom_obj.parent().data('switchcase')); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		dom_obj.parent().data('switchcase').commands_block.splice(dom_obj.parent().data('switchcase').commands_block.indexOf(command), 1); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		return true; 
															 | 
															
															 | 
															
																 		return true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	} 
															 | 
															
															 | 
															
																 	} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	return false; 
															 | 
															
															 | 
															
																 	return false; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 } 
															 | 
															
															 | 
															
																 } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -38,6 +70,10 @@ export function createFloatingCommand (function_obj, function_container, command 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	var floatingObject; 
															 | 
															
															 | 
															
																 	var floatingObject; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	switch (command_type) { 
															 | 
															
															 | 
															
																 	switch (command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		case Models.COMMAND_TYPES.break: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			floatingObject = BreaksManagement.createFloatingCommand(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		case Models.COMMAND_TYPES.comment: 
															 | 
															
															 | 
															
																 		case Models.COMMAND_TYPES.comment: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			floatingObject = CommentsManagement.createFloatingCommand(); 
															 | 
															
															 | 
															
																 			floatingObject = CommentsManagement.createFloatingCommand(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			break; 
															 | 
															
															 | 
															
																 			break; 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -84,7 +120,7 @@ export function createFloatingCommand (function_obj, function_container, command 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	floatingObject.mouseup(function(evt) { 
															 | 
															
															 | 
															
																 	floatingObject.mouseup(function(evt) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	  manageCommand(function_obj, function_container, evt, command_type); 
															 | 
															
															 | 
															
																 	  manageCommand(function_obj, function_container, evt, command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	}); 
															 | 
															
															 | 
															
																 	}); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	floatingObject.css("position", "absolute"); 
															 | 
															
															 | 
															
																 	floatingObject.css("position", "absolute"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	mouse_event.type = "mousedown.draggable"; 
															 | 
															
															 | 
															
																 	mouse_event.type = "mousedown.draggable"; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	mouse_event.target = floatingObject[0]; 
															 | 
															
															 | 
															
																 	mouse_event.target = floatingObject[0]; 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -101,6 +137,10 @@ export function renderCommand (command, element_reference, before_after_inside, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			createdElement = CommentsManagement.renderCommand(command, function_obj); 
															 | 
															
															 | 
															
																 			createdElement = CommentsManagement.renderCommand(command, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			break; 
															 | 
															
															 | 
															
																 			break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		case Models.COMMAND_TYPES.break: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			createdElement = BreaksManagement.renderCommand(command, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		case Models.COMMAND_TYPES.reader: 
															 | 
															
															 | 
															
																 		case Models.COMMAND_TYPES.reader: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			createdElement = ReadersManagement.renderCommand(command, function_obj); 
															 | 
															
															 | 
															
																 			createdElement = ReadersManagement.renderCommand(command, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			break; 
															 | 
															
															 | 
															
																 			break; 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -148,7 +188,7 @@ export function renderCommand (command, element_reference, before_after_inside, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			createdElement.insertAfter(element_reference); 
															 | 
															
															 | 
															
																 			createdElement.insertAfter(element_reference); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			break; 
															 | 
															
															 | 
															
																 			break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		case 3: 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		case 3:  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			element_reference.append(createdElement); 
															 | 
															
															 | 
															
																 			element_reference.append(createdElement); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			break; 
															 | 
															
															 | 
															
																 			break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	} 
															 | 
															
															 | 
															
																 	} 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -158,6 +198,10 @@ export function renderCommand (command, element_reference, before_after_inside, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 export function genericCreateCommand (command_type) { 
															 | 
															
															 | 
															
																 export function genericCreateCommand (command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	switch (command_type) { 
															 | 
															
															 | 
															
																 	switch (command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		case Models.COMMAND_TYPES.break: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			return new Models.Break(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		case Models.COMMAND_TYPES.comment: 
															 | 
															
															 | 
															
																 		case Models.COMMAND_TYPES.comment: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			return new Models.Comment(new Models.VariableValueMenu(VariableValueMenuManagement.VAR_OR_VALUE_TYPES.only_value, LocalizedStrings.getUI('text_comment'), null, null, false)); 
															 | 
															
															 | 
															
																 			return new Models.Comment(new Models.VariableValueMenu(VariableValueMenuManagement.VAR_OR_VALUE_TYPES.only_value, LocalizedStrings.getUI('text_comment'), null, null, false)); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -168,32 +212,37 @@ export function genericCreateCommand (command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			return new Models.Writer([new Models.VariableValueMenu(VariableValueMenuManagement.VAR_OR_VALUE_TYPES.all, null, null, null, true)]); 
															 | 
															
															 | 
															
																 			return new Models.Writer([new Models.VariableValueMenu(VariableValueMenuManagement.VAR_OR_VALUE_TYPES.all, null, null, null, true)]); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		case Models.COMMAND_TYPES.attribution: 
															 | 
															
															 | 
															
																 		case Models.COMMAND_TYPES.attribution: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-			return new Models.Attribution(new Models.VariableValueMenu(VariableValueMenuManagement.VAR_OR_VALUE_TYPES.only_variable, null, null, null, false), 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			return new Models.Attribution(new Models.VariableValueMenu(VariableValueMenuManagement.VAR_OR_VALUE_TYPES.only_variable, null, null, null, false),  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 				[]); 
															 | 
															
															 | 
															
																 				[]); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		case Models.COMMAND_TYPES.functioncall: 
															 | 
															
															 | 
															
																 		case Models.COMMAND_TYPES.functioncall: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			return new Models.FunctionCall(new Models.VariableValueMenu(VariableValueMenuManagement.VAR_OR_VALUE_TYPES.only_function, null, null, null, false), null); 
															 | 
															
															 | 
															
																 			return new Models.FunctionCall(new Models.VariableValueMenu(VariableValueMenuManagement.VAR_OR_VALUE_TYPES.only_function, null, null, null, false), null); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		case Models.COMMAND_TYPES.iftrue: 
															 | 
															
															 | 
															
																 		case Models.COMMAND_TYPES.iftrue: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-			return new Models.IfTrue(null, null, null); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			return new Models.IfTrue(new Models.ConditionalExpression(null), null, null); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		case Models.COMMAND_TYPES.repeatNtimes: 
															 | 
															
															 | 
															
																 		case Models.COMMAND_TYPES.repeatNtimes: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-			return new Models.RepeatNTimes(null, null, null, null); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			return new Models.RepeatNTimes(new Models.VariableValueMenu(VariableValueMenuManagement.VAR_OR_VALUE_TYPES.only_variable, null, null, null, false),  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+											new Models.VariableValueMenu(VariableValueMenuManagement.VAR_OR_VALUE_TYPES.only_variable, null, null, null, false), 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+										     null, new Models.ConditionalExpression(null), null, null); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		case Models.COMMAND_TYPES.whiletrue: 
															 | 
															
															 | 
															
																 		case Models.COMMAND_TYPES.whiletrue: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-			return new Models.WhileTrue(null, null); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			return new Models.WhileTrue(new Models.ConditionalExpression(null), null); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		case Models.COMMAND_TYPES.dowhiletrue: 
															 | 
															
															 | 
															
																 		case Models.COMMAND_TYPES.dowhiletrue: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-			return new Models.DoWhileTrue(null, null); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			return new Models.DoWhileTrue(new Models.ConditionalExpression(null), null); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		case Models.COMMAND_TYPES.switch: 
															 | 
															
															 | 
															
																 		case Models.COMMAND_TYPES.switch: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-			return new Models.Switch(null, null, null); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			var sc = [new Models.SwitchCase(new Models.VariableValueMenu(VariableValueMenuManagement.VAR_OR_VALUE_TYPES.all, null, null, null, true))]; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			return new Models.Switch(new Models.VariableValueMenu(VariableValueMenuManagement.VAR_OR_VALUE_TYPES.variable_and_function, null, null, null, true), sc); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	} 
															 | 
															
															 | 
															
																 	} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 } 
															 | 
															
															 | 
															
																 } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 function manageCommand (function_obj, function_container, event, command_type) { 
															 | 
															
															 | 
															
																 function manageCommand (function_obj, function_container, event, command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-	$( ".created_element" ).each(function( index ) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	$( ".created_element" ).each(function( index ) {  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		$(this).remove(); 
															 | 
															
															 | 
															
																 		$(this).remove(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	}); 
															 | 
															
															 | 
															
																 	}); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -202,18 +251,19 @@ function manageCommand (function_obj, function_container, event, command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	console.log(el); 
															 | 
															
															 | 
															
																 	console.log(el); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	console.log(el.data('fun')); 
															 | 
															
															 | 
															
																 	console.log(el.data('fun')); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	// Primeiro verificar se ele soltou no espaço da função correta: 
															 | 
															
															 | 
															
																 	// Primeiro verificar se ele soltou no espaço da função correta: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	var hier = el.parentsUntil(".all_functions"); 
															 | 
															
															 | 
															
																 	var hier = el.parentsUntil(".all_functions"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	var esta_correto = false; 
															 | 
															
															 | 
															
																 	var esta_correto = false; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	var esta_na_div_correta = false; 
															 | 
															
															 | 
															
																 	var esta_na_div_correta = false; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	if (el.hasClass("commands_list_div")) { 
															 | 
															
															 | 
															
																 	if (el.hasClass("commands_list_div")) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		esta_na_div_correta = true; 
															 | 
															
															 | 
															
																 		esta_na_div_correta = true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-	} 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	}  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	for (var i = 0; i < hier.length; i++) { 
															 | 
															
															 | 
															
																 	for (var i = 0; i < hier.length; i++) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		var temp = $(hier[i]); 
															 | 
															
															 | 
															
																 		var temp = $(hier[i]); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		if (temp.hasClass("commands_list_div")) { 
															 | 
															
															 | 
															
																 		if (temp.hasClass("commands_list_div")) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			esta_na_div_correta = true; 
															 | 
															
															 | 
															
																 			esta_na_div_correta = true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		} 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		}  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		if (temp.data('fun') == function_obj) { 
															 | 
															
															 | 
															
																 		if (temp.data('fun') == function_obj) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			esta_correto = true; 
															 | 
															
															 | 
															
																 			esta_correto = true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			break; 
															 | 
															
															 | 
															
																 			break; 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -239,7 +289,7 @@ function manageCommand (function_obj, function_container, event, command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		// Se a lista de comandos estiver vazia, então é o primeiro. 
															 | 
															
															 | 
															
																 		// Se a lista de comandos estiver vazia, então é o primeiro. 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		// Portanto, ele deve soltar o elemento obrigatoriamente no objeto vazio 
															 | 
															
															 | 
															
																 		// Portanto, ele deve soltar o elemento obrigatoriamente no objeto vazio 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		if ((el.data('fun').commands == null)  || (el.data('fun').commands.length == 0)) { 
															 | 
															
															 | 
															
																 		if ((el.data('fun').commands == null)  || (el.data('fun').commands.length == 0)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-				// pode adicionar 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				// pode adicionar  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 				el.data('fun').commands = []; 
															 | 
															
															 | 
															
																 				el.data('fun').commands = []; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 				var new_cmd = genericCreateCommand(command_type); 
															 | 
															
															 | 
															
																 				var new_cmd = genericCreateCommand(command_type); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -247,7 +297,7 @@ function manageCommand (function_obj, function_container, event, command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 				el.data('fun').commands.push(new_cmd); 
															 | 
															
															 | 
															
																 				el.data('fun').commands.push(new_cmd); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 				renderCommand(new_cmd, $(function_container).find('.commands_list_div'), 3, function_obj); 
															 | 
															
															 | 
															
																 				renderCommand(new_cmd, $(function_container).find('.commands_list_div'), 3, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		} else { // Entra nesse else, caso já existam outros comandos no bloco: 
															 | 
															
															 | 
															
																 		} else { // Entra nesse else, caso já existam outros comandos no bloco: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			findNearbyCommandToAddInFunctionScope(el, event, $(function_container).find('.commands_list_div'), function_obj, command_type); 
															 | 
															
															 | 
															
																 			findNearbyCommandToAddInFunctionScope(el, event, $(function_container).find('.commands_list_div'), function_obj, command_type); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -255,7 +305,7 @@ function manageCommand (function_obj, function_container, event, command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	} else { 
															 | 
															
															 | 
															
																 	} else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		console.log("soltou em um comando"); 
															 | 
															
															 | 
															
																 		console.log("soltou em um comando"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		// descobrir em qual comando ele soltou: 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		// descobrir em qual comando ele soltou:  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		var hier_find = el.parentsUntil(".commands_list_div"); 
															 | 
															
															 | 
															
																 		var hier_find = el.parentsUntil(".commands_list_div"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		var hierarquia_bottom_up = []; 
															 | 
															
															 | 
															
																 		var hierarquia_bottom_up = []; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		if (typeof el.data('command') !== 'undefined') { 
															 | 
															
															 | 
															
																 		if (typeof el.data('command') !== 'undefined') { 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -273,38 +323,69 @@ function manageCommand (function_obj, function_container, event, command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			console.log(hierarquia_bottom_up[i]); 
															 | 
															
															 | 
															
																 			console.log(hierarquia_bottom_up[i]); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		} 
															 | 
															
															 | 
															
																 		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		// se a hierarquia possuir apenas um elemento, então está na raiz dos comandos: 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		// Se for do tipo break, verificar se está no contexto correto:  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		// Caso não esteja no contexto, apenas retorna sem dar continuidade: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		var is_correct_context = false; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		if (command_type == Models.COMMAND_TYPES.break) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			for (var i = 0; i < hierarquia_bottom_up.length; i++) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				if ((hierarquia_bottom_up[i].type == Models.COMMAND_TYPES.repeatNtimes) 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					|| (hierarquia_bottom_up[i].type == Models.COMMAND_TYPES.whiletrue) 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					|| (hierarquia_bottom_up[i].type == Models.COMMAND_TYPES.dowhiletrue) 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					|| (hierarquia_bottom_up[i].type == Models.COMMAND_TYPES.switch)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					is_correct_context = true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (!is_correct_context) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				console.error("Context not allowed to insert BREAK COMMAND!"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				return; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		// se a hierarquia possuir apenas um elemento, então está na raiz dos comandos:  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		if (hierarquia_bottom_up.length == 1) { 
															 | 
															
															 | 
															
																 		if (hierarquia_bottom_up.length == 1) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			console.log('QQ1'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			var sub_elemento = false; 
															 | 
															
															 | 
															
																 			var sub_elemento = false; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			for (var i = 0; i < hier_find.length; i++) { 
															 | 
															
															 | 
															
																 			for (var i = 0; i < hier_find.length; i++) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 				if (typeof $(hier_find[i]).data('command') !== 'undefined') { 
															 | 
															
															 | 
															
																 				if (typeof $(hier_find[i]).data('command') !== 'undefined') { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					console.log('QQ2'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 					findBeforeOrAfterCommandToAdd(hier_find[i], event, function_obj, command_type); 
															 | 
															
															 | 
															
																 					findBeforeOrAfterCommandToAdd(hier_find[i], event, function_obj, command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 					sub_elemento = true; 
															 | 
															
															 | 
															
																 					sub_elemento = true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 					break; 
															 | 
															
															 | 
															
																 					break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 				} 
															 | 
															
															 | 
															
																 				} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			} 
															 | 
															
															 | 
															
																 			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			if (!sub_elemento) { 
															 | 
															
															 | 
															
																 			if (!sub_elemento) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				console.log('QQ3'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 				findBeforeOrAfterCommandToAdd(el[0], event, function_obj, command_type); 
															 | 
															
															 | 
															
																 				findBeforeOrAfterCommandToAdd(el[0], event, function_obj, command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			} 
															 | 
															
															 | 
															
																 			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		} else { 
															 | 
															
															 | 
															
																 		} else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			console.log('QQ4'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			// caso exista mais de um elemento na hierarquia: 
															 | 
															
															 | 
															
																 			// caso exista mais de um elemento na hierarquia: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			if (typeof $(el).data('command') !== 'undefined') { 
															 | 
															
															 | 
															
																 			if (typeof $(el).data('command') !== 'undefined') { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				console.log('QQ5'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 				console.log("PPP1"); 
															 | 
															
															 | 
															
																 				console.log("PPP1"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 				insertCommandInBlockHierar(el[0], event, function_obj, command_type, hier_find, hierarquia_bottom_up); 
															 | 
															
															 | 
															
																 				insertCommandInBlockHierar(el[0], event, function_obj, command_type, hier_find, hierarquia_bottom_up); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			} else { 
															 | 
															
															 | 
															
																 			} else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				console.log('QQ6'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 				var sub_elemento = false; 
															 | 
															
															 | 
															
																 				var sub_elemento = false; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 				for (var i = 0; i < hier_find.length; i++) { 
															 | 
															
															 | 
															
																 				for (var i = 0; i < hier_find.length; i++) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 					if (typeof $(hier_find[i]).data('command') !== 'undefined') { 
															 | 
															
															 | 
															
																 					if (typeof $(hier_find[i]).data('command') !== 'undefined') { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+						console.log('QQ7'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 						insertCommandInBlockHierar(hier_find[i], event, function_obj, command_type, hier_find, hierarquia_bottom_up); 
															 | 
															
															 | 
															
																 						insertCommandInBlockHierar(hier_find[i], event, function_obj, command_type, hier_find, hierarquia_bottom_up); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 						sub_elemento = true; 
															 | 
															
															 | 
															
																 						sub_elemento = true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 						break; 
															 | 
															
															 | 
															
																 						break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 					} 
															 | 
															
															 | 
															
																 					} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 				} 
															 | 
															
															 | 
															
																 				} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			} 
															 | 
															
															 | 
															
																 			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		} 
															 | 
															
															 | 
															
																 		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	} 
															 | 
															
															 | 
															
																 	} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	has_element_created_draged = false; 
															 | 
															
															 | 
															
																 	has_element_created_draged = false; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	which_element_is_draged = null; 
															 | 
															
															 | 
															
																 	which_element_is_draged = null; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 } 
															 | 
															
															 | 
															
																 } 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -312,18 +393,21 @@ function manageCommand (function_obj, function_container, event, command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 function insertCommandInBlockHierar (el, event, function_obj, command_type, hier_dom, hier_obj) { 
															 | 
															
															 | 
															
																 function insertCommandInBlockHierar (el, event, function_obj, command_type, hier_dom, hier_obj) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	var el_jq = $(el); 
															 | 
															
															 | 
															
																 	var el_jq = $(el); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	var command_parent = el_jq.data('command'); 
															 | 
															
															 | 
															
																 	var command_parent = el_jq.data('command'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	if ((el_jq.data('command').type == Models.COMMAND_TYPES.repeatNtimes) || 
															 | 
															
															 | 
															
																 	if ((el_jq.data('command').type == Models.COMMAND_TYPES.repeatNtimes) || 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		(el_jq.data('command').type == Models.COMMAND_TYPES.whiletrue)  || 
															 | 
															
															 | 
															
																 		(el_jq.data('command').type == Models.COMMAND_TYPES.whiletrue)  || 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		(el_jq.data('command').type == Models.COMMAND_TYPES.dowhiletrue) || 
															 | 
															
															 | 
															
																 		(el_jq.data('command').type == Models.COMMAND_TYPES.dowhiletrue) || 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		(el_jq.data('command').type == Models.COMMAND_TYPES.iftrue) || 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		(el_jq.data('command').type == Models.COMMAND_TYPES.switch) ) { 
															 | 
															
															 | 
															
																 		(el_jq.data('command').type == Models.COMMAND_TYPES.switch) ) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		console.log('QQ17'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		if ((el_jq.data('command').type == Models.COMMAND_TYPES.repeatNtimes) || 
															 | 
															
															 | 
															
																 		if ((el_jq.data('command').type == Models.COMMAND_TYPES.repeatNtimes) || 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			(el_jq.data('command').type == Models.COMMAND_TYPES.whiletrue)  || 
															 | 
															
															 | 
															
																 			(el_jq.data('command').type == Models.COMMAND_TYPES.whiletrue)  || 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			(el_jq.data('command').type == Models.COMMAND_TYPES.dowhiletrue) ) { 
															 | 
															
															 | 
															
																 			(el_jq.data('command').type == Models.COMMAND_TYPES.dowhiletrue) ) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-			// Se não tiver outro comando ainda no bloco, só adiciona: 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			console.log('QQ18'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			// Se não tiver outro comando ainda no bloco, só adiciona:  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			if (command_parent.commands_block == null || command_parent.commands_block.length == 0) { 
															 | 
															
															 | 
															
																 			if (command_parent.commands_block == null || command_parent.commands_block.length == 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 				command_parent.commands_block = []; 
															 | 
															
															 | 
															
																 				command_parent.commands_block = []; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -337,9 +421,11 @@ function insertCommandInBlockHierar (el, event, function_obj, command_type, hier 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		} else { 
															 | 
															
															 | 
															
																 		} else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			// QUANDO FOR BLOCO DO TIPO IF OU SWITCH/CASE: 
															 | 
															
															 | 
															
																 			// QUANDO FOR BLOCO DO TIPO IF OU SWITCH/CASE: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			addCommandToSwitchCase(event, function_obj, command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		} 
															 | 
															
															 | 
															
																 		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	} else { 
															 | 
															
															 | 
															
																 	} else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		console.log('QQ19'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		// entra neste bloco, se soltou o comando sobre outro comando dentro de um subbloco: 
															 | 
															
															 | 
															
																 		// entra neste bloco, se soltou o comando sobre outro comando dentro de um subbloco: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		findBeforeOrAfterCommandToAddInsertBlock(el, event, function_obj, command_type); 
															 | 
															
															 | 
															
																 		findBeforeOrAfterCommandToAddInsertBlock(el, event, function_obj, command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	} 
															 | 
															
															 | 
															
																 	} 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -360,7 +446,7 @@ function findNearbyCommandToAddInBlockScope (el, event, node_list_commands, func 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	// Descobrindo o elemento mais próximo: 
															 | 
															
															 | 
															
																 	// Descobrindo o elemento mais próximo: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	for (var i = 0; i < all_sub.length; i++) { 
															 | 
															
															 | 
															
																 	for (var i = 0; i < all_sub.length; i++) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		t_top = all_sub[i].getBoundingClientRect().top; 
															 | 
															
															 | 
															
																 		t_top = all_sub[i].getBoundingClientRect().top; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		t_bot = all_sub[i].getBoundingClientRect().top + all_sub[i].getBoundingClientRect().height; 
															 | 
															
															 | 
															
																 		t_bot = all_sub[i].getBoundingClientRect().top + all_sub[i].getBoundingClientRect().height; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -371,10 +457,10 @@ function findNearbyCommandToAddInBlockScope (el, event, node_list_commands, func 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	} 
															 | 
															
															 | 
															
																 	} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	var borda_inferior = elemento_menor_distancia.parentNode.getBoundingClientRect().top + elemento_menor_distancia.parentNode.getBoundingClientRect().height; 
															 | 
															
															 | 
															
																 	var borda_inferior = elemento_menor_distancia.parentNode.getBoundingClientRect().top + elemento_menor_distancia.parentNode.getBoundingClientRect().height; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	// Está mais próximo da borda de baixo, ou seja.. inserir por último: 
															 | 
															
															 | 
															
																 	// Está mais próximo da borda de baixo, ou seja.. inserir por último: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	if ((borda_inferior - event.clientY) < menor_distancia) { 
															 | 
															
															 | 
															
																 	if ((borda_inferior - event.clientY) < menor_distancia) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		var recentComand = genericCreateCommand(command_type); 
															 | 
															
															 | 
															
																 		var recentComand = genericCreateCommand(command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		command_parent.commands_block.push(recentComand); 
															 | 
															
															 | 
															
																 		command_parent.commands_block.push(recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		// 
															 | 
															
															 | 
															
																 		// 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -401,6 +487,70 @@ function findBeforeOrAfterCommandToAddInsertBlock (el, event, function_obj, comm 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	var el_jq = $(el); 
															 | 
															
															 | 
															
																 	var el_jq = $(el); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	var command_parent = $(el.parentNode.parentNode).data('command'); 
															 | 
															
															 | 
															
																 	var command_parent = $(el.parentNode.parentNode).data('command'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	var command_target = el_jq.data('command'); 
															 | 
															
															 | 
															
																 	var command_target = el_jq.data('command'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	var temp_parent = $(el.parentNode.parentNode); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	var is_in_else = false; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	if (!command_parent) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		command_parent = el_jq.data('command'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		temp_parent = el_jq; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		var hier = el_jq.parentsUntil(".command_container"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		for (var i = 0; i < hier.length; i++) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			var temp = $(hier[i]); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (typeof temp.data('else') != 'undefined') { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				is_in_else = true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (typeof temp.data('command') != 'undefined') { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				command_parent = temp.data('command'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				temp_parent = temp; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	var hier = el_jq.parentsUntil(".command_container"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	for (var i = 0; i < hier.length; i++) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		var temp = $(hier[i]); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		if (typeof temp.data('else') != 'undefined') { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			is_in_else = true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	if (command_parent == command_target) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		var hier = el_jq.parentsUntil(".command_container"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		for (var i = 0; i < hier.length; i++) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			var temp = $(hier[i]); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (typeof temp.data('else') !== 'undefined') { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				is_in_else = true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	if ((command_parent.type != Models.COMMAND_TYPES.iftrue) && (command_parent.type != Models.COMMAND_TYPES.switch)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		var hier = temp_parent.parentsUntil(".all_cases_div"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		console.log("vou procurar!!"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		for (var i = 0; i < hier.length; i++) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			console.log("estou vasculhando..."); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			var temp = $(hier[i]); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (typeof temp.data('switchcase') !== 'undefined') { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				console.log("encontrei"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				command_parent = temp.data('switchcase'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				is_in_else = false; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	console.log('debugging:'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	console.log('el_jq'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	console.log(el_jq); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	console.log('command_parent'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	console.log(command_parent); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	console.log('command_target'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	console.log(command_target); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	var menor_distancia = 999999999; 
															 | 
															
															 | 
															
																 	var menor_distancia = 999999999; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	var antes = true; 
															 | 
															
															 | 
															
																 	var antes = true; 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -417,27 +567,131 @@ function findBeforeOrAfterCommandToAddInsertBlock (el, event, function_obj, comm 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	// Está mais próximo da borda de baixo, ou seja.. inserir por último: 
															 | 
															
															 | 
															
																 	// Está mais próximo da borda de baixo, ou seja.. inserir por último: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	if (d_top < d_bot) { 
															 | 
															
															 | 
															
																 	if (d_top < d_bot) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		var recentComand = genericCreateCommand(command_type); 
															 | 
															
															 | 
															
																 		var recentComand = genericCreateCommand(command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		var index = command_parent.commands_block.indexOf(command_target); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		console.log('MMM1'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		if (index > -1) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		    command_parent.commands_block.splice(index, 0, recentComand); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		if (is_in_else) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			console.log('MMM2'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (command_parent == command_target) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				console.log('MMM3'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				if (command_parent.commands_else == null || command_parent.commands_else.length == 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					command_parent.commands_else = []; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					var recentComand = genericCreateCommand(command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					command_parent.commands_else.push(recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					renderCommand(recentComand, el_jq, 3, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				} else { // Se já tem algum comando no bloco: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					findInBlockCorrectPlace(el_jq, event, function_obj, command_type, true); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				return; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			console.log('MMM7'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			var index = command_parent.commands_else.indexOf(command_target); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (index > -1) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			    command_parent.commands_else.splice(index, 0, recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			renderCommand(recentComand, el, 1, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			console.log('MMM4'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (command_parent == command_target) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				console.log('Nxxxx5'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				if (command_parent.commands_block == null || command_parent.commands_block.length == 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					command_parent.commands_block = []; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					console.log('SSS4'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					var recentComand = genericCreateCommand(command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					command_parent.commands_block.push(recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					renderCommand(recentComand, el_jq, 3, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				} else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					console.log('SSS5'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					findInBlockCorrectPlace(el_jq, event, function_obj, command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				return; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			console.log('MMM6'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			var index = command_parent.commands_block.indexOf(command_target); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (index > -1) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			    command_parent.commands_block.splice(index, 0, recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			renderCommand(recentComand, el, 1, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		} 
															 | 
															
															 | 
															
																 		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		renderCommand(recentComand, el, 1, function_obj); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	} else { 
															 | 
															
															 | 
															
																 	} else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		console.log('XXX1'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		var recentComand = genericCreateCommand(command_type); 
															 | 
															
															 | 
															
																 		var recentComand = genericCreateCommand(command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		var index = command_parent.commands_block.indexOf(command_target); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		if (is_in_else) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		if (index > -1) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		    command_parent.commands_block.splice((index + 1), 0, recentComand); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (command_parent == command_target) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				console.log('MMM3'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				if (command_parent.commands_else == null || command_parent.commands_else.length == 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					command_parent.commands_else = []; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					console.log('SSS1'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					var recentComand = genericCreateCommand(command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					command_parent.commands_else.push(recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					renderCommand(recentComand, el_jq, 3, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				} else { // Se já tem algum comando no bloco: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					console.log('SSS2'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					findInBlockCorrectPlace(el_jq, event, function_obj, command_type, true); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				return; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			console.log('XXX2'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			var index = command_parent.commands_else.indexOf(command_target); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (index > -1) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			    command_parent.commands_else.splice((index + 1), 0, recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			renderCommand(recentComand, el, 2, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (command_parent == command_target) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				console.log('Nxxxx78'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				if (command_parent.commands_block == null || command_parent.commands_block.length == 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					command_parent.commands_block = []; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					var recentComand = genericCreateCommand(command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					command_parent.commands_block.push(recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					console.log('SSS6'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					renderCommand(recentComand, el_jq, 3, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				} else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					console.log('SSS7'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					findInBlockCorrectPlace(el_jq, event, function_obj, command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				return; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			console.log('XXX3'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			var index = command_parent.commands_block.indexOf(command_target); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (index > -1) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			    command_parent.commands_block.splice((index + 1), 0, recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			renderCommand(recentComand, el, 2, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		} 
															 | 
															
															 | 
															
																 		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		renderCommand(recentComand, el, 2, function_obj); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	} 
															 | 
															
															 | 
															
																 	} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 } 
															 | 
															
															 | 
															
																 } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -449,7 +703,7 @@ function insertCommandInBlock (el, event, function_obj, command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		(el_jq.data('command').type == Models.COMMAND_TYPES.whiletrue)  || 
															 | 
															
															 | 
															
																 		(el_jq.data('command').type == Models.COMMAND_TYPES.whiletrue)  || 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		(el_jq.data('command').type == Models.COMMAND_TYPES.dowhiletrue) ) { 
															 | 
															
															 | 
															
																 		(el_jq.data('command').type == Models.COMMAND_TYPES.dowhiletrue) ) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		// Se não tiver outro comando ainda no bloco, só adiciona: 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		// Se não tiver outro comando ainda no bloco, só adiciona:  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		if (command_parent.commands_block == null || command_parent.commands_block.length == 0) { 
															 | 
															
															 | 
															
																 		if (command_parent.commands_block == null || command_parent.commands_block.length == 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			command_parent.commands_block = []; 
															 | 
															
															 | 
															
																 			command_parent.commands_block = []; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -461,12 +715,144 @@ function insertCommandInBlock (el, event, function_obj, command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 			findInBlockCorrectPlace(el, event, function_obj, command_type); 
															 | 
															
															 | 
															
																 			findInBlockCorrectPlace(el, event, function_obj, command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		} 
															 | 
															
															 | 
															
																 		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	} else if (el_jq.data('command').type == Models.COMMAND_TYPES.iftrue) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		console.log('QQ9'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		// no if ou no else? 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		var correct_div = $(document.elementFromPoint(event.pageX, event.pageY)); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		var is_in_if = true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		if (correct_div.data('if')) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			is_in_if = true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} else if (correct_div.data('else')) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			is_in_if = false; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			var hier = correct_div.parentsUntil(".command_container"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			for (var i = 0; i < hier.length; i++) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				var temp = $(hier[i]); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				if (typeof temp.data('if') !== 'undefined') { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					is_in_if = true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				if (typeof temp.data('else') !== 'undefined') { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					is_in_if = false; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+					break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		if (is_in_if) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (command_parent.commands_block == null || command_parent.commands_block.length == 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				command_parent.commands_block = []; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				var recentComand = genericCreateCommand(command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				command_parent.commands_block.push(recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				renderCommand(recentComand, el_jq.find('.commands_if'), 3, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} else { // Se já tem algum comando no bloco: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				findInBlockCorrectPlace(el_jq.find('.commands_if'), event, function_obj, command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (command_parent.commands_else == null || command_parent.commands_else.length == 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				command_parent.commands_else = []; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				var recentComand = genericCreateCommand(command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				command_parent.commands_else.push(recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				renderCommand(recentComand, el_jq.find('.commands_else'), 3, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} else { // Se já tem algum comando no bloco: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				findInBlockCorrectPlace(el_jq.find('.commands_else'), event, function_obj, command_type, true); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	} else { // é do tipo switch 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		console.log("está tentando inserir em um switch que está na raiz!"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		addCommandToSwitchCase(event, function_obj, command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+function addCommandToSwitchCase (event, function_obj, command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	var el = $(document.elementFromPoint(event.clientX, event.clientY)); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	var which_case = el.data('switchcase'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	var case_div = el; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	if (!which_case) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		var hier_find = el.parentsUntil(".all_cases_div"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		for (var i = 0; i < hier_find.length; i++) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (typeof $(hier_find[i]).data('switchcase') !== 'undefined') { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				which_case = $(hier_find[i]).data('switchcase'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				case_div = $(hier_find[i]); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+				break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	if (which_case.commands_block == null || which_case.commands_block.length < 1) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		which_case.commands_block = []; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		var recentComand = genericCreateCommand(command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		which_case.commands_block.push(recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		renderCommand(recentComand, case_div.find('.case_commands_block'), 3, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	} else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		findInBlockCorrectPlaceInSwitchCase(which_case, case_div, event, function_obj, command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+function findInBlockCorrectPlaceInSwitchCase (which_case, case_div, event, function_obj, command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	var all_sub = case_div.find('div.command_container'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	var menor_distancia = 999999999; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	var elemento_menor_distancia = null; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	var antes = true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	var t_bot; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	var t_top; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	// Descobrindo o elemento mais próximo: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	for (var i = 0; i < all_sub.length; i++) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		t_top = all_sub[i].getBoundingClientRect().top; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		t_bot = all_sub[i].getBoundingClientRect().top + all_sub[i].getBoundingClientRect().height; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		if ((t_top - event.clientY) < menor_distancia) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			menor_distancia = event.clientY - t_top; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			elemento_menor_distancia = all_sub[i]; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	var borda_inferior = elemento_menor_distancia.parentNode.getBoundingClientRect().top + elemento_menor_distancia.parentNode.getBoundingClientRect().height; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	// Está mais próximo da borda de baixo, ou seja.. inserir por último: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	if ((borda_inferior - event.clientY) < menor_distancia) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		var recentComand = genericCreateCommand(command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		which_case.commands_block.push(recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		renderCommand(recentComand, $(case_div.find('.case_commands_block')[0]), 3, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	} else { 
															 | 
															
															 | 
															
																 	} else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		console.log("PPP2"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		var recentComand = genericCreateCommand(command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		var index = which_case.commands_block.indexOf($(elemento_menor_distancia).data('command')); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		if (index > -1) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		    which_case.commands_block.splice(index, 0, recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		    renderCommand(recentComand, elemento_menor_distancia, 1, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	} 
															 | 
															
															 | 
															
																 	} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 } 
															 | 
															
															 | 
															
																 } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-function findInBlockCorrectPlace (el, event, function_obj, command_type) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+function findInBlockCorrectPlace (el, event, function_obj, command_type, is_in_else = false) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	var el_jq = $(el); 
															 | 
															
															 | 
															
																 	var el_jq = $(el); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	var all_sub = el_jq.find('div.command_container'); 
															 | 
															
															 | 
															
																 	var all_sub = el_jq.find('div.command_container'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -479,7 +865,7 @@ function findInBlockCorrectPlace (el, event, function_obj, command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	// Descobrindo o elemento mais próximo: 
															 | 
															
															 | 
															
																 	// Descobrindo o elemento mais próximo: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	for (var i = 0; i < all_sub.length; i++) { 
															 | 
															
															 | 
															
																 	for (var i = 0; i < all_sub.length; i++) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		t_top = all_sub[i].getBoundingClientRect().top; 
															 | 
															
															 | 
															
																 		t_top = all_sub[i].getBoundingClientRect().top; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		t_bot = all_sub[i].getBoundingClientRect().top + all_sub[i].getBoundingClientRect().height; 
															 | 
															
															 | 
															
																 		t_bot = all_sub[i].getBoundingClientRect().top + all_sub[i].getBoundingClientRect().height; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -491,29 +877,62 @@ function findInBlockCorrectPlace (el, event, function_obj, command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	var borda_inferior = elemento_menor_distancia.parentNode.getBoundingClientRect().top + elemento_menor_distancia.parentNode.getBoundingClientRect().height; 
															 | 
															
															 | 
															
																 	var borda_inferior = elemento_menor_distancia.parentNode.getBoundingClientRect().top + elemento_menor_distancia.parentNode.getBoundingClientRect().height; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	console.log("menor_distancia: "); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	console.log(elemento_menor_distancia); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	// Está mais próximo da borda de baixo, ou seja.. inserir por último: 
															 | 
															
															 | 
															
																 	// Está mais próximo da borda de baixo, ou seja.. inserir por último: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	if ((borda_inferior - event.clientY) < menor_distancia) { 
															 | 
															
															 | 
															
																 	if ((borda_inferior - event.clientY) < menor_distancia) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		console.log('QQ11'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		var recentComand = genericCreateCommand(command_type); 
															 | 
															
															 | 
															
																 		var recentComand = genericCreateCommand(command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		var command_parent = el_jq.data('command'); 
															 | 
															
															 | 
															
																 		var command_parent = el_jq.data('command'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		command_parent.commands_block.push(recentComand); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		if (is_in_else) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			console.log('QQ15'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			command_parent.commands_else.push(recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			console.log('el_jq'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			console.log(el_jq); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			console.log("$(el_jq.find('.commands_else')[0]):: "); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			console.log($(el_jq.find('.commands_else')[0])); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			renderCommand(recentComand, el_jq, 3, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			console.log('QQ16'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			command_parent.commands_block.push(recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		renderCommand(recentComand, $(el_jq.find('.block_commands')[0]), 3, function_obj); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			renderCommand(recentComand, $(el_jq.find('.block_commands')[0]), 3, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	} else { 
															 | 
															
															 | 
															
																 	} else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		console.log('QQ12'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		var recentComand = genericCreateCommand(command_type); 
															 | 
															
															 | 
															
																 		var recentComand = genericCreateCommand(command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		var command_parent = el_jq.data('command'); 
															 | 
															
															 | 
															
																 		var command_parent = el_jq.data('command'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		var index = command_parent.commands_block.indexOf($(elemento_menor_distancia).data('command')); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		if (is_in_else) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			var index = command_parent.commands_else.indexOf($(elemento_menor_distancia).data('command')); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (index > -1) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			    command_parent.commands_else.splice(index, 0, recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			    renderCommand(recentComand, elemento_menor_distancia, 1, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		} else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			var index = command_parent.commands_block.indexOf($(elemento_menor_distancia).data('command')); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			if (index > -1) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			    command_parent.commands_block.splice(index, 0, recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			    renderCommand(recentComand, elemento_menor_distancia, 1, function_obj); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		if (index > -1) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		    command_parent.commands_block.splice(index, 0, recentComand); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-		    renderCommand(recentComand, elemento_menor_distancia, 1, function_obj); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		} 
															 | 
															
															 | 
															
																 		} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	} 
															 | 
															
															 | 
															
																 	} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 } 
															 | 
															
															 | 
															
																 } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -542,7 +961,7 @@ function findBeforeOrAfterCommandToAdd (el, event, function_obj, command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	// Está mais próximo da borda de baixo, ou seja.. inserir por último: 
															 | 
															
															 | 
															
																 	// Está mais próximo da borda de baixo, ou seja.. inserir por último: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	if (d_top < d_bot) { 
															 | 
															
															 | 
															
																 	if (d_top < d_bot) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		var recentComand = genericCreateCommand(command_type); 
															 | 
															
															 | 
															
																 		var recentComand = genericCreateCommand(command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		var index = function_obj.commands.indexOf($(el).data('command')); 
															 | 
															
															 | 
															
																 		var index = function_obj.commands.indexOf($(el).data('command')); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -579,7 +998,7 @@ function findNearbyCommandToAddInFunctionScope (el, event, node_list_commands, f 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	// Descobrindo o elemento mais próximo: 
															 | 
															
															 | 
															
																 	// Descobrindo o elemento mais próximo: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	for (var i = 0; i < all_sub.length; i++) { 
															 | 
															
															 | 
															
																 	for (var i = 0; i < all_sub.length; i++) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		t_top = all_sub[i].getBoundingClientRect().top; 
															 | 
															
															 | 
															
																 		t_top = all_sub[i].getBoundingClientRect().top; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		t_bot = all_sub[i].getBoundingClientRect().top + all_sub[i].getBoundingClientRect().height; 
															 | 
															
															 | 
															
																 		t_bot = all_sub[i].getBoundingClientRect().top + all_sub[i].getBoundingClientRect().height; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -590,10 +1009,10 @@ function findNearbyCommandToAddInFunctionScope (el, event, node_list_commands, f 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	} 
															 | 
															
															 | 
															
																 	} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	var borda_inferior = elemento_menor_distancia.parentNode.getBoundingClientRect().top + elemento_menor_distancia.parentNode.getBoundingClientRect().height; 
															 | 
															
															 | 
															
																 	var borda_inferior = elemento_menor_distancia.parentNode.getBoundingClientRect().top + elemento_menor_distancia.parentNode.getBoundingClientRect().height; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	// Está mais próximo da borda de baixo, ou seja.. inserir por último: 
															 | 
															
															 | 
															
																 	// Está mais próximo da borda de baixo, ou seja.. inserir por último: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	if ((borda_inferior - event.clientY) < menor_distancia) { 
															 | 
															
															 | 
															
																 	if ((borda_inferior - event.clientY) < menor_distancia) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		var recentComand = genericCreateCommand(command_type); 
															 | 
															
															 | 
															
																 		var recentComand = genericCreateCommand(command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		function_obj.commands.push(recentComand); 
															 | 
															
															 | 
															
																 		function_obj.commands.push(recentComand); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 		// 
															 | 
															
															 | 
															
																 		// 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -617,6 +1036,74 @@ function findNearbyCommandToAddInFunctionScope (el, event, node_list_commands, f 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 //* DOUGLAS 
															 | 
															
															 | 
															
																 //* DOUGLAS 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 //****************************************************** 
															 | 
															
															 | 
															
																 //****************************************************** 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+createFloatingCommand = function (function_obj, function_container, command_type, mouse_event) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	var floatingObject; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	switch (command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		case Models.COMMAND_TYPES.break: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			floatingObject = BreaksManagement.createFloatingCommand(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		case Models.COMMAND_TYPES.comment: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			floatingObject = CommentsManagement.createFloatingCommand(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		case Models.COMMAND_TYPES.reader: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			floatingObject = ReadersManagement.createFloatingCommand(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		case Models.COMMAND_TYPES.writer: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			floatingObject = WritersManagement.createFloatingCommand(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		case Models.COMMAND_TYPES.attribution: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			floatingObject = AttributionsManagement.createFloatingCommand(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		case Models.COMMAND_TYPES.iftrue: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			floatingObject = IftruesManagement.createFloatingCommand(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		case Models.COMMAND_TYPES.repeatNtimes: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			floatingObject = RepeatNtimesManagement.createFloatingCommand(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		case Models.COMMAND_TYPES.whiletrue: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			floatingObject = WhiletruesManagement.createFloatingCommand(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		case Models.COMMAND_TYPES.dowhiletrue: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			floatingObject = DowhiletruesManagement.createFloatingCommand(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		case Models.COMMAND_TYPES.switch: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			floatingObject = SwitchesManagement.createFloatingCommand(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		case Models.COMMAND_TYPES.functioncall: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			floatingObject = FunctioncallsManagement.createFloatingCommand(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+			break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	floatingObject.draggable().appendTo("body"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	floatingObject.on('dragstart', function(e) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		console.log("TESTEEEEE"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	}).trigger('dragstart'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	floatingObject.mouseup(function(evt) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		console.log('mouseup') 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+		$(".commands_list_div, .commands_list_div, .block_commands, .command_container").off('mouseenter mouseleave'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	  manageCommand(function_obj, function_container, evt, command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	}); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	floatingObject.css("position", "absolute"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	mouse_event.type = "mousedown.draggable"; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	mouse_event.target = floatingObject[0]; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	floatingObject.css("left", mouse_event.pageX - 15); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	floatingObject.css("top", mouse_event.pageY - 15); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	floatingObject.trigger(mouse_event); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+/* 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 manageCommand = function(function_obj, function_container, event, command_type) { 
															 | 
															
															 | 
															
																 manageCommand = function(function_obj, function_container, event, command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	$( ".created_element" ).each(function( index ) { 
															 | 
															
															 | 
															
																 	$( ".created_element" ).each(function( index ) { 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -735,3 +1222,7 @@ manageCommand = function(function_obj, function_container, event, command_type) 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	has_element_created_draged = false; 
															 | 
															
															 | 
															
																 	has_element_created_draged = false; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 	which_element_is_draged = null; 
															 | 
															
															 | 
															
																 	which_element_is_draged = null; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 } 
															 | 
															
															 | 
															
																 } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+*/ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+export function prepareManageCommand (function_obj, function_container, evt, command_type) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+	manageCommand(function_obj, function_container, evt, command_type); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+} 
															 |