// JavaScript Document
function AjaxRequest() {
  Ajax = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
        Ajax = new XMLHttpRequest();
		if(Ajax.overrideMimeType) {
		   Ajax.overrideMimeType('text/xml'); }
   } else if (window.ActiveXObject) { // IE
          try {
               Ajax = new ActiveXObject("Msxml2.XMLHTTP");
              } catch (e) {
	                try {
	                    Ajax = new ActiveXObject("Microsoft.XMLHTTP");
		                } catch (e) {}
             }
   }		
} 

// BUSCA AVANÇADA -------------------------------------

function pisca(nObj) {
    oObj=document.getElementById(nObj);
    tCor=oObj.style.backgroundColor;
    oObj.style.backgroundColor="#ffff00";
    p = setTimeout("oObj.style.backgroundColor=tCor", 500);
}

function buscaAv(oForm,oCampo) {
	oGat=oCampo;
	acion=oForm;
	AjaxRequest();
	if(!Ajax) {
		alert('[Erro]');
		return false;
	}
	if(oForm=='t') {  	// primeira busca
		param="?tp";
        oForm=document.getElementById('fbuscaav');
	} else {  			// busca com interação
		param="?";
	}
		qtf=oForm.elements.length;
		for(i=0; i<qtf; i++) {
			oC=oForm.elements[i];
			vrc=oC.value;
			tpc=oC.type;
			nc=oC.name;
			if (tpc=='select-one' && vrc!='' && nc!='c_modelo' && param!='?tp') {
				tpar=vrc.replace('_', '=')+'&';
				param+=tpar;  // parâmetros GET do php
			}
			else if (tpc=='select-one' && vrc=='' && nc!='c_modelo') {
                 while(oC.options.length>0) oC.options[0]=null;  // limpa campos não afetados
			}
			else if (tpc=='select-one' && param=='?tp') {
                 while(oC.options.length>0) oC.options[0]=null;  // limpa campos não afetados
			}

		}   // fim do for i

	endxml=ender+local+"consulta.php";
	arqui=endxml+param;  // arquivo PHP + get
    
	Ajax.onreadystatechange = atualizaBusca;
    Ajax.open("GET", arqui, true);
	Ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
	Ajax.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
	Ajax.setRequestHeader("Pragma", "no-cache");
    Ajax.send(null);
}

function atualizaBusca() {
	if (Ajax.readyState == 4) {
       	if (Ajax.status == 200) {
			xmlDoc = Ajax.responseXML;
			nos  = xmlDoc.getElementsByTagName('produtos')[0].childNodes;
			qtn = nos.length;

			for (x=0; x<qtn; x++) {
			if (nos[x].nodeType == 1) {
				nom=nos[x].nodeName;
				nCampo = "c_"+nom;
				if(nom=="modelo") {
					oAt=false;
					oId="codin";
				} else {
					oAt=true;
					oId="id";
				}
			  // Limpando campo select
			  c=document.getElementById(nCampo);
              if(c.value=="") {
                while(c.options.length>0) c.options[0]=null;
				c.options[0]=new Option("-- Selecione --","");

				oNo=nos[x].getElementsByTagName(oId);
                qtv=oNo.length;

				for(y=0; y<qtv; y++) {
                    if(oNo[y].nodeType==1) {
						if(oAt) {  // outros nos
							nome= oNo[y].childNodes[0].nodeValue;
							valor=oNo[y].attributes[0].nodeValue;
							
						} else  {  // nó modelo
							valor=nome= oNo[y].childNodes[0].nodeValue;
							//nome=oNo[y].nodeName;
						}
						c.options[c.options.length]=new Option(valor,nome); // cria novo option
						newOpt=c.options[c.options.length-1];
						if(newOpt.value==oGat) newOpt.selected=true;  // seleciona o option
					}
				}  // fim do for y
               }
              }
			} // fim do for x
			pisca('c_modelo');
		}
	}
}

function verModelo(sMod) {
	if(sMod!="") {
		var loc=local+"index.php?modelo="+sMod;
        	window.location=loc;
     } else {
          alert("Por favor, escolha um dos modelos disponíveis!");
     }
}


// SELECIONAR PRODUTOS -------------------------------------

function adicionar(texto) {
		quebra=texto.split('|');
		$("#carro").val(quebra[1]);
		$("#vr_subt").val(quebra[3]);
		$("#pesotot").val(quebra[4]);
		$("#qtdprod").val(quebra[2]);
		if (quebra[0]!="") alert(quebra[0]);
}

