function trim(lstrcadena) 
{
  // quito primero los posibles caracteres vacíos al principio
  if (lstrcadena.length != 0)
  {		
    while (lstrcadena.charAt(0) == " ")
    {
      lstrcadena = lstrcadena.substr(1);		
    }
  }	
  // Ya ahora los últimos
  if (lstrcadena.length != 0)
  {		
    while (lstrcadena.charAt(lstrcadena.length-1) == " ")
    {
      lstrcadena = lstrcadena.substr(0,lstrcadena.length-1);		
    }
  }	

  return lstrcadena;  
}

function esNumerico(elinput)
{
  re=/^\d+$/;
  if(re.test(elinput.value))
  {
    return true;
  }
  else
  {
	  return false;
  }
}


function esAlfanumerico(elinput)
{
  re=/^\w+$/;
  if(re.test(elinput.value))
  {
    return true;
  }
  else
  {
	  return false;
  }
}

function esVacio(elinput)
{
	if(trim(elinput.value)=="")
	{
		return true;
	}
	else
	{
		return false;
	}
}

/**
* comprueba si una cadena tiene el formato de una dirección de email.
*/
function esEmail( elinput )
{
      var email = elinput.value;
      if ( email.indexOf("@") < 1 )
      {
         return false;
      }

      if ( email.substr(email.indexOf("@")).indexOf(".") < 1 )
      {
         return false;
      }
      return true;
}

/**
*Comprueba si una fecha esta en formato YYYY-MM-DD
*/

function esFecha2(input)
{
	re=/^\d\d\d\d-\d\d-\d\d$/;
	if(re.test(input.value))
	{
		return true;
	}
	else
	{
		return false;
	}
}

function esFechaMayor( pDia, pMes, pAnio, sDia, sMes, sAnio )
{
	var prim;
	var seg;
	
	prim = pAnio+""+pMes+""+pDia;
	seg =  sAnio+""+sMes+""+sDia;
	
	return ( prim < seg );
}
function esFechaMayorCompleta(pFecha,sFecha){
	if(esFecha(pFecha)&&esFecha(sFecha)){
		var dia = pFecha.substr( 0, 2 );
		var mes = pFecha.substr( 3, 2 );
		var anno = pFecha.substr( 6, 4 );

		var diaf = sFecha.substr( 0, 2 );
		var mesf = sFecha.substr( 3, 2 );
		var annof = sFecha.substr( 6, 4 );

		return esFechaMayor(dia,mes,anno,diaf,mesf,annof);
	}
	else{
		return false;
	}
}
/**
*Comprueba si una fecha esta en formato DD-MM-YYYY ó DD/MM/YYYY
*/

/* Un anno es bisiesto si es divisible entre cuatro, excepto los divisibles entre cien, 
 * que no lo son de 400 */

function bisiesto( a )
{
    return  ( ( a % 400 == 0 ) || ( ( a % 4 == 0 ) && !( a % 100 == 0 )));
}

function esFecha(input)
{
	re=/^\d\d-\d\d-\d\d\d\d$/;
	re2=/^\d\d\/\d\d\/\d\d\d\d$/;
	if(!re.test(input.value) && !re2.test(input.value))
	{
		return false;
	}
        fecha = input.value;
        dia = fecha.substr( 0, 2 );
        mes = fecha.substr( 3, 2 );
        anno = fecha.substr( 6, 4 );      

        if(anno<1000)
        {
            return false;
        }
        if ( mes < 1 || mes > 12 )
        {
            return false;
        }
        if ( dia < 1 )
        {
            return false;
        }
        if ( mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12 )
        {
            if ( dia > 31 )
            {
                return false;
            }
        }

        if ( mes == 4 || mes == 6 || mes == 9 || mes == 11 )
        {
            if ( dia > 30 )
            {
                return false;
            }
        }

        if ( mes == 2 )
        {
            if ( bisiesto( anno ) )
            {
                if ( dia > 29 )
                {
                    return false;
                }
            }
            else
            {
                if ( dia > 28 )
                {
                    return false;
                }
            }
        }
        return true;
}


function RellenarAnnosSelector(elselect)
{
	fecha=new Date;
 	year=fecha.getYear();
 	if (year<200)
	{
		year+=1900;
	}
  for (i=1998,contador=0;i<=(year+2);i++,contador++)
  {
	  opcion= new Option(i,i,false,false);
	  elselect.options[contador]=opcion;

  }
  return;
}

function decodificar(cadena)
{
    
    cadena=cadena.replace(/&Aacute;/g,String.fromCharCode(193));
    cadena=cadena.replace(/&Eacute;/g,String.fromCharCode(201));
    cadena=cadena.replace(/&Iacute;/g,String.fromCharCode(205));
    cadena=cadena.replace(/&Oacute;/g,String.fromCharCode(211));
    cadena=cadena.replace(/&Uacute;/g,String.fromCharCode(218));
    cadena=cadena.replace(/&Uuml;/g,String.fromCharCode(220));
    cadena=cadena.replace(/&Ntilde;/g,String.fromCharCode(209));

    cadena=cadena.replace(/&aacute;/g,String.fromCharCode(225));
    cadena=cadena.replace(/&eacute;/g,String.fromCharCode(233));
    cadena=cadena.replace(/&iacute;/g,String.fromCharCode(237));
    cadena=cadena.replace(/&oacute;/g,String.fromCharCode(243));
    cadena=cadena.replace(/&uacute;/g,String.fromCharCode(250));
    cadena=cadena.replace(/&uuml;/g,String.fromCharCode(252));
    cadena=cadena.replace(/&ntilde;/g,String.fromCharCode(241));
    
    return(cadena);
}
