import { LocalizedStrings } from '../../services/localizedStringsService';
import * as CommandsManagement from '../commands';
import * as VariableValueMenu from './variable_value_menu';
import * as ContextualizedMenu from './contextualized_menu';
export function createFloatingCommand () {
	return $('
   '+LocalizedStrings.getUI('text_code_switch')+' ( x ) { 
 '+LocalizedStrings.getUI('text_code_case')+' 1: 
 '+LocalizedStrings.getUI('text_code_case')+' 2: 
 } 
');
}
export function renderCommand (command, function_obj) {
	var ret = '';
	ret += '     '+LocalizedStrings.getUI('text_code_switch')+' (  ) ';
	ret += '
 ';
	var el = $(ret);
	el.data('command', command);
	addHandlers(command, function_obj, el);
	ContextualizedMenu.renderMenu(command, el.find('.context_menu'), function_obj, el);
	VariableValueMenu.renderMenu(command, command.variable, el.find('.variable_to_switch'), function_obj);
	if (command.cases) {
		for (var i = 0; i < command.cases.length; i++) {
			renderCase(command.cases[i], command, function_obj, el.find('.all_cases_div'));
		}
	}
	return el;
}
export function renderCase (switchcase, command, function_obj, el) {
	var casediv = $(''+LocalizedStrings.getUI('text_code_case')+' : 
 ');
	VariableValueMenu.renderMenu(command, switchcase.variable_value_menu, casediv.find('.variable_case'), function_obj);
	casediv.data('switchcase', switchcase);
	casediv.find('.case_commands_block').data('switchcase', switchcase);
	el.append(casediv);
	if (switchcase.commands_block) {
		for (var j = 0; j < switchcase.commands_block.length; j++) {
		    CommandsManagement.renderCommand(switchcase.commands_block[j], $(casediv.find('.case_commands_block')[0]), 3, function_obj);
		}
	}
	casediv.find('.button_remove_command').on('click', function() {
		for (var i = 0; i < command.cases.length; i++) {
			if (switchcase == command.cases[i]) {
				delete command.cases[i];
				command.cases.splice(i, 1);
				casediv.remove();
				break;
			}
		}
	});
}
function addHandlers (command, function_obj, switch_dom) {
	switch_dom.find('.button_remove_command').on('click', function() {
		if (CommandsManagement.removeCommand(command, function_obj, switch_dom)) {
			switch_dom.fadeOut(400, function() {
				switch_dom.remove();
			});
		}
	});
}