<!-- 

function Val_Num(campo,xNum,nLon1,nLon2){
  var numeros, i, caract;
   numeros="0123456789-/.";
   if (xNum=="") {alert("Campo " + campo + ":\nDato Obligatorio, favor de completar el campo."); return(0);}
   for (i=0; i<=nLon1; i++) {
      caract=xNum.charAt(i);
      if (numeros.indexOf(caract)==-1) { alert("Campo " + campo + ":\nDato numérico"); return(0);}}
 return(1);
}

function Val_Num2(campo,xNum,nLon1,nLon2){
  var numeros, i, caract;
   numeros="0123456789-/.";
   for (i=0; i<=nLon1; i++) {
      caract=xNum.charAt(i);
      if (numeros.indexOf(caract)==-1) { alert("Campo " + campo + ":\nDato numérico"); return(0);}}
 return(1);
}

function Val_edad(campo,xNum,nLon1,nLon2){
  var numeros, i, caract;
   numeros="0123456789-/.";
   if (xNum=="") {alert("Campo " + campo + ":\nDato Obligatorio, favor de completar el campo."); return(0);}
   for (i=0; i<=nLon1; i++) {
      caract=xNum.charAt(i);
      if (numeros.indexOf(caract)==-1) { alert("Campo " + campo + ":\nDato numérico"); return(0);}}
   if ((xNum<10)||(xNum>80)) { alert("Campo " + campo + ":\nFuera de rango [15-80]"); return(0);}
 return(1);
}

function Val_pasw(campo,xTxt,nLon1,nLon2,nLon3){
  var numeros, i, caract;
   if (xTxt=="") {alert("Campo " + campo + ":\nDato Obligatorio, favor de completar el campo."); return(0);}
   if (nLon1 < nLon2 ){ alert("Faltan caracteres en el password."); return(0);}
   if (nLon1 > nLon3 ){ alert("Sobran caracteres en el password."); return(0);}
 return(1);
}

function Val_Txt(campo,xTxt,nLon1,nLon2){
  var numeros, i, caract;
   if (xTxt=="") {alert("Campo " + campo + ":\nDato Obligatorio, favor de completar el campo."); return(0);}
   if (nLon1 < nLon2 ){ alert("Dato incompleto"); return(0);}
 return(1);
}

function Val_Pas(campo,xTxt1,xTxt2){
  var numeros, i, caract;
   if (xTxt1!=xTxt2) {alert("Campo " + campo + ":\nNo coinciden. Favor de verificar."); return(0);}
 return(1);
}

function Val_email(emailStr,nLon1) {  //valida correo electronico
 var checkTLD=1;
 var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
 var emailPat=/^(.+)@(.+)$/;
 var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
 var validChars="\[^\\s" + specialChars + "\]";
 var quotedUser="(\"[^\"]*\")";
 var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
 var atom=validChars + '+';
 var word="(" + atom + "|" + quotedUser + ")";
 var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
 var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
 var matchArray=emailStr.match(emailPat);

 if (matchArray==null) {
   alert("Por favor, introduce un e-mail válido.");
   return (0);
 }
 var user=matchArray[1];
 var domain=matchArray[2];

 for (i=0; i<user.length; i++) {
  if (user.charCodeAt(i)>127) {
   alert("El nombre de usuario del correo es incorrecto.");
   return (0);
  }
 }
 for (i=0; i<domain.length; i++) {
  if (domain.charCodeAt(i)>127) {
   alert("El dominio del correo tiene caracteres incorrectos.");
   return (0);
  }
 }

 if (user.match(userPat)==null) {
  alert("El nombre de usuario del correo es invalido.");
  return (0);
 }

 var IPArray=domain.match(ipDomainPat);
  if (IPArray!=null) {
   for (var i=1;i<=4;i++) {
    if (IPArray[i]>255) {
     alert("La dirección IP es invalida");
     return (0);
    }
   }
   return (1);
  }
 
 var atomPat=new RegExp("^" + atom + "$");
 var domArr=domain.split(".");
 var len=domArr.length;
 for (i=0;i<len;i++) {
  if (domArr[i].search(atomPat)==-1) {
   alert("El nombre del dominio del correo es incorrecto.");
   return (0);
  }
 }

 if (checkTLD && domArr[domArr.length-1].length!=2 && 
  domArr[domArr.length-1].search(knownDomsPat)==-1) {
  alert("La dirección de correo debe finalizar con un nombre de dominio correcto " + "y pais si es el caso.");
  return (0);
 }

// no trae dominio.

 if (len<2) {
  alert("Le falta el dominio a esta cuenta de correo!");
  return (0);
 }

// Si has llegado hasta aqui esta correcto todo !
return (1);
}

