////////////////////////////////////////////////////////////////////////////////////////////
//--EXPRESIONES REGULARES PAR USO GENERAL EN FUNCIONES------------------------------------//
////////////////////////////////////////////////////////////////////////////////////////////
var er_email = /^(.+\@.+\..+)$/; //--mail tipo algo@algo.com
var er_numeros = /^([0-9])+$/; //--del 1 al 9
var er_letras = /[A-Z]\D/; //--de la A a la Z
var er_patente=/[a-z]+[a-z]+[a-z]+[0-9]+[0-9]+[0-9]/; //--ABC123
///-fin


var i
function crtaizq(cadena) //15
{
for(var cancar=0;cancar<cadena.length+1;)
   {
	if(cadena.charAt(0)==" ")
 	   {cadena=cadena.substring(1,cadena.length);
	    }
	else
	   {return cadena; }
    }
}
function creaID(campo)
{
 campo.value=(Date.parse(new Date()))/1000
}
function fechaerronea(form, campo, valor, formacorta, mensaje)
       {
	var formato=""
	if (formacorta=="dma") formato="'dd/mm/aa' (día/mes/año)\n\nEjemplo: 25/12/99";
	if (formacorta=="dmA") formato="'dd/mm/aaaa' (día/mes/año)\n\nEjemplo: 25/12/1999";
	if (formacorta=="mda") formato="'mm/dd/aa' (mes/día/año)\n\nEjemplo: 12/25/99";
	if (formacorta=="mdA") formato="'mm/dd/aaaa' (mes/día/año)\n\nEjemplo: 12/25/1999";
	if (formacorta=="md") formato="'mm/dd' (mes/día)\n\nEjemplo: 12/25";
	if (formacorta=="dm") formato="'dd/mm' (día/mes)\n\nEjemplo: 25/12";
	if (formacorta=="ma") formato="'mm/aa' (mes/año)\n\nEjemplo: 12/99";
	if (formacorta=="mA") formato="'mm/aaaa' (mes/año)\n\nEjemplo: 12/1999";
	if (formacorta=="am") formato="'aa/mm' (año/mes)\n\nEjemplo: 99/12";
	if (formacorta=="Am") formato="'aaaa/mm' (año/mes)\n\nEjemplo: 1999/12";
	alert("El valor '" + valor + "' introducido en el campo '" + campo + "' es incorrecto.\n\nDebe introducir una fecha con formato " + formato + mensaje)
	form.elements[i].focus()
       }
