

// listas de caracteres
var digits = "0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyzáéíóúñü"
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑÜ"
var whitespace = " \t\n\r";

// ---------------------------------------------------------------------- //
//                  FUNCIONES PARA RECLAMARLE AL USUARIO                  //
// ---------------------------------------------------------------------- //

// pone el string s en la barra de estado
function statBar (s)
{   window.status = s
}

// notificar que el campo theField esta vacio
function warnEmpty (theField)
{   theField.focus()
    alert(mMessage)
    statBar(mMessage)
    return false
}

// notificar que el campo theField es invalido
function warnInvalid (theField, s)
{   theField.focus()
    theField.select()
    alert(s)
    statBar(pPrompt + s)
    return false
}


//Comprueba que la fecha sea dd/mm/aaaa
function chequeaFecha(f)
{
	if (f.value != "")
	{
		// solo se puede separar por /
		f.value = f.value.replace(/[-,\ ]/g, "");

		// validar fecha
		var re = /^([1-9]|3[01]|0[1-9]|[12]\d)\/([1-9]|0[1-9]|1[012])\/\d{4}/;
		if (!re.test(f.value))
		{
			alert('Date non valide(format: jj/mm/aaaa)');
			f.focus();
			return false;
		}
	}
	return true;
}

// s tiene solo letras, numeros o espacios en blanco
function isDescription (s)
{
    if (isEmpty(s)) return defaultEmptyOK;
	return true;
}

// s es un numero (entero o flotante, con o sin signo)
function isNumber (s)
{   var i;
    var dotAppeared;
    dotAppeared = false;
    if (isEmpty(s)) 
       if (isNumber.arguments.length == 1) return defaultEmptyOK;
       else return (isNumber.arguments[1] == true);
    
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if( i != 0 ) {
            if ( c == "." ) {
                if( !dotAppeared )
                    dotAppeared = true;
                else
                    return false;
            } else     
                if (!isDigit(c)) return false;
        } else { 
            if ( c == "." ) {
                if( !dotAppeared )
                    dotAppeared = true;
                else
                    return false;
            } else     
                if (!isDigit(c) && (c != "-") || (c == "+")) return false;
        }
    }
    return true;
}

// c es una letra del alfabeto espanol
function isLetter (c)
{
    return( ( uppercaseLetters.indexOf( c ) != -1 ) ||
            ( lowercaseLetters.indexOf( c ) != -1 ) )
}

// c es un digito
function isDigit (c)
{   return ((c >= "0") && (c <= "9") || (c == "."))
}

// s tiene solo letras y numeros
function isAlphanumeric (theElement, nombre_del_elemento)
{   
	var s = theElement;
	var i;    
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (! (isLetter(c) || isDigit(c) ) )
		{
			return false;
		}
    }
	return true;
}

// es una direccion de correo valida
function isEmail(theElement, nombre_del_elemento )
{
	var s = theElement.value;
	var filter=/^[A-Za-z][A-Za-z0-9_.-]*@[A-Za-z0-9_.-]+\.[A-Za-z0-9_.-]+[A-za-z]$/;
	if (s.length == 0 ) return true;
	   if (filter.test(s))
	      return true;
	   else
	     alert("Introduire une adresse postale valide");
	theElement.focus();
	return false;
}
//Función que devuelve una cadena 
//sin espacios por la derecha y la izquierda.
//Elemento:Es el objecto a validar.
function Trim(str) {
	var resultStr = '';
	resultStr = TrimLeft(str);
	resultStr = TrimRight(resultStr);	
	return resultStr;
}

//Función que quita los espacios por la izquierda.
//	str:la cadena a limpiar.
function TrimLeft(str) {
	var resultStr = '';
	var i =  0;
	var len = 0 ;
	if (str+'' == 'undefined' || str == null){return null;}
	str += '';
	if (str.length == 0){
		resultStr = '';
	}else{	
		len = str.length;					
  		while ((i <= len) && (str.charAt(i) == " ")){i++;}
  		resultStr = str.substring(i, len);
  	}		
  	return resultStr;
}

//Función que quita los espacios por la derecha.
//str:la cadena a limpiar.
function TrimRight(str) {
	var resultStr='';
	var i=0;
	if (str+'' == 'undefined' || str == null){return null;}
	str += '';
	if (str.length == 0){
		resultStr = '';
	}else{
  		i = str.length - 1;
  		while ((i >= 0) && (str.charAt(i) == ' ')){i--;}
	  	resultStr = str.substring(0, i + 1);
	}
	return resultStr;
}

