/*****image onmouseover*****/
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

/*****popup*****/
function popup(page,nom,largeur,hauteur,options) {
	var top=(screen.height-hauteur)/2;
	var left=(screen.width-largeur)/2;
	window.open(page,nom,"top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
}


/*****utils*****/
function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }

    return true;
}

String.prototype.trim = function() {
	return this.replace(/(^\s*)|(\s*$)/g, "");
}

/*** recherche ***/
function valideRechercheForm(formulaire) {
	formulaire.mots.value = formulaire.mots.value.trim();
	if(formulaire.mots.value=='') {
		alert('Veuillez indiquer un mot pour votre recherche !');
		formulaire.mots.focus();
        return false;	
	} else {
		if(formulaire.mots.value.length<=2) {
			alert('Veuillez indiquer un mot de plus de 2 lettres !');
			formulaire.mots.focus();
            return false;	
		}		
	}
	return true;	
}

//avec langue
function valideRechercheFormLang(formulaire,langue) {

    tabLangue = new Array();
    tabLangue[1] = new Array(); 
    tabLangue[1][1] = 'Veuillez indiquer un mot pour votre recherche !';
    tabLangue[1][2] = 'Veuillez indiquer un mot de plus de 2 lettres !';

    tabLangue[2] = new Array(); 
    tabLangue[2][1] = 'Please indicate a word for your research !';
    tabLangue[2][2] = 'Please indicate a word of more than 2 letters !';

    tabLangue[3] = new Array(); 
    tabLangue[3][1] = 'Quiere indicar una palabra para su investigación !';
    tabLangue[3][2] = 'Quiere indicar una palabra de más de 2 cartas !';
    
    tabLangue[4] = new Array(); 
    tabLangue[4][1] = 'Geben Sie bitte ein Wort für Ihre Forschung an !';
    tabLangue[4][2] = 'Geben Sie bitte ein Wort von mehr als 2 Briefen an !';

	formulaire.mots.value = formulaire.mots.value.trim();
	if(formulaire.mots.value=='') {
		alert(tabLangue[langue][1]);
		formulaire.mots.focus();
        return false;	
	} else {
		if(formulaire.mots.value.length<=2) {
			alert(tabLangue[langue][2]);
			formulaire.mots.focus();
            return false;	
		}		
	}
	return true;	
}

function validateRequiredForm(formulaire) {


    var alerte = 0;
    for(f=0;f<formulaire.elements.length;f++) {
        var thisAttribut = formulaire.elements[f].getAttribute("required");
        if((thisAttribut!='')&&(thisAttribut!=null)) {
            if(formulaire.elements[f].value=='') {
                alert('Merci de remplir le champ '+thisAttribut);
                formulaire.elements[f].focus();
		return false;   
                break;
            }
        }
    }
    
    if(validateEmail(formulaire)==false) {
        return false;
    }
    if(validateDate(formulaire)==false) {
        return false;
    }
    if(validateTel(formulaire)==false) {
        return false;
    }
    if(validateVache(formulaire)==false) {
        return false;
    }
    return true;
}

/*** required (formulaire complet) + champs aux formats speciaux (email,date) ***/
function validateAllForm(formulaire) {


    
    if(validateEmail(formulaire)==false) {
        return false;
    }
    if(validateDate(formulaire)==false) {
        return false;
    }
    if(validateTel(formulaire)==false) {
        return false;
    }


    var alerte = 0;
    for(f=0;f<formulaire.elements.length;f++) {
        if(formulaire.elements[f].value=='') {
            alerte++;
            break;
        }
    }

    
    if(alerte>0) {
		alert('Merci de remplir tous les champs !');
		if ((formulaire.elements[f].type == "radio") || (formulaire.elements[f].type == "select") || (formulaire.elements[f].type == "text") || (formulaire.elements[f].type == "textarea")) {
		  formulaire.elements[f].focus();
		}
        
		return false;   
    }
    return true;
    
}

