//================================================================================
// Librairie de fonctions communes
//================================================================================
var valDefault;
var valType;
var valRequis;
var valDefaut;

//--------------------------------------------------------------------------------
// Fonction D'extraction des attributs propri�taires des input
function funcExtract(varElement,varTyp)
	{
	if (varElement.alt != '')
		{
		if (varElement.alt)
			switch (varTyp)
				{
				case 'nom' :
					return varElement.alt.substr(4 , varElement.alt.indexOf('|')-4);
				case 'type' :
					return varElement.alt.substr(varElement.alt.indexOf('|Type:',0)+6 , varElement.alt.indexOf('|Requis:',0)-(varElement.alt.indexOf('|Type:',0)+6));
				case 'requis' :
					return varElement.alt.substr(varElement.alt.indexOf('|Requis:')+8 , 3);
				case 'max' :
					if(varElement.alt.indexOf('|Max:',0) > -1) 
						return varElement.alt.substr(varElement.alt.indexOf('|Max:',0)+5 , varElement.alt.indexOf('|Defaut:',0)-(varElement.alt.indexOf('|Max:',0)+5));
					else
						return "";
				case 'defaut' :
					return varElement.alt.substr(varElement.alt.indexOf('|Defaut:')+8 , varElement.alt.length-(varElement.alt.indexOf('|Defaut:')+8));
				}				
		else
			switch (varTyp)
				{
				case 'nom' :
					return varElement.id.substr(4 , varElement.id.indexOf('|')-4);
				case 'type' :
					return varElement.id.substr(varElement.id.indexOf('|Type:',0)+6 , varElement.id.indexOf('|Requis:',0)-(varElement.id.indexOf('|Type:',0)+6));
				case 'requis' :
					return varElement.id.substr(varElement.id.indexOf('|Requis:')+8 , 3);
				case 'max' :
					if(varElement.id.indexOf('|Max:',0) > -1) 
						return varElement.id.substr(varElement.id.indexOf('|Max:')+5 , varElement.id.indexOf('|Defaut:',0)-(varElement.id.indexOf('|Max:',0)+5));
					else
						return "";	
				case 'id' :
					return varElement.id.substr(varElement.id.indexOf('|id:',0)+4 , varElement.id.length-(varElement.id.indexOf('|id:')+4));
				case 'defaut' :
					return varElement.id.substr(varElement.id.indexOf('|Defaut:')+8 , varElement.id.length-(varElement.id.indexOf('|Defaut:')+8));
				}

		}
	else
		return '';
	}

//--------------------------------------------------------------------------------
// Fonction d'initialisation d'un formulaire
varInit = false;
function funcFormInit(varForm)
	{
	if (varInit == false)
		{
		//--- Affectation des valeurs par d�faut
		for (var i = 0; i < varForm.length; i++)
			{
			valDefault = funcExtract(varForm.elements[i],'defaut');
			if ((varForm.elements[i].value == "") && (valDefault != 'undefined'))
				{
				varForm.elements[i].value = valDefault;
				}
			valType = funcExtract(varForm.elements[i],'type');	
 			  if ((valType == "Dat") && (varForm.elements[i].value  == "")) 
				{
				strDate = new Date();
				strDay = strDate.getDate().toString();
				if (strDay.length == 1) {strDay = "0"+ strDay;}
				strMonth = (strDate.getMonth()+1).toString();
				if (strMonth.length == 1) {strMonth = "0"+ strMonth;}
				strYear = strDate.getYear();
				varForm.elements[i].value = strDay +"/"+ strMonth +"/"+ strYear;
				}
			}
		}
	varInit = true;
	}

//--------------------------------------------------------------------------------
// Fonction de contr�le de saisie d'un formulaire
var varPwdCtrl 		= "";
var varEmailCtrl 	= "";


