  	/** *************************************************************************************
	***  Société : Idealcoms																*
	***  Auteur  : <a href="mailto:juanito.goncalves@idealcoms.net">Juanito Goncalves</a>	*
	***  Projet  : tous 																	*
	***  Date    : jeudi 11 mars 2004 		 												*
	***  Version : 1 Rev 0	{11/03/2004}		 		 									*
	***  Titre   : Fonctions javascript de base 											*
	*** ************************************************************************************/
	
  	/** Vérifie la valeur d'un formulaire et affiche un message en conséquence. **/
  	function check(formNum,elementNum,typeCheck,message,required,lastChecked,langue,noAlert) {
		switch(langue) {
			default : messageResult =  'Merci de préciser ' + message;break;
			case 'en' : messageResult =  'Please enter ' + message;break;
			case 'es' : messageResult =  'Por favor, indique ' + message;break;
			case 'de' : messageResult =  'Bitte spezifizieren ' + message;break;
		}
  		
  		flag = true;
  		if (elementNum) {
	  		element = document.forms[formNum].elements[elementNum];
	  		if (element) {
		  		// Si le typeCheck ressemble a une expression régulière, on la traite comme tel
		  		if (typeCheck.substr(0,1)=='/') {regexp = typeCheck;typeCheck = 'regexp';}
		  		if (typeCheck=='<' || typeCheck=='>' || typeCheck=='==' || typeCheck=='>=' || typeCheck=='<=') {cmp = typeCheck;typeCheck = 'cmp';}
		  		switch (typeCheck) {
		  			default : 
		  				flag =  !(element.value=='');
		  			break;
		  			case 'email' : 
		  				if (required && element.value=='') flag = !(element.value=='') ;
		  				else {
		  					flag =  !(element.value!='' && (element.value.indexOf("@")==-1 || element.value.indexOf(".")==-1));
							switch(langue) {
								default : messageResult =  'Merci de préciser une adresse mél valide (exp nom@domaine.com)';break;
				  				case 'en' : messageResult =  'Please enter a valid email address (exp name@domain.com)';break;
								case 'es' : messageResult =  'Por favor, introduzca un correo electrónico válido (ej : name@domain.com)';break;				  				
				  				case 'de' : messageResult =  'Bitte geben Sie eine gültige e-mail-Adresse an (z.Bsp. Name@Berreich.com)';break;
							}
		  				}
		  			break;
		  			case 'url' : 
		  				if (required && element.value=='') flag = !(element.value=='') ;
		  				else {
		  					flag = !(element.value!='' && (element.value.indexOf("http://")==-1 || element.value.indexOf(".")==-1));
							switch(langue) {
								default : messageResult =  'Merci de préciser une adresse internet valide (exp http://domaine.com)';break;
				  				case 'en' : messageResult =  'Please enter a valid internet address (http://domain.com)';break;
				  				case 'es' : messageResult =  'Por favor, introduzca una direccion Internet válida (http://domain.com)';break;
				  				case 'de' : messageResult =  'Bitte geben Sie eine gültige Internet-Adresse an (z.Bsp. http://Bereich.com)';break;
							}
		  				}
		  			break;
		  			case 'password' : 
		  				compare = document.forms[formNum].elements[elementNum+"2"];
		  				if (required && element.value=='') flag = !(element.value=='') ;
		  				else {
		  					flag =  !(element.value!='' && element.value!=compare.value);
							switch(langue) {
								default : messageResult =  'Les mots de passe ne concordent pas';break;
				  				case 'en' : messageResult =  'The passwords do not match';break;
				  				case 'es' : messageResult =  'La contraseña es incorrecta';break;
				  				case 'de' : messageResult =  'Die Passwörter stimmen nicht überein ';break;
							}
		  				}
		  			break;
		  			case 'length' :
		  				flag = element.value.length<=required;
						switch(langue) {
							default : messageResult =  message + " ne doit pas dépasser "+required+" caractères";break;
			  				case 'en' : messageResult = message + " must not exceed "+required+" caracters";break;
			  				case 'es' : messageResult = message + " no debe sobrepasar "+required+" caracteres";break;
			  				case 'de' : messageResult =  message + " darf nicht länger sein als "+required+" Zeichen";break;
						}
		  			break;
		  			
		  			case 'exactlength' :
		  				flag = element.value.length==required;
						switch(langue) {
							default : messageResult =  message + " doit être à "+required+" caractères";break;
			  				case 'en' : messageResult = message + " must be "+required+" caracters length";break;
			  				case 'es' : messageResult = message + " debe ser de "+required+" caracteres";break;
			  				case 'de' : messageResult =  message + " darf nicht länger sein als "+required+" Zeichen";break;
						}
		  			break;
		  			
		  			case 'date' :
		  				regexp = /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/ ;
		  				if (required && element.value=='') flag = !(element.value=='') ;
		  				else {
		  					flag = element.value=='' || regexp.test(element.value);
							switch(langue) {
								default : messageResult =  message + " doit être au format jj/mm/aaaa";break;
				  				case 'en' : messageResult =  message + " must be in dd/mm/yyyy format";break;
				  				case 'es' : messageResult =  message + " debe ser en el formato dd/mm/aaaa";break;
				  				case 'de' : messageResult =  message + " muss im Format tt/mm/jjjj sein";break;
							}
		  				}
		  			break;
		  			
		  			case 'radio' :
		  				flag = false;
		  				for (i=0;i<element.length;i++) {
		  					if (element[i].checked==true) {
		  						flag = true;
		  					}
		  				}
		  			break;
		  			
		  			case 'checkbox' :
		  				flag = element.checked; 
		  				if (required) {
			  				switch(langue) {
								default : messageResult =  "Merci de cocher "+ message ;break;
				  				case 'en' : messageResult =  "Please tick "+ message;break;
				  				case 'es' : messageResult =  "Por favor, marque "+ message;break;
				  				case 'de' : messageResult =  "Bitte "+ message;break;
							}
						}
		  			break;
		  			
		  			case 'telRegexp' :
		  				regexp = /^[0-9]{2}\.[0-9]{2}\.[0-9]{2}\.[0-9]{2}\.[0-9]{2}$/ ;
		  				if (required && element.value=='') flag = !(element.value=='') ;
		  				else {
		  					flag = element.value=='' || regexp.test(element.value);
							switch(langue) {
								default : messageResult =  message + " doit être au format nn.nn.nn.nn.nn";break;
				  				case 'en' : messageResult =  message + " must be in nn.nn.nn.nn.nn format";break;
				  				case 'es' : messageResult =  message + " debe ser en el formato nn.nn.nn.nn.nn";break;
				  				case 'de' : messageResult =  message + " muss im Format nn.nn.nn.nn.nn sein";break;
							}
		  				}
		  			break;
		  			
		  			case 'heureRegexp' :
		  				regexp = /^[0-9]{2}h[0-9]{2}$/ ;
		  				if (required && element.value=='') flag = !(element.value=='') ;
		  				else {
		  					flag = element.value=='' || regexp.test(element.value);
							switch(langue) {
								default : messageResult =  message + " doit être au format 00h00";break;
				  				case 'en' : messageResult =  message + " must be in 00h00 format";break;
				  				case 'es' : messageResult =  message + " debe ser en el formato 00h00";break;
				  				case 'de' : messageResult =  message + " muss im Format 00h00 sein";break;
							}
		  				}
		  			break;
		  			
		  			case 'regexp' : 
		  				regxp = new RegExp(regexp.substr(1,regexp.length-2));
		  				
		  				if (required && element.value=='') flag = !(element.value=='') ;
		  				else {
		  					flag = element.value=='' || regxp.test(element.value);
							switch(langue) {
								default : messageResult =  message + " n'est pas au bon format";break;
				  				case 'en' : messageResult =  message + " must be in format";break;
				  				case 'es' : messageResult =  message + " no está en el formato correcto";break;
				  				case 'de' : messageResult =  message + " muss im Format sein";break;
							}
		  				}
		  			break;
		  			
		  			case 'numeric' :
		  				if (required && element.value=='') flag = !(element.value=='') ;
		  				else {
		  					flag = element.value=='' || !isNaN(element.value);
							switch(langue) {
								default : messageResult =  message + " doit être un nombre";break;
								case 'en' : messageResult =  message + " must be a number";break;
								case 'es' : messageResult =  message + " debe ser numérico";break;
				  				case 'de' : messageResult =  message + " muss ein nummer sein";break;
							}
		  				}
		  			break;
		  			
		  			case 'cmp' : //comparaison
		  				if (required && element.value=='') flag = !(element.value=='') ;
		  				else {
		  					switch(cmp) {
		  						case '==' : flag = element.value=='' || element.value==required; 
		  							switch(langue) {
										default : messageResult =  message + " doit être égal à " + required;break;
						  				case 'en' : messageResult =  message + " must be equal to " + required;break;
						  				case 'es' : messageResult =  message + " debe ser igual a " + required;break;
						  				case 'de' : messageResult =  message + " doit être égal à"+ required;break;
									}
		  						break;
		  						case '<=' : 
		  							flag = element.value=='' || element.value<=required; 
		  							switch(langue) {
										default : messageResult =  message + " doit être inférieur ou égal à " + required;break;
						  				case 'en' : messageResult =  message + " must be less than " + required;break;
						  				case 'es' : messageResult =  message + " debe ser inferior o igual a " + required;break;
						  				case 'de' : messageResult =  message + " doit être inférieur ou égal à "+ required;break;
									}
		  						break;
		  						case '>=' : 
		  							flag = element.value=='' || element.value>=required; 
		  							switch(langue) {
										default : messageResult =  message + " doit être supérieur ou égal à " + required;break;
						  				case 'en' : messageResult =  message + " must be greater than " + required;break;
						  				case 'es' : messageResult =  message + " debe ser superior o igual a " + required;break;
						  				case 'de' : messageResult =  message + " doit être supérieur ou égal à "+ required;break;
									}
		  						break;
		  						case '<' : 
		  							flag = element.value=='' || element.value<=required; 
		  							switch(langue) {
										default : messageResult =  message + " doit être inférieur à " + required;break;
						  				case 'en' : messageResult =  message + " must be less than " + required;break;
						  				case 'es' : messageResult =  message + " ser inferior a " + required;break;
						  				case 'de' : messageResult =  message + " doit être inférieur à "+ required;break;
									}
		  						break;
		  						case '>' : 
		  							flag = element.value=='' || element.value>=required; 
		  							switch(langue) {
										default : messageResult =  message + " doit être supérieur à " + required;break;
						  				case 'en' : messageResult =  message + " must be greater than " + required;break;
						  				case 'es' : messageResult =  message + " ser superior a " + required;break;
						  				case 'de' : messageResult =  message + " doit être supérieur à "+ required;break;
									}
		  						break;
		  					}
		  					
							
		  				}
		  			break;
	  			}
	  		}
	  	} else {flag = true;lastChecked=true;}

  		if (flag) {
  			// si un champ upload existe, on y affiche le texte de téléchargement : 
  			if (lastChecked && document.forms[formNum].elements['upload']!=undefined) 
  			switch(langue) {
  				default : document.forms[formNum].elements['upload'].value="Veuillez patienter, téléchargement en cours...";break;
  				case 'en' : document.forms[formNum].elements['upload'].value="Please wait, modification in progress ...";break;
  				case 'es' : document.forms[formNum].elements['upload'].value="Por favor, espere, carga en curso ...";break;
  				case 'de' : document.forms[formNum].elements['upload'].value="Bitte haben Sie Geduld, wird z.Zt. Geändert...";break;
  			}
  			return true;
  		}
  		else {
  			if (!noAlert) {
  				alert(messageResult);
  				if (element.type!="hidden") element.focus();
  			}
  			return false;
  		}
  	}
  	
  	/** Renvoie vers une autre page **/
  	function go(url,params) {
  		if (!params) params = ""; else params = "?" + params;
  		document.location.replace(url + params);
  	}
  	
  	function launchPrint(message) {
  		ua=navigator.userAgent;
  		if (ua.indexOf("Mac")!=-1) alert(message);
  		else window.print();
  	}
  	
  	function cmpDate(date1,date2,equals,msg) {
  		date1CMP = date2CMP = "";
  		date1 = date1.split("/");
  		date2 = date2.split("/");
  		date1CMP = date1[2] + date1[1] + date1[0];
  		date2CMP = date2[2] + date2[1] + date2[0];
  		result =  equals ? date1CMP <= date2CMP : date1CMP < date2CMP;
  		if (msg!="" && !result) {alert(msg);}
  		return result;
  	}
  	
  	function afficheDate() {
		document.write(new Date());	
  	}
  	
  	//supprime une commune de la liste de celles choisies
	function deleteListElement(element,valeur){
		form = document.forms[0].elements;
		form[element].value = valeur;
		document.forms[0].submit();
	}
		
	// Page d'attente de la fonctionalité
	function enAttente() {
		window.open('/pageAttente.htm','attente','width=450,height=400');
	}
	
	/* Calcul l'age a partir de la date de naissance */
	function EstAssezJeune(form,age_limite) {
		date_naissance = document.forms[form].elements['date_naissance'].value;
		dte = date_naissance.split("/");
		now = new Date();
		if (HowOld(dte[0],dte[1],dte[2],now.getDate(),now.getMonth()+1,now.getFullYear())>age_limite) {
			alert('La limite d\'age pour déposer un dossier est de '+age_limite+' ans');
			return false;
		}
		return true;
	}
	
	function HowOld(day,month,year,thisDay,thisMonth,thisYear) {
   		var yearsold = thisYear - year, monthsold = 0, daysold = 0;

    	if (thisMonth >= month) monthsold = thisMonth - month;
    	else { yearsold--; monthsold = thisMonth + 12 - month; }

	    if (thisDay >= day)daysold = thisDay - day;
	    else {
        	if (monthsold > 0) monthsold--;
	        else { yearsold--; monthsold+=11; }
        	daysold = thisDay + 31 - day;
    	}
	    return yearsold;
	}
	
	//fonction d'ouverture de popup
	function popup(url, titre, largeur, hauteur, scroll) 
  	{
  		window.open(url, titre, 'width=' + largeur + ', height=' + hauteur + ', scrollbars=' + scroll);
  	}	 

	function MM_openBrWindow(theURL,winName,features) { //v2.0
	  window.open(theURL,winName,features);
	}  	