function alteraLabel(obj,texto,stat) {
	if(texto=='') texto=oldVal;
	obj.value=texto;
	obj.disabled=stat
}

function processaResposta() {  // para AJAX assíncrono
		if (Ajax.readyState == 4) {
			if (Ajax.status==200) {
				adicionar(Ajax.responseText);  
				alteraLabel(obj,'',false);
          	} else alert('Erro: '+Ajax.statusText+'.\nPor favor, tente novamente ou recarregue a página');
		}
}

function processaResposta2() {  // para AJAX síncrono
	tempo=setTimeout("msgErro()", 7000);
		if (Ajax.readyState == 4) {
			if (Ajax.status==200) {
				clearTimeout(tempo);
				adicionar(Ajax.responseText);  
				alteraLabel(obj,'',false);
				return true;
          	} else  { 
				alert('Erro: '+Ajax.statusText+'.\nPor favor, tente novamente ou recarregue a página');
				alteraLabel(obj,'',false);
				return false;
			}
		} else processaResposta2;
}

function msgErro() {
	alert('Não foi possivel selecionar esse produto.\nPor favor, tente novamente');
	alteraLabel(obj,'',false);
	return false;
}

function limpacalcfrete() {  // Limpa calculo do frete anterior
	 $("#mod_frete").slideUp();
	 $("#mod_frete").html("");
	 $("#vr_desconto").val("");
	 $("#vr_frete").val("");
	 $("#vr_total").val("");
}

function calcSubtot() {
		 var nr_rand = Math.random()
		 var opes=$("#pesotot").val();
		 var ocep=$("#cep").val();
		 var subt=$("#vr_subt").val();
		 var qtpr=$("#qtdprod").val();
		 var params="random="+nr_rand;
		 
		 $.ajax({
			 type: "GET",
			 url: ender+local+"frete.php",
			 data: params,
			 dataType: "xml",
			 beforeSend: function(xhr) {
			     xhr.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
			     xhr.setRequestHeader("Pragma", "no-cache");
			 },
			 success: function(xml) {
				 var subtot = $(xml).find("subtot").text();
				 var pstot = $(xml).find("pesototal").text();
				 var ittot = $(xml).find("itenstotal").text();
				 $("#vr_subt").val(subtot);
				 $("#pesotot").val(pstot);
				 $("#qtdprod").val(ittot);
				 limpacalcfrete()  // Limpa calculo do frete
			 },
			 error: function(xml) { alert('Erro de acesso ao XML Frete.xml'); } 
		})
}

function comprar(prod,qtd,vlr,pes,det,itn,oBt,c) {  // Função dos botões: Comprar / Excluir / Atualizar
	qt=document.getElementById('carro').value;
	if(c=='Ver' && qt=='0') {
		alert("Não existem produtos selecionados!");
		return false;
	}
	if(c=='Ver' && qt!='0') {
		oForm=oBt.form;
		oForm.action=ender+local+"carrinho.php";
		//oForm.method="POST";
		return true;
	}
	if((c=='Comprar'||c=='Selecionar'||c=='Atualizar') && qtd<=0) {
		if(confirm("QUANTIDADE INVÁLIDA!\n"
				+"Se você deseja retirar esse produto\n"
				+"Entre no Carrinho de Compras e exclua o produto!\n"
				+"Deseja acessar seu Carrinho de Compras agora?")) {
			nurl=ender+local+"carrinho.php";
			window.location=nurl;
			return false 
			} else {
			return false;
		}
	}
	// Alteara label do botão
	obj = oBt;
	oldVal=obj.value;
	alteraLabel(oBt,'Aguarde',true);
	
	// Acesso Ajax do comprar.php
	var params="c="+c+"&p="+prod+"&q="+qtd+"&v="+vlr+"&k="+pes+"&d="+det+"&i="+itn+"&js=true";
	
		 $.ajax({
			 type: "GET",
			 url: ender+local+"comprar.php",
			 data: params,
			 dataType: "html",
			 async: false,
			 success: function(msg) {
				limpacalcfrete() // Limpa calculo do frete
				adicionar(msg);  
				alteraLabel(obj,'',false);
			 },
			 error: function(err, txerr, excep) {
				alert("Erro ao acessar arquivo: comprar.php ("+txerr+")\n"
					  +"\nreadyState: "+err.readyState
					  +"\nstatus: "+err.status
					  +"\nstatusText: "+err.statusText); 
			 }
		 }); //close $.ajax(	
	
	
	if(c=='Excluir') {
		nurl=ender+local+"carrinho.php";
		window.location=nurl;
	}
	
	var endatual = document.location.href;
	if(c=='Limpar' && endatual.indexOf("carrinho.php")>=1) {
		location.reload();
	}
	return false;
}


