// s: string
// p: palabra sin espacios
// n: numÈrico
// d: decimal
// e: e-mail
// f: fecha
// h: hora
// r: requerido
// o: opcional
function Verifica(numCampos) {
  var nTot=0;
  var nPas=0;
  var nTorna=0;
  sError="LISTA DE ERRORES:                                           "+"\n\n";
  for (var j=0; j<numCampos; 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);
    // CORREO OBLIGATORIO
    if (sOne=='e' && sTwo=='r') {
       CaracterNoValid(document.forms[0].elements[j].value,'Er');
       nTot+=swOK;
    }
    else
       if (sOne=='e' && document.forms[0].elements[nEle].value!='') {
           CaracterNoValid(document.forms[0].elements[j].value,'Eo');
           nTot+=swOK;
         }
    // NUMERICO Y OBLIGATORIO else NUMERICO NO OBLIGATORIO PERO INFORMADO
    if (sOne=='n' && sTwo=='r') {
       CaracterNoValid(document.forms[0].elements[j].value,'Nr');
       nTot+=swOK;
    }
    else
       if (sOne=='n' && document.forms[0].elements[nEle].value!='') {
           CaracterNoValid(document.forms[0].elements[j].value,'No');
           nTot+=swOK;
       }
    // DECIMAL Y OBLIGATORIO else DECIMAL NO OBLIGATORIO PERO INFORMADO
    if (sOne=='d' && sTwo=='r') {
       CaracterNoValid(document.forms[0].elements[j].value,'Dr');
       nTot+=swOK;
    }
    else
       if (sOne=='d' && document.forms[0].elements[nEle].value!='') {
           CaracterNoValid(document.forms[0].elements[j].value,'Do');
           nTot+=swOK;
       }
    // CADENA Y OBLIGATORIA
    if (sOne=='s' && sTwo=='r') {
       CaracterNoValid(document.forms[0].elements[j].value,'Sr');
       nTot+=swOK;
    }
    // PALABRA Y OBLIGATORIA
    if (sOne=='p' && sTwo=='r') {
       CaracterNoValid(document.forms[0].elements[j].value,'Pr');
       nTot+=swOK;
    }
    // FECHA Y OBLIGATORIA
    if (sOne=='f' && sTwo=='r') {
       CaracterNoValid(document.forms[0].elements[j].value,'Fr');
       nTot+=swOK;
    }
    // HORA Y OBLIGATORIA
    if (sOne=='h' && sTwo=='r') {
       CaracterNoValid(document.forms[0].elements[j].value,'Hr');
       nTot+=swOK;
    }
    // LISTA DE ERRORES
    if (nPas==0 && nTot>0) {
      document.forms[0].elements[nEle].value="";
      document.forms[0].elements[nEle].focus();
      nPas=1
  }}
  if (nTot>0){
    alert(sError)
  }else{
	return("True");
//    document.forms[0].submit();
}}
// ANALIZA CAMPO A CAMPO SI SON NUMERICOS
//=========================================
function CaracterNoValid(pCaracter,pType) {
  swOK=0;
  // E-MAIL OBLIGATORIO
  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+="El campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser una direcciÛn de E-Mail y es obligatorio" +"\r" }
   return;
 }
  // NUMERICO OBLIGATORIO
  if (pType=='Nr') {
    swOK=0;
    if (pCaracter=='') {
      swOK=1;
      sError+="El campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser numÈrico y es obligatorio" +"\r";
      return;
    }
    for (var i=0;i<pCaracter.length;i++) { var sByte=pCaracter.substring(i,i+1); if (sByte<"0" || sByte>"9") {
        sError+="El campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser numÈrico y es obligatorio" +"\r";
        swOK=1;
        return;
      }}
  }
  // NUMERICO INFORMADO
  if (pType=='No') { 
    swOK=0;
    if (pCaracter=='')  {
      swOK=1
      sError+="El campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser numÈrico y NO es obligatorio" +"\r"
      return
    }
    for (var i=0;i<pCaracter.length;i++) { var sByte=pCaracter.substring(i,i+1); if (sByte<"0" || sByte>"9") {
        sError+="El campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser numÈrico y NO es obligatorio" +"\r"
        swOK=1;
        return;
      } 
    }
  }
  // DECIMAL OBLIGATORIO
  if (pType=='Dr') {
    var nComas=0;
	swOK=0;
    if (pCaracter=='') {
      swOK=1;
      sError+="El campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser un n™mero decimal y es obligatorio" +"\r";
      return;
    }
    for (var i=0;i<pCaracter.length;i++) { 
		var sByte=pCaracter.substring(i,i+1);
		if (sByte=="."){
			nComas=(nComas+1);}
		if (((sByte<"0" || sByte>"9") && (sByte!="."))||(nComas>1)) {
        	sError+="El campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser un n™mero decimal y es obligatorio" +"\r";
        	swOK=1;
        	return;
      	}}
  }
  // DECIMAL INFORMADO
  if (pType=='Do') { 
    swOK=0;
    if (pCaracter=='')  {
      swOK=1
      sError+="El campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser un n™mero decimal y NO es obligatorio" +"\r"
      return
    }
    for (var i=0;i<pCaracter.length;i++) {
		var sByte=pCaracter.substring(i,i+1);
		if ((sByte<"0" || sByte>"9") && (sByte!=",")) {
        sError+="El campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser un n™mero decimal y NO es obligatorio" +"\r"
        swOK=1;
        return;
      } 
    }
  }
  // CADENA
  if (pType=='Sr') { 
    if (pCaracter=='') {
       sError+="El campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser texto y es obligatorio"+"\r"
       swOK=1;
       return
     }
  }
  // PALABRA
  if (pType=='Pr') {
	if (pCaracter=='') {
       sError+="El campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser una palabra y es obligatorio"+"\r"
       swOK=1;
       return
     }
   	for (var i=0;i<pCaracter.length;i++) { 
		var sByte=pCaracter.substring(i,i+1);
		if (sByte==" "){
        	sError+="El campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser una palabra y es obligatorio" +"\r";
        	swOK=1;
        	return;
      	}}
  }
  // FECHAS
  if (pType=='Fr') {
	var err=0;
	var pos1=0;
	var pos2=0;
	var pos3=pCaracter.length;
   	for (var i=0;i<pos3; i++) { 
		var sByte=pCaracter.substring(i,i+1);
		if (sByte=="/"){
			if (pos2==0){
				if (pos1!=0){
					pos2=i
				}else{
					pos1=i}
		}else{
			err=1
	}}}
	d = pCaracter.substring(0, pos1)		// day
	c = pCaracter.substring(pos1,pos1+1)	// '/'
	b = pCaracter.substring(pos1+1,pos2)	// month
	e = pCaracter.substring(pos2,pos2+1)	// '/'
	f = pCaracter.substring(pos2+1,pos3)		// year
// test b·sico de error
	if (b<1 || b>12) err = 1
	if (c != '/') err = 1
	if (d<1 || d>31) err = 1
	if (e != '/') err = 1
	if (f<0 || f>99) err = 1
//test avanzado de error
	// meses de 30 days
	if (b==4 || b==6 || b==9 || b==11){
		if (d==31) err=1
	}
	// february, leap year
	if (b==2){
		// feb
		var g=parseInt(f/4)
		if (isNaN(g)) {
			err=1
		}
		if (d>29) err=1
		if (d==29 && ((f/4)!=parseInt(f/4))) err=1
	}
	if (err==1){
		sError+="El campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser una fecha v·lida y es obligatorio" +"\r";
        swOK=1;
        return;
	}
  }
  // HORAS
	if (pType=='Hr') {
		var err=0;
		var pos1=0;
		var pos2=pCaracter.length;
	   	for (var i=0;i<pos2; i++) { 
			var sByte=pCaracter.substring(i,i+1);
			if (sByte==":"){
				if (pos1!=0){
					err=1
				}else{
					pos1=i
		}}}
		b = pCaracter.substring(0, pos1);		// horas
		c = pCaracter.substring(pos1,pos1+1);	// '/'
		d = pCaracter.substring(pos1+1,pos2);	// minutos
// test b·sico de error
		if (b<0 || b>23) err = 1
		if (c != ':') err = 1
		if (d<0 || d>59) err = 1
		if (err==1){
			sError+="El campo "+document.forms[0].elements[nEle].name.substr(2)+" ha de ser una hora v·lida y es obligatorio" +"\r";
	        swOK=1;
    	    return;
	}}
}
function QuitaSaltos(pCaracter){
	var num="";
	var cadena="";
   	for (var i=0;i<pCaracter.length;i++) { 
		var num=escape(pCaracter.substring(i,i+1));
		if (num=="%0D"){continue}
		if (num=="%0A") {
			if (escape(pCaracter.substring(i+1,i+2))!="%0D"){cadena = cadena+ " ";}
      		}else{cadena = cadena+pCaracter.substring(i,i+1)}
	}
	return(cadena);
}