 var mensaje=" ";

// verificacion si un campo de entrada de datos està vacio	

function validavacio(campo)
{
       if ((campo.length <1) || (campo == null))
       		return true;
       else 
              	return false;	
}


// verifica que el ingreso de datos tenga la longitud correcta	

function validalargo(cadena,longitud)
{
      	if (cadena.length != longitud)
  	{
		//mensaje=mensaje+"* La longitud no es correcta \n";    	
	    	return false;
	}
      	else
	{
	    	return true;
	}
}


// verifica que el campo ingresado sea solo de numérico NO incluye espacios

function validanumeros(cadena)
{
   var i;
   banderas=false;	
   for(i=0; i<cadena.length; i++)
   {  
	var c=cadena.charAt(i);
       	if(c>=0 && c<=9)
        	banderas=true;
      	else
        {	      
		//mensaje=mensaje+"* No son solo numeros \n";	
                return false;   
        } 
   }
   return true; 
}


// verifica la existencia de espacios en blanco dentro de un campo

function hayespacios(campo)
{
    var i;
    var bandera=false;
    for (i=0;i<campo.length;i++)
    {  
    	var c=campo.charAt(i);
        if (c==" ")
	{ 
        	i=campo.length;
	        return true;
        }	
     }
     return false;
}


// funcion general para la validaciòn de la CEDULA DE IDENTIDAD

		// metodo para validar la cèdula de ciudadanía	
function validacedula1(cedula)
{
     var condicion="212121212";
     var num=0;
     var todo=0;
     for (i=0;i<9;i++)
        {
           num=(parseInt(cedula.substring(i,i+1))*parseInt(condicion.substring(i,i+1)));
           if (num > 9)
                   num=num-9;
          todo=todo+num;   
         }
     todo=todo%10;
     todo=10-todo;
     if (todo==10)
          todo=0;
      if (todo==cedula.substring(i,i+1))
            return true;
      else
            return false;
}

function validacedula(cedula)
{
   var bandera=false;
   if (validavacio(cedula))
          {  //mensaje=mensaje+"* No hay Cédula para validar.\n";
              bandera=false;
          }
   else
         {	      		 
             bandera=validalargo(cedula,10);  
             if (bandera==false)  	  		         
	       { // mensaje=mensaje+"* La cédula debe tener 10 caracteres.\n";
	           bandera=false;
	       }
             bandera=validanumeros(cedula);
             if (bandera==false)
                      {//  mensaje=mensaje+"* Ingrese valores numéricos.\n";
	          bandera=false;        
	      }
             bandera=hayespacios(cedula);
             if (bandera==true)
                      { //mensaje=mensaje+"* No debe haber espacios en blanco.\n";
	          bandera=false;
	      }
             bandera=validacedula1(cedula);
              if (bandera==false)  	  		         
	     {  //mensaje=mensaje+"* Cédula incorrecta.\n";
	         bandera=false;
	     }
         }
	return bandera;
}


// valida numeros enteros positivos en text
function validaenteros(cadena)
{
   var i;
   var band=true;
   if (cadena.charAt(0)=="-")
   {
	ini=1;
   }
   else
   {
	ini=0;
   }	
   for(i=ini; i<cadena.length; i++)
   {  
	var c=cadena.charAt(i);
       	if((c>=0 && c<=9) && (c!="."))
        	band=true;
      	else
        {	      
                band=false;   
                i=cadena.length;
		//mensaje=mensaje+"* No es un numero entero \n";	
        } 
   }
   return band;
}


//Función que valida números reales

function validareales(valor,separador)
{
  var bandera=true;
  var cont_separador=0;
  var ini=0;
  if ((valor.charAt(0)=="-") && (valor.charAt(1)!="."))
  {	
     ini=1;
  }
  if (valor.charAt(0)!=".")
  {
    for(i=ini;i<valor.length;i++)
        {
          if ((validanumeros(valor.charAt(i))==false)&&(separador!=valor.charAt(i)))
           {
            // mensaje=mensaje+"* Valor real no numérico.\n"; 
             bandera=false;
             i=valor.legth;
           }
          else  
           {
             if(valor.charAt(i)==separador) 
                cont_separador++;
           }
 	}
  } 
  else
  {
         //mensaje=mensaje+"* deber haber un numero antes del punto\n";
	 bandera=false;
  }	
  if (cont_separador>1)
  {
        //mensaje=mensaje+ "* No debe haber mas de un separador decimal.\n";
        bandera=false;
  }
  return bandera;
}


// quita los espacios en blanco del inicio y del fin de un campo

function quitaespacios(campo)
{
      var i;
      var anterior =" ";
      var cadena="";
      for (i=0;i<campo.length;i++)
         {
	 var c=campo.charAt(i);
                  if ((c==" " && anterior==" ")||(c==" " && i==(campo.length-1)))
	             anterior=" ";

	  else
	       {	
	              cadena= cadena+c; 
	              anterior=c;

	       }
        }
      if (cadena.charAt(cadena.length-1)==" ")
             cadena=cadena.substring(0,cadena.length-1);	
      return cadena;
}


// pasar una cadena a mayúsculas
function amayusculas(campo)
{
   var i;
   var resultado="";
   for (i=0; i<campo.length; i++)
   {  
        var c=campo.charAt(i);
        resultado=resultado+(c.toUpperCase());
   }
   return resultado;
}



