var c = new Carrinho();


/**
 *	linkarBotoes()
 *	Função que adiciona eventos aos botões do formulário do produto
 */
function linkarBotoes() {
	var form = document.getElementById('formProduto');
	if(!form)
		return;
	
	var input;
	for(var i = 0; (input = form.getElementsByTagName('input')[i]); i++) {
		switch(input.name) {
			// opções
			case 'opcoes':
				input.onclick = function() {
					var id = this.id.replace('opcao', '');
					mostrarPrecoOpcao(id);
				}
				break;
			
			
			// comprar
			case 'comprar':
				// adiciona o listener que valida os dados do formulário e insere o novo produto
				addListener(
					input,
					'click',
					function() {
						// cria um novo produto
						var prod = new Produto();
						if(prod.validaForm()) {
							// parâmetros para passar à URL
							var params = 'nome='+encodeURI(prod.nome)
											+'&opcao='+encodeURI(prod.opcao)
											+'&qtd='+encodeURI(prod.qtd)
											+'&info='+encodeURI(prod.info)
											+'&precoAVista='+encodeURI(prod.preco.aVista)
											+'&precoAPrazo='+encodeURI(prod.preco.aPrazo)
											+'&lista='+encodeURI('listaDeCompras');
							new ajax.ContentLoader('../php/carrinho/gravarProduto.php', adicionarProdutoHandler, false, 'POST', params);
						}
						return;
					}
				);
				break;
			
			
			// orçar
			case 'orcar':
				// adiciona o listener que valida os dados do formulário e insere o novo produto
				addListener(
					input,
					'click',
					function() {
						// cria um novo produto
						var prod = c.novoProduto();
						if(prod.validaForm()) {
							// parâmetros para passar à URL
							var params = 'nome='+encodeURI(prod.nome)
											+'&opcao='+encodeURI(prod.opcao)
											+'&qtd='+encodeURI(prod.qtd)
											+'&info='+encodeURI(prod.info)
											+'&lista='+encodeURI('listaDeOrcamentos');
							new ajax.ContentLoader('../php/carrinho/gravarProduto.php', adicionarProdutoHandler, false, 'POST', params);
						}
						return;
					}
				);
				break;
		}
	}
}
addListener(window, 'load', linkarBotoes);

/**
 *	adicionarProdutoHandler()
 *	Adiciona novos produtos à lista
 *
 *	@see		linkarBotoes
 */
function adicionarProdutoHandler() {
	var response = this.req.responseText
	if(response) {
		var prod = eval("("+response+")");
		if(!(prod)){
			return null;
		}
		c.adicionarProduto(prod, prod.lista);
	}
}


/**
 *	mostrarPrecoOpcao()
 *	Função que calcula o preço de uma dada opcao
 *
 *	@param		int			id		Contador da opção
 */
function mostrarPrecoOpcao(id) {
	var form = document.getElementById('formProduto');
	if(!form)
		return;
	var fieldset;
	for(var i = 0; (fieldset = form.getElementsByTagName('fieldset')[i]); i++) {
		if(fieldset.id.indexOf('valor') != -1) {
			if(fieldset.id == 'valor'+id) {
				fieldset.style.display = 'block';
				fieldset.disabled = false;
			} else {
				fieldset.style.display = 'none';
				fieldset.disabled = true;
			}

			if(!fieldset.disabled) {
				var estoque = fieldset.getElementsByTagName('strong');
				if(estoque[3] && estoque[3].innerHTML == '0') {
					document.getElementById('comprar').style.display = 'none';
					document.getElementById('comprar').disabled = true;
				} else {
					document.getElementById('comprar').style.display = 'block';
					document.getElementById('comprar').disabled = false;
				}
			}
		}
	}
}


/**
 *	carregarCarrinho()
 *	Carrega o carrinho a cada troca de página
 */
function carregarCarrinho() {
	// verifica se não está no iframe
	if(location.href.indexOf('ampliaProduto.php') == -1)
		new ajax.ContentLoader('../php/carrinho/carregarCarrinho.php', carregarCarrinhoHandler);
}
addListener(window, 'load', carregarCarrinho);

/**
 *	carregarCarrinhoHandler()
 *	Handler da função carregarCarrinho()
 *
 *	@see		carregarCarrinho()
 */
function carregarCarrinhoHandler() {
	if(this.req.responseText) {
		var carrinho = eval("("+this.req.responseText+")");
		if(!carrinho)
			return;
		var prod;
		
		// botões
		c.botoes["compra"] = document.getElementById("submitCompra")
		c.botoes["orcamento"] = document.getElementById("submitOrcamento")
		
		// Lista de Compras
		var prod, length = carrinho.listaDeCompras.produtos.length
		if(length) {
			c.alterarBotao("compra", true)
			for(var i = 0; i < length; i++) {
				prod = carrinho.listaDeCompras.produtos[i]
				if(prod)
					c.adicionarProduto(prod, 'listaDeCompras')
			}
		} else {
			//c.adicionarProduto('mensagem', 'listaDeCompras')
			c.alterarBotao("compra", false)
		}
		
		// Lista de Orçamentos
		length = carrinho.listaDeOrcamentos.produtos.length
		if(length) {
			c.alterarBotao("orcamento", true)
			for(i = 0; i < length; i++) {
				prod = carrinho.listaDeOrcamentos.produtos[i]
				c.adicionarProduto(prod, 'listaDeOrcamentos')
			}
		} else {
			//c.adicionarProduto('mensagem', 'listaDeOrcamentos')
			c.alterarBotao("orcamento", false)
		}
	}
}

/**
 *	carrinhoAccordion()
 *	Faz o abre/fecha o carrinho
 */
function carrinhoAccordion() {
	var divCompras = document.getElementById("compra")
	var divOrcamentos = document.getElementById("orcamento")
	
	var h2Compras = divCompras.getElementsByTagName("h2")[0]
	var h2Orcamentos = divOrcamentos.getElementsByTagName("h2")[0]
	
	addListener(h2Compras, "click", function() {
		divCompras.getElementsByTagName("form")[0].style.display = divCompras.getElementsByTagName("form")[0].style.display == 'none' ? 'block' : 'none'
	})
	addListener(h2Orcamentos, "click", function() {
		divOrcamentos.getElementsByTagName("form")[0].style.display = divOrcamentos.getElementsByTagName("form")[0].style.display == 'none' ? 'block' : 'none'
	})
}
addListener(window, 'load', carrinhoAccordion)