// JavaScript Document


function esDigito(sChr){
var sCod = sChr.charCodeAt(0);
return ((sCod > 47) && (sCod < 58));
}
function valSep(oTxt){
var bOk = false;
bOk = bOk || ((oTxt.charAt(2) == "-") && (oTxt.charAt(5) == "-"));
bOk = bOk || ((oTxt.charAt(2) == "/") && (oTxt.charAt(5) == "/"));
return bOk;
}
function finMes(oTxt){
var nMes = parseInt(oTxt.substr(3, 2), 10);
var nRes = 0;
switch (nMes){
case 1: nRes = 31; break;
case 2: nRes = 29; break;
case 3: nRes = 31; break;
case 4: nRes = 30; break;
case 5: nRes = 31; break;
case 6: nRes = 30; break;
case 7: nRes = 31; break;
case 8: nRes = 31; break;
case 9: nRes = 30; break;
case 10: nRes = 31; break;
case 11: nRes = 30; break;
case 12: nRes = 31; break;
}
return nRes;
}
function valDia(oTxt){
var bOk = false;
var nDia = parseInt(oTxt.substr(0, 2), 10);
bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
return bOk;
}
function valMes(oTxt){
var bOk = false;
var nMes = parseInt(oTxt.substr(3, 2), 10);
bOk = bOk || ((nMes >= 1) && (nMes <= 12));
return bOk;
}
function valAno(oTxt){
var bOk = true;
var nAno = oTxt.substr(6);
bOk = bOk && ((nAno.length == 2) || (nAno.length == 4));
if (bOk){
for (var i = 0; i < nAno.length; i++){
bOk = bOk && esDigito(nAno.charAt(i));
}
}
return bOk;
}
function valFecha(oTxt){
var bOk = true;
if (oTxt != ""){
bOk = bOk && (valAno(oTxt));
bOk = bOk && (valMes(oTxt));
bOk = bOk && (valDia(oTxt));
bOk = bOk && (valSep(oTxt));
if (!bOk) return false;
else return true;
}
}



////////////////////////////////////////FIN VALIDACION FECHA ////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////







 function url(cadena)  
   {                                    // DECLARACION DE CONSTANTES  
     var http = "http://";              // protocolo HTTP  
                                        // DECLARACION DE VARIABLES  
     var es_url;                        // cadena es url o no  
     if(cadena.length <= 7)             // INICIO  
       es_url = false;                  // no cabe "http://*"  
     else  
       es_url = http.indexOf(cadena.substring(0, 7)) != - 1; // lee "http://*"  
     return(es_url);  
   }  
   
   
 /* salta caracteres alfanumericos y otros a partir de  cadena[i]  y  da  si- */ 
 /* guiente posicion                                                          */  
 function salta_alfanumerico(cadena, i, otros)  
   {                                    //DECLARACION DE VARIABLES  
     var j;                             //indice en cadena  
     var car;                           // caracter de cadena  
     var alfanum;                       // cadena[j] es alfanumerico u otros  
     for(j = i, alfanum = true; (j < cadena.length) && alfanum; j++) // INICIO  
       {  
         car = cadena.charAt(j);  
         alfanum = alfanumerico(car) || (otros.indexOf(car) != -1);  
       }  
     if(!alfanum)                       
       j--;  
     return(j);  
   }  
     
                                             
 function alfanumerico(car)  
   {  
     return(alfabetico(car) || numerico(car));  
   }  
   
   
                                                  
 function alfabetico(car)               // DECLARACION DE CONSTANTES  
   {                                    // caracteres alfabeticos  
     var alfa = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz";  
     return(alfa.indexOf(car) != - 1);  // INICIO  
   }  
   
   
                                                  
 function numerico(car)  
   {                                    // DECLARACION DE CONSTANTES  
     var num = "0123456789";            // caracteres numericos  
     return(num.indexOf(car) != - 1);   // INICIO  
   }  



function ComprobarCampoTextoVacio(cadena)  
{                                    // DECLARACION DE CONSTANTES  
 var blanco = " \n\t" + String.fromCharCode(13); // blancos  
									// DECLARACION DE VARIABLES  
 var i;                             // indice en cadena  
 var es_vacio;                      // cadena es vacio o no  
 for(i = 0, es_vacio = true; (i < cadena.length) && es_vacio; i++) // INICIO  
   es_vacio = blanco.indexOf(cadena.charAt(i)) != - 1;  
 return(es_vacio);  
}  