//Nos valida los campos del curriculum
function compruebaForm()
{
var estado = true;

// Nombre
if (estado) {
	if (Trim(window.document.frmCurriculum.CURNOM.value) != '') estado = true;
	else {
		estado = false;
	     alert("Le champ du nom doit être rempli");
		}
	}

// Fecha Nacimiento
if (estado) {
	if (chequeaFecha(window.document.frmCurriculum.FECNAC)) estado = true;
	else estado = false;
	}
	
// Fecha Expedición del carnet
if (estado) {
	if (chequeaFecha(window.document.frmCurriculum.FECEXP)) estado = true;
	else estado = false;
	}
	
// Numero de hijos
if (estado) {
	if (!isNaN(window.document.frmCurriculum.CURHIJ.value)) estado = true;
	else {
		estado = false;
	     alert("Le champ enfants doit être de type num&eacute;rique");
		}
	}
	
// Dirección
if (estado) {
	if (Trim(window.document.frmCurriculum.CURDOM.value) != '') estado = true;
	else {
		estado = false;
	     alert("Le champ de l'adresse doit être rempli");
		}
	}	
	
// Código postal
if (estado) {
	if (Trim(window.document.frmCurriculum.CURDPT.value) != '' || Trim(window.document.frmCurriculum.CURDPT.value) != 0) estado = true;
	else {
		estado = false;
	     alert("Le champ du Code Postal doit être rempli");
		}
	}
	
if (estado) {
	if (!isNaN(window.document.frmCurriculum.CURDPT.value)) estado = true;
	else {
		estado = false;
	     alert("Le champ du Code Postal doit être de type num&eacute;rique");
		}
	}

// Provincia
if (estado) {
	if (window.document.frmCurriculum.CURPRV.value != 0) estado = true;
	else {
		estado = false;
	     alert("Veuillez s&eacute;lectionner un d&eacute;partement");
		}
	}
	
// Plazas
var cont = 0;
if (estado) {	
	for (var i=0; i < window.document.frmCurriculum.CURPL.length -1; i++)
		{
		if (window.document.frmCurriculum.CURPL[i].selected) cont = cont + 1;
		}
	if (cont > 3) { 
	     alert("Vous ne pouvez s&eacute;lectionner plus de trois lieux de travail");
		estado = false;
		}
	}
	
// Perfiles
var cont2 = 0;
if (estado) {	
	for (var i=0; i < window.document.frmCurriculum.CURPE.length -1; i++)
		{
		if (window.document.frmCurriculum.CURPE[i].selected) cont2 = cont2 + 1;
		}	
	if (cont2 > 5) { 
	     alert("Vous ne pouvez pas s&eacute;lectionner plus de cinq profils diff&eacute;rents");
		estado = false;
		}
	}
	
if (estado) return true;
else return false;
}

// Nos valida los campos del login
function compruebaLogin()
{
var estado = true;
// E-mail
if (estado) {
	if (Trim(window.document.frmCurriculum.CURMAI.value) != '') estado = true;
	else {
		estado = false;
	     alert("Le champ de l'email doit être rempli");
		}
	}
if (estado) {
	if (isEmail(window.document.frmCurriculum.CURMAI, 'CURMAI')) estado = true;
	else estado = false;
	}
// Password
if (estado) {
	if (Trim(window.document.frmCurriculum.CURPAS.value) != '' && Trim(window.document.frmCurriculum.CURPAS.value) != '') estado = true;
	else {
		estado = false;
	     alert("Le champ Mot de passe doit être rempli");
		}
	}
if (estado) {
	if (window.document.frmCurriculum.CURPAS.value == window.document.frmCurriculum.CURPAS.value) estado = true;
	else {
		estado = false;
	     alert("Veuillez v&eacute;rifier le mot de passe");
		}
	}
	
if (estado) return true;
else return false;
}

// Nos valida los campos del login LATERAL (RRHH)
function compruebaLogin2()
{
var estado = true;
// E-mail
if (estado) {
	if (Trim(window.document.frmLogin.LOGMAI.value) != '') estado = true;
	else {
		estado = false;
	     alert("Le champ de l'email doit être rempli");
		}
	}
if (estado) {
	if (isEmail(window.document.frmLogin.LOGMAI, 'LOGMAI')) estado = true;
	else estado = false;
	}
// Password
if (estado) {
	if (Trim(window.document.frmLogin.LOGASW.value) != '') estado = true;
	else {
		estado = false;
	     alert("Le champ Password doit être rempli");
		}
	}
if (estado) return true;
else return false;
}

// Nos valida los campos del login LATERAL (ECOMMERCE)
function compruebaLogin3()
{
var estado = true;
// Nombre Usuario
if (estado) {
	if (Trim(window.document.frmLogin.sUsrUsu.value) != '') estado = true;
	else {
		estado = false;	
	     alert("Le champ Utilisateur doit être rempli");
		window.document.frmLogin.sUsrUsu.focus();
		}
	}

//if (estado) {
//	if (Alphanumeric(window.document.frmLogin.sUsrUsu.value, '')) estado = true;
//	else {
//		estado = false;
//      alert("Introduire un utilisateur valide");
//		window.document.frmLogin.sUsrUsu.focus();
//		}
//	}

// Password
if (estado) {
	if (Trim(window.document.frmLogin.sUsrPwd.value) != '') estado = true;
	else {
		estado = false;
		alert('Le champ Password doit être rempli');
		window.document.frmLogin.sUsrPwd.focus();
		}
	}
if (estado) return true;
else return false;
}