function funcCtrlSaisie(varForm)
	{
	var StatutValid = 'OK';
	var statutSelect = 'NON';
	var strMessage  = '';
	var strCheckbox = '';
	var strRadio    = '';

        //--- Réinitlisation de l'aspect des champs (s'ils ont été précédemment en erreur de saisie)
	for (var i = 0; i < varForm.length; i++)
		{
		funcInitField(varForm.elements[i]);
		}

/*	for (i = 0; i < varForm.length; i++)
		{
		if (varForm.elements[i].name)
			alert(varForm.elements[i].name + ' - ' + varForm.elements[i].type);
		}
*/		
        for (var i = 0; i < varForm.length; i++)
		{
		//alert(varForm.elements[i].name);
		//--- Contr�le des champs obligatoires
		if (varForm.elements[i].name)
                    {
                    if(varForm.elements[i].disabled == false)
					{
			if (varForm.elements[i].name.toLowerCase() == 'rmcontactuid')
				{
				if (varForm.elements[i].value != '')
					{
					if (!funcCtrlLogin(varForm.RmContactId.value, varForm.elements[i].value, varForm.SysWebId.value))
						{
						strMessage = strMessage + "Ce login est déjà utilisé. Choisissez-en un autre.\n";
						funcErrorField(varForm.elements[i]);
						StatutValid = ""
						}
					}
				}
				
/*			if (varForm.elements[i].name.toLowerCase() == 'rmcontactemail') 
				{
//alert('rmcontactemail : ' + varForm.elements[i].name + ' - ' + varForm.elements[i].type);					
				if ((varForm.elements[i].value != '') && (varForm.elements[i+1].name == varForm.elements[i].name + '_ctl'))
//					{
//					alert('ctlemail 1');						
//					if (varForm.elements[i+1].name == varForm.elements[i].name + '_ctl')
					{
					if (varForm.elements[i].value != varForm.elements[i+1].value)
						{
						strMessage = strMessage + "La 2�me adresse Email saisie pour confirmation est diff�rente.\n Veuillez recommencer.";
						varForm.elements[i].value = "";
						varForm.elements[i+1].value = "";					
						varPwdCtrl = "";
						StatutValid = "";
						break
						}
	//					alert(varForm.RmContactId.value + ' - ' + varForm.elements[i].value + ' - ' + varForm.SysWebId.value);
					if (!funcCtrlEmail(varForm.RmContactId.value, varForm.elements[i].value, varForm.SysWebId.value))
						{
						strMessage = strMessage + "\nCette adresse e-mail est d�j� utilis�e.\nVous devez certainement poss�der un compte.\nIdentifiez-vous.\n\n";
						funcErrorField(varForm.elements[i]);
						StatutValid = "NON"
						}
					}
				}
*/
//		if (varForm.elements[i].valoblig == "Oui")

			if (funcExtract(varForm.elements[i],'requis') == 'Oui')
				{
//alert('Txt : ' + varForm.elements[i].name + ' - ' + varForm.elements[i].type);
				//alert('Type champ : '+varForm.elements[i].type);
				switch (varForm.elements[i].type)
					{
					
					case 'checkbox' :
					  if (strCheckbox != funcExtract(varForm.elements[i],'nom'))
							{
							strCheckbox = funcExtract(varForm.elements[i],'nom');
							statutSelect = "NON";
						  for (var j=i;j<varForm.elements.length;j++)
								{
								if (strCheckbox == funcExtract(varForm.elements[j],'nom'))
									{
									if (varForm.elements[j].checked)
										statutSelect = 'OK';		
									}
								}
							if (statutSelect != 'OK')
								{
								strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" est obligatoire,\n vous devez le remplir \n"
								funcErrorField(varForm.elements[i-1]);
								StatutValid = "NON"
								}	
							}
						break;	
					
					case 'select-multiple' :
						//alert('select multi');
						statutSelect = "NON";
						if($('select[name="'+varForm.elements[i].name+'"]').val())
							statutSelect = 'OK';
							
					case 'select-one' :
						statutSelect = "NON";
						for (var j=0;j<varForm.elements[i].options.length;j++)
							{
							//alert($('select[name="sond-80-201-te"]').val());
							if (varForm.elements[i].options[j].selected)
								// Cas particulier Civilit�, champ vide id = 1
								if (varForm.elements[i].name == 'RmCivilityId') {
									if (varForm.elements[i].options[j].value != '1') {
										statutSelect = 'OK';
									}
								}else if ((varForm.elements[i].name == 'KbStructureId') && (varForm.elements[i].options[j].value != '' )){
									if (varForm.elements[i].options[j].value == '14') {
											varForm.elements[i+1].value = varForm.elements[i+1].value.replace(/(^\s*)|(\s*$)/g,"");
											if (varForm.elements[i+1].value == ''){
												strMessage = strMessage + "Le champ \"Autre appartenance\" est obligatoire,\n vous devez le remplir \n";
												funcErrorField(varForm.elements[i+1]);
												StatutValid = "NON";
											}
											statutSelect = 'OK';
									}else {
										statutSelect = 'OK';										
									}
								}else {
									
									if (varForm.elements[i].options[j].value != '' ) {
										statutSelect = 'OK';
									}
								}
							}
						if (statutSelect != 'OK')
							{
							strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" est obligatoire,\n vous devez le remplir \n";
							funcErrorField(varForm.elements[i]);
							StatutValid = "NON"
							}
						break;					

					case 'text' :
						
						varForm.elements[i].value = varForm.elements[i].value.replace(/(^\s*)|(\s*$)/g,"");
						
						if ((varForm.elements[i].value.length < 1) || (varForm.elements[i].value == "VIDE"))
							{
							strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" est obligatoire,\n vous devez le remplir \n"
							funcErrorField(varForm.elements[i]);
							StatutValid = ""
							}
						else
							if (varForm.elements[i].value.length > varForm.elements[i].maxlength)
								{
								strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" est trop long (" + varForm.elements[i].value.length + " caractères).\nIl ne doit pas dépasser " + varForm.elements[i].maxlength + " caractères.\n"
								funcErrorField(varForm.elements[i]);
								StatutValid = ""
								}
							else
								{
								if ((funcExtract(varForm.elements[i],'type') == "Mail") || (funcExtract(varForm.elements[i],'type') == "Web"))
									var strCar = new Array('http://');
								else
									var strCar = new Array('www', 'http://');
								for (j = 0; j < strCar.length; j++)
									{
									if (varForm.elements[i].value.toLowerCase().indexOf(strCar[j]) > -1)
										{
										strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" ne peut contenir pas contenir les caractères suivants \"" + strCar[j] + "\"\n"
										funcErrorField(varForm.elements[i]);
										StatutValid = "NON";
										break
										}
									}
								}
						break
						
					case 'textarea' :
					
						if ((varForm.elements[i].value.length < 1) || (varForm.elements[i].value == "VIDE"))
							{
							strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" est obligatoire,\n vous devez le remplir \n"
							funcErrorField(varForm.elements[i]);
							StatutValid = "NON";
							}
						else 
							{
								tmpMax = funcExtract(varForm.elements[i],'max');
								tmpReg1	= new RegExp("(\n)", "g");
								tmpVal = varForm.elements[i].value;
								tmpVal = tmpVal.replace(tmpReg1, '<br>');
								if (tmpMax != "" && tmpVal.length > eval(tmpMax))
								{
								strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" est trop long (" + tmpVal.length + " caractères).\nIl ne doit pas dépasser " + tmpMax + " caractères.\n"
								funcErrorField(varForm.elements[i]);
								StatutValid = "NON";
								} 
								else if (varForm.elements[i].value.length > varForm.elements[i].maxlength)
								{
								strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" est trop long (" + varForm.elements[i].value.length + " caractères).\nIl ne doit pas dépasser " + varForm.elements[i].maxlength + " caractères.\n"
								funcErrorField(varForm.elements[i]);
								StatutValid = "NON";
								}
								if (funcExtract(varForm.elements[i],'type') == "Mail")
									var strCar = new Array('http://');
								else if (funcExtract(varForm.elements[i],'type') == "Web")
									var strCar = new Array('@', 'http://');
								else
									//var strCar = new Array('@', 'www', 'http://');
									var strCar = new Array('www', 'http://');
								for (j = 0; j < strCar.length; j++)
									{
									if (varForm.elements[i].value.toLowerCase().indexOf(strCar[j]) > -1)
										{
										strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" ne peut pas contenir les caractères suivants \"" + strCar[j] + "\"\n"
										funcErrorField(varForm.elements[i]);
										StatutValid = "NON";
										break
										}
									}
							}
						break

					case 'radio':
						var strRadioFlag    = 0;
						var strType         = funcExtract(varForm.elements[i],'type')
					 //   var strInputId      = varForm.elements[i].id;
						var strInputName    = varForm.elements[i].name;
						var objImputName    = document.getElementsByName(strInputName);
						statutSelect = "NON";
	
						if (( strType  == "radio-list") ){
	
							for (var j = 0 ; j< objImputName.length ; j++ ){
								if (objImputName[j].checked){
									statutSelect = 'OK';
									strRadioFlag = 1;
								}
							}
							//alert(strRadioFlag);
							if(strRadioFlag == 0){
								strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" est obligatoire,\n vous devez le remplir \n"
								funcErrorField(varForm.elements[i]);
								StatutValid = "NON"
							}
						}
						else{
							//alert(strType);
						}
	
						break;
                                                    
/*					case 'password' :
						if ((varForm.elements[i].value.length < 1) || (varForm.elements[i].value == "VIDE"))
							{
							strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" est obligatoire,\n vous devez le remplir \n"
							funcErrorField(varForm.elements[i]);
							StatutValid = "NON"
							}
						break	*/
					}
				}

			//--- Contr�le des champs Upload Image
			if (funcExtract(varForm.elements[i],'type') == "Img" && varForm.elements[i].value.length > 0)
				{
//alert('Img : ' + varForm.elements[i].name + ' - ' + varForm.elements[i].type);					
				var strCar = ".GIF, .JPG, .JPEG, .PNG"
				var strExt = varForm.elements[i].value.substring(varForm.elements[i].value.length-4,varForm.elements[i].value.length).toUpperCase()
				if (strCar.indexOf(strExt) < 0)
					{
					strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" doit être un fichier du type \"" + strCar + "\"\n"
					funcErrorField(varForm.elements[i]);
					StatutValid = "";
					}
				}

                        //--- Contr�le des champs Num�riques
			if (funcExtract(varForm.elements[i],'type') == "Tel" && varForm.elements[i].value.length > 0)
			{
//alert('Num : ' + varForm.elements[i].name + ' - ' + varForm.elements[i].type);
				var strCar = "0123456789.- ";
				for (j = 0; j < varForm.elements[i].value.length; j++)
                                {
                                        if (strCar.indexOf(varForm.elements[i].value.charAt(j)) < 0) {
						strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" ne peut contenir que les caractères suivants \"" + strCar + "\"\n";
						funcErrorField(varForm.elements[i]);
						StatutValid = "";
						break
                                        }
				}
                        }

			//--- Contr�le des champs Num�riques
			if (funcExtract(varForm.elements[i],'type') == "Num" && varForm.elements[i].value.length > 0)
				{
//alert('Num : ' + varForm.elements[i].name + ' - ' + varForm.elements[i].type);					
				var strCar = "0123456789.,-";
				for (j = 0; j < varForm.elements[i].value.length; j++)
					{
					tmpMax = funcExtract(varForm.elements[i],'max');
					if (strCar.indexOf(varForm.elements[i].value.charAt(j)) < 0)
						{
						strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" ne peut contenir que les caractères suivants \"" + strCar + "\"\n";
						funcErrorField(varForm.elements[i]);
						StatutValid = "";
						break
						}
					else if (tmpMax != "" && eval(varForm.elements[i].value) > eval(tmpMax))
						{
						strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" ne doit pas être supérieur à \"" + tmpMax + "\"\n";
						funcErrorField(varForm.elements[i]);
						StatutValid = "";
						break
						}
					}
				}
			//--- Contr�le des champs Entier
			if (funcExtract(varForm.elements[i],'type') == "Int" && varForm.elements[i].value.length > 0)
				{
//alert('Num : ' + varForm.elements[i].name + ' - ' + varForm.elements[i].type);

				var strCar = "0123456789";
				for (j = 0; j < varForm.elements[i].value.length; j++)
					{
					tmpMax = funcExtract(varForm.elements[i],'max');
					if (strCar.indexOf(varForm.elements[i].value.charAt(j)) < 0)
						{
						strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" ne peut contenir que les caractères suivants \"" + strCar + "\"\n";
						funcErrorField(varForm.elements[i]);
						StatutValid = "";
						break
						}
					else if (tmpMax != "" && eval(varForm.elements[i].value) > eval(tmpMax))
						{
						strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" ne doit pas être supérieur à \"" + tmpMax + "\"\n";
						funcErrorField(varForm.elements[i]);
						StatutValid = "";
						break
						}
					}
				}
//alert('email');
			//--- Contr�le des champs E-mail
//			if (funcExtract(varForm.elements[i],'type') == "Mail" && varForm.elements[i].value.length > 0)
			if (funcExtract(varForm.elements[i],'type') == "Mail" && varForm.elements[i].value.length > 0)			
				{
//alert('mail : ' + varForm.elements[i].name + ' - ' + varForm.elements[i].type);					
				if (varForm.elements[i].value.length < 6 || varForm.elements[i].value.indexOf("@") < 0 || varForm.elements[i].value.indexOf(".") < 0)
					{
					strMessage = strMessage + "Vous devez saisir une adresse E-mail valide\n"
					funcErrorField(varForm.elements[i]);
					StatutValid = "";
					}
				else
					{
					var strCar = "0123456789abcdefghijklmnopqrstuvwxyz_-.@"
					for (j = 0; j < varForm.elements[i].value.length; j++)
						{
						if (strCar.toLowerCase().indexOf(varForm.elements[i].value.charAt(j).toLowerCase()) < 0)
							{
							strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" ne peut contenir que les caractères suivants \"" + strCar + "\"\n"
							funcErrorField(varForm.elements[i]);
							StatutValid = "";
							break
							}
						}
					}
				}

//alert('email V�rif');
			//--- Contr�le des champs E-mail pour v�rification de saisie sur 2 champs
			if (funcExtract(varForm.elements[i],'type') == "MailVerif" && varForm.elements[i].value.length > 0)			
				{
//alert('mail : ' + varForm.elements[i].name + ' - ' + varForm.elements[i].type);					
				if (varForm.elements[i].value.length < 6 || varForm.elements[i].value.indexOf("@") < 0 || varForm.elements[i].value.indexOf(".") < 0)
					{
					strMessage = strMessage + "Vous devez saisir une adresse E-mail valide\n"
					funcErrorField(varForm.elements[i]);
					funcErrorField(varForm.elements[i+1]);
					StatutValid = "";
					}
				else
					{
					var strCar = "0123456789abcdefghijklmnopqrstuvwxyz_-.@"
					for (j = 0; j < varForm.elements[i].value.length; j++)
						{
						if (strCar.toLowerCase().indexOf(varForm.elements[i].value.charAt(j).toLowerCase()) < 0)
							{
							strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" ne peut contenir que les caractères suivants \"" + strCar + "\"\n"
							funcErrorField(varForm.elements[i]);
							funcErrorField(varForm.elements[i+1]);
							StatutValid = "";
							break
							}
						}
					}
			
					varEmailCtrl = varForm.elements[i+1].value;
					
					if (varEmailCtrl == "")
						{
						strMessage = strMessage + "Veuillez saisir à nouveau votre E-mail pour confirmation.\n";
						funcErrorField(varForm.elements[i+1]);
						varForm.elements[i].select();
						StatutValid = "";
						}
					else
						{
						if (varEmailCtrl != varForm.elements[i].value)
							{
							strMessage = strMessage + "Le 2ème E-mail saisi pour confirmation est différent.\n Veuillez recommencer.\n";
							funcErrorField(varForm.elements[i]);
							funcErrorField(varForm.elements[i+1]);
							varEmailCtrl = "";
							StatutValid = "";
							}
						}
				
//					}
				}	// fin MailVerif


//alert('date');
			//--- Contr�le des champs Date sur 10 ou 19 caract�res
			if (funcExtract(varForm.elements[i],'type') == "Dat" && varForm.elements[i].value.length > 0)
				{
//alert('Date : ' + varForm.elements[i].name + ' - ' + varForm.elements[i].type);					
				if (((varForm.elements[i].value.length != 10) && (varForm.elements[i].value.length != 19)) || (varForm.elements[i].value.charAt(2) != "/") || (varForm.elements[i].value.charAt(5) != "/"))
					{
					strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" doit respecter le format jj/mm/aaaa\n"
					funcErrorField2(varForm.elements[i]);
					StatutValid = "";
					}
				var strCar = "0123456789/";
				if(varForm.elements[i].value != 'jj/mm/aaaa'){
					for (j = 0; j < varForm.elements[i].value.length; j++)
						{
						if (strCar.indexOf(varForm.elements[i].value.charAt(j)) < 0)
							{
							strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" ne peut contenir que les caractères suivants \"" + strCar + "\"\n"
							funcErrorField2(varForm.elements[i]);
							StatutValid = "";
							break
							}
						}
				}
				else 
				{
					if (varForm.elements[i].value == 'jj/mm/aaaa'){
						strMessage = strMessage + "Entrez une date pour le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" \n"	
						funcErrorField2 (varForm.elements[i]);
						StatutValid = "";
					}
				}
			}

			//--- Contr�le des champs Radio sur 10 ou 19 caract�res
			if (funcExtract(varForm.elements[i],'type') == "Radio" && varForm.elements[i].value.length > 0){
                            strRadio = funcExtract(varForm.elements[i],'nom');
                            statutSelect = "NON";
                            for (var j=i;j<varForm.elements.length;j++){
                                if (strRadio == funcExtract(varForm.elements[i],'nom')){
                                    if (varForm.elements[j].checked)
                                        statutSelect = 'OK';
                                }
                            }
                            if (statutSelect != 'OK'){
                                strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" est obligatoire,\n vous devez le remplir \n"
                                funcErrorField(varForm.elements[i-1]);
                                StatutValid = "NON"
                            }

			}

			//--- Contr�le des champs Password
			if ((funcExtract(varForm.elements[i],'type') == "Pwd") && (varForm.elements[i].name.toLowerCase().indexOf('_ctl') == -1))
				{
				if ((varForm.elements[i].value.length < 1) || (varForm.elements[i].value == "VIDE"))
					{
					strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" est obligatoire,\n vous devez le remplir \n"
					funcErrorField(varForm.elements[i]);
					StatutValid = "";
					if(varForm.elements[i].name.toLowerCase().indexOf('_ctl') == 1)
						varForm.elements[i+1].value = "";					
					varPwdCtrl = "";
					}
					
				if (varForm.elements[i+1].name == varForm.elements[i].name + '_ctl')
					{
					if (varForm.elements[i].value != varForm.elements[i+1].value)
						{
						strMessage = strMessage + "Le 2ème mot de passe saisi pour confirmation est différent.\n Veuillez recommencer.\n";
						funcErrorField(varForm.elements[i]);
						funcErrorField(varForm.elements[i+1]);
						varForm.elements[i].value = "";
						varForm.elements[i+1].value = "";					
						varPwdCtrl = "";
						StatutValid = "";
						}
	
					}
				else
					if(varForm.elements[i].name.toLowerCase().indexOf('_ctl') == 1)
						{
						if (varPwdCtrl == "")
							{
							varPwdCtrl = varForm.elements[i].value;
							varForm.elements[i].value = "";
							strMessage = strMessage + "Veuillez saisir à nouveau le mot de passe pour confirmation.\n";
							funcErrorField(varForm.elements[i+1]);
							varForm.elements[i].select();
							StatutValid = "";
							}
						else
							{
							if (varPwdCtrl != varForm.elements[i].value)
								{
								strMessage = strMessage + "Le 2ème mot de passe saisi pour confirmation est différent.\n Veuillez recommencer.\n";
								funcErrorField(varForm.elements[i]);
								funcErrorField(varForm.elements[i+1]);
								varForm.elements[i].value = "";
								varPwdCtrl = "";
								StatutValid = "";
								}
							}
						}//if(varForm.elements[i].name.toLowerCase().indexOf('_ctl') == 1)
				}

                        //--- Controle des champs Nouveau Password
			if ((funcExtract(varForm.elements[i],'type') == "newPwd") && (varForm.elements[i].name.toLowerCase().indexOf('_ctl') == -1)){
                            if((varForm.elements[i].value.length > 0)){

				if ((varForm.elements[i].value.length < 1) || (varForm.elements[i].value == "VIDE"))
					{
					strMessage = strMessage + "Le champ \"" + funcExtract(varForm.elements[i],'nom') + "\" est obligatoire,\n vous devez le remplir \n"
					funcErrorField(varForm.elements[i]);
					StatutValid = "";
					if(varForm.elements[i].name.toLowerCase().indexOf('_ctl') == 1)
						varForm.elements[i+1].value = "";
					varPwdCtrl = "";
					}

				if (varForm.elements[i+1].name == varForm.elements[i].name + '_ctl')
					{
					if (varForm.elements[i].value != varForm.elements[i+1].value)
						{
						strMessage = strMessage + "Le 2ème mot de passe saisi pour confirmation est différent.\n Veuillez recommencer.\n";
						funcErrorField(varForm.elements[i]);
						funcErrorField(varForm.elements[i+1]);
						varForm.elements[i].value = "";
						varForm.elements[i+1].value = "";
						varPwdCtrl = "";
						StatutValid = "";
						}

					}
				else
					if(varForm.elements[i].name.toLowerCase().indexOf('_ctl') == 1)
						{
						if (varPwdCtrl == "")
							{
							varPwdCtrl = varForm.elements[i].value;
							varForm.elements[i].value = "";
							strMessage = strMessage + "Veuillez saisir à nouveau le mot de passe pour confirmation.\n";
							funcErrorField(varForm.elements[i+1]);
							varForm.elements[i].select();
							StatutValid = "";
							}
						else
							{
							if (varPwdCtrl != varForm.elements[i].value)
								{
								strMessage = strMessage + "Le 2ème mot de passe saisi pour confirmation est différent.\n Veuillez recommencer.\n";
								funcErrorField(varForm.elements[i]);
								funcErrorField(varForm.elements[i+1]);
								varForm.elements[i].value = "";
								varPwdCtrl = "";
								StatutValid = "";
								}
							}
						}//if(varForm.elements[i].name.toLowerCase().indexOf('_ctl') == 1)
				}

                            }
//alert(varForm.elements[i].value + ' - ' + strMessage + ' - ' + StatutValid);					
			}


                    }// fin controle disabled == false
                    //
		//--- retour du contr�le de saisie
		}

// Cas particulier du champ model
        if(document.getElementsByName('modelAuto')[0]){
            if(document.getElementsByName('modelAuto')[0].value == '' && document.getElementsByName('modelAuto')[0].disabled == false){
                     //   alert(document.getElementsByName('modelAuto')[0].disabled)
                     strMessage = strMessage + "Le champ \"Modèle\" est obligatoire, \n vous devez le remplir \n";
                     funcErrorField(document.getElementsByName('modelAuto')[0]);
                     StatutValid = "";
            }
        }

        //Cas particulier des annonces emploi
        if (document.getElementById('frmPaEmp1')) {
            if(document.getElementsByName('rubrique')[0]){
                if(document.getElementsByName('rubrique')[0].value == ''){
                         strMessage = strMessage + "Le champ \"Type\" est obligatoire, \n vous devez le remplir \n";
                         funcErrorField(document.getElementsByName('rubrique')[0]);
                         StatutValid = "";
                }
            }
        }

        //-------------------------------
        // Evenement payant obligatoire
        var ii = 0;
        if( ii == 0 && document.getElementsByName("ZoEvtPayant") && document.getElementsByName("ZoEvtTarif")){
            ii++;

            if (document.getElementsByName("ZoEvtPayant").length == 2 && document.getElementsByName("ZoEvtPayant")[0].checked == false && document.getElementsByName("ZoEvtPayant")[1].checked == false) {
                    strMessage = strMessage + "Le champ \"Événement payant\" est obligatoire ";
                    StatutValid = "";
            }

            // Si evt payant = oui : tarifs evt obligatoire
            if (document.getElementsByName("ZoEvtPayant").length == 2  && document.getElementsByName("ZoEvtPayant")[0].checked == true && document.getElementsByName("ZoEvtTarif").length == 1 && document.getElementsByName("ZoEvtTarif")[0].value.length < 1) {
                    //funcErrorField(document.getElementsByName("ZoEvtTarif")[0]);
                    strMessage = strMessage + "Le champ \"Tarifs\" est obligatoire \n";
                    StatutValid = "";
            }

        }

        //------------------------------------
		
	if (StatutValid != "OK")
		{
		alert(strMessage);
		return false;
		}
	else
		{
		return true;
		}
	}

