/* SOCIETE: KOLTECH */
/* AUTEUR: Aurélien Marchand */
/* DATE DE CREATION: 04/04/06 */
/*  Tous droits réservés */
// *****************************************************************
// Test des champs d'un formulaire
// *****************************************************************

// modification 20-04 résolution du BUG de validation sur l'adresse mail (possibilité de mettre 1 ou plusieurs points)



// *************Sommaire

// - n°1 -- test nombre de caracteres dans la chaine 
// Ce script peut être aussi utiliser pour verifier si un champ est rempli
// - function TestNbCaractere(element, nbCaractere)
// param -- element -> la chaine -- nbCaractere -> nombre de caracteres mini

// - n°2 -- test des adresse mail
// Ce script verifie la validité de l'adresse mail 
// - function TestMail(element)
// param -- element -> la chaine 


// - n°3 -- test des adresses des serveurs courriers
// Ce script verifie la validité de l'adresses du serveur courrier
// - function TestServeurCourier(element)
// param -- element -> la chaine 




// - n°1 test si le nombre de caratère contient le nombre mini de caratères
// element -> la chaine
// nbCaractere -> nombre de caracteres mini
function TestNbCaractere(element, nbCaractere){
	if(element.length>=nbCaractere)return true;
	else return false;
}


// - n°2 test d'un email
// element -> la chaine
function TestMail(element){
		var test=element;
		var point=false;
		var arobase=false;
		var nbAvantArobase=0;
		var nbApresArobase=0;
		var nbApresPoint=0;
		for(var k = 0; k < test.length;k++){
			var c = test.substring(k,k+1);
			if(c == "@"){
				arobase = true;
			}				
			if(c == "."){
				point=true;
			}	
			if(arobase == false){
				nbAvantArobase=nbAvantArobase+1;
			}
			if(arobase == true){
				nbApresArobase = nbApresArobase+1;
			}
			if(arobase == true && point==true){
				nbApresPoint = nbApresPoint+1;
			}
		}
		if(arobase == true && point==true && nbAvantArobase>0 && nbApresArobase>0 && nbApresPoint>2){
			return true;	
		}else{
			return false;
		}

}

// - n°3 test d'un compte POP ou SMTP
// element -> la chaine
function TestServeurCourier(element){
		var test=element;
		var point=0;
		var nbAvantPoint=0;
		var nbApresPoint=0;
		var nbFin=0;
		for(var k = 0; k < test.length;k++){
			var c = test.substring(k,k+1);
			if(c == "."){
				point = point+1;
			}				
			if(point == 0){
				nbAvantPoint=nbAvantPoint+1;
			}
			if(point == 1){
				nbApresPoint = nbApresPoint+1;
			}

		}
		if(point>0 && nbAvantPoint>0 && nbApresPoint>0){
			return true;	
		}else{
			return false;
		}

}

// - n°4 test si l'élément précédent est rempli 
// element1 -> la chaine
// element2 -> la chaine
function TestElementLiee(element1, element2){
	if(element2!="-1"){
		if(element1!="-1")return true;
		else return false;
	}else return true;
}

// - n°5 test si l'élément n'a pas dépassé le maximum de caractères autorisé
function TestNbCaractereMax(element, nbCaractere){
	if(element.length>nbCaractere)return false;
	else return true;
}

// - n°6 test adresse web
function TestAdresseWeb(element){
	element=element.toUpperCase();
	var temp=element.substring(0,7);
	if(temp!="HTTP://")return false;
	else return true;
}

// - n°7 test si différent de ...
// element -> la chaine
// caractere ->  caracteres (ou chaine) à tester
function TestDifference(element, caractere){
	if(element!=caractere)return true;
	else return false;
}



// - n°8 test si différent la chaine est un nombre valide
// element -> la chaine
function TestNombre(element){
	if( element*0 !=0)return false;
	else return true;
}

// - n°9 test si différent la chaine est un date du type aaaa-mm-jj
// element -> la chaine
function TestDate(element){
	if( element.length!=10)return false;
	if( element.substring(4,5)!="-")return false;
	if( element.substring(7,8)!="-")return false;
	if( !TestNombre(element.substring(0,4)))return false;
	if( !TestNombre(element.substring(5,7)))return false;
	if( !TestNombre(element.substring(8,10)))return false;
	return true;
}
// - n°10 test si différent la chaine est un date du type jj/mm/aaaa
// element -> la chaine
function TestDateSlash(element){
	if( element.length!=10)return false;
	if( element.substring(2,3)!="/")return false;
	if( element.substring(5,6)!="/")return false;
	if( !TestNombre(element.substring(0,2)))return false;
	if( !TestNombre(element.substring(3,5)))return false;
	if( !TestNombre(element.substring(6,10)))return false;
	return true;
}

// - n°11 test si différent la chaine est un date du type aaaa
// element -> la chaine
function TestAnnee(element){
	if( element.length!=4)return false;
	if( !TestNombre(element))return false;
	return true;
}
// - n°12 test si différent la chaine est un date du type aaaa
// element -> la chaine
function TestMoisAnnee(element){
	if( element.length!=7)return false;
	if( element.substring(2,3)!="-")return false;
	if( !TestNombre(element.substring(0,2)))return false;
	if( !TestNombre(element.substring(3,5)))return false;
	return true;
}
