async function enviarFormulario(ev) {
  // el formulario ya no enviará los datos, lo haremos nosotros mediante AJAX
  ev.preventDefault();
  // estamos enviando ya los datos?
  if (enviarFormulario.enviando) { return; }
  enviarFormulario.enviando = true;
  // obtenemos el formulario y la zona donde mostrar el resultado
  var form = document.querySelector("form");
 
  var result = document.querySelector(".form-msg");
  result.innerHTML = "Enviando, por favor espera...";
  // obtenemos los datos del formulario
  var datos = new FormData(this);
  datos.append('modulo', form.name);
 // podemos añadir más datos que no se encuentren en el formulario
//  datos.append("otro-dato", "valor");
  // preramos la información de envio
  var peticion = {
    method: form.method,
    body: datos,
  };
  
  try {
    var response = await fetch(form.action, peticion);
    if (response.ok) {
		 mostrar_listado(form.name);//mostramos listado
		 console.log(response.json)
      // obtenemos la respuesta del servidor web
      // si todo esta ok o no
      var respuesta = await response.json();
      // asumimos que todo ha ido bien,
      form.reset();
	  // limpiamos el formulario
      result.innerHTML = ".";
	 
      
    } else {
      throw new Error(response.statusText);
    }
  } catch (err) {
    result.innerHTML = ":"// + err.message;
  }
  // permitimos volver a enviar el formulario de nuevo
  enviarFormulario.enviando = false;
}

document.addEventListener("DOMContentLoaded", function() {
  document.querySelector("form").addEventListener("submit", enviarFormulario);
});

function guardardetalle(tmod){
	cProd=document.getElementById('codigo').value;
	cCant=document.getElementById('cantidad').value;
	nVlr=document.getElementById('valor').value;
	nVta=document.getElementById('numero').value;
	const XHR= new XMLHttpRequest();
	//XHR.open('POST','../../controllers/ventas.php',true);
	XHR.open('POST','../controllers/ventas.php',true);
	XHR.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	XHR.send('prod='+cProd+'&valor='+nVlr+'&numero='+nVta+'&cant='+cCant+'&accion=1')
	XHR.onreadystatechange=function(){
		if(this.readyState==4 && this.status==200){
			var Resp=this.responseText;
			if(Resp!="Ok"){
			}else{
				mostrar_detalle(nVta);
			}
			console.log(Resp);
		}
	}

}
function mostrar_listado(nMod){
	//alert(nMod)
	const XHR= new XMLHttpRequest();
	XHR.open('POST','../controllers/ventas.php',true);
	XHR.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	XHR.send('accion=9'+'&modulo='+nMod)
	XHR.onreadystatechange=function(){
		if(this.readyState==4 && this.status==200){
			var Resp=this.responseText;
			if(Resp!="ERROR"){
				resp_registros_list(Resp,"informe");
			}else{
				//mostrar_detalle();
			}
		}
	}
}

function mostrar_detalle(nVta){
	const XHR= new XMLHttpRequest();
	XHR.open('POST','../controllers/ventas.php',true);
	XHR.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	XHR.send('accion=2'+'&numero='+nVta)
	XHR.onreadystatechange=function(){
		if(this.readyState==4 && this.status==200){
			var Resp=this.responseText;
			if(Resp!="ERROR"){
				resp_registros_list(Resp,"det_prod");
			}else{
				//mostrar_detalle();
			}
			
		}
	}
}

function resp_registros_list(ResTex,nDiv) {
	ResTex='{"Datos":'+ResTex+'}'
	console.log(ResTex);
	vC="";
	var oJsonDatos = JSON.parse(ResTex);

	DetalleUl="";
	Detalle="";
	if(oJsonDatos.Datos!="ERROR"){
	    if(ResTex.length>8){
			Detalle+="<table id='customers'>";
			Detalle+="<tr>";
//			cad=oJsonDatos.Datos[0];
//			console.log(Object.keys(cad));
//			Detalle+="<th>Opciones</th>";
//			Object.keys(cad).forEach((valor)=>{
//				Detalle+="<th>"+valor+"</th>"
//			})
//			Detalle+="</tr>";
			JsonActividad=ResTex;
			var oJsonDatos = JSON.parse(JsonActividad);
	        var NJsonItem=oJsonDatos.Datos.length;
			var cNrov="";
			for (RowArray=0;RowArray<NJsonItem; RowArray++){
				cad=oJsonDatos.Datos[RowArray];	
				Detalle+="<tr>";
				tCampo=0;
				cCod=oJsonDatos.Datos[RowArray].Id;
				//Detalle+='<td><div class="btopciones"><a href="javascript:imodulo(\'' + tList + '\',\'' + tCampo + '\',\'' + cCod + '\',\'v\',\'' + vGtam + '\');"><div class="circulo_sup"><span class="icon-eye" ></span></div></a>'
				//	Detalle+='<a href="javascript:nmodulo(\'' + tList + '\',\'' + tCampo + '\',\'' + cCod + '\',\'e\',\'' + vGtam + '\');"><div class="circulo_sup"><span class="icon-edit" ></span></div></a>'
				//	Detalle+='<a href="javascript:imodulo(\'' + tList + '\',\'' + cCod + '\',\'d\');"><div class="circulo_sup"><span class="icon-erase" ></span></div></a>'				
				//Detalle+="</div></td>";
				
				for(d in cad){
					Detalle+="<td>"+cad[d]+"</td>";
					
					tCampo++;
				}
				DetalleUl=DetalleUl.replace("nnn",tCampo);
	
				Detalle+="</tr>";
			}
			Detalle+="</table>";
		}else{
			alert("sino");
	    	}
	  	
		//Detalle+="</div>";
		DetalleUl+="</ul>";  
	}
	if(Detalle==""){Detalle="<div> <p style='margin-left:5px'>No hay registros!</p></div>"}
	console.log(Detalle)
	console.log(nDiv)
	document.getElementById(nDiv).innerHTML=Detalle;
}