//--------------------------------------------------------------------------------
// Fonction de mise en �vidence d'un champ en erreur de saisie

function funcErrorField(varField)
	{
	varField.style.borderColor = "red";
	varField.style.borderWidth = "2px";
	varField.style.borderStyle = "solid";
	
	 if (document.getElementById('Alert' + varField.name) == null)
		{
		//varField.outerHTML = "<img id='Alert"+ varField.name +"' src='../images/_charte/alert.gif' align='top'>"+ varField.outerHTML;
		}
	}

//Fonction de mise en avant de l'erreur sans affichage du panneau danger (car probl�me avec les dates)
function funcErrorField2 (varField)
	{
		varField.style.borderColor = "red";
		varField.style.borderWidth = "2px";
		varField.style.borderStyle = "solid";	
	}
	
	
//--------------------------------------------------------------------------------
// Fonction de r�initialisation d'un champ pr�c�demment en erreur de saisie

function funcInitField(varField)
	{
	varField.style.borderColor = "";
	varField.style.borderWidth = "";
//	varField.style.borderStyle = "";
	if (document.getElementById('Alert' + varField.name))
		{
		document.getElementById('Alert' + varField.name).outerHTML = "";
		}
	}


var varPassword2 = "";

function funcCtrlLogin(varId, varLogin, varWebId)
	{
	var StatutValid = "OK";	
	var oXmlHttp = null;
	if(window.XMLHttpRequest) // Firefox
		{
		oXmlHttp = new XMLHttpRequest();
		oXmlHttp.open("POST", "../_inc/XML_funcCtrlLogin.asp", false);
		oXmlHttp.onreadystatechange = function()
			{
			if(oXmlHttp.readyState == 4)
			eval(oXmlHttp.responseText);
			}
		oXmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		var data = "strId=" + varId + "&strLogin="+ varLogin + "&strWebId=" + varWebId;
		oXmlHttp.send(data);
		if (oXmlHttp.responseText != '')
			return false;
		else
			return true;
		}
	else if(window.ActiveXObject) // Internet Explorer
		{
		oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		oXmlHttp.open("POST", "../_inc/XML_funcCtrlLogin.asp?strId=" + varId + "&strLogin="+ varLogin + "&strWebId=" + varWebId, false);		
		oXmlHttp.send();
//alert(oXmlHttp.responseText)
		if (oXmlHttp.responseText != '')
			return false;
		else
			return true;
		}
	else
		{ // XMLHttpRequest non support� par le navigateur
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
		return;
		}
	}

