/** * Fichier commun.js * Ce fichier contient les fonctions javascript client utilisées sur les sites domainedelapeyrouse.educagri.fr / domainedeschaulnes.educagri.fr */// Ouvre une fenêtre "popup" à partir d'une certaine URL, avec une certaine largeur et hauteurvar nbPopups=0;function popup(url,largeur,hauteur){	var f=window.open(url,"fenetre"+nbPopups,"height="+hauteur+",width="+largeur+",toolbar=no,location=no,status=no,directories=no,scrollbars=yes,resizable=no,copyhistory=no");	nbPopups++;	f.focus();	return f;}// -- fonction pour modifier le pointage d'un formulaire vers une popupfunction submitPopup(form,largeur,hauteur){	popup("about:blank",largeur,hauteur);	form.target="fenetre"+(nbPopups-1);}// Fonction pour ouvrir une popup et afficher une image à l'intérieur, avec les boutons Imprimer et Fermerfunction apercu(url){	var fenetre=popup("about:blank",400,520);	tmp ="<html>";	tmp+="<head>";	tmp+="<title>Détails</title>";	tmp+="<link rel=\"stylesheet\" type=\"text/css\" href=\"/css/commun.css\">";	tmp+="</head>";	tmp+="<body id=\"apercu\">";	tmp+="<img src=\""+url+"\">";	tmp+="<p><a href=\"javascript:window.print()\">Imprimer</font></a> ";	tmp+="| <a href=\"javascript:window.close()\">Fermer la fenêtre</a></p>";	tmp+="</body>";	tmp+="</html>";	fenetre.document.write(tmp);}// -- Fonctions Standard Macromedia Dreamweaver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_validateForm() { //v3.0  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);    if (val) { nm=val.name;obj=val; if ((val=val.value)!="") {      if (obj.type=="checkbox")	if (!obj.checked) errors+='- La case '+nm+' doit être cochée.\n';      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');        if (p<1 || p==(val.length-1)) errors+='- Le champ '+nm+' doit contenir une adresse mail valide.\n';      } else if (test!='R') { num = parseFloat(val);        if (val!=''+num) errors+='- Le champ '+nm+' doit contenir une valeur numérique.\n';        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');          min=test.substring(8,p); max=test.substring(p+1);          if (num<min || max<num) errors+='- Le champ '+nm+' doit contenir une valeur numérique comprise entre '+min+' et '+max+'.\n';    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' est obligatoire.\n'; }  } if (errors) alert('Le formulaire n\' a pas pu être validé pour les raisons suivantes :\n'+errors);  document.MM_returnValue = (errors == '');}// Fonction pour valider un formulaire sur un click de checkboxfunction validerCheckbox(champ,valeur,message,event){	reponse=true;	if (message!=""){		reponse=confirm(message);	}	if (reponse){		champ.value=valeur;		champ.form.submit();	}else{		checkbox=event.srcElement?event.srcElement:event.target;		checkbox.checked=!checkbox.checked;	}}// Fonction pour valider le formulaire d'identificationfunction identifier(){	if (document.identification.motDePassePerdu.checked){		MM_validateForm('mail','','RisEmail');	}else{		MM_validateForm('mail','','RisEmail','motDePasse','','R');	}	return document.MM_returnValue;}//Mise à jour et soumission du formulaire de recherche pour changer de pagefunction changePage(page,formnumber){	formnumber = formnumber || 0;		f=document.forms[formnumber];	f.page.value=page;	f.submit();} // Generation du sélecteur de pagesfunction genererPages(page,nbPages,formnumber){	formnumber = formnumber || 0;	resultat="";	if (nbPages>1){		if (page>1){			resultat+='<a href="javascript:changePage('+(page-1)+','+formnumber+')">&lt;&lt; Page précédente</a>';		}		resultat+=' ';		for (i=1;i<=nbPages && (i<=20 || i<=page+2);i++){			debut='';			fin='';			if (i!=page){				debut='<A HREF="javascript:changePage('+i+','+formnumber+');" target="_self">';				fin='</A>';			}else{				debut='<B>';				fin='</B>';			}			resultat+=debut+i+fin+' ';		}		if (page<nbPages){			resultat+=('<a href="javascript:changePage('+(page+1)+','+formnumber+')">Page suivante &gt;&gt;</a>');		}	}	return resultat;}// Ajout aux favorisfunction favoris(libelle){	browserName = navigator.appName;	browserVer = parseInt(navigator.appVersion);	if (browserName == "Microsoft Internet Explorer" & browserVer >= 4) {		window.external.AddFavorite(location.href,libelle);	}}// Vérifie le formulaire des demandes de pièces// Cette fonction n'a pas (encore) été remplacée par MM_validateForm à cause de l'utilisation d'un tableau de champs de formulaire (nouvelleLigne[])function verifierDemandePiece(formulaire){	erreur="";	champs=formulaire["nouvelleLigne[]"];	nomChamps=new Array("Marque","Cylindrée","Modèle","Mois première mise en circulation","Année de première mise en circulation","Type mine","Description de la pièce recherchée");	for (i=2;i<9;i++)		if (champs[i].value=="") erreur+="- Le champ "+nomChamps[i-2]+" doit être renseigné\n";	if (erreur!="")		alert("Le formulaire n\'a pas pu être validé pour la ou les raisons suivantes :\n" + erreur);	return (erreur=="");}// Fonction pour faire clignoter un élément HTML un certain nombre de fois avec un certain délai// id : l'élément HTML à faire clignoter// nbFois : le nombre de fois à faire clignoter l'élément, infiniment si <0// delai : le délai en ms entre deux clignotementsfunction clignoter(id,nbFois,delai){	//alert("clignoter("+id+","+nbFois+","+delai+")");	element=document.getElementById(id);	element.style.visibility=(element.style.visibility=='hidden')?'visible':'hidden';	nbFois-=0.5;	if (nbFois!=0){		setTimeout("clignoter('"+id+"',"+nbFois+","+delai+")",delai);	}}// Fonction qui permet de modifier la classe CSS d'un DIV à partir de son identifiantfunction majDiv(id,classe,e){	document.getElementById(id).className=classe;	if (e){		x=Math.min(e.clientX+document.body.scrollLeft,document.body.clientWidth-320);		y=e.clientY+document.body.scrollTop+10;		document.getElementById(id).style.left=x;		document.getElementById(id).style.top=y;	}}// Fonction permettant de valider le formulaire de livraisonfunction validateLivraison(){	frm=document.forms['livraison'];	if(frm.elements['typeLivraison'][0].checked){		return true;	}	else if(frm.elements['typeLivraison'][1].checked) {		if(document.forms.livraison.adresseSelect.options.selectedIndex!=0){			return true;		}		MM_validateForm('nom','','R','prenom','','R','telephone','','R','motDePasse','','R','adresse','','R','codePostal','','R','ville','','R','pays','','R','accepteConditions','','R');		return document.MM_returnValue;	} 	else if(frm.elements['typeLivraison'][2].checked){		if (frm.elements['tntRCSelectedCode'].value=="" || frm.elements['tntRSelectedNom'].value=="" || frm.elements['tntRSelectedAdresse'].value=="" || frm.elements['tntRSelectedCodePostal'].value=="" || frm.elements['tntRSelectedCommune'].value==""){			alert("Vous n'avez pas choisi votre Relais Colis®.\nVeuillez vérifier votre saisie");			return false;		}	}	else{		alert("Vous n'avez pas saisi de mode de livraison.");		return false;	}	return true;}//fonction permettant de valider le changement de marque dans les pieces-neuves, cela permet de réinitialiser la combo de cylindree à 0function submitMarque(){	if(document.getElementsByName('cylindree')[0]){		document.getElementsByName('cylindree')[0][0].selected=true;	}	document.forms[1].submit();}//Fonction permettant de cacher la table des adresses en focntion d'une selection de textboxfunction cacherTableAdresse(hide){		document.livraison.typeLivraison[1].checked=true	if(hide==0){		document.getElementById("newAdresseLivraison").style.display = "block";		}else{		document.getElementById("newAdresseLivraison").style.display = "none"; 	}}