//***********************************************************************************
//* Js/Ctrl.js    : pour faire les contrôles de saisie sur téléphone, mail, date,
//*                 zone de texte vide, recherche dans une combo, navigateur utilisé
//***********************************************************************************

////////////////// CONTROLES COMMUNS //////////////////////////////////////////////////
//************************************interaction utilisateur/navigateur

////////////////// CONTROLES COMMUNS //////////////////////////////////////////////////
//retourne le type de navigateur utilisé IE ou Netscape
function Navigateur()
{
	var strTypeNav;  //type de navigateur retourné
	
	if (navigator.userAgent.toLowerCase().indexOf("msie") != -1)
	{
		strTypeNav = "msie";
	}
	if (navigator.userAgent.toLowerCase().indexOf("mozilla") != -1 && navigator.userAgent.toLowerCase().indexOf("opera") == -1 && navigator.userAgent.toLowerCase().indexOf("compatible") == -1)
	{
		strTypeNav = "netscape";
	}
	return strTypeNav;
}

//*******************contrôle de plate-forme et navigateur
function CtrlPlatform()
{
	//plate-forme sous laquelle tourne l'application
	//pour quelle fonctionne sous IE 5.5 sous MAC, il faut activer la sécurité de transfert de données sur le navigateur
	//alert(navigator.appVersion);
	if (navigator.platform.search(/mac/i) != -1 && navigator.appVersion.search(/msie 5/i) != -1)
	{
		str = "Cochez la case \"Avant d'envoyer un formulaire non sécurisé\"\n"
		str = str + "pour que l'application fonctionne correctement\n";
		str = str + "dans le menu Edition/Préférences/Sécurité/Alertes";
		alert(str);
	}
}
// Controle du mail
function CtrlMail(mail) {
      if ((mail.indexOf("@")>=0)&&(mail.indexOf(".")>=0)) {
         return true 
      } else {         
         return false
      }
   }

	