function Val_email_pas(emailStr,nLon1) {  //valida correo electronico
 var checkTLD=1;
 var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
 var emailPat=/^(.+)@(.+)$/;
 var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
 var validChars="\[^\\s" + specialChars + "\]";
 var quotedUser="(\"[^\"]*\")";
 var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
 var atom=validChars + '+';
 var word="(" + atom + "|" + quotedUser + ")";
 var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
 var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
 var matchArray=emailStr.match(emailPat);

 if (matchArray==null) {
   alert("Por favor, introduce un e-mail válido para poder enviarte tus claves de acceso.");
   return (0);
 }
 var user=matchArray[1];
 var domain=matchArray[2];

 for (i=0; i<user.length; i++) {
  if (user.charCodeAt(i)>127) {
   alert("El nombre de usuario del correo es incorrecto.");
   return (0);
  }
 }
 for (i=0; i<domain.length; i++) {
  if (domain.charCodeAt(i)>127) {
   alert("El dominio del correo tiene caracteres incorrectos.");
   return (0);
  }
 }

 if (user.match(userPat)==null) {
  alert("El nombre de usuario del correo es invalido.");
  return (0);
 }

 var IPArray=domain.match(ipDomainPat);
  if (IPArray!=null) {
   for (var i=1;i<=4;i++) {
    if (IPArray[i]>255) {
     alert("La dirección IP es invalida");
     return (0);
    }
   }
   return (1);
  }
 
 var atomPat=new RegExp("^" + atom + "$");
 var domArr=domain.split(".");
 var len=domArr.length;
 for (i=0;i<len;i++) {
  if (domArr[i].search(atomPat)==-1) {
   alert("El nombre del dominio del correo es incorrecto.");
   return (0);
  }
 }

 if (checkTLD && domArr[domArr.length-1].length!=2 && 
  domArr[domArr.length-1].search(knownDomsPat)==-1) {
  alert("La dirección de correo debe finalizar con un nombre de dominio correcto " + "y pais si es el caso.");
  return (0);
 }

// no trae dominio.

 if (len<2) {
  alert("Le falta el dominio a esta cuenta de correo!");
  return (0);
 }

// Si has llegado hasta aqui esta correcto todo !
return (1);
}



		// FUNCIONES DE ARTICULOS COMPRAS

				function validar_tecla_delete_com(f, m, f, p, valor, e) {
					tecla=(document.all) ? e.keyCode : e.which;
					if (tecla == 13){
						correct=confirm('¿Deseas eliminar este producto de la cotización?'); 
						if (correct == true) { 
							window.open("partida_cot.php?folio="+f+"&prod="+p+"&piezas="+valor+"&opc=baja","aux","");
						} 
						e.keyCode=0;
						return false;
					}
				} 

		// FUNCIONES DE ARTICULOS VENTA

				function validar_tecla_delete_ven(caja, fc, f, em, c, m, f, p, valor, e) {
					tecla=(document.all) ? e.keyCode : e.which;
					if (tecla == 13){
						correct=confirm('¿Deseas eliminar este producto de la cotización?'); 
						if (correct == true) { 
							window.open("partida_ven.php?folio="+f+"&prod="+p+"&piezas="+valor+"&opc=baja","aux","");
						} 
						e.keyCode=0;
						return false;
					}
					if (e.keyCode == 113){				//alert("Presionaste: F2");
						//alert("El sistema grabará esta cotización como una venta.");
						window.open("graba_ven_header.php?caja="+caja+"&fol_cot="+fc+"&empleado="+em+"&cliente="+c+"&medico="+m+"&folio="+f,"aux","");
						e.keyCode=0;
						return false;
					}
					if(e.keyCode==114){				//alert("Presionaste: F3");
						correct=confirm('¿Deseas crear una nueva venta?'); 
						if (correct == true) { 
							window.open("venta.php","_top","");
						} 
						e.keyCode=0;
						return false;
					}
				} 