function cargar_menu_ventas(vRol) {

	const XHR= new XMLHttpRequest();
	XHR.open('POST','../controllers/ventas.php',true);
	XHR.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	//vRol='admin'
	XHR.send('accion=3&rol='+vRol)
	XHR.onreadystatechange=function(){
		if(this.readyState==4 && this.status==200){
			var Resp=this.responseText;
			console.log(Resp);
			if(Resp!="ERROR"){
				resp_menus_ventas(Resp);
			}else{
				//mostrar_detalle();
			}
		}
	}
}



function resp_menus_ventas(ResTex) {
	ResTex='{"Datos":'+ResTex+'}'
	Detalle="";
	var oJsonDatos = JSON.parse(ResTex);
	if(oJsonDatos.Datos!="ERROR"){
	    if(ResTex.length>1){
			JsonMenu=ResTex;
			var oJsonDatos = JSON.parse(JsonMenu);
	        var NJsonItem=oJsonDatos.Datos.length;
			vMenu=oJsonDatos.Datos[0].menu
			vSmenu=oJsonDatos.Datos[0].smenu
			sw=0
			swm=0
			v=0
			Detalle+="<ul class='menu'>"
			for (RowArray=0;RowArray<NJsonItem; RowArray++){
				Detalle+='<li class="menu_item"><a href="'+oJsonDatos.Datos[RowArray].link.trim()+'" >'+oJsonDatos.Datos[RowArray].modulo+'</a></li>';
			}
			Detalle+="</ul>"
		}else{
			alert("no hay menu");
	    	}
	}else{
		document.getElementById("mdi_menu").innerHTML="Error cargando menu";
    }
	console.log(Detalle);
	document.getElementById("list_menu").innerHTML=Detalle;
}

function mostrar(nMod) {
	document.getElementById("titmodulo").innerHTML=nMod.toUpperCase();

	document.getElementById("principal").innerHTML='<iframe src="'+nMod+'.html" name="'+nMod+'"></iframe>';
}

function filtrar(nMod,vid){
	const XHR= new XMLHttpRequest();
	XHR.open('POST','../controllers/ventas.php',true);
	XHR.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	vRol='admin'
	XHR.send('accion=7&modulo='+nMod)
	XHR.onreadystatechange=function(){
		if(this.readyState==4 && this.status==200){
			var Resp=this.responseText;
			console.log(Resp);
			if(Resp!="ERROR"){
				resp_filtrar_list(Resp,vid);
			}else{
				//mostrar_detalle();
			}
		}
	}
	
}
function resp_filtrar_list(ResTex,vid) {
	ResTex='{"Datos":'+ResTex+'}'
	console.log(ResTex);
	voption="";
	Detalle="<option value='...' >No Aplica</option>";

	var oJsonDatos = JSON.parse(ResTex);
	z=0;
	if(oJsonDatos.Datos!="ERROR"){
	    if(ResTex.length>1){
			
			cCombo=document.getElementById(vid);
			JsonActividad=ResTex;
			var oJsonDatos = JSON.parse(JsonActividad);
	        var NJsonItem=oJsonDatos.Datos.length;
			RowArray=0;//esto se adiciono nuevo
			cCombo.options[RowArray] = new Option("Seleccione","")
			for (RowArray=0;RowArray<NJsonItem; RowArray++){
				cad=oJsonDatos.Datos[RowArray];	
				j=RowArray+1;
					Detalle+='<option value="'+oJsonDatos.Datos[RowArray].codigo+'">'+oJsonDatos.Datos[RowArray].nombre+'</option>'
			}
			cCombo.innerHTML=Detalle;//Adicionando respuesta filtrada al select
		}else{
			alert("no hay registros");
    	}
	}
	console.log(Detalle);
	
}

function getGET(){
   var loc = document.location.href;
   var getString = loc.split('?')[1];
   try {
	     var GET = getString.split('&');
   	     var get = {};//this object will be filled with the key-value pairs and returned.
         for(var i = 0, l = GET.length; i < l; i++){
         	var tmp = GET[i].split('=');
         	get[tmp[0]] = unescape(decodeURI(tmp[1]));
         }
	} catch(e) {
    	get="NOPARAM";
	}
   return get;
}