//**** Controle de l'Email si d�j� existant
function funcCtrlEmail(varId, varEmail, varWebId)
	{
	var StatutValid = "OK";	
	var oXmlHttp = null;
	if(window.XMLHttpRequest) // Firefox
		{
		oXmlHttp = new XMLHttpRequest();
		oXmlHttp.open("POST", "../_inc/XML_funcCtrlEmail.asp", false);
		oXmlHttp.onreadystatechange = function()
			{
			if(oXmlHttp.readyState == 4)
			eval(oXmlHttp.responseText);
			}
		oXmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		var data = "strId=" + varId + "&strEmail="+ varEmail + "&strWebId=" + varWebId;
		oXmlHttp.send(data);
		if (oXmlHttp.responseText != '')
			return false;
		else
			return true;
		}
	else if(window.ActiveXObject) // Internet Explorer
		{
		oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		oXmlHttp.open("POST", "../_inc/XML_funcCtrlEmail.asp?strId=" + varId + "&strEmail="+ varEmail + "&strWebId=" + varWebId, false);		
		oXmlHttp.send();		
		if (oXmlHttp.responseText != '')
			return false;
		else
			return true;
		}
	else
		{ // XMLHttpRequest non support� par le navigateur
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
		return;
		}
	}

//****************************************************************
// R�initialise un formulaire
//****************************************************************
function funcResetForm(varFormId) {
	
	var objForm;
	var elt;
	var i;
	
	objForm = document.getElementById(varFormId); 
	
	for(i=0;i<objForm.length;i++){
		elt = objForm.elements[i];
		switch(elt.type){
			case "text" :
				elt.value = "";
			break;
			case "select-one" :
				elt.options[0].selected = true;
			break;
			case "checkbox" :
				elt.checked = false;
			break;
		}
	}
}