function form_real(ocampo) { // Formata valor de ocampo para R$ 9,99  ///////////////
	var vrcampo=ocampo;
	if (vrcampo.indexOf(",")>=0 || vrcampo.indexOf("R$")>=0) return vrcampo;
	
	if (vrcampo.indexOf(".")<0) {
		vrcampo = "R$ " + vrcampo + ",00";
		return vrcampo;
		}
	else {
		valorcampo = vrcampo.split(".");
		if(valorcampo[0]=="") {
			valorcampo[0]="0";
			}
		if (valorcampo[1].length >= 2) {
			decimal = valorcampo[1].substring(0,2);
			vrcampo = "R$ " + valorcampo[0] + "," + decimal;
			return vrcampo;
			} 
		if (valorcampo[1] < 10) {
			decimal = valorcampo[1];
			if (valorcampo[1].length==1) {
				vrcampo = "R$ " + valorcampo[0] + "," + decimal + "0";
				} else {
				vrcampo = "R$ " + valorcampo[0] + "," + decimal;
				}
			return vrcampo;
			}
		}
}

function recalc_val2(val_opc) {  // Recalcula valor do produto v.02 (TPL)
	var quebra = val_opc.split("**");
	var nv_vlr = quebra[0];
	var nv_pes = quebra[1];
	var nv_des = quebra[2];
	$("#v").val(nv_vlr);
	$("#k").val(nv_pes);
	$("#d").val(nv_des);
	nv_vlrR = form_real(nv_vlr.toString());
	$(".preco").html(nv_vlrR);
}

function recalc_val(cpvr_atual,acdesc) {  // Recalcula valor do produto v.01 (Com Ajax monta_var)
	
	nv_vlr = parseFloat(cpvr_atual) + parseFloat(acdesc);
	$("#v").val(nv_vlr);
	nv_vlrR = form_real(nv_vlr.toString());
	$(".preco").html(nv_vlrR);
	$("#d").val("");
	$(".btvari:checked").each(function(i) {
		var vrtemp = $(this).val();
		$("#d").val($("#d").val()+vrtemp);
	})
}

function monta_var(idp,vrprod) {  // monta variações de produtos no Detalhe
	
		 var nr_rand = Math.random()
		 var params="id="+idp+"&random="+nr_rand;
		 $.ajax({
			 type: "GET",
			 url: ender+local+"detalhe_xml.php",
			 data: params,
			 dataType: "xml",
			 beforeSend: function(xhr) {
			     xhr.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
			     xhr.setRequestHeader("Pragma", "no-cache");
			 },

			 success: function(xml) {
				 $(xml).find("grupo").each(function(){
					
					 var gr_nome = $(this).attr("nome");
					 $('<p></p>')
					  .html("<b>"+gr_nome+"</b>")
					  .appendTo("#variacao");
					  
					 $(this).children().each(function(i) {
						 var check = "";
						 var nm_no = $(this).attr("nome");
						 var vr_no = $(this).attr("valor");
						 var vrchk = $(this).attr("checked");
						 var valor = $(this).text();
						 
						 if(vrchk=="1") check = "checked=\"checked\"";
						 
						 $('<p></p>')
							 .html("<label><input name=\""+gr_nome+"\" type=\"radio\" value=\""+vr_no+"\" class=\"btvari\" "+check+" onclick=\"recalc_val('"+vrprod+"','"+valor+"')\" />"+nm_no+"</label>")
							 .appendTo("#variacao");
							 
						 if(vrchk=="1") recalc_val(vrprod,valor);	 
					})
				 });  
			 },
			 
			 error: function() {
				$('<p></p>')
					.html("<font color=\"#ff0000\">Erro ao acessar XML! (detalhe_xml.php)</font>") 
					.appendTo("#variacao"); 
			 }
		 }); //close $.ajax(	
}

// CONCLUIR COMPRA -----------------

