// JavaScript Document

/* Conprueba que el formulario de login contenga datos.
 * Recibe: string formulario
 * Devuleve: boolean result
*/
function compruebaFormulario(f)
{
	if( f.login.value == '' || f.password.value == '' )
	{
		alert('El nombre de usuario o la constraseña no son válidos.\n');
		return false;
	}
	
	return true;
}

/* Comprueba que el formulario de edición de cliente esté relleno
 * Recibe: string formulaio
 * Devuleve: boolean result
*/
function compruebaEditarCliente(f)
{
	var error = '';

	if( f.id.value == '' )
		error += 'El identificador de usuario no es válido.\n';

	if( f.nombre.value == '' )
		error += 'Falta el nombre del cliente.\n';
	
	if( f.email.value == '' )
		error += 'El email no puede estar vacío.\n';
	
	if( f.password.value != f.password2.value )
		error += 'La contraseña introducida no coincide.\n';

	if( f.factorclicks.value == '' )
		error += 'El Factor Clicks no es válido.\n';
	
	if( f.factorcpc.value == '' )
		error += 'El factor CPC no es válido.\n';

	if( error != '' )
	{
			alert(error);
			return false;
	}

	return true;
}

/* Comprueba que el formulario de nalta de uevo cliente esté relleno
 * Recibe: string formulaio
 * Devuleve: boolean result
*/
function compruebaNuevoCliente(f)
{
	var error = '';
	
	if( f.nombre.value == '' )
		error += 'Falta el nombre del cliente.\n';

	if( f.email.value == '' )
		error += 'El email no puede estar vacío.\n';
	
	if( f.password.value == '' )
		error += 'La contraseña no es válida.\n';
	else if( f.password.value != f.password2.value )
		error += 'La contraseña introducida no coincide.\n';
	
	if( f.factorclicks.value == '' )
		error += 'El Factor Clicks no es válido.\n';
	
	if( f.factorcpc.value == '' )
		error += 'El factor CPC no es válido.\n';
	
	if( error != '' )
	{
			alert(error);
			return false;
	}

	return true;
}

function compruebaRangoFechas(f)
{
	error = '';

	if( f.fecha_desde.value == '' ||  f.fecha_hasta.value == '' )
		error = 'Compruebe el rango de fechas introducido.';
	else
	{
		f1 = f.fecha_desde.value.split('/');
		f2 = f.fecha_hasta.value.split('/');

		fecha1 = new Date(f1[1]+'/'+f1[0]+'/'+f1[2]); 
		fecha2 = new Date(f2[1]+'/'+f2[0]+'/'+f2[2]); 

		hoy = new Date();
		//fecha_actual = hoy.getDay()''+''+hoy.getMonth()''+''hoy.getYear();
		//alert(fecha_actual);
								
		// comprueba se las fechas tiene un fromato válido y son fechas válidas
		if( !validaFecha(f1[0],f1[1],f1[2]) || !validaFecha(f2[0],f2[1],f2[2]) )
			error = 'El formato de fecha no es válido.';
		else if( fecha1 > fecha2 ) // comprueba que la fecha inicial sea anterior a la final
			error ='La fecha inicial no puede ser posterior a la final';
		//else if( fecha1 > hoy.getDate() || fecha2 > hoy.getDate() ) // comprueba que las fechas no sean posteriores a la fecha actual
			//error = 'El rango de fechas no puede incluir una fecha posterior a la fecha actual.';
	}
	
	if( error )
	{
		alert(error);
		return false;
	}
	
	return true;
}

function validaFecha(dia,mes,anio)
{
	//alert(dia+' '+mes+' '+anio);
    if ( anio.length < 4 || parseFloat(anio) < 2008 )
		return false;
	else if( parseFloat(mes) < 1 || parseFloat(mes) > 12)   
        return false   
    else if( parseInt(dia, 10) < 1 || parseInt(dia, 10) > 31)
        return false   
	else if( (mes == 4 || mes == 6 || mes == 9 || mes == 11) &&  dia > 30 ) 
		   return false   
	else if( (mes == 2 && esBisiesto(anio)) && dia > 29 )
		return false
	else if( mes == 2 && dia > 28 )
		return false;
		
	return true;
}

function esBisiesto(anio)
{
	if( (anio % 4 == 0) && ( (anio % 100 != 0) || (anio % 400 == 0) ) )
		return true

	return false;
}