// pasar una cadena a minúsculas
function aminusculas(campo)
{
   var i;
   var resultado="";
   for (i=0; i<campo.length; i++)
   {
        var c=campo.charAt(i);
         resultado=resultado+(c.toLowerCase());
   }
   return resultado;
}


//Función que pone la primera letra de una palabra en mayúsculas

function acapital(valor)
{     
      var cadena=valor;
      var nombre="";
      cadena=cadena.toLowerCase();	
      temp="";	
	if (validavacio(cadena))
	{
	    //mensaje=mensaje+"* No hay texto a cambiar.\n";
	}
      	else
      	{
		vector=cadena.split(" ");
		for(i=0;i<vector.length;i++)
		{
			temp=vector[i].charAt(0).toUpperCase();
			palabra=vector[i].length;
			nombre=nombre+temp+vector[i].substring(1,palabra)+" ";			
		}
	}
  return nombre;	
}


// verifica que el campo sea alfabético incluye espacios en blanco

function validaletras(cadena)
{
	var min = "abcdefghijklmnopqrstuvwxyzáéíóúñü ";
	var may = "ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑÜ ";
      	var i;
       	var bandera=false;
       	for (i=0;i<cadena.length;i++)
       	{  
		var c=cadena.charAt(i);
	    	if( (min.indexOf(c) != -1) || (may.indexOf(c) != -1) )
		{
    	        	bandera=true;
		}
         	else
	       	{	      
	         	bandera=false;   
	         	i=cadena.length;
		//	mensaje=mensaje+"* No estan solo letras \n";
             	} 
        }
       	return bandera;   	
}


//validar fecha incluye años bisiestos

function validafecha(dia,mes,ano)
{
   var Ano=ano;
   var Mes=mes;
   var Dia=dia;
   var bandera=true;
   if (Mes!=0 && Dia!=0 && Ano!=0)
   {	
     if (Mes==2 ||Mes==4 || Mes==6 || Mes==9 || Mes==11)
     {
    	if(Mes==2 && Dia>28 || Dia>30)
      	{ 
		var residuo=Ano %4
     		if(residuo != 0)
		{
     	         	mensaje=mensaje+"* Dia inválido.\n";
			bandera=false;
		}
		else
		{
			if (Dia != 29)
			{
    	        //		mensaje=mensaje+"* Dia inválido.\n";
				bandera=false;
			}
        	}	 
      	}
     }
   }
   else
   {
//	mensaje=mensaje+"* Falta un campo en la fecha \n";
	bandera=false;
   }  
   return bandera;
}


//función que valida la existencia de la dirección de E-mail

function validamail(sEmail)
{
	if (window.RegExp)
	{
		var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
		var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
		var reg1 = new RegExp(reg1str);
		var reg2 = new RegExp(reg2str);
		if (!reg1.test(sEmail) && reg2.test(sEmail))
		{
			return true
		}
	 else
	 {
		return false
	 };
	} else if(email.indexOf("@") >= 0) {
		return true
	} else {
		return false
	}
}


//RADIOS CHECKS Y SELECTS


//función que convierte una cadena a mayúsculas o minusculas según elección
function radios(variable)
{
   	var largo=variable.length;
	for (i=0;i<largo;i++)
	{
		if (variable[i].checked)
		{
			return i;
		}
	}
   	return -1;		
}


//funcion que valida checks
//function checks(formulario)
//{
	
//	for(var i=0; i<formulario.length;i++)
//	{
//		if (formulario.type == "checked")
//		{
//			if(formulario.checked)
//		}
//		
	
//	}
//	return numalm;

//}


//Funcion que quita espacios

function quitarespacios(string)
{  
  //si necesito el .value
  while(''+string.charAt(0)==' ')
     string=string.substring(1,string.length);
  while(''+string.charAt(string.length-1)==' ')string=string.substring(0,string.length-1);
  return string;
}


//FUNCION QUE VERIFICA QUE ESTE DENTRO DEL RANGO
function validarango(texto,min,max)   //si necesito el .value
{
	num=parseInt(texto) // transformamos el texto en numero
	if(num >=min && num <=max) 
	{ 
		return true;	   
	}
	else
	{
//		mensaje=mensaje+"*El campo no está entre los límites determinados \n";		
	}
	return false;
}


// FUNCION PRINCIPAL

function valida(form)
{
	validacedula(form.cedula1.value);
	validarango(form.rango.value,form.inicio.value,form.fin.value);
	validaenteros(form.enteros.value);
	validareales(form.reales.value,".");
	validavacio(form.vacio.value);
	form.iniciofin.value=quitaespacios(form.iniciofin.value);
	form.mayusculas.value=amayusculas(form.mayusculas.value);	
	form.minusculas.value=aminusculas(form.minusculas.value);	
	form.capital.value=acapital(form.capital.value);
	validalargo(form.tamano.value,form.maximo.value);
	validaletras(form.letras.value);
	validanumeros(form.numeros.value);
	validafecha(form.dia.value,form.mes.value,form.ano.value);
//	respuesta=radios(form.ciudad);
	//switch (respuesta)
//	{
	//	case 0: alert ("Cuenca");break;
		//case 1: alert ("Quito");break;
//		case 2: alert ("Loja");break;
	//	default:// mensaje=mensaje+"* Elija una ciudad \n";
//	}

	
   	if (mensaje!="")  
        	alert(mensaje);   
}