// FUNCIONES DE VENTAS


		// FUNCIONES DE FOLIO

				function validar_tecla_folio(valor, e) {
					tecla=(document.all) ? e.keyCode : e.which;
					if (tecla == 13){
						if (document.cotizacion.folio.value=="")
						{
							//alert("El sistema va a obtener un número de folio para venta");
							window.open("folio_venta.php?opc=alta","aux","");
						}
						else { 
							//alert("El sistema va a obtener los datos de esta cotización");
							window.open("folio_venta.php?opc=mostrarcot&folio="+valor,"aux","");
						} 
						//document.cotizacion.folio.disabled=true;
						document.cotizacion.cliente.focus();
						e.keyCode=0;
						return false;
					}
				} 


		// FUNCIONES DEL MEDICO CUANDO VA A GRABAR EL HEADER DE VENTA

				function graba_header_venta(e,c,m,f)
				{
					alert("En esta sección, estás dando de alta una venta sin cotización previa. \nEsta sección está en construcción. La venta no se grabó. \nPerdona las molestias.");
					window.open("venta.php","_top","");
					//window.open("graba_ven_header.php?empleado="+e+"&cliente="+c+"&medico="+m+"&folio="+f,"aux","");
					document.cotizacion.cliente.disabled=true;
					document.cotizacion.medico.disabled=true;
				}

// FUNCIONES DE DEVOLUCIONES

		// FUNCIONES DE FOLIO COTIZACION

				function validar_tecla_dev_folio(valor, e) {
					tecla=(document.all) ? e.keyCode : e.which;
					if (tecla == 13){
						if (document.cotizacion.folio.value=="")
						{
							alert("Favor de proporcionar el folio de la venta, para realizar devolución.");
							document.cotizacion.folio.focus();
						}
						else { 
							//alert("El sistema va a obtener los datos de esta venta");
							window.open("folio_venta.php?opc=mostrar&folio="+valor,"aux","");
						} 
						e.keyCode=0;
						return false;
					}
				} 

		// FUNCIONES DE DEVOLUCION

				function validar_tecla_dev(f, p, e) {
					tecla=(document.all) ? e.keyCode : e.which;
					if (tecla == 13){
						correct=confirm('¿Deseas realizar la Devolución de este producto?'); 
						if (correct == true) { 
							alert ('Este proceso esta en construcción. Disculpa las molestias.');
							//window.open("partida_venta.php?folio="+f+"&prod="+p+"&opc=baja","aux","");
						} 
						e.keyCode=0;
						return false;
					}
				} 

// FUNCIONES DE RETIRO

		// FUNCIONES DE MONTO

				function validar_tecla_monto_ret(valor, e) {
					tecla=(document.all) ? e.keyCode : e.which;
					if (tecla == 13){
						if (document.retiro.monto.value=="")
						{
							alert("Favor de proporcionar el monto del retiro.");
							document.retiro.monto.focus();
						}
						else { 
							correct=confirm('¿Deseas retirar $'+valor+' de la caja?'); 
							if (correct == true) { 
								document.retiro.submit();
							} 
						} 
						document.retiro.monto.value="";
						document.retiro.monto.focus();
						e.keyCode=0;
						return false;
					}
				} 

// FUNCIONES DE DEPOSITO

		// FUNCIONES DE MONTO

				function validar_tecla_monto_dep(valor, e) {
					tecla=(document.all) ? e.keyCode : e.which;
					if (tecla == 13){
						if (document.deposito.monto.value=="")
						{
							alert("Favor de proporcionar el monto del depósito.");
							document.deposito.monto.focus();
						}
						else { 
							correct=confirm('¿Deseas depositar $'+valor+' de la caja?'); 
							if (correct == true) { 
								document.deposito.submit();
							} 
						} 
						document.deposito.monto.value="";
						document.deposito.monto.focus();
						e.keyCode=0;
						return false;
					}
				} 

-->