// Vérification des champs de la recherche
function trySubmit () {
    var f = document.forms [0];
	var sSelect0, sSelect1, sSelect;
	var nom = f.nom.value;
	var value = false ;
	var vRole = "" ;
	
	sSelect0 = "SELECT * FROM personalExtend pe, personal p, roles r, dictionnary dic1 ";
	sSelect1 = sSelect0 + "WHERE p.personalId = pe.personalId AND pe.roleid = r.roleid AND "; 
	sSelect = sSelect1 + "dic1.referenceId = r.nameid AND dic1.languageId = 1 ";
	
	// Création de la requete pour le champ "NOM"
	if (f.nom.value.length != 0) {
		vNom = "";
	    if (verifName (f.nom.value)) {
			for (i=0; i<=f.nom.value.length; i++) {
				if (f.nom.value.charAt (i) == '*') {
					f.nom.value = f.nom.value.replace ('*', '%');
				}
			}							
			vNom = " AND p.firstname LIKE '" + f.nom.value + "'"; 
			value = true ;
	    } else {
			return false;
		}
	} else {
		document.forms [0].nom.value = "";
		vNom = "";
		if (!value) value=false ;		
	}
	
	// Création de la requete pour le champ "PRENOM"
	if (f.prenom.value.length != 0) {
		vPrenom = "";	
    	if (verifFirstname (f.prenom.value)) {
			for (i=0; i<=f.prenom.value.length; i++) {
				if (f.prenom.value.charAt (i) == '*') {
					f.prenom.value = f.prenom.value.replace ('*', '%');
				}				
			}					
			vPrenom = " AND p.lastname LIKE '" + f.prenom.value + "'";
			value = true ;				
  		} else {
			return false;
		}
	} else {
		document.forms [0].prenom.value = "";
		vPrenom = "";
		if (!value) value=false ;		
	}				
	
	// Création de la requete pour le champ "TELEPHONE"	
    if (f.telephone.value.length != 0) {
		vTelephone = "";
    	if (verifTelephone (f.telephone.value)) {
			for (i=0; i<=f.telephone.value.length; i++) {
				if (f.telephone.value.charAt (i) == '*') {
					f.telephone.value = f.telephone.value.replace ('*', '%');
				}
			}
			vTelephone = " AND pe.phone LIKE '" + f.telephone.value + "'";
			value = true ;				
  		} else {
			return false;
		}
	} else {
		document.forms [0].telephone.value = "";
		vTelephone = "";
		if (!value) value=false ;					
	}
		
	// Création de la requete pour le champ "MOT CLES"		
    if (f.motcles.value.length != 0) {
    	if (verifMotcles (f.motcles.value)) {
			for (i=0; i<=f.motcles.value.length; i++) {
				if (f.motcles.value.charAt (i) == ' ') {
					f.motcles.value = f.motcles.value.replace (' ', ';');
				}
				if (f.motcles.value.charAt (i) == ',') {
					f.motcles.value = f.motcles.value.replace (',', ';');
				}
				if (f.motcles.value.charAt (i) == '.') {
					f.motcles.value = f.motcles.value.replace ('.', ';');
				}
				if (f.motcles.value.charAt (i) == '*') {
					f.motcles.value = f.motcles.value.replace ('*', '%');
				}				
			}		
			vMotcles = getSQLMotCles (f.motcles.value);
			value = true ;				
  		} else {
			return false;
		}
	} else {
		document.forms [0].motcles.value = "";
		vMotcles = "";
		if (!value) value=false ;						
    }
	
	// Création de la requete pour le champ "ROLE"	
	vRole = reportMultiple(value);
	if (vRole != "" ) value=true;

	// Création de la requete finale
	if (value) {	
		document.forms [0].requete.value = sSelect + vNom + vPrenom + vTelephone + vMotcles + vRole;		
		document.forms [0].nom.value = "";
		document.forms [0].prenom.value = "";
		document.forms [0].telephone.value = "";
		document.forms [0].motcles.value = "";
		return true ;
	} else {
		alert ("Veuillez rentrer au moins 1 critère de recherche !");
		return  false;		
	}		
}

// Vérification du champ "NOM"
function verifName (name) {
    if (name.length != 0 && name.length > 2) {
		x = 0;		
		while (name.length > 0 && name.charAt (0) == ' ') 
			name = name.substring (1);
		while (name.length > 0 && name.charAt (name.length - 1) == ' ') 
			name = name.substring (0, name.length - 1);				
        var commaIndex = name.lastIndexOf (',');
		var spaceIndex = name.lastIndexOf (' ');
				
		if (commaIndex < 0 && spaceIndex < 0)
		    userName = name;			
		else if (commaIndex < 0 && spaceIndex >= 0)
		    userName = name.substring (spaceIndex + 1);
		else if (commaIndex >= 0 && spaceIndex < 0)
		    userName = name.substring (0, commaIndex);
		else {
		    var minIndex = (commaIndex < spaceIndex) ? commaIndex : spaceIndex;
		    userName = name.substring (0, minIndex);			
		}
				
		var u = userName.toLowerCase ();
		x = 0;		
		for (i=0; i<=u.length; i++) {
			if (u.charAt (i) == '*') {
				x = x + 1;
			}
		}
		
		if (x > 2) {
			alert ("Erreur dans le champs 'Nom'. Trop de: '*'");
			return false;
		}			
		return true;
	} else {
		alert ("Erreur dans le champs 'Nom'");
		return false;
	}
}