function conclui_compra(oform,cp_frete,cp_cep) {
	
	if(cp_cep.value=="" && oform.vr_total.value=="") {
		alert("Você precisa calcular o frete antes de Concluir sua Compra\nDigite o CEP do destino e clique em Calcular Frete");
		pisca('cep');
		cp_cep.focus();
		return false;
	}  
	if(oform.tp_frete) {
		ret = validaradio(oform.tp_frete);
		if (ret==false) pisca('mod_frete');
		else window.open('', 'janela1','scrollbars=yes,resizable=yes,width=800,height=600');
		return ret;
	}
	if(cp_frete.value=="") {
		alert("Após digitar o CEP do destino clique em Calcular Frete");
		pisca('btfrete');
		cp_cep.focus();
		return false;
	} else { 
		alert("Digite um CEP válido para o destino e clique em Calcular Frete");
		pisca('cep');
		cp_cep.focus();
		return false;
		}
}

function selefrete(tpfrete) {
		 var cep = $("#cep").val();
		 var pst = $("#pesotot").val();
		 var vr_subt = $("#vr_subt").val();
		 var nr_rand = Math.random()
		 var params="cep="+cep+"&vr_subt="+vr_subt+"&peso="+pst+"&random="+nr_rand;
		 $.ajax({
			 type: "GET",
			 url: "frete.php",
			 data: params,
			 dataType: "xml",

			 success: function(xml) {
				 $(xml).find('frete').each(function(){
					 //var id_tx = $(this).attr('id');
					 var nome_tx = $(this).find("nome").text();
					 if(nome_tx==tpfrete) {
						 $("#vr_desconto").val($(this).find("desconto").text());
						 $("#percent").html($(this).find("desconto").attr("percent")+"%");
						 $("#vr_frete").val($(this).find("vrfrete").text());
						 $("#vr_total").val($(this).find("total").text());
					 }

				 }); //close each(
			 }
		 }); //close $.ajax(
}

// FUNÇÕES JQUERY (On-load) ///////////////

$(function() {
	
	
	if($(".btvari").length>0) {  // Se houver variações de produtos (lj. v.3.1)
		var onecheck = false;
		$(".btvari:checked").each(function(i) {
			var vrtemp = $(this).val();
			recalc_val2(vrtemp);
			onecheck = true;
		})
		if(onecheck==false) {
			$(".btvari:first-child").trigger('click');
		}
	}
	
	 $('#btfrete').click(function() {  // Calcular frete
		 var cep = $("#cep").val();
		 var pst = $("#pesotot").val();
		 if(cep==""||cep.length<9) {
			 alert("Digite um CEP válido para o destinatário");
			 pisca('cep');
			 $("#cep").focus()
			 return false;
		 }
		 var vr_subt = $("#vr_subt").val();
		 var nr_rand = Math.random()
		 var params="cep="+cep+"&vr_subt="+vr_subt+"&peso="+pst+"&random="+nr_rand;
		 $.ajax({
			 type: "GET",
			 url: ender+local+"frete.php",
			 data: params,
			 dataType: "xml",
			 beforeSend: function(xhr) {
			     xhr.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
			     xhr.setRequestHeader("Pragma", "no-cache");
			 },

			 success: function(xml) {
				 
				 limpacalcfrete() // Limpa calculo do frete
				 
				 $(xml).find("frete").each(function(){
					 //var id_tx = $(this).attr("id");
					 var nome_tx = $(this).find("nome").text();
					 var prazo_tx = $(this).find("prazo").text();
					 var vrfrete_tx = $(this).find("vrfrete").text();
					 if(vrfrete_tx=="0,00") vrfrete_tx="Frete Grátis!"

					 if(vrfrete_tx!="x"&&vrfrete_tx!="X") {
					 $('<p></p>')
						 .html("<label><input name=\"tp_frete\" type=\"radio\" value=\""+nome_tx+"\" onclick=\"selefrete(this.value)\" /><b>"+nome_tx+"</b><br /> ("+prazo_tx+"): <b> "+vrfrete_tx+"</b></label>")
						 .appendTo("#mod_frete");
					 }
				 });
				 
				 var msg_frete = $(xml).find("msg").text();
				 if(msg_frete!="") {
					 $('<div></div>')
					   .html(msg_frete)
					   .attr("id","msgfrete")
					   .appendTo("#mod_frete");
				 }
				 $("#mod_frete").slideDown(); //close each(
			 }
		 }); //close $.ajax(
	 }); //close click(
	 
	 
 }); //close $(


