//-- Fonctions javascript utilisées dans plusieurs parties du site

// -- Définition des  messages utilisés dans ce fichier : le contenu des messages est injecté dans la page en fonction de la langue choisie
var MSG_FORMULAIRE_INVALIDE;
var MSG_ERREUR_COMBO;
var MSG_ERREUR_CHAMP_MAIL;
var MSG_ERREUR_NUMERIQUE;
var MSG_ERREUR_CHAMP_NUMERIQUE_BORNEE;
var MSG_ERREUR_CHAMP_OBLIGATOIRE;
var MSG_ERREUR_CHAMP_INCORRECT;
var MSG_ERREUR_CHAMP_SIRET_TVA;
var MSG_ERREUR_CHAMP_MOT_DE_PASSE;
var MSG_APERCU_PHOTO;
var MSG_FERMER_FENETRE;

// -- 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;
			if (val.options){
				if (val.options[val.selectedIndex].value=="")
					errors+=MSG_ERREUR_COMBO.replace("{CHAMP}",nm)+"\n";
			}else if ((val=val.value)!="") {
				if (test.indexOf('isEmail')!=-1) {
					p=val.indexOf('@');
					if (p<1 || p==(val.length-1))
						errors+=MSG_ERREUR_CHAMP_MAIL.replace("{CHAMP}",nm)+"\n";
				}else if (test!='R') {
					num = parseFloat(val);
					if (val!=''+num)
						errors+=MSG_ERREUR_CHAMP_NUMERIQUE.replace("{CHAMP}",nm)+"\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+=MSG_ERREUR_CHAMP_NUMERIQUE_BORNE.replace("{CHAMP}",nm)+"\n";
					}
				}
			} else if (test.charAt(0) == 'R')
				errors+=MSG_ERREUR_CHAMP_OBLIGATOIRE.replace("{CHAMP}",nm)+"\n";
		}
	}
	document.MM_returnValue = (errors == '');
	return errors;
}
//-- Fonctions pour gérer la pagination
function changerPage(champ,page){
	champ.value=page;
	champ.form.submit();
} 
function genererSelecteurPages(champ,page,nbPages){
	var resultat="";
	if (nbPages>1){
		if (page>1){
			resultat+='<a href="javascript:changerPage('+champ+','+(page-1)+')">&lt;&lt;</a>';
		}
		resultat+=' ';
		for (i=1;i<=nbPages;i++){
			var debut='';
			var fin='';
			if (i!=page){
				debut='<a href="javascript:changerPage('+champ+','+i+')">';
				fin='</a>';
			}else{
				debut='<b>';
				fin='</b>';
			}
			resultat+=debut+i+fin+' ';
		}
		if (page<nbPages){
			resultat+=('<a href="javascript:changerPage('+champ+','+(page+1)+')">&gt;&gt;</a>');
		}
	}
	document.write(resultat);
}

// Ouvre une fenêtre "popup" à partir d'une certaine URL, avec une certaine largeur et hauteur
function popup(url,largeur,hauteur){
	var f=window.open(url,"fenetre","height="+hauteur+",width="+largeur+",toolbar=no,location=no,status=no,directories=no,scrollbars=no,resizable=no,copyhistory=no");
	f.focus();
	return f;
}

// Fonction pour afficher une image dans une popup avec un bouton "Fermer la fenêtre"
function apercu(url,largeur,hauteur){
	var f=popup("about:blank",largeur,hauteur);
	var tmp ="<html>";
	tmp+="<head>";
	tmp+="<title>"+MSG_APERCU_PHOTO+"</title>";
	tmp+="<link rel=\"stylesheet\" type=\"text/css\" href=\"/css/commun.css\">";
	tmp+="</head>";
	tmp+="<body class=\"centre\">";
	tmp+="<p><img src=\""+url+"\" alt=\""+MSG_APERCU_PHOTO+"\" border=\"1\"></p>";
	tmp+="<p><a href=\"javascript:window.close()\">"+MSG_FERMER_FENETRE+"</a></p>";
	tmp+="</body>";
	tmp+="</html>";
	f.document.write(tmp);
}

// Vérification de la saisie d'un code composé de plusieurs champs
// le premier argument est le nom du code, suivi de la liste des champs qui le composent
function verifierSaisieCode(f){
	var resultat="";
	var args=verifierSaisieCode.arguments;
	if (args.length>0){
		var estCorrect=true;
		for (i=1;i<args.length && estCorrect;i++){
			estCorrect=estCorrect && (args[i].value!="");		
		}
		if (!estCorrect) resultat=MSG_ERREUR_CHAMP_INCORRECT.replace("{CHAMP}",args[0])+"\n";
	}
	return resultat;
}

// Vérifie l'intégralité de la fiche revendeur lors de la validation du formulaire f pour une langue donnée l
function verifierFicheRevendeur(f,l){
	// Vérification de la saisie des champs standards
	var message=MM_validateForm('raisonSociale','','R','responsable','','R','telephone','','R','mail','','RisEmail');
	// Vérification de la saisie des codes
	var siren=f.elements["siren[]"];
	if (l=='fr'){
		message+=verifierSaisieCode('numéro SIRET',siren[0],siren[1],siren[2],f.nic);
		message+=verifierSaisieCode('numéro TVA',f.prefixeTva,siren[3],siren[4],siren[5]);
		rib=f.elements["rib[]"];
		message+=verifierSaisieCode('numéro RIB',rib[0],rib[1],rib[2],rib[3]);
		// Vérification de la cohérence des codes
		if (siren[0].value!=siren[3].value || siren[1].value!=siren[4].value || siren[2].value!=siren[5].value)
			message+=MSG_ERREUR_CHAMP_SIRET_TVA+"\n";
	}else{
		message+=verifierSaisieCode('VAT',f.prefixeTva,siren[0],siren[1],siren[2]);
	}
	var iban=f.elements["iban[]"];
	message+=verifierSaisieCode('numéro IBAN',iban[0],iban[1],iban[2],iban[3],iban[4],iban[5],iban[6],iban[7]);
	// Vérification de la confirmation du mot de passe
	if (f.confirmation.value!=f.motDePasse.value)
		message+=MSG_ERREUR_CHAMP_MOT_DE_PASSE+"\n";
	// Affichage du message d'erreur éventuel
	if (message!="") alert(MSG_FORMULAIRE_INVALIDE+"\n"+message);
	return (message=="");
}

// Vérifie le bon de commande et envoi le formulaire
function verifierCommande(message){
	document.commande.dateLivraison.disabled=false;
	var erreur=MM_validateForm('dateLivraison','','R');
	if (!document.MM_returnValue){
		alert(erreur);
		return false;
	}else{
		return confirm(message);
	}
}

// Fonction pour faire clignoter un élément HTML un certain nombre de fois avec un certain délai
function clignoter(id,nbFois,delai){
	var element=document.getElementById(id);
	element.style.visibility=(element.style.visibility=='hidden')?'visible':'hidden';
	var nbFois-=0.5;
	if (nbFois>0){
		setTimeout("clignoter('"+id+"',"+nbFois+","+delai+")",delai);
	}
}

// Afficher ou masquer un élément selon son état actuel
function toggle_aff(id){
	var elem = document.getElementById(id);
	if(elem.style.display == 'block') elem.style.display = 'none';
	else elem.style.display = 'block';
	return false;
}