function esnumero(carac)
{for(var k=0; k<10; k++)
  { 
    if (carac==k)
    { 
      return true;
    }
  }
return false;
}
function validar(form)
{
var NomCamp
for(i=0; i<form.elements.length; i++)
 { 
  if(form.elements[i].etiq) 
     {
      NomCamp=form.elements[i].etiq;
     }
  else
     {
      NomCamp=form.elements[i].name
     }
  var MiValor;
  if(form.elements[i].type=="text" || form.elements[i].type=="textarea")
    {    
     MiValor=form.elements[i].value;
     }
  if(form.elements[i].type=="select-one")
    {    
     MiValor=form.elements[i].options[form.elements[i].selectedIndex].value;
     }
     if((form.elements[i].reque==1) && (crtaizq(MiValor)==""))
       {
        alert("No puede dejar el campo " + NomCamp + " en blanco." );
	form.elements[i].focus();
	return false;
       }
     if(form.elements[i].numer==1)
       { 
         for(var n=0; n<MiValor.length; n++)
           {
              if (!esnumero(MiValor.substring(n,n+1)))
                {
                 alert("'" + MiValor.substring(n,n+1) + "' no es un Caracter válido.\n En el campo '" + NomCamp +  "' sólo puede ingresar dígitos numéricos sin letras, puntos, comas ni signos de ninguna otra clase.");
		 form.elements[i].focus();
                 return false;
                }	
           }
         if(form.elements[i].liminf)  
           {
             if(eval(MiValor) < eval(form.elements[i].liminf))
               {
                  alert("El valor ingresado en el campo " + NomCamp + " no puede ser inferior a " +  form.elements[i].liminf + "." );
                  form.elements[i].focus();
		  return false;
               }
             if(eval(MiValor) > eval(form.elements[i].limsup))
               {
                  alert("El valor ingresado en el campo " + NomCamp + " no puede ser superior a " +  form.elements[i].limsup + "." );
                  form.elements[i].focus();
		  return false;
               }
           }
       }
     if(form.elements[i].esfech)
       {
	if(MiValor=="")
	  {}
        else
         {
        var m=0;
        m=MiValor.indexOf('-', m+1)
        while(m < MiValor.length && m != -1) // linea 139
          {
           MiValor=MiValor.substring(0,m) + "/"+ MiValor.substring(m+1,MiValor.length);
           m=MiValor.indexOf('-', m+1);
          }

        m=0
	m=MiValor.indexOf('/', m+1);
        var cantslash=0
        while(m < MiValor.length && m != -1) // linea 139
          {
           cantslash++
           m=MiValor.indexOf('/', m+1);
          }
        if(cantslash != form.elements[i].esfech.length -1)
          { fechaerronea(form, NomCamp, MiValor, form.elements[i].esfech,"");
	    return false;
	  }
        var ultpos=0;
	for(var q=0; q < form.elements[i].esfech.length ; q++)
          {
            if(form.elements[i].esfech.substring(q,q+1)=="d")
	      {var findia=0
               var comdia=ultpos
               for(var contar=0; contar<q+1; contar++) 
                  {
                   findia=MiValor.indexOf('/', findia + 1)
                  }
               if(findia==-1)
                 {
		   diastr = MiValor.substring(comdia,MiValor.length)	
                 }
               else
                  {
                   diastr =  MiValor.substring(comdia,findia)
                   ultpos=findia +1;
                  }
	       dia=parseInt(diastr)
               if((!((dia < 32) && (dia > 0))) || (!(dia==diastr)) )
                 {
                  fechaerronea(form, NomCamp, MiValor, form.elements[i].esfech,"");
		  return false;
                 } 
               }
            if(form.elements[i].esfech.substring(q,q+1)=="m")
	      {var finmes=0
               var commes=ultpos
               for(var contar=0; contar<q+1; contar++) 
                  {
                   finmes=MiValor.indexOf('/', finmes + 1)
                  }
               if(finmes==-1)
                  {
                   messtr=MiValor.substring(commes,MiValor.length)
                  }
               else
                  {
		   messtr=MiValor.substring(commes,finmes)
                   ultpos=finmes +1;
                  } 
	       mes=parseInt(messtr)
               if((!((mes < 13) && (mes > 0))) || (!(mes==messtr)) )
		 {
 		  fechaerronea(form, NomCamp, MiValor, form.elements[i].esfech,"");
		  return false;
		 }
              }

            if((form.elements[i].esfech.substring(q,q+1)=="a") || (form.elements[i].esfech.substring(q,q+1)=="A"))
	      {var finano=0
               var comano=ultpos
               for(var contar=0; contar<q+1; contar++) 
                  {
                   finano=MiValor.indexOf('/', finano + 1)
                  }
               if(finano==-1)
                 {	  
                   anostr=MiValor.substring(comano,MiValor.length)
                 }
               else
                  {
		   anostr=MiValor.substring(comano,finano)
                   ultpos=finano +1;
                  } 
	       ano=parseInt(anostr)
               if(((!((ano < 100 ) && (ano >  -1  ))) || (!(ano==anostr))) && form.elements[i].esfech.substring(q,q+1)=="a") 
		{
		 fechaerronea(form, NomCamp, MiValor, form.elements[i].esfech,"\n\nEl año debe ser un número entre 0 y 99");
		 return false;
		}
               if(((!((ano < 2031 ) && (ano > 1899))) || (!(ano==anostr))) && form.elements[i].esfech.substring(q,q+1)=="A") 
		{
		 fechaerronea(form, NomCamp, MiValor, form.elements[i].esfech,"\n\nEl año debe ser un número entre 1900 y 2030");
		 return false;
		}
              }
          }     
         }
       }
 }
return true;
}