/*** required (champs etoiles) + champs aux formats speciaux (email,date) ***/
function verif_coor(formulaire,champs) {

    if(validateEmail(formulaire)==false) {
        return false;
    }
    if(validateDate(formulaire)==false) {
        return false;
    }
    if(validateTel(formulaire)==false) {
        return false;
    }
	
	var alerte = 0;
	if(champs!='') {
		var tabChamps = champs.split(';');
		for(c=0;c<((tabChamps.length)-1);c++) {			
			//verif = eval(formulaire + "." + tabChamps[c]);
			thisChamp = tabChamps[c];
			verif = formulaire[thisChamp];
			if(verif.value=='') {
				if(alerte==0) {
					verif.focus();
				}
				alerte++;
			}
		}
	}
	if(alerte>0) {
		alert('Merci de remplir tous les champs obligatoires !');
		return false;
	}
	
	return true;	
}

//special avec la langue :-)
function verif_coorLang(formulaire,champs,langue) {

    tabLangue = new Array();
    tabLangue[1] = new Array(); 
    tabLangue[1][1] = 'Merci de remplir tous les champs obligatoires !';

    tabLangue[2] = new Array(); 
    tabLangue[2][1] = 'Please fill all the required fields !';
	
	var alerte = 0;
	if(champs!='') {
		var tabChamps = champs.split(';');
		for(c=0;c<((tabChamps.length)-1);c++) {			
			//verif = eval(formulaire + "." + tabChamps[c]);
			thisChamp = tabChamps[c];
			verif = formulaire[thisChamp];
			if(verif.value=='') {
				if(alerte==0) {
					verif.focus();
				}
				alerte++;
			}
		}
	}
	if(alerte>0) {
		alert(tabLangue[langue][1]);
		return false;
	}
	
  if(validateEmailLang(formulaire,langue)==false) {
      return false;
  }
  if(validateDateLang(formulaire,langue)==false) {
      return false;
  }
  
	return true;	
}

/*****recherche*****/
function verif_rechLang(formulaire,champs,langue) {

    tabLangue = new Array();
    tabLangue[1] = new Array(); 
    tabLangue[1][1] = 'Merci de remplir correctement votre recherche !';

    tabLangue[2] = new Array(); 
    tabLangue[2][1] = 'Please fill correctly the required field !';


	
	var alerte = 0;
	if(champs!='') {
		var tabChamps = champs.split(';');
		for(c=0;c<((tabChamps.length)-1);c++) {			
			//verif = eval(formulaire + "." + tabChamps[c]);
			thisChamp = tabChamps[c];
			verif = formulaire[thisChamp];
			if(verif.value=='') {
				if(alerte==0) {
					verif.focus();
				}
				alerte++;
			}
		}
	}
	if(alerte>0) {
		alert(tabLangue[langue][1]);
		return false;
	}
	
	return true;	
}

/*****vache****/
function validateVache(formulaire) {
    var alerte = 0;
    for(f=0;f<formulaire.elements.length;f++) {
        var thisAttribut = formulaire.elements[f].getAttribute("format");
        if(thisAttribut=='vache') {
            Vache = formulaire.elements[f].value.split("");

            var ko=1;
            tabAut = new Array();
            tabAut[0]='0';
            tabAut[1]='1';
            tabAut[2]='2';
            tabAut[3]='3';
            tabAut[4]='4';
            tabAut[5]='5';
            tabAut[6]='6';
            tabAut[7]='7';
            tabAut[8]='8';
            tabAut[9]='9';
            if(Vache.length==10)
            {
              ko=0;
              for(i=0;i<Vache.length;i++) 
              {
                exist=0;
                for(j=0;j<tabAut.length;j++) 
                {
                  if(Vache[i]==tabAut[j])
                  {
                     exist=1;
                  }
                }
                if(exist==0)
                {
                  ko=1;
                }
              }
            }

            if(ko!=0)
            {
              alert('Merci de respecter le format du numéro de la vache !');
              return false;
            }
            else
            {
              return true;
            }
        }
    }
    return true;
}

