var Carrinho = Class.create();
Carrinho.prototype = {

	setFreteEncontrado: function(encontrado){
		this.freteEncontrado = encontrado;
	},
	
	setFreteValido: function(valido){
		this.freteValido = valido;
	},	
		
	initialize: function(){
		this.freteEncontrado = false;	
		this.freteValido = false;
	},
	
	excluir: function(cod_produto,cod_estoque,des_opcao){
		if (confirm('Tem certeza que deseja remover este produto de sua compra?')){
			new Ajax(
							 'carrinho.asp?link=remover&cod_produto='+cod_produto+'&cod_estoque='+cod_estoque+'&des_opcao='+des_opcao, 
							 {
								 method: 'get',
								 evalScripts: true,
								 onComplete: function(){
								 		carrinho.calculaTotal();
								 		if ($("num_cep").getValue().length == 8)
								 			carrinho.calculaFrete();
							 	 }
							 }
							).request();			
		}
	},
	
	excluirLivro: function(cod_livro){
		if (confirm('Tem certeza que deseja remover este produto de sua compra?')){
			new Ajax(
							 'carrinho.asp?link=removerLivro&cod_livro='+cod_livro, 
							 {
								 method: 'get',
								 evalScripts: true,
								 onComplete: function(v){
								 		carrinho.calculaTotal();
								 		if ($("num_cep").getValue().length == 8)
								 			carrinho.calculaFrete();
							 	 }
							 }
							).request();			
		}
	},
	
	setQtd: function(cod_produto,cod_estoque,tamanho){
		//Reiniciar os valores do frete
		var peso = $('numPesoTotal').getValue() * $("qtd_"+cod_produto+tamanho).getValue();
		
		this.limpa_frete();
		new Ajax(
						 'carrinho.asp?link=alt&cod_produto='+cod_produto+'&qtd='+$("qtd_"+cod_produto+tamanho).getValue()+'&cod_estoque='+cod_estoque+'&cidade='+$("des_cidade").getValue()+'&uf='+$("sig_uf").getValue()+'&des_opcao='+tamanho,
						 {
							 method: 'get',
							 onComplete: function(retorno){
								 if ($("num_cep").getValue().length == 8 && peso <= 30000)
								 	carrinho.calculaFrete.delay(1000);
								 else
								  	carrinho.calculaTotal();									
								
								if (retorno.indexOf('||') == -1)
							 		$("vlr_tot_"+cod_produto+tamanho).innerHTML = retorno;
								else
									$("vlr_tot_"+cod_produto+tamanho).innerHTML = retorno.split('||')[0];
								
							 },
							 evalScripts: true
						 }
					  ).request();
	},
		
	setQtdLivro: function(cod_livro){
		//Reiniciar os valores do frete
		this.limpa_frete();
		new Ajax(
						 'carrinho.asp?link=altLivro&cod_livro='+cod_livro+'&qtd='+$("qtd_"+cod_livro+"_livro").getValue()+'&cidade='+$("des_cidade").getValue()+'&uf='+$("sig_uf").getValue(),
						 {
							 method: 'get',
							 update: $("vlr_tot_"+cod_livro+'_livro'),
							 onComplete: function(){
								 if ($("num_cep").getValue().length == 8)
								 	carrinho.calculaFrete();
								 else
 								  carrinho.calculaTotal();
							 },
							 evalScripts: true
						 }
					  ).request();
	},
	
	addEmbrulho: function(cod_produto,cod_estoque){
		new Ajax(
						 'carrinho.asp?link=embrulho&cod_produto='+cod_produto+'&cod_estoque='+cod_estoque,
						 {
							 method: 'get',
							 onComplete: carrinho.calculaTotal
						 }
						).request();
	},
	
	addEmbrulhoLivro: function(cod_livro){
		new Ajax(
						 'carrinho.asp?link=embrulhoLivro&cod_livro='+cod_livro,
						 {
							 method: 'get',
							 onComplete: carrinho.calculaTotal
						 }
						).request();
	},
	
	calculaTotal: function(){
		new Ajax(
						 'carrinho.asp?link=total',
						 {
							 method: 'get',
							 onComplete: function(Arr){
								 if (Arr.indexOf('||') != -1)
								 {
									var tmp = Arr.split('||');
									window.open(tmp[1],'_self');
								 }else{
									Arr = eval(Arr);
									carrinho.setSubTotal(carrinho.formataFloat(Arr[0]));
									carrinho.setFrete(carrinho.formataFloat(Arr[1]));
									carrinho.setTotal(carrinho.formataFloat(Arr[2]));
									carrinho.setEmbrulho(carrinho.formataFloat(Arr[3]));
								 }
							 }
						 }
					  ).request();
	},
	
	verificaCep: function(cep,btn) {
		var val_tot = this.formataFloat($("val_tot").getValue());
		var ind_cep = $("ind_cep").getValue();

		if (cep.length==8 && (cep!=ind_cep || btn==true )){
			$("ind_cep").value = cep;
			$("aguarde").setHTML("<p class=\"vermelho\"><strong>Aguarde. Buscando dados para região...</strong></p>");
			new ajax("inc/inc.get.asp?tipo=busca_esedex&num_cep=" + cep + "&depois=busca_cep&val_tot=" + val_tot,
                        {
                            method: 'get',
                            onComplete: function(retorno) {
                                if (retorno != '') {
                                    vetor = retorno.split('|||');
                                    if (vetor[0] != 'Erro') {
                                        parent.top.document.getElementById("des_cidade").value = vetor[0];
                                        parent.top.document.getElementById("sig_uf").value = vetor[1];
                                        carrinho.freteEncontrado = true;
                                        carrinho.freteValido = true;
                                        carrinho.calculaFrete();
                                    } else {
                                        alert('Atenção!\n' + vetor[1]);
                                        carrinho.freteEncontrado = false;
                                        carrinho.freteValido = false;
                                    }
                                } else {
                                    carrinho.freteEncontrado = false;
                                    carrinho.freteValido = false;
                                }
                            }
                        }
                    ).request();
		}
	},

	calculaFrete: function() {
		if (!this.freteEncontrado)
			this.calculaFrete.delay(1000, this);
		else if (this.freteValido){
			if ($('qtd_produtos').getValue().toInt() > 0) {
				var cep 	= $("num_cep").getValue();
				var uf 		= $("sig_uf").getValue();
				var cidade	= $("des_cidade").getValue();
				$("aguarde").setHTML("");
				if(cep != ""){
					if(cep.length < 8){
						alert("O CEP deve conter 8 números.");
					}else{
						$("aguarde").setHTML("<p><b>Aguarde, calculando...</b></p>");
						new Ajax(
										 "carrinho.asp?link=calcula&des_cep_destino="+cep+"&uf="+uf+"&cidade="+cidade,
										 {
											 method: 'get',
											 evalScripts: true,
											 onComplete: this.calculaTotal
										 }
										).request();
					}
				}else{
					alert("Prencha o campo CEP");
				}
			}else{
				alert('Nenhum produto no carrinho.');
			}
		}else{
			$("aguarde").setHTML("");
			this.limpa_frete();
			this.calculaTotal();
		}
	},
	
	limpa_frete: function(){
		new Ajax(
						 "carrinho.asp?link=limpa_frete",
						 {method: 'get'}
						).request();

		$("linha_sedex").setStyle("display","none");
		$("val_sedex").value = "0.00";		
		
		$("linha_encomenda").setStyle("display","none");
		$("val_encomenda").value = "0.00";
		
		$("linha_esedex").setStyle("display","none");
		$("val_esedex").value = "0.00";	
		
		$("linha_personalizada").setStyle("display","none");	
		$("val_personalizada").value = "0.00";				

		$("frete_disponivel").setStyle("display","none");

		this.setFrete(0);
	},
	
	grava_frete: function (execute) {
		var ind_frete = "";
		if ($('sedex').checked) {
			ind_frete = "sedex";
		} else if ($('encomenda').checked) {
			ind_frete = "encomenda";
		} else if ($('esedex').checked)  {
			ind_frete = "esedex";
		} else if ($('personalizada').checked)  {
			ind_frete = "personalizada";
		}
		if ($('val_sedex').getValue() == "0.00" && $('val_encomenda').getValue() == "0.00" && $('val_esedex').getValue() == "0.00") {
			tipo_frete = "&clean=1";
		} else {
			tipo_frete = "&clean=0";
		}	
		new Ajax(
						 'carrinho.asp?link=grava_frete&tipo_frete='+ind_frete+tipo_frete+'&esedex='+$("esedex").disabled+"&cep="+$("num_cep").getValue(),
						 {
							 method: 'get',
							 onComplete: execute
						 }
						).request();
	},	
	
	setSubTotal: function(v){
		$("val_tot").value = v;
		$("view_subtotal").setHTML("<strong>R$ "+this.formataReal(v.toString())+"</strong>");
	},
	
	setFrete: function(v){		
		$("val_frete").value = v;
		$("view_frete").setHTML("<strong>R$ "+this.formataReal(v.toString())+"</strong>");
	},
	
	setTotal: function(v){
		//$("val_tot").value = v;
		$("view_total").setHTML("<strong>R$ "+this.formataReal(v.toString())+"</strong>");
	},
	
	setEmbrulho: function(v){
		if ($("view_embrulho"))
			$("view_embrulho").setHTML("<strong>R$ "+this.formataReal(v.toString())+"</strong>");
	},
	
	formataFloat: function(valor){
		valor = valor.replace('R$','');
		valor = valor.replace('.','');
		valor = valor.replace(',','.');
		return parseFloat(valor);
	},
	
	formataReal: function(vlr){
		var decimal, preco = '0', valor = vlr+'';
		var menorquezero = false;
		if (eval(vlr)<0){	menorquezero = true;valor = valor.replace('-','');}
		if (valor.lastIndexOf('.') > 0){decimal = valor.substr(valor.lastIndexOf('.') + 1, valor.lastIndexOf('.') + 2) }else{ decimal = '00'};
		if (decimal.length == 0) decimal = '00';
		if (decimal.length == 1) decimal = decimal + '0';
		decimal = decimal.substr(0,2);
		if (valor.lastIndexOf('.') > 0){preco = valor.substr(0, valor.indexOf('.')) }else{preco = valor};
		amount = parseFloat(preco);
		var samount = new String(amount);
		if (samount.length < 3) return preco +','+ decimal;
		for (var i = 0; i < Math.floor((samount.length-(1+i))/3); i++)
			samount = samount.substring(0,samount.length-(4*i+3)) + '.' + samount.substring(samount.length-(4*i+3));
		if (menorquezero)
			samount = '-'+samount;
		return samount +','+ decimal;
	}
};

var carrinho = new Carrinho('noinit'); 

function sonum(e) {
	if(window.event) {
		// for IE, e.keyCode or window.event.keyCode can be used
		key = e.keyCode;
	} else if(e.which) {
		// netscape
		key = e.which;
	} else {
		// no event, so pass through
		return true;
	}
	if ((key > 47 && key < 58) || (key == 8 || key == 9 || key == 127)){
	}else{
		return false;
	}
}

alteraFrete = function(tipo) {	
		carrinho.grava_frete(function(){carrinho.calculaTotal()});
};

function ver_cidade(){
	var tamW = 450;
	var tamH = 400;
	var x = (window.screen.width - tamW) / 2 ;
	var y = (window.screen.height - tamH) / 2 ;
	window.open("ver_cidade.asp","personalizada","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,width="+tamW+"px,height="+tamH+"px,top="+y+",left="+x);
}
