function  codigoPostal(usuario_clave,scian_clave,tipo_operacion){
	    err=0,j=0;
		cadena=new String();
		cadena=document.forms[0].dg_cp.value;
		
	    if(cadena.length==5){
		    for(i=0;i<5;i++){
			   if(cadena.charAt(i)==" ")
			     j++;
			}
			if(isNaN(cadena)||j>4)
		       alert("El código postal debe de llevar sólo números");
		    else
		        ajaxDireccion(cadena,usuario_clave,scian_clave,tipo_operacion);
		}
		if(cadena.length==0 && usuario_clave==138){
		   ajaxFunction();
			var aleatorio=Math.random();	
			xmlHttp.open("GET","dg_cp_r.asp");
			xmlHttp.onreadystatechange=function()
			  {
			  if(xmlHttp.readyState==1){
				  document.getElementById("espera").innerHTML="Cargando";
			  }
			  if(xmlHttp.readyState==4)
				{
				   document.getElementById("espera").innerHTML="";
				   document.getElementById("colonia").innerHTML=xmlHttp.responseText;
				}
			  }
			xmlHttp.send(null);
				}
	  }

function infoCol()
  {
	
	var g_colonia=0;
	var aleatorio=Math.random();	
	
	g_colonia=document.getElementById("dg_colonia").options[document.getElementById("dg_colonia").selectedIndex].text;
   
    document.getElementById("colonia_desc").value=g_colonia;
    
  }

function validarDG(){
	
  var ok=true;
  var campos=new Array();
  var msg=new String();
  msg="";
  campos[0]=["dg_suc",""];
  campos[1]=["tipo_persona",""];
  campos[2]=["dg_rfc","El RFC es Incorrecto\n"];
  campos[3]=["dg_razonSoc","Falta completar la Razón Social\n"]; 
  campos[4]=["dg_razonComercial",""];
  campos[5]=["dg_paternoFisica","Falta completar el Apellido Paterno\n"];
  campos[6]=["dg_maternoFisica",""];
  campos[7]=["dg_nombreFisica","Falta completar el nombre de la persona\n"];
  campos[8]=["dg_domicilio","Falta completar el Domicilio\n"];
  campos[9]=["dg_numExterior","Falta completar el número Exterior\n"];
  campos[10]=["dg_numInterior",""];
  campos[11]=["dg_colindante1",""];
  campos[12]=["dg_colindante2",""];
  campos[13]=["dg_callePosterior",""];
  campos[14]=["dg_ubicacion",""];
  campos[15]=["dG_colonia",""];
  campos[16]=["dg_idColonia",""];
  campos[17]=["dg_estado",""];
  campos[18]=["dg_delegacion",""];
  campos[19]=["dg_cp","Falta completar el Código Postal\n"];
  campos[20]=["dg_folio","Falta completar el número de formato\n"];
  campos[21]=["dg_monto","Falta completar el monto\n"];
  campos[22]=["dg_asentamiento",""];

//document.frm_dg.dg_rfc.disabled=false;

   if(document.forms[0].tipo_persona[0].checked^document.forms[0].tipo_persona[1].checked==0){
     alert("No has seleccionado el tipo de persona");
     return false;
  }
  if(document.getElementById(campos[1][0]).checked){
      if(!validaFisica(document.getElementById(campos[2][0]).value)){
	    msg+=campos[2][1];
	    ok=false;
	  }
	  if(!validaVacio(document.getElementById(campos[5][0]).value)){
	    msg+=campos[5][1];
		ok=false;
	  }
	  if(!validaVacio(document.getElementById(campos[7][0]).value)){
	    msg+=campos[7][1];
		ok=false;
	  }
  }
  else{
     if(!validaMoral(document.getElementById(campos[2][0]).value)){
	    msg+=campos[2][1];
	    ok=false;
	  }
	   if(!validaVacio(document.getElementById(campos[3][0]).value)){
	    msg+=campos[3][1];
		ok=false;
	  }
  }
  if(!validaVacio(document.getElementById(campos[8][0]).value)){
	    msg+=campos[8][1];
		ok=false;
  }
  if(document.getElementById(campos[9][0]).value.length==0){
	    msg+=campos[9][1];
		ok=false;
  }
   
   if(document.forms[0].status_formato.value==0){
     msg+="El número de formato es incorrecto\n";
	 ok=false; 
   }
   
   if(document.forms[0].no_Siem.value.length!=8){
     msg+="La longitud del número de formato es incorrecto\n";
	 ok=false; 
   }
   
   if(isNaN(document.forms[0].dg_monto.value)||document.forms[0].dg_monto.value.length==0){
     msg+="El monto es incorrecto\n";
	 ok=false; 
   }

  if(document.forms[0].dg_colonia.length>0)
	  document.forms[0].colonia_desc.value=  document.forms[0].dg_colonia.options[document.forms[0].dg_colonia.selectedIndex].text;
  
  if(!ok){
    alert(msg);
  }
  
  if(ok){
     if((!validaVacio(document.getElementById(campos[11][0]).value)) || (!validaVacio(document.getElementById(campos[12][0]).value)) || (!validaVacio(document.getElementById(campos[13][0]).value))){
       if(confirm("Las calles colindantes no tienes información, deseas llenar esos campos"))
	      return false;
      }
	  for(i=0;i<document.forms[0].length;i++)
      document.forms[0].elements[i].disabled=false;
  }   
  
  if(ok)
    document.forms[0].submit();
  else
    return false;
}

function formato(usuario_clave,usuario_del){
    if(document.getElementById("no_Siem").value.length==8){
		ajaxFormato(usuario_clave,usuario_del,document.getElementById("no_Siem").value,document.getElementById("dg_rfc").value);
	}
}


/* FUNCIONES CON LAS EXPRESIONES REGULARES 
***********************************************************************************************************/
function validaFisica(cad){
   var expresion= new RegExp(/[A-Za-z]{4}\d{6}\w{3}$/ig);
   if(expresion.test(cad) && cad.length==13)
     return true;
   else
	 return false;
}

function validaMoral(cad){
   var expresion= new RegExp(/[(A-Za-z)|&|ñ|Ñ]{3}\d{6}\w{3}$/ig);
   if(expresion.test(cad) && cad.length==12)
     return true;
   else
	 return false;
}

function validaNum(cad){
   var expresion= new RegExp(/\d{1,}$/ig);
   if(expresion.test(cad))
     return true;
   else
	 return false;
}

function validaLetras(cad){
   var expresion= new RegExp(/[A-Za-z]{1,}$/ig);
   if(expresion.test(cad))
     return true;
   else
	 return false;
}

function validaCorreo(cad){
   var expresion=new RegExp(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/ig);
   if(expresion.test(cad))
	 return true;
   else
	 return false;
}

function validaVacio(cad){
  if(cad.length>0)
    return true;
  else
    return false;
}

function validaSiem(cad){
	var exp = new RegExp(/[a-fA-F0-9]{8}$/ig);	 
	
	if(exp.test(cad) && cad.length==8)
		return true;
	else
		return false;	
}