/*****telephone****/
function validateTel(formulaire) {
    var alerte = 0;
    for(f=0;f<formulaire.elements.length;f++) {
        var thisAttribut = formulaire.elements[f].getAttribute("format");
        if(thisAttribut=='tel') {
            Tel = formulaire.elements[f].value.split("");

            var ko=1;
            tabAut = new Array();
            tabAut[0]='0';
            tabAut[1]='1';
            tabAut[2]='2';
            tabAut[3]='3';
            tabAut[4]='4';
            tabAut[5]='5';
            tabAut[6]='6';
            tabAut[7]='7';
            tabAut[8]='8';
            tabAut[9]='9';
            tabAut[10]='.';
            if(Tel.length>=10)
            {
              ko=0;
              for(i=0;i<Tel.length;i++) 
              {
                exist=0;
                for(j=0;j<tabAut.length;j++) 
                {
                  if(Tel[i]==tabAut[j])
                  {
                     exist=1;
                  }
                }
                if(exist==0)
                {
                  ko=1;
                }
              }
            }
    
            if(ko!=0)
            {
              alert('Merci de respecter le format du numéro de téléphone !');
              return false;
            }
            else
            {
              return true;
            }
        }
    }
    return true;
}

/*****date*****/

function validateDate(formulaire) {
    var alerte = 0;
    for(f=0;f<formulaire.elements.length;f++) {
        var thisAttribut = formulaire.elements[f].getAttribute("format");
        if(thisAttribut=='date') {
            tabDate = formulaire.elements[f].value.split('/');
            if(formulaire.elements[f].value!='') {
                if(tabDate.length!=3) {
                    alerte++;
                    break;                
                } else {
                    if(isValidDate(tabDate[0], tabDate[1], tabDate[2])==false) {
                        alerte++;
                        break;
                    }                
                }
            
            }

        }
    }
      
    if(alerte>0) {
		alert('Merci de respecter le format des dates !');
		if ((formulaire.elements[f].type == "radio") || (formulaire.elements[f].type == "select") || (formulaire.elements[f].type == "text") || (formulaire.elements[f].type == "textarea")) {
            formulaire.elements[f].focus();
		}
        
		return false;   
    }
    return true;
    
}
//special ab2cs, avec la langue
function validateDateLang(formulaire,langue) {

    tabLangue = new Array();
    tabLangue[1] = new Array(); 
    tabLangue[1][1] = 'Merci de respecter le format des dates !';

    tabLangue[2] = new Array(); 
    tabLangue[2][1] = 'Please respect the format of the dates !';

    tabLangue[3] = new Array(); 
    tabLangue[3][1] = 'Respetar el formato de las fechas !';
    
    tabLangue[4] = new Array(); 
    tabLangue[4][1] = 'Danke das Format der Daten zu respektieren !';

    var alerte = 0;
    for(f=0;f<formulaire.elements.length;f++) {
        var thisAttribut = formulaire.elements[f].getAttribute("format");
        if(thisAttribut=='date') {
            tabDate = formulaire.elements[f].value.split('/');
            if(formulaire.elements[f].value!='') {
                if(tabDate.length!=3) {
                    alerte++;
                    break;                
                } else {
                    if(isValidDate(tabDate[0], tabDate[1], tabDate[2])==false) {
                        alerte++;
                        break;
                    }                
                }
            
            }

        }
    }
      
    if(alerte>0) {
		alert(tabLangue[langue][1]);
		if ((formulaire.elements[f].type == "radio") || (formulaire.elements[f].type == "select") || (formulaire.elements[f].type == "text") || (formulaire.elements[f].type == "textarea")) {
            formulaire.elements[f].focus();
		}
        
		return false;   
    }
    return true;
    
}
function isValidDate(day, month, year) {
	    if(day=='' || month=='' || year=='' || day=='undefined' || month=='undefined' || year=='undefined' || !isInteger(day) || !isInteger(month) || !isInteger(year)) {
            return false;
        } else {
            if (month < 1 || month > 12) {
                return false;
            }
            if (day < 1 || day > 31) {
                return false;
            }
            if ((month == 4 || month == 6 || month == 9 || month == 11) &&
                (day == 31)) {
                return false;
            }
            if (month == 2) {
                var leap = (year % 4 == 0 &&
                   (year % 100 != 0 || year % 400 == 0));
                if (day>29 || (day == 29 && !leap)) {
                    return false;
                }
            }        
        }
        

        return true;
}