function mail(texto){

    var mailres = true;            
    var cadena = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ1234567890@._-";
    
    var arroba = texto.indexOf("@",0);
    if ((texto.lastIndexOf("@")) != arroba) arroba = -1;
    
    var punto = texto.lastIndexOf(".");
                
     for (var contador = 0 ; contador < texto.length ; contador++){
        if (cadena.indexOf(texto.substr(contador, 1),0) == -1){
            mailres = false;
            break;
     }
    }

    if ((arroba > 1) && (arroba + 1 < punto) && (punto + 1 < (texto.length)) && (mailres == true) && (texto.indexOf("..",0) == -1))
     mailres = true;
    else
     mailres = false;
                
    return mailres;
} 

 function ComprobarCorreoe(cadena, otros)  
   {                                    // DECLARACION-INICIALIZACION VARIABLES  
     var i, j;                          // indice en cadena  
     var es_email = 0 < cadena.length;  // cadena es email o no  
     i = salta_alfanumerico(cadena, 0, otros); // INICIO  
     if(es_email = 0 < i)               // lee "alfanum*"  
       if(es_email = (i < cadena.length))  
         if(es_email = cadena.charAt(i) == '@') // lee "alfanum@*"  
           {  
             i++;  
             j = salta_alfanumerico(cadena, i, otros);  
             if(es_email = i < j)       // lee "alfanum@alfanum*"  
               if(es_email = j < cadena.length)  
                 if(es_email = cadena.charAt(j) == '\.')  
                   {                    // lee "alfanum@alfanum.*"  
                     j++;  
                     i = salta_alfanumerico(cadena, j, otros);  
                     if(es_email = j < i) // lee "alfanum@alfanum.alfanum*"  
                       while(es_email && (i < cadena.length))  
                         if(es_email = cadena.charAt(i) == '\.')  
                           {  
                             i++;  
                             j = salta_alfanumerico(cadena, i, otros);  
                             if(es_email = i < j) // lee "alfanum@alfanum.alfanum[.alfanum]*"  
                               i = j;  
                           }  
                   }  
           }  
	
     return(es_email);  
   }  
function ComprobarClave(clave)
{
	var i=0;
	var clavevalida = true;
	if (clave.length<6) clavevalida =  false;
	else
	{
		for(i=0;i<clave.length;i++)
		{
			car = clave.charAt(i); 
			if (!alfanumerico(car)) clavevalida = false; 
		}
	}
	return clavevalida;
}

function OcultarCapaError(capa)
{
	//alert(capa);
	var objeto = document.getElementById(capa + 'alerta');
	//alert(objeto.style.display);
	objeto.style.display= 'none';
}

function MostrarCapaError(capa)
{
	
	var objeto = document.getElementById(capa + 'alerta');
	
	objeto.style.display = '';
}

function ComprobarCamposRegistroUpdate(form)
{
	var OK ='bien';
	var i=0;
	
	while (OK=='bien' && i<5)
	{
		
		switch (i)
		{
	 		case 2 : 
				if(!mail(form.correoe.value)) OK = 'correoe';
				else OcultarCapaError('correoe');
				
				break;
			case 0:
				
				if(ComprobarCampoTextoVacio(form.nombre.value)) OK = 'nombre';
				else OcultarCapaError('nombre');
				break;
			case 1:
				if(ComprobarCampoTextoVacio(form.apellidos.value)) OK = 'apellidos';
				else OcultarCapaError('apellidos');
				break;
			
			case 3:
				
				if(!valFecha(form.dia.value + '/' + form.mes.value + '/' + form.ano.value)) OK = 'fecha';
				else OcultarCapaError('fecha');
				break;
			
				
		}
		i++;
	}
	
	if (OK=='bien') validacion = true;
	else 
	{
			MostrarCapaError(OK);
			validacion = false;
	}
	
	return validacion;
}
function ComprobarCamposRegistro(form)
{
	var OK ='bien';
	var i=0;
	
	while (OK=='bien' && i<6)
	{
		
		switch (i)
		{
	 		case 2 : 
				if(!ComprobarCorreoe(form.correoe.value,"-_")) OK = 'correoe';
				else OcultarCapaError('correoe');
				
				break;
			case 0:
				
				if(ComprobarCampoTextoVacio(form.nombre.value)) OK = 'nombre';
				else OcultarCapaError('nombre');
				break;
			case 1:
				if(ComprobarCampoTextoVacio(form.apellidos.value)) OK = 'apellidos';
				else OcultarCapaError('apellidos');
				break;
			case 3:
				if(!ComprobarClave(form.clave.value)) OK = 'clave';
				else OcultarCapaError('clave');
				break;
			case 4:
				
				if(!valFecha(form.dia.value + '/' + form.mes.value + '/' + form.ano.value)) OK = 'fecha';
				else OcultarCapaError('fecha');
				break;
			
				
		}
		i++;
	}
	
	if (OK=='bien') validacion = true;
	else 
	{
			MostrarCapaError(OK);
			validacion = false;
	}
	
	return validacion;
}