// Vérification du champ "PRENOM"
function verifFirstname (firstname) {
    if (firstname.length != 0 && firstname.length > 2) {
		while (firstname.length > 0 && firstname.charAt (0) == ' ') 
			firstname = firstname.substring (1);
		while (firstname.length > 0 && firstname.charAt (firstname.length - 1) == ' ') 
			firstname = firstname.substring (0, firstname.length - 1);	
        var commaIndex = firstname.lastIndexOf (',');
		var spaceIndex = firstname.lastIndexOf (' ');
		
		if (commaIndex < 0 && spaceIndex < 0)
		    userFirstname = firstname;
		else if (commaIndex < 0 && spaceIndex >= 0)
		    userFirstname = firstname.substring (spaceIndex + 1);
		else if (commaIndex >= 0 && spaceIndex < 0)
		    userFirstname = firstname.substring (0, commaIndex);
		else {
		    var minIndex = (commaIndex < spaceIndex) ? commaIndex : spaceIndex;
		    userFirstname = firstname.substring (0, minIndex);
		}			
		var u=userFirstname.toLowerCase ();
		x = 0;		
		for (i=0; i<=u.length; i++) {
			if (u.charAt (i) == '*') {
				x = x + 1;
			}
		}
		if (x > 2) {
			alert ("Erreur dans le champs 'Prénom'. Trop de: '*'");
			return false;
		}						
		return true;
	} else {
		alert ("Erreur dans le champs 'Prénom'");
		return false;
	}
}

// Vérification du champ "TELPHONE"
function verifTelephone (telephone) {
    if (telephone.length != 0 && telephone.length > 2) {
		while (telephone.length > 0 && telephone.charAt (0) == ' ') 
			telephone = telephone.substring (1);
		while (telephone.length > 0 && telephone.charAt (telephone.length - 1) == ' ') 
			telephone = telephone.substring (0, telephone.length - 1);	
		if (chkNum(telephone)) {
			x = 0;
			for (i=0; i<=telephone.length; i++) {
				if (telephone.charAt (i) == '*') {
					x = x + 1;
				}
			}
			if (x > 2) {
				alert ("Erreur dans le champs 'Téléphone'. Trop de: '*'");
				return false;
			}							
			return true;
		}
	} else {
		alert ("Erreur dans le champs 'Téléphone'");
		return false;
	}
}

// Vérification du champ "MOT CLES"
function verifMotcles (motcles) {
    if (motcles.length != 0 && motcles.length > 2) {
		var u=motcles.toLowerCase ();
		x = 0;		
		for (i=0; i<=u.length; i++) {
			if (u.charAt (i) == '*') {
				x = x + 1;
			}
		}
		if (x > 2) {
			alert ("Erreur dans le champs 'Mot cles'. Trop de: '*'");
			return false;
		}				
		return true;
	} else {
		alert ("Erreur dans le champs 'Mot cles'");
		return false;
	}
}

// Vérification du champ "ROLE"
function reportMultiple(criteres) {
	var options_string = "";
	var vRole = "";
	var the_select = window.document.forms[0].role;
	last = 0
	for (loop=1; loop < the_select.options.length; loop++) {
		if (the_select.options[loop].selected == true) {

			if (last >= 1)
			 	vRole = vRole + " OR ";
			 options_string = the_select.options[loop].text;
			 vRole = vRole + " dic1.description = '" + options_string + "' ";
			 last = last+1; 			 
		}
	}
	if (vRole != "") {
		vRole = " AND (" + vRole + ")";
	} 		
	return vRole
}

function chkNum(telephone)
{
	var checkOK = "0123456789*";
	var checkStr = telephone;
	var allValid = true;
	var allNum = "";

	for (i = 0;  i < checkStr.length;  i++)
	{
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
				break;
		if (j == checkOK.length)
		{
			allValid = false;
			break;
		}
	}
	if (!allValid)
	{	
		alertsay = "Les valeurs autorisées sont \""
		alertsay = alertsay + checkOK + "\" dans le champ téléphone."
		alert(alertsay);
		return (false);
	} else {
		return true;
	}
}

function getSQLMotCles(motcles) {	
	for (i=0; i<=motcles.length; i++) {
		if (motcles.charAt (i) == ';' && motcles.charAt (i+1) != "") {
			motcles = motcles.replace (';', '\' AND pe.keywords LIKE \'');
		}
	}	
	return (" AND pe.keywords LIKE \'" + motcles + "\'") ;
}

