function initCadastroProduto() {
	$('.editarSecao').click(clickEditarSecao);
	$('.cancelarEdicao').click(clickCancelarEdicao);
	$('.salvarEdicao').click(clickSalvarEdicao);
	cssDisabled();
}

function clickEditarSecao(event) {
	var botaoEditar = $(event.target);
	// desabilita todos
	$('.editarSecao').attr('disabled', 'disabled');
	var secaoCadastro = botaoEditar.parents('.secaoCadastro');
	secaoCadastro.find('.modoVisualizacao').hide();
	secaoCadastro.find('.modoEdicaoLoading').show();
	var edicaoUrl = secaoCadastro.find('.modoEdicaoUrl').html();
	$.get(edicaoUrl, function(responseText, responseStatus) {
		secaoCadastro.find('.modoEdicaoLoading').hide();
		secaoCadastro.find('.modoEdicao').show().html(responseText);
	});
	secaoCadastro.find('.cancelarEdicao').removeAttr('disabled');
	secaoCadastro.find('.salvarEdicao').removeAttr('disabled');
	cssDisabled();
}

function clickCancelarEdicao(event) {
	var botaoCancelar = $(event.target);
	botaoCancelar.attr('disabled', 'disabled');
	var secaoCadastro = botaoCancelar.parents('.secaoCadastro');
	secaoCadastro.find('.modoEdicao').empty();
	secaoCadastro.find('.modoVisualizacao').show();
	secaoCadastro.find('.salvarEdicao').attr('disabled', 'disabled');
	// habilita todos
	$('.editarSecao').removeAttr('disabled');
	cssDisabled();
}

function clickSalvarEdicao(event) {
	var botaoSalvar = $(event.target);
	var secaoCadastro = botaoSalvar.parents('.secaoCadastro');
	botaoSalvar.attr('disabled', 'disabled');
	secaoCadastro.find('.cancelarEdicao').attr('disabled', 'disabled');
	secaoCadastro.find('form').submit();	
}

function cssDisabled() {
	$("input").removeClass("disabled");
	$("input:disabled").addClass("disabled");
}

function buscaRelacionados(botaoBuscar) {
	var botaoBuscar = $(botaoBuscar);
	var formPai = botaoBuscar.parents('form');
	var strBusca = formPai.find('.textBusca').val();
	if(!strBusca || strBusca.length < 3) {
		alert("Informe uma pesquisa com pelo menos três caracteres.");
		return;
	}
	var tableBuscaRelacionados = formPai.find('.tableBuscaRelacionados');
	tableBuscaRelacionados.empty();
	botaoBuscar.attr('disabled', 'disabled');
	formPai.find('.buscaRelacionadosCarregando').show();

	var buscaUrl = formPai.find('.buscaRelacionadosUrl').html();
	$.get(buscaUrl, {busca: strBusca}, function(responseText, responseStatus) {
		botaoBuscar.removeAttr('disabled');
		formPai.find('.buscaRelacionadosCarregando').hide();
		if('success' != responseStatus) {
			alert("Erro ao buscar produto: " + tbodyBuscaRelacionados.length);
			return;
		}
		tableBuscaRelacionados.html(responseText);
		$('.botaoAssociar').click(clickAssociarRelacionamento);
	});
}

function clickAssociarRelacionamento(event) {
	var botaoAssociar = $(event.target);
	var tr = botaoAssociar.parents('tr');
	var eid = tr.find('td:first input').val();
	var codigo = tr.find('td:first').text();
	var nome = tr.find('td:eq(1)').text();

	var formPai = botaoAssociar.parents('form');
	var tableRelacionados = formPai.find('.tableRelacionados');
	var tbodyRelacionados = tableRelacionados.find('tbody');
	var html = "<tr><td>" + codigo;
	html += "<input type='hidden' name='produto_eids[]' value='" + eid + "' />";
	html += "</td><td>" + nome + "</td><th>";
	html += "<input type='button' value='Desassociar' class='botaoDesassociar botaoSec' />";
	html += "</th></tr>";
	tbodyRelacionados.append(html);
	$('.botaoDesassociar').click(clickDesassociarRelacionamento);
	formPai.find('.trNenhumRelacionado').hide();
}

function clickDesassociarRelacionamento(event) {
	var botaoDesassociar = $(event.target);
	var table = botaoDesassociar.parents('table');
	botaoDesassociar.parents('tr').remove();
	if(table.find('tr').length == 2)
		table.find('.trNenhumRelacionado').show();
}

function clickAdicionarVariacao(botaoAdicionarVariacao) {
	botaoAdicionarVariacao = $(botaoAdicionarVariacao);
	var oForm = botaoAdicionarVariacao.parents('form');
	var tbodyEstoques = oForm.find('.tableEstoques tbody');
	var estoqueEid = "NOVO_" + new Date().getTime();
	
	var tableVariacoes = botaoAdicionarVariacao.parents('table');
	var selects = tableVariacoes.find('select');
	var descricao = "";
	var variEids = [];
	selects.each(function() {
		var option = $(this).find(':selected');
		var value = option.val();
		var text = option.text();
		var nomeTipoVari = option.parents('td').find('input:hidden[name="tipoVariacao"]').val();
		if(value != "") {
			descricao += (descricao.length==0?'':', ') + nomeTipoVari + ": " + text;
			variEids[variEids.length] = value;
		}
	});

	var tr = '<tr><td>';
	for ( var i = 0; i < variEids.length; i++) {
		tr += '<input type="hidden" name="estoqueVariacaoArray[' + estoqueEid + '][]" value="' + variEids[i] + '" />';
	}
	tr += descricao;
	tr += '</td><td>';
	tr += '<input type="text" name="estoqueEstoqueArray[' + estoqueEid + ']" value="0" size="3" maxlength="3" />';
	tr += '</td><td>';
	tr += '<input type="button" value="Remover variação" onclick="clickRemoverVariacao(this)" class="botaoSec" />';
	tr += '</td></tr>';
	tbodyEstoques.append(tr);
	tbodyEstoques.find('.trSemEstoque').hide();
}

function clickRemoverVariacao(botaoRemoverVariacao) {
	botaoRemoverVariacao = $(botaoRemoverVariacao);
	var table = botaoRemoverVariacao.parents('table');
	botaoRemoverVariacao.parents('tr').remove();
	if(table.find('tr').length == 2)
		table.find('.trSemEstoque').show();
}