//********************************************************************
// Fonction rendant accessible ou inaccessible le champ imput d�fini
//********************************************************************
function funcDisable(varSelect){
	
	// Cas du champs KbFicheStructureAutre
	if(document.getElementById('KbFicheStructureAutre')){
		if ((varSelect.options[varSelect.selectedIndex].value) == '14'){
			document.getElementById('KbFicheStructureAutre').disabled = false;
			document.getElementById('KbFicheStructureAutre').select()
		}else{
			document.getElementById('KbFicheStructureAutre').disabled = true;
			document.getElementById('KbFicheStructureAutre').value = "";
		}
	}	
}


//********************************************************************
// Fonction qui controle si les conditions generales de ventes sont acceptees
//********************************************************************
function funcCtrlCGV(varId) {
	if (document.getElementById(varId).checked) {
		return true;
	} else {
		alert("Vous devez accepter les Conditions G�n�rales de Vente");
		return false;	
	}
}



//********************************************************************
// Fonction valide le formulaire de recherche des inscrits en liste
//********************************************************************
function funcGroupeRechListeSubmit() {
	
	var i;
	
	// Recuperation criteres de recherches
	
	// Type de Structure
	var KbStructureId	= "";
	var tabStructureId 	= document.getElementsByName('KbStructureId');
	for (i=0; i<tabStructureId.length; i++) {
		if (tabStructureId[i].checked) {
			if (KbStructureId != "") {
				KbStructureId = KbStructureId + ",";
			}
			KbStructureId = KbStructureId + tabStructureId[i].value;
		}
	}
	document.getElementById('Critere_KbStructureId').value = KbStructureId;
	
	// Type de Chasse
	var KbChasseId	= "";
	var tabChasseId = document.getElementsByName('KbChasseId');
	for (i=0; i<tabChasseId.length; i++) {
		if (tabChasseId[i].checked) {
			if (KbChasseId != "") {
				KbChasseId = KbChasseId + ",";
			}
			KbChasseId = KbChasseId + tabChasseId[i].value;
		}
	}
	document.getElementById('Critere_KbChasseId').value = KbChasseId;
	
	// Type de Gibier
	var KbGibierId	= "";
	var tabGibierId = document.getElementsByName('KbGibierId');
	for (i=0; i<tabGibierId.length; i++) {
		if (tabGibierId[i].checked) {
			if (KbGibierId != "") {
				KbGibierId = KbGibierId + ",";
			}
			KbGibierId = KbGibierId + tabGibierId[i].value;
		}
	}
	document.getElementById('Critere_KbGibierId').value = KbGibierId;
	
	// Vente de Gibier
	var KbFicheGibierVente = "";
	if (document.getElementById('KbFicheGibierVente').checked) {
		KbFicheGibierVente = document.getElementById('KbFicheGibierVente').value;	
	}
	document.getElementById('Critere_KbFicheGibierVente').value = KbFicheGibierVente;
	
	// Zone g�ographique : departements fran�ais
	var KbGeolocalDeptNum	= "";
	var tabGeolocalDeptNum 	= document.getElementsByName('KbGeolocalDeptNum');
	for (i=0; i<tabGeolocalDeptNum.length; i++) {
		if (tabGeolocalDeptNum[i].checked) {
			if (KbGeolocalDeptNum != "") {
				KbGeolocalDeptNum = KbGeolocalDeptNum + ",";
			}
			KbGeolocalDeptNum = KbGeolocalDeptNum + tabGeolocalDeptNum[i].value;
		}
	}
	document.getElementById('Critere_KbGeolocalDeptNum').value = KbGeolocalDeptNum;
	
	// Zone g�ographique : pays etranger
	var KbGeolocalPaysId	= "";
	var tabGeolocalPaysId = document.getElementsByName('KbGeolocalPaysId');
	for (i=0; i<tabGeolocalPaysId.length; i++) {
		if (tabGeolocalPaysId[i].checked) {
			if (KbGeolocalPaysId != "") {
				KbGeolocalPaysId = KbGeolocalPaysId + ",";
			}
			KbGeolocalPaysId = KbGeolocalPaysId + tabGeolocalPaysId[i].value;
		}
	}
	document.getElementById('Critere_KbGeolocalPaysId').value = KbGeolocalPaysId;
	
	// Jumelage
	var KbFichePartenariat = "";
	if (document.getElementById('KbFichePartenariat').checked) {
		KbFichePartenariat = document.getElementById('KbFichePartenariat').value;	
	}
	document.getElementById('Critere_KbFichePartenariat').value = KbFichePartenariat;
		
	// Validation du formulaire
	document.getElementById('frmFicheListe').submit();

}
//***************************************************************************************
// Fonction qui limite le nombre de caract�re pour la description d'un formulaire
//***************************************************************************************
function funcVerifLength(desLimit, nbLimit) {
//	alert (desLimit.value);
	
	if (nbLimit == "")
	{
		nbLimit = 500;	
	}
	
	if (desLimit.value.length <= nbLimit) {
		return true;
	} else {
		alert("Vous devez limiter votre description à "+nbLimit+" caractères!");
		return false;	
	}
}