//permet de se déplacer dans la liste en fonction de ce qui est tapé dans la zone de texte
function Recherche(strVal,NomCombo)
{
	//strVal est ce qui tapé dans la zone de texte
	var strCombo//première partie de la valeur de l'item choisi dans la combo coorepondant à ce qui est affiché dans celle-ci
	var strCar; //correspond aux premiers caractères de la valeur dans la combo découpée suivant la même longueur que strVal
	var i;      //indice qui sera sélectionné
	
	if(strVal.length != 0 && NomCombo[NomCombo.selectedIndex].value != "RIEN")
	{
			
		for (i=0;i<NomCombo.options.length;i++)
		{
			//ce qui est affiché dans la combo est la première partie de la valeur de l'item
			strCombo = NomCombo[i].value.split(/#/)[0];
			strCar = strCombo.substring(0,strVal.length);
			if (strCar.toUpperCase() >= strVal.toUpperCase())
			{
				NomCombo.selectedIndex = i;
				break;
			}
		}
	}
}

//affiche la valeur de la combo dans la zone de texte 
function Affiche(NomZone,NomCombo)
{
	var i;         //indice
	var tblVal;     //pour afficher dans la zone de texte
	
	for (i=0;i<NomCombo.options.length;i++)
	{
		if (NomCombo.selectedIndex == i)
		{
			//la valeur de la combo est concaténée avec un #
			tblVal = NomCombo[NomCombo.selectedIndex].value.split(/#/); 
			NomZone.value = tblVal[0];
		}
	}
}

//pour remettre le focus sur une zone de texte en fonction du navigateur
function Focus(NomZone)
{
	if (Navigateur() == "netscape")
	{
		NomZone.focus();
	}
	if (Navigateur() == "msie")
	{
		NomZone.select();
	}
}

////////////// fonctions utilisees dans evenement.asp /////////////////////
		function CtrlVide(NomZone)
		{
			var strRep;  //message qui est retourné
	
			strRep = "";
			if (NomZone.value == "")
			{
				strRep = "Entrez les champs obligatoires !";
				Focus(NomZone);
			}
			return strRep;
		}



//pour vérifier la validité d'une date
function CtrlDate(NomZone)
{
	//contrôle de la forme globale
	var strVal;    //valeur saisie dans la zone
	var intJour;   //n° du jour entré
	var intMois;   //n° du mois entré
	var intAnnee;  //n° de l'année entrée
	var strRep;    //message retourné par l'application
	
	strVal = NomZone.value;	
	strRep = "";
	if (!CtrlVide(strVal))
	{
		if ((strVal.search(/\d{2}\/\d{2}\/\d{4}/) == -1)&&(strVal.search(/\d{2}\/\d{2}\/\d{2}/) == -1)&&(strVal.search(/\d{1}\/\d{2}\/\d{2}/) == -1)&&(strVal.search(/\d{2}\/\d{1}\/\d{2}/) == -1)&&(strVal.search(/\d{1}\/\d{1}\/\d{2}/) == -1))
		{
			strRep = "Entrer la date sous la forme JJ/MM/AAAA";
			Focus(NomZone);
		}
		else
		{
			intMois = strVal.substr(0,2);
			intJour = strVal.substr(3,2);
			intAnnee = strVal.substr(6,4);
			if (intAnnee > 2100)
			{
				strRep = "Date invalide";
				Focus(NomZone);
			}
			else if (intMois == 1 || intMois == 3 || intMois == 5 || intMois == 7 || intMois == 8 || intMois == 10 || intMois == 12)
			{
				if (intJour <= 0 || intJour > 31)
				{
					strRep = "Date invalide";
					Focus(NomZone);
				}
			}
			else if (intMois == 4 || intMois == 6 || intMois == 9 || intMois == 11)
			{
				if (intJour <= 0 || intJour > 30)
				{
					strRep = "Date invalide";
					Focus(NomZone);
				}
			}
			else if (intMois == 2)
			{
				if (intJour <= 0 || intJour > 29)
				{
					strRep = "Date invalide";
					Focus(NomZone);
				}
				else
				{
					//le jour ne peut être qu'entre 1 et 29 
					//les années bissextiles sont divisibles par 4 et non par 100
					//ou divisible par 100 et par 400
					if (!((intAnnee%4 == 0 && intAnnee%100 != 0) || (intAnnee%100 == 0 && intAnnee%400 == 0)))
					{
						if (intJour == 29)
						{
							strRep = "Date invalide";
							Focus(NomZone);
						} 
					}
				}
			}
			else if (intMois <= 0 || intMois > 12)
			{
				strRep = "Date invalide";
				Focus(NomZone);
			}
		}
	}
	return strRep;	 
}

//pour vérifier la validité d'une date en francais
function CtrlDateFr(NomZone)
{
	//contrôle de la forme globale
	var strVal;    //valeur saisie dans la zone
	var intJour;   //n° du jour entré
	var intMois;   //n° du mois entré
	var intAnnee;  //n° de l'année entrée
	var strRep;    //message retourné par l'application
	
	strVal = NomZone.value;	
	strRep = "";
	if (!CtrlVide(strVal))
	{
		if ((strVal.search(/\d{2}\/\d{2}\/\d{4}/) == -1)&&(strVal.search(/\d{2}\/\d{2}\/\d{2}/) == -1))
		{
			strRep = "Entrer la date sous la forme JJ/MM/AAAA";
			Focus(NomZone);
		}
		else
		{
			intJour = strVal.substr(0,2);
			intMois = strVal.substr(3,2);
			intAnnee = strVal.substr(6,4);
			if (intAnnee > 2100)
			{
				strRep = "Date invalide";
				Focus(NomZone);
			}
			else if (intMois == 1 || intMois == 3 || intMois == 5 || intMois == 7 || intMois == 8 || intMois == 10 || intMois == 12)
			{
				if (intJour <= 0 || intJour > 31)
				{
					strRep = "Date invalide";
					Focus(NomZone);
				}
			}
			else if (intMois == 4 || intMois == 6 || intMois == 9 || intMois == 11)
			{
				if (intJour <= 0 || intJour > 30)
				{
					strRep = "Date invalide";
					Focus(NomZone);
				}
			}
			else if (intMois == 2)
			{
				if (intJour <= 0 || intJour > 29)
				{
					strRep = "Date invalide";
					Focus(NomZone);
				}
				else
				{
					//le jour ne peut être qu'entre 1 et 29 
					//les années bissextiles sont divisibles par 4 et non par 100
					//ou divisible par 100 et par 400
					if (!((intAnnee%4 == 0 && intAnnee%100 != 0) || (intAnnee%100 == 0 && intAnnee%400 == 0)))
					{
						if (intJour == 29)
						{
							strRep = "Date invalide";
							Focus(NomZone);
						} 
					}
				}
			}
			else if (intMois <= 0 || intMois > 12)
			{
				strRep = "Date invalide";
				Focus(NomZone);
			}
		}
	}
	return strRep;	 
}


	
	
/////////////////////// CONTROLES DE LA FICHE INFO ///////////////////////

//page 1

function valider_date()
{  
	var StrMess;
	StrMess="";		
	

		StrMess = CtrlDate(document.form.datedebut)		
		if (StrMess=="")
		{
			 StrMess = CtrlDate(document.form.datefin)
				
		}	 	
		
		
		if (StrMess!="") 
		{			
			alert (StrMess);			
			return false;			
		}	
		else
			return true;	

}


//controle sur le bouton Validation définitive pour la fiche offreur
	function Confirmation()
			{
				return confirm('Etes-vous sûr de vouloir finaliser la saisie de votre fiche ? En cliquant sur Valider un mail sera automatiquement envoyé à Carif Gentiane')
			}		
	
//controle sur le bouton Validation définitive pour la fiche stage
	function ConfirmationS()
			{
				return confirm('Etes-vous sûr de vouloir finaliser la saisie de l offre de stage ? En cliquant sur Valider un mail sera automatiquement envoyé à Carif Gentiane')
			}		
	
//controle sur la page de validation du diplome
	
function valid_diplome()
				{
					var StrMess="";				
     				if ((document.form2.libelle.value=="")&&(document.form2.bouton.value==4))  
     				{
     					 StrMess="Veuillez mettre un intitulé"
     				}
     				
     				
     				if (StrMess=="")	
     				{
     					return (true)
     				}	
     				else	
     				{
     					alert (StrMess)
     					return (false)
     				}					 
				}
//controles sur la validation des domaines
function valid_domaines()
				{
					var StrMess="";				
					
     				if ((document.form2.domaine.value==0)&&(document.form2.bouton.value==4))
     				{
     					 StrMess="Veuillez choisir un domaine";
     				}     				
     				
     				
     				if (StrMess=="")	
     				{
     					return (true)
     				}	
     				else	
     				{
     					alert (StrMess)
     					return (false)
     				}					 
				}
				
	function valid_rh()
				{
					var StrMess="";				
     				if (document.form.fonction.value==0)
     				{
     					 StrMess="Veuillez sélectionner une fonction";
     				}
     				
     				if ((document.form.nom.value=="")&&(document.form.prenom.value==""))  
     				{
     					 StrMess="Le nom et/ou le prénom ne sont pas renseignés"
     				}	 	 
     				
     				if (StrMess=="")	
     				{
     					return (true)
     				}	
     				else	
     				{
     					alert (StrMess)
     					return (false)
     				}	
     				
				}				
				
function valid_administratif()
	{
	
		//chacun des champs doit faire 2 caracteres  ou 4	
		with (document.form)
		{
			if ((jour.value.length !=2)||(isNaN(jour.value) == true)||(jour.value>31)) 
				StrMess="Le jour n'est pas valide";	

			if ((mois.value.length !=2)||(isNaN(mois.value) == true)||(mois.value>12)) 
				StrMess="Le mois n'est pas valide";	

			if ((annee.value.length != 4) || (isNaN(annee.value) == true)||(annee.value<1920)||(annee.value>2050))  
				StrMess="L'année n'est pas valide";							
		}		
			
		if (StrMess=="")	
     			{
     				return (true)
     			}	
     			else	
     			{
     				alert (StrMess)
     				return (false)
     			}				
     }							