/***email***/
function validateEmail(formulaire) {
    var alerte = 0;
    for(f=0;f<formulaire.elements.length;f++) {
        var thisAttribut = formulaire.elements[f].getAttribute("format");
        if(thisAttribut=='email') {
            if(formulaire.elements[f].value!='') {
                if(checkEmail(formulaire.elements[f].value)==false) {
                        alerte++;
                        break;
                }                
            }

        }
    }
      
    if(alerte>0) {
		alert('Merci de respecter le format des e-mails !');
		if ((formulaire.elements[f].type == "text") || (formulaire.elements[f].type == "textarea")) {
            formulaire.elements[f].focus();
		}
        
		return false;   
    }
    return true;
    
}

//special ab2cs, avec la langue
function validateEmailLang(formulaire,langue) {

    tabLangue = new Array();
    tabLangue[1] = new Array(); 
    tabLangue[1][1] = 'Merci de respecter le format des e-mails !';

    tabLangue[2] = new Array(); 
    tabLangue[2][1] = 'Please respect the format of the e-mails !';

    tabLangue[3] = new Array(); 
    tabLangue[3][1] = 'Respetar el formato de los correos electrónicos !';
    
    tabLangue[4] = new Array(); 
    tabLangue[4][1] = 'Danke das Format der Emails zu respektieren !';

    var alerte = 0;
    for(f=0;f<formulaire.elements.length;f++) {
        var thisAttribut = formulaire.elements[f].getAttribute("format");
        if(thisAttribut=='email') {
            if(formulaire.elements[f].value!='') {
                if(checkEmail(formulaire.elements[f].value)==false) {
                        alerte++;
                        break;
                }                
            }

        }
    }
      
    if(alerte>0) {
		alert(tabLangue[langue][1]);
		if ((formulaire.elements[f].type == "text") || (formulaire.elements[f].type == "textarea")) {
            formulaire.elements[f].focus();
		}
        
		return false;   
    }
    return true;
    
}

function checkEmail(emailStr) {
       if (emailStr.length == 0) {
           return true;
       }
       var emailPat=/^(.+)@(.+)$/;
       var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
       var validChars="\[^\\s" + specialChars + "\]";
       var quotedUser="(\"[^\"]*\")";
       var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
       var atom=validChars + '+';
       var word="(" + atom + "|" + quotedUser + ")";
       var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
       var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
       var matchArray=emailStr.match(emailPat);
       if (matchArray == null) {
           return false;
       }
       var user=matchArray[1];
       var domain=matchArray[2];
       if (user.match(userPat) == null) {
           return false;
       }
       var IPArray = domain.match(ipDomainPat);
       if (IPArray != null) {
           for (var i = 1; i <= 4; i++) {
              if (IPArray[i] > 255) {
                 return false;
              }
           }
           return true;
       }
       var domainArray=domain.match(domainPat);
       if (domainArray == null) {
           return false;
       }
       var atomPat=new RegExp(atom,"g");
       var domArr=domain.match(atomPat);
       var len=domArr.length;
       if ((domArr[domArr.length-1].length < 2) ||
           (domArr[domArr.length-1].length > 4)) {
           return false;
       }
       if (len < 2) {
           return false;
       }
       return true;
    }
    
/* A FAIRE
float
*/    
