//========================================= 
// MANEJADOR UNIVERSAL DE FORMULARIOS
//========================================= 

//Cada Campo del formulario debe tener  la siguiente nomenclatura:
//   xyNombre-> donde  x puede ser s(string), n(numerico), e(email)
//              donde  y puede ser r(requerido), o(opcional)
//   Ejemplos--> erMiEmail (correo obligatorio o requerido)
//               noCodigoPostal (codigo gostal numerico y opcional)
//               srNombre (Nombre es un texto obligatorio) 

<!-- Oculta el codigo a navegadores antiguos 
// Variables Globales 
var swOK=0; 
var nEle=0; 
var sError='';
var sPrimerError='';
var sClaseInicialFormulario='FORMinput';
var sClaseErrorFormulario='FORMinputerror'; 


// VERIFICA EL FORMULARIO 
//=================================== 
function Verifica() { 
   var nTot=0; 
   var nPas=0; 
   var nTorna=0; 
   sError="Lista de errores: "+"\n"; 
   iNumElementosFormulario=document.forms[0].elements.length;
   for (var j=0; j<(iNumElementosFormulario-1); j++) { 
     nEle=j; 

     // AVERIGUA LOS TIPOS 
     var sNom=document.forms[0].elements[j].name; 
     var sOne=sNom.substring(0,1); 
     var sTwo=sNom.substring(1,2); 
  
  	 //alert(document.forms[0].elements[j].name);
	 //alert(document.forms[0].elements[j].value);

     // CORREO OBLIGATORIO 
     if (sOne=='e' && sTwo=='r') {  //Correo obligatorio
       ValidaCampo(document.forms[0].elements[j].value,'Er'); 
       nTot+=swOK;
	   if (swOK) //Hay error
	   		{
			break;
			} 
     } 
     else //Correo opcional
       if (sOne=='e' && document.forms[0].elements[nEle].value!='') { 
         ValidaCampo(document.forms[0].elements[j].value,'Eo'); 
         nTot+=swOK;
		 if (swOK) //Hay error
	   		{
			break;
			} 
       } 
  

     // NUMERICO Y OBLIGATORIO else NUMERICO NO OBLIGATORIO PERO INFORMADO 
     if (sOne=='n' && sTwo=='r') { 
       ValidaCampo(document.forms[0].elements[j].value,'Nr'); 
       nTot+=swOK;
	   if (swOK) //Hay error
	   		{
			break;
			} 
     } 
     else 
       if (sOne=='n' && document.forms[0].elements[nEle].value!='') { 
         ValidaCampo(document.forms[0].elements[j].value,'No'); 
         nTot+=swOK;
		 if (swOK) //Hay error
	   		{
			break;
			} 
       } 

     // CADENA Y OBLIGATORIA 
     if (sOne=='s' && sTwo=='r') { 
       ValidaCampo(document.forms[0].elements[j].value,'Sr'); 
       nTot+=swOK;
	   if (swOK) //Hay error
	   		{
			break;
			} 
     }
	 	 
	 
     // LISTA DE ERRORES 
     if (nPas==0 && nTot>0) { 
       document.forms[0].elements[nEle].focus() 

       nPas=1 
     } 
   } 

   if (nTot>0) 
     {
	 //alert(sError);
	 alert(sPrimerError);
	 document.forms[0].elements[j].focus();
	 iniciaEstiloFormulario();	
	 document.forms[0].elements[j].className = sClaseErrorFormulario;	 
     }
   else
   	{ 
	 document.forms[0].submit();
	}  
} 

// ANALIZA CAMPO SI UN CAMPO ES DEL TIPO QUE SE PASA 
//========================================= 
function ValidaCampo(pCaracter,pType) { 
   swOK=0; 
  //alert('verifico: ' + pCaracter + ' tipo: ' + pType);
  // E-MAIL OBLIGATORIO (REQUERIDO)
  if (pType=='Er') { 
     swOK=2 
     for (var i=0;i<pCaracter.length;i++) {
      var sByte=pCaracter.substring(i,i+1); 
     if (sByte=="@" || sByte==".") { 
         swOK=swOK-1; 
     } 
   } 
   if (swOK>0) 
     {
	 sError+="Campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser e-mail y es obligatorio" +"\r"; 
   	 sPrimerError =  "Requerido un Email válido";
	 } 	
   return; 
} 

   // NUMERICO OBLIGATORIO 
   if (pType=='Nr') { 
     swOK=0; 
     if (pCaracter=='') { 
       swOK=1 
       sError+="Campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser numérico y es obligatorio" +"\r" 
       sPrimerError =  "Requerido un valor númerico";
	   return; 
     } 

     for (var i=0;i<pCaracter.length;i++) {
        var sByte=pCaracter.substring(i,i+1); 
       if (sByte<"0" || sByte>"9") { 
         sError+="Campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser numérico y es obligatorio" +"\r" 
         swOK=1;
		 sPrimerError =  "Requerido un valor númerico"; 
         return; 
       }  
     } 
   } 

   // NUMERICO INFORMADO 
   if (pType=='No') {  
     swOK=0; 
     if (pCaracter=='') { 
       swOK=1 
       sError+="Campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser numérico y NO es obligatorio" +"\r" 
       sPrimerError =  "Requerido un valor númerico";
	   return; 
     } 
     for (var i=0;i<pCaracter.length;i++) {
        var sByte=pCaracter.substring(i,i+1); 
       if (sByte<"0" || sByte>"9") { 
         sError+="Campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser numérico y NO es obligatorio" +"\r" 
         swOK=1; 
         sPrimerError =  "Requerido un valor númerico";
		 return; 
       }  
     } 
   } 

   // CADENA 
   if (pType=='Sr') {  
     //alert('es una cadena');
	 //alert(pCaracter);
	 if (pCaracter=='') { 
       sError+="Campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser texto y es obligatorio"+"\r" 
       swOK=1;
	   sPrimerError =  "Requerido texto"; 
       return 
     } 
   } 
} 


function iniciaEstiloFormulario()
{
var cn;
for(cn=0;cn<document.forms[0].elements.length;cn++)
	{
	document.forms[0].elements[cn].className = sClaseInicialFormulario;
	}

}

// --> 