//***************************************************************************************
// Fonction qui controle d'une confirmation si certains champs sont renseignés
// Exemple : Certifie ques les image à télécherger sont libre de droit
// @param       string      strCheck    nom l'élément de confirmation à controlé
// @param       string      strIds      nom liste des éléments ne devant pas être vide
// @param       string      strCheck    nom l'élément de confirmation
//***************************************************************************************
function funcConditionAccept( strCheck , strIds, strMsg ) {

    var tblId = strIds.split('|');
    var flag = 0;
    for( i=0 ; i < tblId.length  ; i++ ){
        if(document.getElementById(tblId[i]).value != ''){
            flag = 1;
        }
        //alert(document.getElementById(tblId[i]).value);
    }

  
    if( flag == 1 && document.getElementById(strCheck).checked == false){
        if(typeof strMsg != "undefined" && strMsg != ''){
            alert(strMsg);
        }
        return false;
    }
    return true;
}
/*
 *  Selection d'une seul checkbox
 */
function onlyOneSelected( varName, varId ){

    //alert(varName);
//    alert(varId);
    var objUnCheckAll   = document.getElementsByName(varName);
    var objChecked      = document.getElementById(varId);

    //alert(objUnCheckAll.length);
    //désélection de tous
    for (j=0; j<objUnCheckAll.length; j++) {
        objUnCheckAll[j].checked = false;
    }
    objChecked.checked = true;

}


