
function validateDate(day, month, year){  
  
    //Valido el año  
    if (isNaN(year) || year.length<4 || parseFloat(year)<1900){   
        return false;
    }  
    //Valido el Mes  
    if (isNaN(month) || parseFloat(month)<1 || parseFloat(month)>12){  
        return false;
    }  
    //Valido el day  
    if (isNaN(day) || parseInt(day, 10)<1 || parseInt(day, 10)>31){  
        return false;
    }  
    if (month==4 || month==6 || month==9 || month==11 || month==2) {  
        if ( day > 30 ) {  
            return false  ;
        }  
    }  
    
    if  ( month == 2 && day == 29 && !esBisiesto(year) )
		return false;
		
    return true;
}  


function esBisiesto(year)
{
	var bisiesto;
	if(parseInt(year)%4==0){
		if(parseInt(year)%100==0){
			if(parseInt(year)%400==0){
				bisiesto=true;
			}
			else{
				bisiesto=false;
			}
		}
		else{
			bisiesto=true;
		}
	}
	else
	bisiesto=false;
	
	return bisiesto;
} 


function validateForm(){
	var name = document.getElementById('apodo').value;
	
	element = document.getElementById('apodo');
	if ( element.value == '' )
		return validateRestForm('');	
	
	var url =  Alfresco.constants.PROXY_URI + "api/people/" + name;
	
     // execute ajax request
     Alfresco.util.Ajax.request(
     {
        url: url,
        method: "GET",
        responseContentType : "text",
        successCallback:
        {
           fn: onResponse,
           scope: this
        },
        failureCallback:
        {
           fn: onResponse,
           scope: this
        }
     });
     
    function onResponse(response){
    	var resp = response.json;
    	if ( resp != null ){
    		 var error = '\n* El apodo elegido está en uso';
    		 var result = validateRestForm(error);
    		 if ( !result )
    		 	return result;    		 
    	}
    	else{
    		if ( validateRestForm('') )   
    			document.registerForm.submit();
    	} 		    	
	}
	
	return false;
}



function validateRestForm(prevError){
	var error = prevError;
	
	if ( !document.getElementById('legal').checked ){
		alert('Debe acerptar las condiciones legales para registrarse.');
		return false;
	}
	
	var element = document.getElementById('nombrecompleto');
	if ( element.value == '' )
		error += '\n* Nombre y apellidos';	
		
	element = document.getElementById('apodo');
	if ( element.value == '' )
		error += '\n* Apodo';
		
	element = document.getElementById('passwordReg');
	if ( element.value == '' )
		error += '\n* Password';
	else if ( element.value.length < 5 )
		error += '\n* Su Password debe tener como mínimo 5 caracteres.';
	else{
		 var alphanum=/^[a-z0-9]+$/i; //This contains A to Z , 0 to 9 and A to B
		 if ( !element.value.match(alphanum) ){
		 	 error += '\n* La Password debe contener números y letras';
		 }
	}
		
	element = document.getElementById('mail');
	if ( element.value == '' )
		error += '\n* Debe rellenar el campo Mail';	
	else{
		 var RegExPattern = /[\w-\.]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}/;
		 if ( !element.value.match(RegExPattern) ){
		 	error += '\n* Dirección de correo errónea';
		 }
	}
	
	var day = document.getElementById('dia').value;
	var month = document.getElementById('mes').value;
	var year = document.getElementById('anio').value;
	if ( !validateDate(day, month, year) ){
		error += '\n* La fecha no es correcta.';
	}
		
	element = document.getElementById('localidad');
	if ( element.value == '' )
		error += '\n* Debe rellenar el campo Localidad';
		
	element = document.getElementById('provincia');
	if ( element.value == '' )
		error += '\n* Debe rellenar el campo Provincia';
	
	
	if ( error != '' ){
		alert('Los siguientes campos no son correctos:\n' + error);
		return false;
	}
	
	return true;
}

function checkAvailability(){
	var name = document.getElementById('apodo').value;
	
	if ( name == '' ){
		alert('Introduzca un Apodo !!');
		return false;		
	}
	
	var url =  Alfresco.constants.PROXY_URI + "api/people/" + name;
	
     // execute ajax request
     Alfresco.util.Ajax.request(
     {
        url: url,
        method: "GET",
        responseContentType : "text",
        successCallback:
        {
           fn: onResponse,
           scope: this
        },
        failureCallback:
        {
           fn: onResponse,
           scope: this
        }
     });
     
    function onResponse(response){
    	var resp = response.json;
    	if ( resp != null ){
    		 alert('El apodo elegido está en uso. Elija otro');
    		 document.getElementById('apodo').value = '';
    	}
    	else
    		alert('El apodo elegido está disponible');
	}
	
}

