/*
 * Biblioteca de utitliários JS
 * Data: 2009-10-21 15:59:45
 * Versão: 1.0
 * Autor: Frederico Lima (frederico.vieira@gmail.com)
 */

var ComercioUtils = (function($) {
	return {

		adicioneAoCarrinho: function(urlBase, produtoId, qtde, irParaCrrinho) {
			$.ajax({
			    type: 'GET',
			    url: urlBase + '/carrinho/',
			    data: 'id_produto=' + produtoId + '&qtde=' + qtde,
			    dataType: "json",
			    success: function(retorno) {
				if (irParaCrrinho && retorno)
				    window.location.href = urlBase + '/carrinho/';
			    }
			});
		},
		
		atualizeCarrinho: function(urlBase, produtoId, qtde, idValorAtualizar) {
			$.ajax({
			    type: 'GET',
			    url: urlBase + '/carrinho/',
			    data: 'id_produto=' + produtoId + '&qtde=' + qtde + '&atualizar=',
			    dataType: "json",
			    success: function(retorno) {
				    if (retorno) {
					    $("span[id='" + idValorAtualizar + "']").html('R$ ' + retorno.produto);
					    $("span[id='valor_total']").html('R$ ' + retorno.total);
				    }
			    }
			});    
		},
		
		removeItemDoCarrinho: function(urlBase, produtoId) {
			$.ajax({
			    type: 'GET',
			    url: urlBase + '/remove-item-carrinho/',
			    data: 'id_produto=' + produtoId,
			    dataType: "json",
			    success: function(retorno) {
				window.location.href = urlBase + '/carrinho/';
			    }
			});    
		},
		
		consultaCep: function(urlBase, cep, idPrefix) {
			
			if (!idPrefix)
				idPrefix = 'id_'
			
			$.ajax({
			    type: 'GET',
			    url: urlBase + '/consulta-cep/',
			    data: 'cep=' + cep,
			    dataType: "json",
			    success: function(retorno) {
				    if (retorno) {
					    $('#' + idPrefix + 'rua').val(retorno.logradouro);
					    $('#' + idPrefix + 'bairro').val(retorno.bairro);
					    $('#' + idPrefix + 'cidade').val(retorno.cidade);
					    $('#' + idPrefix + 'estado').val(retorno.estado);
				    }
				    else
					    alert('Não encontrado');
			    }
			});
		},
		
		consultaPrecoFretePorCep: function(urlBase, cep, id_frete, id_total) {
			$('#' + id_frete).html('Calculando frete...')
			$.ajax({
			    type: 'GET',
			    url: urlBase + '/calcule-frete-por-cep/',
			    data: 'cep=' + cep,
			    dataType: "json",
			    success: function(retorno) {
				if (!retorno)
					$('#' + id_frete).html('Cep não encontrado.');
				else {
					$('#' + id_frete).html('R$ ' + retorno.frete);
					$('#' + id_total).html(retorno.total);
				}
			    }
			});
		},
	
		cadastroNewsLetter: function(urlBase, email_id, msg_id) {
			var email = $('#' + email_id).val();
			
			if (!email) {
				$('#' + msg_id).html('Preencha o campo e-mail.');
				return;
			}
			
			$.ajax({
				type: 'POST',
				url: urlBase + '/cadastro-newsletter/',
				data: 'email=' + email,
				dataType: "json",
				success: function(retorno) {
					$('#' + msg_id).html(retorno);
				}
			});
		},
	
		alterarSenha: function(urlBase, senha_atual_id, nova_senha_id, senha_confirmacao_id, msg_id) {
			var senha_atual = $('#' + senha_atual_id).val();
			var nova_senha = $('#' + nova_senha_id).val();
			var senha_confirmacao = $('#' + senha_confirmacao_id).val();
			
			if (!senha_atual || !nova_senha || !senha_confirmacao) {
				$('#' + msg_id).html('Preencha todos os campos.');
				return;
			}
			
			$.ajax({
				type: 'POST',
				url: urlBase + '/alterar-senha/',
				data: 'senha_atual=' + senha_atual + '&nova_senha=' + nova_senha + '&senha_confirmacao=' + senha_confirmacao,
				dataType: "json",
				success: function(retorno) {
					$('#' + senha_atual_id).val('');
					$('#' + nova_senha_id).val('');
					$('#' + senha_confirmacao_id).val('');
					$('#' + msg_id).html(retorno);
				}
			});
		},
		
		confirmaEnderecoCompra: function(urlBase, id_endereco) {
		    $.ajax({
			type: 'POST',
			url: urlBase + '/confirma-endereco-compra/',
			data: 'id_endereco=' + id_endereco,
			dataType: "json",
			success: function(retorno) {
				window.location.href = urlBase + retorno.url;
			}
		    });		
		},
	
		confirmaPedido: function(urlBase, media_url) {
			$('#confirmacao-pagamento').hide();
			$('#processamento_pedido').show();
			
			var html = '<div class="espacador"></div>'
			html += '<span class="azul_maior">Seu pedido esta sendo processado. Aguarde...</span><br /><br />'
			html += '<img src="' + media_url + 'imagens/processando.gif" />'
			html += '<div class="espacador"></div>'
			
			$('#processamento_pedido').html(html);
			
			$.ajax({
				type: 'POST',
				url: urlBase + '/confirma-pedido/',
				dataType: "json",
				data: 'confirma=',
				success: function(retorno) {
					if (retorno.status)
						window.location.href = urlBase + retorno.url;
					else {
						alert('ERRO: ' + retorno.mensagem);
						$('#processamento_pedido').hide();
						$('#confirmacao-pagamento').show();
					}
			    }
			});
		},
		
		confirmaFormaPagamentoBoleto: function(urlBase) {
			$('#msg_boleto').html('Processando...');
			$.ajax({
				type: 'POST',
				url: urlBase + '/confirma-forma-pagamento-boleto/',
				dataType: "json",
				data: 'boleto=',
				success: function(retorno) {
					$('#msg_boleto').html('');
					if (retorno.status)
						window.location.href = urlBase + retorno.url;
					else 
						$('#msg_boleto').html(retorno.mensagem);
			    }
			});
		},
	
		confirmaFormaPagamentoCartao: function(urlBase) {
			
			$('#msg_cartao').html('');
			
			var bandeira = $('input[name="bandeira_cartao"]:checked').val();
			var parcela_valor = $('input[name="parcela_cartao"]:checked').val();
			var nr_cartao = $('#id_nr_cartao').val();
			var nome_titular = $('#id_nome_titular').val();
			var codigo_seguranca = $('#id_codigo_seguranca').val();
			var validade_mes = $('#id_validade_mes').val();
			var validade_ano = $('#id_validade_ano').val();
			var parcela = 0;
			var valor = 0;
			
			if (!bandeira || !parcela_valor || !nr_cartao || !nome_titular || !codigo_seguranca || !validade_mes || !validade_ano) {
				$('#msg_cartao').html('Informe todos os dados do cartão, bandeira e parcelas.');
				return;
			}
			
			if (nr_cartao.length != 16) {
				$('#msg_cartao').html('O número do cartão deve ter 14 digitos.');
				return;
			}

			parcela = parcela_valor.split('_')[0];
			valor = parcela_valor.split('_')[1];
			
			var dados = 'bandeira=' + bandeira + '&parcela=' + parcela + '&valor=' + valor
			dados += '&nr_cartao=' + nr_cartao + '&nome_titular=' + nome_titular
			dados += '&codigo_seguranca=' + codigo_seguranca + '&validade_mes=' + validade_mes
			dados += '&validade_ano=' + validade_ano
			
			$('#msg_cartao').html('Processando, aguarde...');
				
			$.ajax({
			    type: 'POST',
			    url: urlBase + '/confirma-forma-pagamento-cartao/',
			    data: dados,
			    dataType: "json",
			    success: function(retorno) {
				    $('#msg_cartao').html('');
				    if (retorno.status)
					    window.location.href = urlBase + retorno.url;
				    else 
					    $('#msg_cartao').html(retorno.mensagem);
			    }
			});
		},
		
		carregaFormulario: function(urlBase, htmlId, formClass, extra) {
			$.ajax({
				type: 'POST',
				url: urlBase + '/carrega-formulario/',
				data: 'form=' + formClass,
				dataType: "json",
				success: function(retorno) {
					var html = '<table cellspacing="0" cellpadding="0" border="0"><tbody>';
					html += retorno;
					html += '<tr><th></th><td><input type="submit" id="confirmar" name="confirmar" value="Confirmar" class="btn_azul"></td></tr>';
					html += '</tbody></table>';
					html += '<input type="hidden" id="tipo" name="tipo" value="" />';
					$('#' + htmlId).html(html)
					$('input[id*="cpf"]').setMask('999.999.999-99');
					$('input[id*="cnpj"]').setMask('99.999.999/9999-99');
					$('input[id*="telefone"]').setMask('99 9999-9999');
					$('input[id*="cep"]').setMask('99999-999');
					$('select[id*="data_nascimento"]').css('width', '85px');
					$('#id_cep').blur(function() {
					   if ($(this).val() && $(this).val().length == 9)
						 ComercioUtils.consultaCep(urlBase, $(this).val());
					});
					$('#tipo').val(extra);
				}
			});
		},
	
		salvar: function(urlBase, form_id, action, obj_id, url_media) {
			$.ajax({
				type: 'POST',
				url: urlBase + action,
				data: $('#' + form_id).formSerialize() + '&obj_id=' + obj_id,
				dataType: "json",
				success: function(retorno) {
					if (retorno.status || retorno.mensagem == 'sessao') {
						if (retorno.url.substr(0, 4) == 'http')
							window.location.href = retorno.url
						else
							window.location.href = urlBase + retorno.url
					}
					else {
						if (retorno.mensagem != null) {
							$('div[id*="erro_"]').html('');
							$('div[id*="erro_"]').attr('title', '');
							$.each(retorno.mensagem, function(key, item) {
								$('#' + key).html('<img src="' + url_media + 'imagens/erro.png" border="0" />');
								$('#' + key).attr('title', item);
							});
						}
					}
				}
			});
		},
		
		identificacao: function(urlBase, email, senha, mensagem) {
			$.ajax({
				type: 'POST',
				url: urlBase + '/identificacao/',
				data: 'email=' + email + '&senha=' + senha,
				dataType: "json",
				success: function(retorno) {
				    if (retorno.substr(0, 4) == 'http')
					    window.location.href = retorno;
				    else
					    $('#mensagem').html(retorno);
				}
			});
		}
        
	};
})(jQuery);