/*
 * Fonction pour vérifier si la checkbox des CGU est bien cochée
 */
function verifyCGUChecked (){

          if(document.getElementById("cgu").checked == false){
                  alert("Vous devez accepter les Conditions Générales d'Utilisation");
                  return false;
          }
          else{
            return true;
          }

}


/*
 * Fonction pour vérifier si la checkbox des CGU est bien cochée
 */
function verifyDate (){

        var d = document.getElementById('dateMec').value;
        if(d == ""){
            return true;
        }
        var date = new Date();
        var day = date.getDate();
        var month = date.getMonth() + 1;
        if(month != "10" && month != "11" && month != "12")
            {
                month = "0" + month;
            }
        var year = date.getFullYear();

          // Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
      // Le séparateur est défini dans la variable separateur
      var amin=1900; // année mini
      var amax=2050; // année maxi
      var separateur="/"; // separateur entre jour/mois/annee
      var j=(d.substring(0,2));
      var m=(d.substring(3,5));
      var a=(d.substring(6));
      var ok=1;

      if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) {
         alert("Les séparateurs doivent être des "+separateur);ok=0;
         return false;
      }
      if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) {
         alert("Le jour n'est pas correct.");ok=0;
         return false;
      }
      if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {
         alert("Le mois n'est pas correct.");ok=0;
         return false;
      }
      if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) {
         alert("L'année n'est pas correcte.");ok=0;
         return false;
      }
      if(year < a || (year <= a && month < m) || (year <= a && month <= m && day < j)){
          alert("La date ne peut être postérieure à la date du jour");
          return false;
      }
      if (ok==1) {
         var d2=new Date(a,m-1,j);
         j2=d2.getDate();
         m2=d2.getMonth()+1;
         a2=d2.getFullYear();
         if (a2<=100) {a2=1900+a2}
         if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
            alert("La date "+d+" n'existe pas");
            ok=0;
            return false;
         }
      }
      return true;
}
