function LimMateriaisProduto(objCtrMateriaisProduto) {
	
	this.setId("CtrMateriaisProduto");
	this.setIdFormulario("formMateriaisProduto");
	this.setLargura(630);
	this.setAltura(440);
	this.setTitulo("Materiais do Produto");
	this.setHtml("departamento/producao/cad_materiaisProduto.html");
	this.setIdFoco("idCampoCodigoProduto");
	
	this.setControlador(objCtrMateriaisProduto);
	
	// VARIAVEIS GLOBAIS:
	this.alterar = false;
    // EVENTOS   
    this.buscaRapidaProdutos = function(campoAtual, proximoCampo) {
    	this.getControlador().buscaRapidaProdutos(campoAtual, proximoCampo);
    }
    
	this.trataEventoBuscaProduto = function(codigo) {
		this.limparStyle();
		
		if (codigo > 0) {
			this.getControlador().buscaProdutoPorCodigo(codigo);	
		} else {
			this.setCampoCodigoProduto("");
			this.setCampoProduto("");
			this.limparStyle();
			this.limparMensagem();
		}
	}	

	this.pesquisarProduto = function() {
		this.getControlador().pesquisarProduto();
	}
	
	this.adicionaMaterial = function() {
		if (this.getCampoCodigoProdutoMateriais() > 0 && this.getCampoQuantidade() != "") {
			this.getControlador().adicionaMateriaisProduto();		
		} else {
			this.mostrarMensagem(this.getControlador().codAlerta, INSERIR_DADOS_MATERIAIS);
		}
	}
	
	this.salvarMateriaisProduto = function() {
		if (this.verificaCamposObrigatorios()) {
		 	if(this.getControlador().verificaMateriaisSalvar()) { // RESPONSAVEL POR VERIFICAR SE EXISTE PRODUTO NA LISTAGEM
				if(this.getControlador().getAlterar() == true) {
					this.getControlador().alteraMateriais();
				} else {
					this.getControlador().salvaMateriais();
				}
			} else {
				this.mostrarMensagem("alerta", ADICIONAR_MATERIAIS);
			}
		}
	}
	
	this.desabilitaBotaoSalvar = function() {
		$(this.getIdFormulario()).idSalvarMateriaisProduto.blur();
		$(this.getIdFormulario()).idSalvarMateriaisProduto.disabled = "true";
	}
	
	this.habilitaBotaoSalvar = function() {
		$(this.getIdFormulario()).idSalvarMateriaisProduto.disabled = "";
	}
	
	// EVENTOS: MATERIAIS
	this.buscaRapidaProdutoMateriais = function(campoAtual, proximoCampo) {
    	this.getControlador().buscaRapidaProdutoMateriais(campoAtual, proximoCampo);
    }
    
	this.trataEventoBuscaProdutoMateriais = function(codigo) {
		this.limparStyle();
		
		if (codigo > 0) {
			this.getControlador().buscaMaterialProduto(codigo);	
		} else {
			this.setCampoCodigoProdutoMateriais("");
			this.setCampoProdutoMateriais("");
		}
	}	

	this.pesquisarMateriaisProduto = function() {
		this.getControlador().pesquisarMateriaisProduto();
	}
	
	this.colocaMascara = function(simboloUnidade) { // coloca mascara no campo quantidade, dependendo da unidade do produto
		
		if (simboloUnidade == "un" || simboloUnidade == "it") { //Simbolos da unidade "unidade" e "unitario"
			this.setSpanCampoQuantidade("<input onkeypress='return aplicativo.getLimite(\"LimMateriaisProduto\").teclaPressionada(event, idBotaoAdicionaMaterial)' name='campoQuantidadeProduto' type='text' class='input115' id='idCampoQuantidadeProduto' mascara='quantidade'>");
			$(this.getIdFormulario()).idCampoQuantidadeProduto.focus();
		} else {
			this.setSpanCampoQuantidade("<input onkeyup='return aplicativo.getLimite(\"LimMateriaisProduto\").teclaPressionada(event)' onkeypress='return aplicativo.getLimite(\"LimMateriaisProduto\").trataEnter(event, idBotaoAdicionaMaterial)' name='campoQuantidadeProduto' type='text' class='input115' id='idCampoQuantidadeProduto' mascara='monetario' >");
			$(this.getIdFormulario()).idCampoQuantidadeProduto.focus();
		}
	}
	
	// LISTAGEM DE PRODUTO
	this.setListagemProdutos = function (conteudo) {
		var divProdutos = $("idDivProduto")
		divProdutos.update();
	 	var classDesabilitado = "input80";
	 	var conteudoListagem = "";
		var pos = 0;
		var mouseOver = "#C4FFD7";
		var numero = new Numero();	
			
		for(var i = 0; i < conteudo.length; i++) {
			var corTabela = (i % 2 == 0) ? "#FFFFFF" : "#F3F3F3";  
			conteudoListagem += "<table bgcolor=\""+corTabela+"\" width='100%' border='0' cellpadding='2' cellspacing='1' class='fonte'>";
			conteudoListagem += "<tr height='16' onMouseOver=\"bgColor='" + mouseOver + "'\"; onMouseOut=\"bgColor='" + corTabela + "'\">"; 
			conteudoListagem += "<td width='50'>&nbsp;" + conteudo[i].getResumoProduto().getCodigo() + "</td>";
			conteudoListagem += "<td width='190'>" + conteudo[i].getResumoProduto().getDescricao() +"</td>";
			conteudoListagem += "<td width='140'>" + numero.formataNumeroParaCliente(conteudo[i].getQuantidade(),2) + "</td>"
			conteudoListagem += "<td width='120'>" + conteudo[i].getUnidade().getNome() + "</td>"
			conteudoListagem += "<td width='30'><div align='center'><img onclick='javascript: aplicativo.getLimite(\"LimMateriaisProduto\").removeProduto("+i+");' src='../imagem/remover.gif' width='16' height='16' border='0' align='absmiddle' style='cursor: pointer' title='Remover'></div></td>";
			conteudoListagem += "</tr>";
			conteudoListagem += "</table>";
			pos++;
			var addProdutos = document.createElement("div");
			addProdutos.id = "idDivProduto";
			divProdutos.appendChild(addProdutos);
			addProdutos.innerHTML = conteudoListagem;
			divProdutos.style.display = "";
		}
 	 
 	 	this.trataScroll(divProdutos);
	 	divProdutos.innerHTML = conteudoListagem;
	}

	this.removeProduto = function(posicao) {
		this.getControlador().removeProduto(posicao);
	}

	this.exibirProduto = function(produto) {
		this.setCampoCodigoProduto(produto.getResumoProduto().getCodigo());
		this.setCampoProduto(produto.getResumoProduto().getDescricao());
		this.setSpanUnidadeProduto(produto.getUnidade().getNome());
		this.setListagemProdutos(produto.getMateriais());
		
	}
	
	// LIMPA HTML
	//LIMPA BUSCA PRODUTO
	this.limpaProduto = function() {
		this.setCampoCodigoProduto("");
		this.setCampoProduto("");
		this.setSpanUnidadeProduto("");
		this.limpaDivMateriais();
		$(this.getIdFormulario()).idCampoCodigoProduto.focus();
	}
	
	//LIMPA BUSCA MATERIAIS E APOS ADICIONAR
	this.limpaCampoMateriaisProduto = function() {
		this.setCampoCodigoProdutoMateriais("");
		this.setCampoProdutoMateriais("");
		this.setSpanUnidadeProdutoMateriais("");
		this.setCampoQuantidade("");
		$(this.getIdFormulario()).idCampoCodigoProdutoMateriais.focus();
	}
	
	this.limpaDivMateriais = function() {
		this.setCampoCodigoProdutoMateriais("");
		this.setCampoProdutoMateriais("");
		this.setSpanUnidadeProdutoMateriais("");
		this.setCampoQuantidade("");
		this.getControlador().limpaListagemMateriais();
		$("idDivProduto").style.display = "none";
	}	
	
	//LIMPA CAMPOS APOS SALVAR O PRODUTO
	this.limpaHtml = function() {
		$(this.getIdFormulario()).reset();
		this.limpaDivMateriais();		
	}
	
	//LIMPA MATERIAL ICONE AO LADO DA LUPA
	this.limpaProdutoMateriais = function() {
		this.setCampoCodigoProdutoMateriais("");
		this.setCampoProdutoMateriais("");
		this.setSpanUnidadeProdutoMateriais("");
	}
	
	//GETS E SETS 
	this.getCampoCodigoProduto = function() {
		return $(this.getIdFormulario()).idCampoCodigoProduto.value;
	}
	
	this.setCampoCodigoProduto = function(intValor) {
		$(this.getIdFormulario()).idCampoCodigoProduto.value = intValor;
	}
	
	this.getCampoProduto = function() {
		return $(this.getIdFormulario()).idCampoProduto.value;
	}
	
	this.setCampoProduto = function(strValor) {
		$(this.getIdFormulario()).idCampoProduto.value = strValor;
	}
	
	this.getSpanUnidadeProduto = function() {
		return $("spanUnidadeProduto").value;
	}
	
	this.setSpanUnidadeProduto = function(valor) {
		$("spanUnidadeProduto").innerHTML = valor;
	}

	this.getCampoCodigoProdutoMateriais = function() {
		return $(this.getIdFormulario()).idCampoCodigoProdutoMateriais.value;
	}
	
	this.setCampoCodigoProdutoMateriais = function(intValor) {
		$(this.getIdFormulario()).idCampoCodigoProdutoMateriais.value = intValor;
	}
	
	this.getCampoProdutoMateriais = function() {
		return $(this.getIdFormulario()).idCampoProdutoMateriais.value;
	}
	
	this.setCampoProdutoMateriais = function(strValor) {
		$(this.getIdFormulario()).idCampoProdutoMateriais.value = strValor;
	}
	
	this.getSpanUnidadeProdutoMateriais = function() {
		return $("spanUnidadeProdutoMateriais").value;
	}
	
	this.setSpanUnidadeProdutoMateriais = function(valor) {
		$("spanUnidadeProdutoMateriais").innerHTML = valor;
	}
	
	this.getCampoQuantidade = function() {
		return $(this.getIdFormulario()).idCampoQuantidadeProduto.value;
	}
	
	this.setCampoQuantidade = function(valor) {
		$(this.getIdFormulario()).idCampoQuantidadeProduto.value = valor;
	}
	
	this.setSpanCampoQuantidade = function(valor) {
		$("spanCampoQuantidade").innerHTML = valor;
	}
	
	this.posCarregamento = function() {
		this.colocaFoco();
		this.getControlador().inicializa();
	}
	
}	
LimMateriaisProduto.prototype = new Limite;