$j(function(){
		Carrinho.constructor();			
});

var Produto={
	detalhes:function(nomeProduto, id, cpt){
		location='index.php?'+nomeProduto+'&produto='+id+'&cpt='+cpt;
	},
	ordenar:function(url){
		window.location = url;
	},
	mudarImagem:function(id){
		$j('.miniImg').show();
		$j('.imgs, #miniImg'+id).hide();
		$j('#img'+id).fadeIn();
	}
};
var Carrinho = {
	url_carrinho : '/carrinho.php?',
	subtotal : new Array(),
	produto : new Array(),
	acoes : '/carrinho.php?',
	
	tipo_pessoa:function(tipo){
		$j('#dados').show();
		if(tipo=='pj'){
			$j('#pf').slideUp('normal',function(){
				$j('#pj').slideDown();
				$j('#cpf_cliente').val("");
			});
		}else{
			$j('#pj').slideUp('normal',function(){
				$j('#pf').slideDown();	
				$j('#cnpj_cliente').val("");
			});
		}
	},
	
	validar : function(form) {
		if($Form.validate(form) != false) {
			form.name == "f-novo-cadastro" ? Clientes.validar(form) : Clientes.login(form);
		}
		return false;
	},
	
	variacoes :function(codProduto, variacoes){
		
		response ='';
		$j.ajax({
			url:Carrinho.acoes+'op=variacao&variacao='+variacoes+'&produto='+codProduto, cache:false,
			success:function(response){
				$j('#variacoes-flutuante').html(response).show();
			}
		});		
	},
	
	validarPagamento:function(form){

		if($Form.validate(form) != false) {
			return true;
		}	
		return false;
	},
	
	validarFinalizar:function(){
		if($j('#opcoesFrete').val() > 0) {
			return true;
		}
		$j.alert({type:'alert', html:'Calcule o frete para proseguir.'});
		return false;
	},
	
	detalhesPgto:function(alvo){
		$j('.containersPgto').hide();
		$j(':input','#f_pagamento').not(':button, :submit, :radio').val('').removeClass('invalid');
		$j('#f_pagamento .form-error').hide();
		$j('#btContinuar, #container'+alvo).show();
	},
	
	encomendar: function(produto){
		
		$j.ajax({
			url:Carrinho.url_carrinho+'&op=adicionar&produto='+produto,
			success:function(response) {
				if(response != 1) {
					$j.alert({type:'success', html:'Item adicionado ao carrinho de compras! <a href="?carrinho&op=carrinho&cpt=9">Ir para meu carrinho</a>', 'timeout':5000});
					location = Carrinho.url_carrinho;
				} else {
					$j.alert({type:'error', html:'Item j&aacute; existe no carrinho de compras! <a href="?carrinho&op=carrinho&cpt=9">Ir para meu carrinho</a>', 'timeout':5000});
				}
			}
		});
	},
	
	encomendarVariacao:function(){
		if($j('#variacoes input:checked').val() > 0){
			this.encomendar($j('#variacoes input:checked').val());
		}else{
			$j.alert({type:'error', html:'Você deve selecior uma das opções do produto'});
		}
	},
	
	cancelar: function() {
		$j.ajax({
			url:Carrinho.url_carrinho+'&op=cancela',
			success:function(response) {
				location = 'index.php';
			}
		});
	},	
	
	getEstadoSelecionado:function(){
		estado = 0;
		$j('#uf_frete option:selected').each(function () {
		                estado = $j(this).val();
		              });
		return estado;
	},
	
	finalizar: function() {
		//val_frete
		if($j('#val_frete').val() != ''){
			location = 'identificacao.php';
			$j.alert({type:'loading', html:'Aguarde...', modal: true, hide:false})
		}else{
			$j.alert({type:'error', html:'Você deve calcular o frete para continuar'});
		}
		return false;
	},
	
	pagamento: function() {
		location = Carrinho.urls+Carrinho.url_carrinho+'&op=pagamento&act=editar';
		return false;
	},
	
	validaPagamento:function(form){
		opcao = $j('#fpag input[@type=radio]:checked').val();
		
		if(opcao> 0){
			if(opcao>1){ // verifica se não é boleto
				parcelas = $j('#numParcelas'+opcao+' option:selected').val();
				if(parcelas>0){
					form.submit();
				}else{
					$j.alert({type:'error', html:'Selecione a quantidade de parcelas desejada!', timeout:5000});
				}
			}else{
				form.submit();
			}
		}else{
			$j.alert({type:'error', html:'Selecione uma forma de pagamento!', timeout:5000});
		}
		return false;
	},
	
	removerItem: function(produto) {
		$j.alert({type:'loading', html:'Aguarde...', modal: true});
		$j.ajax({
			url:Carrinho.url_carrinho+'&op=excluir&produto='+produto,
			success:function(response) {
				$j('#produto-'+produto).remove();
				Carrinho.subtotal.splice(produto, 1, 0);
				Carrinho.produto.splice(produto, 1, 0);
				Carrinho.calcula_total();
				
				var total_itens = $j('#total-itens').html();
				$j('#total-itens').html(parseInt(total_itens)-1);
							
				if(parseInt(total_itens)-1 == 0) {
					location = 'index.php?carrinho&op=carrinho&cpt=9';
				}else{
				 location.reload();
				}
			}
		});
		return false;	
	},
	
	getSubtotalProdutos: function() {
		var inputs = $j('#carrinho input');
		
		for(var i=0; i<inputs.length; i++) {
			input = inputs[i];
			
			if(input.name.indexOf('sub_') != -1) {
				var split = input.name.split('_');
				
				this.subtotal[split[1]] = input.value;
				this.produto[split[1]] = split[1];
			}
		}
	},
	
	calcula_total: function() {
		var total=0;
		
		for(var i=0; i<Carrinho.subtotal.length; i++) {
			if((typeof(Carrinho.subtotal[i]) != 'undefined') && (Carrinho.subtotal[i] != '0')) {
				v = ''+Carrinho.subtotal[i];
				if (v.indexOf(",") != -1) {
					total = total-(-formata_decimal(Carrinho.subtotal[i]));
				}else{
					total = total-(-parseFloat(Carrinho.subtotal[i]));
				}
			}
		}
		
		$j('#valor-total').html(formata_moeda(total-(-$j('#val_frete').val())));
		$j('#val_total').val(total);
	},
	
	in_array : function(array1, naoPodeTer){
		for(var i=0; i<array1.length; i++){
			if(array1[i] == naoPodeTer){
				return false;
			}
		}
		return true;
	},
	
	set_formato_moeda: function(valor) {
		var exp = /\./g ;
		return valor.replace(exp,",");
	},	
	
	calculaSubtotal: function(cod, obj) {
		qtd = obj.value;
		if(qtd > 0){
			$j.ajax({ 
				url:Carrinho.acoes+'op=altera_quantidade&produto='+cod+'&quantidade='+qtd,
				success: function(response){
					if(response != ""){
						$j.alert({type:'error', html:'A quantidade solicitada para o produto não está disponível.', timeout:10000});
						obj.value = qtd = response;
						Carrinho.calculaSubtotal(cod, obj);
					}
				}
			});
			
			var val_unitario = $j('#valor-produto-'+cod).html();
			var subtotal = (formata_decimal(val_unitario)) * qtd;
			this.subtotal[cod] = subtotal;
			$j('#subtotal-produto-'+cod).html(formata_moeda(subtotal));
			
			this.calcula_total();
			if($j('#cep_frete').val() != ""){
				this.frete($j('#f_frete'));
			}
		} else {
			$j.alert({type:'erro',html:'Quantidade n&atilde;o pode ser inferior a 1(um)'});
		}
	},	
	
	qdtitem : function(){
		//new ajax('qtdcarrinho.php',{update:'qtdcar'});	
	},	
	
	setValFrete:function(){
		$j.ajax({
			url:Carrinho.acoes+'&op=setValFrete&opcaoFrete='+$j('#opcoesFrete').val(),
			success:function(response){
				valor = parseFloat(response);
				if(!isNaN(valor)){
					var val_total = $j('#val_total').val();
					var novo_total = (val_total)-(-response);
					$j('#valor-frete').html('R$ '+formata_moeda(response));
					$j('#val_frete').val(response);
					$j('#valor-total').html('R$ '+formata_moeda(novo_total));
					$j.alert({type:'success', html:'O frete para a encomenda foi calculado com sucesso! <br />Continue o processo de compra.'});
				}else{
					if(response.indexOf('transportadora') != -1){
						$j('#valor-frete').html('<span onclick="Carrinho.msgTransportadora();" style="cursor: pointer; font-weight: bold;">Clique aqui</span>');
						$j('#valor-total').html('R$ '+formata_moeda($j('#val_total').val()));
						$j('#val_frete').val('');
						Carrinho.msgTransportadora();
						$j.alert('hide');
					}else{
						$j.alert({type:'alert', html:response});
					}
				}
			}
		});
	},
	
	frete:function(form){
		if($Form.validate(form)){
			$j.alert({type:'loading', html:'Calculando frete. Por favor aguarde...', hide:false, modal:true});
			$j.ajax({
				url:Carrinho.acoes+'&op=frete&cep_frete='+$j('#cep_frete').val(),
				success:function(response){
					$j('#containerOpcoesFrete').html(response);
					$j.alert('hide');
				}
			});			
		}
		return false;
	},
	
	msgTransportadora:function(){
		$j( '<div id="dialogTransportadora"><h2>Peso excedido</h2><br /><p>Para este(s) produto(s) o envio só pode ser por transportadora. Finalize seu pedido, para que o mesmo seja registrado.</p> <p>O pagamento não será necessário neste primeiro momento. Entraremos em contato posteriormente para lhe passar os valores do frete, onde você poderá optar por efeturar o pagamento ou cancelar seu pedido.</p></div>' ).dialog({
			resizable: false,
			title:'Atenção',
			height:270,
			width:500,
			modal: true,
			buttons: {
				Fechar: function() {
					$j(this).dialog( "close" );
				}
			}
		});
	},
	
	recalcularFrete:function(){
		$j.alert({type:'loading', html:'Calculando frete. Por favor aguarde...', hide:false, modal:true});
		$j.ajax({
			url:Carrinho.acoes+'&op=recalcularfrete',
			success:function(response){
				$j.alert("hide");
				$j({type:'success', html:'Frete atualizado com sucesso!!! R$ '+response, modal:true, timeout:5000,
					out:function(){
						location.reload();	
					}
				});				
			}
		});
	},
	
	selecionarVisa:function(){
		$j('#inputVisa').attr({checked:"checked"});
	},
	selecionarMaster:function(){
		$j('#inputMaster').attr({checked:"checked"});
	},
	selecionarBoleto:function(){
		$j('#inputBoleto').attr({checked:"checked"});
	},
	comunicarErro: function(erro){
		$j.ajax({
			url: this.urlAcoes + 'comunicarErro&erro=' + erro
		});
	},
	
	validarVisa:function(form){
		form.submit();
		location.href = Carrinho.urls+Carrinho.url_carrinho+'&finalizado&pedido='+response+'&op=pedidorealizado&visa';
		return false;
	},
	
	avisoEstoque:function(form){
		if($Form.validate(form)){
			$j.ajax({
				url:this.acoes+'op=avisoEstoque', type:'post', data:$j(form).serialize(),
				success:function(response){
					if(response == ""){
						$j.alert({
							type:'success', html:'Informações enviadas com sucesso.'
						});
						form.reset();
					}else if(response == 'incluso'){
						$j.alert({
							type:'alert', html:'Você já se cadastrou para receber aviso sobre este produto.'
						});
					}else{
						$j.alert({
							type:'error', html:'Erro ao enviar suas informações. Tente mais tarde.'
						});
					}
				}
			});
		}
		return false;
	}
};

function formata_moeda(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3)) + '.' 
		+ num.substring(num.length-(4*i+3));
	return (((sign) ? '' : '-') + num + ',' + cents);
}

function formata_decimal(num) {
	var valor = num.replace(/\./g,'');
	return valor.replace(/\,/g,'.');
}

