var submit=0;






// Mise en page d'accueil
function ajouterHomepage(lien, obj)
{
	// IE seulement
	if (document.all)
	{
		obj.style.behavior='url(#default#homepage)';
		obj.setHomePage(lien);
	}
}




// Mise en favoris
function ajouterFavoris(lien, texte)
{
	// Firefox
	if (window.sidebar)
	{
		window.sidebar.addPanel(texte, lien, '');
	}
	// Les autres
	else
	{
		window.external.AddFavorite(lien, texte);
	}
}



// Le message d'avertissement de l'autologin
function messageAutologin()
{
	// On affiche le message d'aertissement
	var rep=window.confirm(_("site:messageautologin"))
	if (rep) document.log.submit();
	else return false;
}




// La pop-up de la visite guidee
function openVisite()
{
  var largeur=740;
  var hauteur=630;
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  t=window.open('visite.php', 'myefarmvisite','top='+top+',left='+left+',toolbar=no,status=no,scrollbars=no,width='+largeur+',height='+hauteur);
  t.focus();
}







// La pop-up de detail d'un fermier
function openDetail(id)
{
  var largeur=535;
  var hauteur=400;
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  t=window.open('fiche_ident-i-'+id+'.htm', 'myefarmdetail','top='+top+',left='+left+',toolbar=no,status=no,scrollbars=no,width='+largeur+',height='+hauteur);
  t.focus();
}






// La pop-up de chat
function openChat(chat, hash)
{
  var largeur=700;
  var hauteur=590;
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  t=window.open('http://irc.myefarm.com/chat_pop.php?chat='+chat+'&hashcode='+hash, 'myefarmchat','top='+top+',left='+left+',toolbar=no,status=no,scrollbars=no,width='+largeur+',height='+hauteur);
  t.focus();
}







// La pop-up des connectes
function openConnectes()
{
  var largeur=580;
  var hauteur=500;
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  t=window.open('connectes.php', 'myefarmconnectes','top='+top+',left='+left+',toolbar=no,status=no,scrollbars=yes,width='+largeur+',height='+hauteur);
  t.focus();
}








// La pop-up du bloc-note
function openBlocnote()
{
  var largeur=860;
  var hauteur=560;
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  t=window.open('blocnote_pop.php', 'myefarmblocnote','top='+top+',left='+left+',toolbar=no,status=no,scrollbars=no,width='+largeur+',height='+hauteur);
  t.focus();
}







// La pop-up du graphe de progression
function openProgression()
{
  var largeur=850;
  var hauteur=650;
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  t=window.open('progression_pop.php', 'myefarmprogression','top='+top+',left='+left+',toolbar=no,status=no,scrollbars=no,width='+largeur+',height='+hauteur);
  t.focus();
}







// La pop-up du journal
function openJournal(n)
{
  var largeur=1000;
  var hauteur=650;
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  t=window.open('journal/edition-'+n+'/journal.php', 'myefarmjournal','top='+top+',left='+left+',toolbar=no,status=no,scrollbars=yes,resizable=yes,width='+largeur+',height='+hauteur);
  t.focus();
}







// La pop-up des smileys
function openSmiley()
{
  var largeur=450;
  var hauteur=550;
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  t=window.open('smileys.php', 'myefarmsmiley','top='+top+',left='+left+',toolbar=no,status=no,scrollbars=yes,width='+largeur+',height='+hauteur);
  t.focus();
}








// La pop-up des sanctions
function openSanction(id)
{
  var largeur=520;
  var hauteur=350;
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  t=window.open('forum_sanction.php?id='+id, 'myefarmsanction','top='+top+',left='+left+',toolbar=no,status=no,scrollbars=no,width='+largeur+',height='+hauteur);
  t.focus();
}






// La pop-up de l'edition des titres
function openEditionPost(id)
{
  var largeur=500;
  var hauteur=300;
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  t=window.open('forum_edition_post.php?id='+id, 'myefarmeditionpost','top='+top+',left='+left+',toolbar=no,status=no,scrollbars=no,width='+largeur+',height='+hauteur);
  t.focus();
}





// La pop-up du changement de mail
function openChangeMail()
{
  var largeur=500;
  var hauteur=300;
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  t=window.open('compte_changemail.php', 'myefarmchangemail','top='+top+',left='+left+',toolbar=no,status=no,scrollbars=no,width='+largeur+',height='+hauteur);
  t.focus();
}






// La pop-up des filleuls
function openAlbumPhoto()
{
  var largeur=980;
  var hauteur=650;
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  t=window.open('goodies/photo', 'myefarmalbumphoto','top='+top+',left='+left+',toolbar=no,status=no,scrollbars=yes,resizable=yes,width='+largeur+',height='+hauteur);
  t.focus();
}





// La pop-up des filleuls
function openParrainage()
{
  var largeur=580;
  var hauteur=350;
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  t=window.open('parrainage.php', 'myefarmparrainage','top='+top+',left='+left+',toolbar=no,status=no,scrollbars=yes,width='+largeur+',height='+hauteur);
  t.focus();
}





// La pop-up des paroles de la musique de myefarm
function openParolesMyefarm()
{
  var largeur=650;
  var hauteur=550;
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  t=window.open('http://img.myefarm.com/goodies/audio/myefarm.htm', 'myefarmparoles','top='+top+',left='+left+',toolbar=no,status=no,scrollbars=yes,resizable=yes,width='+largeur+',height='+hauteur);
  t.focus();
}





// La pop-up du jeu de paques
function openJeuPaques()
{
  var largeur=860;
  var hauteur=600;
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  t=window.open('detente_paques2008_pop.php', 'myefarmjeupaques','top='+top+',left='+left+',toolbar=no,status=no,scrollbars=yes,resizable=yes,width='+largeur+',height='+hauteur);
  t.focus();
}





// On active / desactive la liste des departements selon le pays selectionne
function checkPays()
{
	if(document.inscription.pays.options[document.inscription.pays.selectedIndex].value==33)
		document.inscription.departement.disabled=false;
	else
		document.inscription.departement.disabled=true;

	return true;
}







// On verifie que le formulaire d'inscription est rempli correctement
function verifInscription()
{
	if (!verifSubmit()) return false;

	var message=_("site:inscriptionform");
	var email=document.inscription.email.value;
	var ok=true;

	// Une civilite selectionnee
	if (document.inscription.civ.selectedIndex==0)
	{
	 	 message+=_("site:inscriptionciv");
		 ok=false;
	}

	// Dans le cas de la Jordanie, il n'y a pas de verif a faire
	if (document.inscription.pays.value!=962)
	{
		// Un pays selectionne
		if (document.inscription.pays.selectedIndex==0)
		{
		 	 message+=_("site:inscriptionpays");
			 ok=false;
		}

		// Le departement non vide si c'est un francais
		if (document.inscription.pays.options[document.inscription.pays.selectedIndex].value==33)
			if (document.inscription.departement.selectedIndex==0)
			{
			 	 message+=_("site:inscriptiondepartement");
				 ok=false;
			}
	}

	// Le mail
	if (email.indexOf('@',0)==-1 || email.indexOf('.',0)==-1 || email.indexOf(' ',0)!=-1)
	{
	 	 message+=_("site:inscriptionemail");
		 ok=false;
	}

	// Le pseudo
	if (document.inscription.pseudo.value.length<2)
	{
	 	 message+=_("site:inscriptionpseudo");
		 ok=false;
	}

	// Le mot de passe
	if (document.inscription.password.value=='')
	{
	 	 message+=_("site:inscriptiopassword");
		 ok=false;
	}

	// L'acceptation des conditions
	if (document.inscription.acc.checked==false)
	{
	 	 message+=_("site:inscriptionregles");
		 ok=false;
	}

	// La date de naissance
	if (document.inscription.anniv0.value=='' || document.inscription.anniv1.value=='' || document.inscription.anniv2.value==''
			|| document.inscription.anniv0.value<1 || document.inscription.anniv0.value>31
			|| document.inscription.anniv1.value<1 || document.inscription.anniv1.value>12
			|| document.inscription.anniv2.value<1900)
	{
	 	 message+=_("site:inscriptionanniv");
		 ok=false;
	}


	if (!ok) window.alert(message);

	if (ok) submit=1;
	return ok;
}











// On verifie que le formulaire de contact est rempli correctement
function verifContact()
{
	if (!verifSubmit()) return false;

	var message=_("site:contactform");
	var email=document.contact.email.value;
	var ok=true;

	// Le nom
	if (document.contact.nom.value=='')
	{
	 	 message+=_("site:contactnom");
		 ok=false;
	}

	// Le mail
	if (email.indexOf('@',0)==-1 || email.indexOf('.',0)==-1 || email.indexOf(' ',0)!=-1)
	{
	 	 message+=_("site:contactemail");
		 ok=false;
	}

	// Le message
	if (document.contact.message.value=='')
	{
	 	 message+=_("site:contactmsgvide");
		 ok=false;
	}

	if (!ok) window.alert(message);

	if (ok) submit=1;
	return ok;
}







// On verifie que le formulaire de probleme de code est rempli correctement
function verifContactCode()
{
	if (!verifSubmit()) return false;

	var message=_("site:contactcodeform");
	var email=document.contact.email.value;
	var ok=true;

	// Le pseudo
	if (document.contact.pseudo.value=='')
	{
	 	 message+=_("site:contactcodepseudo");
		 ok=false;
	}

	// Le mail
	if (email.indexOf('@',0)==-1 || email.indexOf('.',0)==-1 || email.indexOf(' ',0)!=-1)
	{
	 	 message+=_("site:contactcodeemail");
		 ok=false;
	}

	// Le code
	if (document.contact.code.value=='')
	{
	 	 message+=_("site:contactcodevide");
		 ok=false;
	}

	// Le service concerne
	if (document.contact.service.selectedIndex==0)
	{
	 	 message+=_("site:contactcodeservice");
		 ok=false;
	}

	// Le type de code
	if (document.contact.type.selectedIndex==0)
	{
	 	 message+=_("site:contactcodetype");
		 ok=false;
	}

	// La date
	if (document.contact.quand.value=='')
	{
	 	 message+=_("site:contactcodequand");
		 ok=false;
	}

	if (!ok) window.alert(message);

	if (ok) submit=1;
	return ok;
}









// On verifie que le formulaire de mot de passe perdu est rempli correctement
function verifPassword()
{
	if (!verifSubmit()) return false;

	var message=_("site:passwordform");
	var email=document.perdu.email.value;
	var ok=true;

	// Le pseudo
	if (document.perdu.pseudo.value=='')
	{
	 	 message+=_("passwordpseudo");
		 ok=false;
	}

	// Le mail
	if (email.indexOf('@',0)==-1 || email.indexOf('.',0)==-1 || email.indexOf(' ',0)!=-1)
	{
	 	 message+=_("site:passwordemail");
		 ok=false;
	}

	if (!ok) window.alert(message);

	if (ok) submit=1;
	return ok;
}











// On verifie que le formulaire de changement de password est rempli correctement
function verifMotdepasse()
{
	if (!verifSubmit()) return false;

	var message=_("site:motdepasseform");
	var ok=true;

	// Le mot de passe actuel
	if (document.mdp.password.value=='')
	{
	 	 message+=_("site:motdepassevide");
		 ok=false;
	}

	// Le nouveau non vide
	if (document.mdp.newpass.value=='')
	{
	 	 message+=_("site:motdepassepasvide");
		 ok=false;
	}

	// Le nouveau different du pseudo
	if (ok && document.mdp.pseudo.value==document.mdp.newpass.value)
	{
	 	 message+=_("site:motdepasseidentique");
		 ok=false;
	}

	if (!ok) window.alert(message);

	if (ok) submit=1;
	return ok;
}








// On verifie que le formulaire de recherche est ok
function verifRechercheForum()
{
	var rech=new String();
	var ok=true;

	if (!verifSubmit()) return false;

	// Taille de la recherche >1
	if (document.recherche.rech.value.length<2)
	{
	 	 message=_("site:rechercheforummotif");
		 ok=false;
	}

	if (!ok) window.alert(message);

	if (ok) submit=1;
	return ok;
}






// On ajoute un champs a un form
function addFormField(formu, field, val)
{
	var elt = document.createElement("input");

	elt.setAttribute('type', 'hidden');
	elt.setAttribute('name', field);
	elt.setAttribute('id', field);
	elt.setAttribute('value', val);

	document.getElementById(formu+'_div').appendChild(elt);
}




// On verifie que le mec valide pas 10 fois
function verifSubmit()
{
	//if (submit) window.alert('Vous venez de valider, patientez quelques instants');

	return !submit;
}





// On demande confirmation lors de la vente du vehicule au N2
function validVenteVehiculeN2()
{
	if (window.confirm(_("site:validventevehiculen2"))) document.venteCasse.submit();
}






// On valide une seule fois le formulaire
function uniqueSubmit()
{
	//if (submit) window.alert('Vous venez de valider, patientez quelques instants');

	if (!verifSubmit()) return false;
	submit=1;

	return true;
}



// On valide une action
function valid(formu, act)
{
	if (!verifSubmit()) return;
	submit=1;

	eval('document.'+formu+'.act.value="'+act+'";');
	eval('document.'+formu+'.submit();');

	return;
}







// On inverse les checkbox d'un formulaire
function invert(formu)
{
	field=document.forms[formu].elements;

	for (i=0;i<field.length; i++)
		if (!field[i].disabled) field[i].checked=!field[i].checked;
}




// On ne selectionne que les poulaillers avec couveuses
function selectN2Couveuses(formu)
{
	field=document.forms[formu].elements;

	nb=0;
	for (i=0;i<field.length; i++)
		if (field[i].name=='couv[]') if (field[i].value>0)
		{
			field[i-1].checked=!field[i-1].checked;
			nb++;
		}

	// On gere la barre d'etat
	if (nb>1) self.status=nb+_("site:n2couveusespoulaillers");
	else
	{
		if (nb==0) nb=_("site:n2couveusesaucun");
		self.status=nb+_("site:n2couveusespoulailler");
	}

	setTimeout('self.status="";', 6000);
}





// Permet de ticker la checkbox d'un element
//	- poulaillers N2 en cliquant sur l'image
//	- silos N3 en cliquant sur l'image
//	- citernes N3 en cliquant sur l'image
function tickElement(chk)
{
	document.getElementById(chk).checked=!document.getElementById(chk).checked;
}






// On verifie que le post du forum est ok
function verifPost()
{
	if (!verifSubmit()) return false;

	var message=_("site:verifpostform");
	var ok=true;

	// Le titre
	if (document.post.titre.value=='')
	{
	 	 message+=_("site:verifposttitrevide");
		 ok=false;
	}

	// Le post
	if (document.post.post.value=='')
	{
	 	 message+=_("site:verifpostmsgvide");
		 ok=false;
	}

	if (!ok) window.alert(message);

	if (ok) submit=1;
	return ok;
}






// On se souvient de la position du curseur pour toutes les fonctions d'insertion qui suivent
function storeCaret(tx)
{
	if (tx.createTextRange) tx.caretPos=document.selection.createRange().duplicate();
}



// On ajoute un smiley dans le message
function addSmiley(img)
{
	img=' '+img+' ';

	if (document.post.post.createTextRange && document.post.post.caretPos && !document.selection.createRange().text)
	{
		var cPos=document.post.post.caretPos;
		cPos.text=img;
		document.post.post.focus();
	}
	else
	{
		if (document.post.post.selectionEnd)
		{
			var textDeb=document.post.post.value.substring(0 , document.post.post.selectionEnd);
			var textFin=document.post.post.value.substring(document.post.post.selectionEnd, document.post.post.textLength);
			document.post.post.value=textDeb + img + textFin;
			document.post.post.focus();
		}
		else
		{
			document.post.post.value=document.post.post.value + img;
			document.post.post.focus();
		}
	}

	return;
}
// On va ajouter du texte en gras
function addGras()
{
	document.post.post.value+=_("site:addgras");
	document.post.post.focus();

	return;
}
// On va ajouter du texte en couleur
function addCouleur()
{
	document.post.post.value+=_("site:addcouleur");
	document.post.post.focus();

	return;
}
// On va ajouter un indice
function addIndice()
{
	document.post.post.value+=_("site:addindice");
	document.post.post.focus();

	return;
}



// On affiche ou cache les indices
function switch_indice(cpt)
{
	var lyrB=document.getElementById('indiceB'+cpt);
	var lyr=document.getElementById('indice'+cpt);

	if (lyr.style.display=='none')
	{
		lyrB.style.display='none';
		lyr.style.display='';
	}
	else
	{
		lyrB.style.display='';
		lyr.style.display='none';
	}

	return;
}




// Les differents messages pre-remplis
// Pas de style SMS
function addAutoSMS()
{
	document.post.modo.value=1;
	document.post.post.value=_("site:addautosms");
	return;
}
// Soluce
function addAutoSoluce()
{
	document.post.modo.value=1;
	document.post.post.value=_("site:addautosoluce");
	return;
}
// Indice
function addAutoIndice()
{
	document.post.modo.value=1;
	document.post.post.value=_("site:addautoindice");
	return;
}
// Sanction
function addAutoSanction()
{
	document.post.modo.value=1;
	document.post.post.value=_("site:addautosanction");
	return;
}















// On verifie que le message est ok
function verifMessage(m)
{
	if (!verifSubmit()) return false;

	var message=_("site:verifmessageform");
	var ok=true;

	// Le destinataire
	if (m==0 && document.post.d[document.post.d.selectedIndex].value==-1)
	{
	 	 message+=_("site:verifmessagedesti");
		 ok=false;
	}

	// Le titre
	if (document.post.titre.value=='')
	{
	 	 message+=_("site:verifmessagetitrevide");
		 ok=false;
	}

	// Le post
	if (document.post.post.value=='')
	{
	 	 message+=_("site:verifmessagemsgvide");
		 ok=false;
	}

	if (!ok) window.alert(message);

	if (ok) submit=1;
	return ok;
}







// On s'assure que seuls des chiffres sont entres
function verifInt(ev)
{
	// Pour IE
	if (ev.keyCode && (ev.keyCode<48 || ev.keyCode>57) && ev.keyCode!=8 && ev.keyCode!=9 && ev.keyCode!=13 && ev.keyCode!=37 && ev.keyCode!=39 && ev.keyCode!=46 && ev.keyCode!=99 && ev.keyCode!=118)
		return false;

	// Pour Mozilla
	if (ev.which && (ev.which<48 || ev.which>57) && ev.which!=8 && ev.which!=13 && ev.which!=99 && ev.which!=118)
		return false;

	return true;
}







// On s'assure que seuls des chiffres ou une virgule / point sont entres
function verifReal(ev)
{
	// Pour IE
	if (ev.keyCode && (ev.keyCode<48 || ev.keyCode>57) && ev.keyCode!=8 && ev.keyCode!=9 && ev.keyCode!=13 && ev.keyCode!=37 && ev.keyCode!=39 && ev.keyCode!=44 && ev.keyCode!=46 && ev.keyCode!=99 && ev.keyCode!=118)
		return false;

	// Pour Mozilla
	if (ev.which && (ev.which<48 || ev.which > 57) && ev.which!=8 && ev.which!=13 && ev.which!=44 && ev.which!=46 && ev.which!=99 && ev.which!=118)
		return false;

	return true;
}











// Le javascript du marche
// La liste des achats -> deux tableaux (qtt / prix)
var ha_qtt=new Array();
var ha_prx=new Array();

// On met a jour un element de la liste
function marcheChange(id, qtt, qttmax, prix)
{
	// On met a jour l'element
	ha_qtt[id]=qtt;
	ha_prx[id]=prix;

	// On calcule le cout total
	tot=0;
	for (i=0; i<ha_qtt.length; i++)
		if(ha_qtt[i])
			tot+=ha_qtt[i]*ha_prx[i];

	// On vire l'erreur d'arrondi de JS
	tot=(Math.round(tot*100))/100;

	// On gere les chiffres apres la virgule
	tot=tot.toString();
	if (tot.indexOf('.',0)==-1) tot=tot+'.00';
	if (tot.length-tot.lastIndexOf('.',tot.length-1)==2) tot=tot+'0';

	// On met a jour le cout total
	document.marche.total.value=tot;
}



// On interdit de valider 36 fois le meme achat
function verifMarche()
{
	if (!verifSubmit()) return false;
	submit=1;
	
	return true;
}



// La mise a jour des totaux de la feuille de livraison N3
function livraisonN3Change()
{
	// Le formulaire
	var f=document.livraison;
	// On recalcule tous les totaux provisiores
		// Ble
		f.tot10.value=formateMilliersInt(replaceAll(f.qtt10.value, ' ', '')*8);
		// Mais
		f.tot11.value=formateMilliersInt(replaceAll(f.qtt11.value, ' ', '')*8);
		// Carottes
		f.tot12.value=formateMilliersInt(replaceAll(f.qtt12.value, ' ', '')*9);
		// Salade
		f.tot13.value=formateMilliersInt(replaceAll(f.qtt13.value, ' ', '')*9);
		// Essence
		f.tot21.value=formateMilliersInt(replaceAll(f.qtt21.value, ' ', '')*10);
		// Super savon
		f.tot22.value=formateMilliersInt(replaceAll(f.qtt22.value, ' ', '')*30);
		// Super seringues
		f.tot23.value=formateMilliersInt(replaceAll(f.qtt23.value, ' ', '')*40);
		// Mega foin
		f.tot24.value=formateMilliersInt(replaceAll(f.qtt24.value, ' ', '')*20);

	// Les totaux globaux
		// Livraison normale
		f.total.value=formateMilliersInt(
									parseInt(replaceAll(f.tot10.value, ' ', ''))+
									parseInt(replaceAll(f.tot11.value, ' ', ''))+
									parseInt(replaceAll(f.tot12.value, ' ', ''))+
									parseInt(replaceAll(f.tot13.value, ' ', ''))+
									parseInt(replaceAll(f.tot21.value, ' ', ''))+
									parseInt(replaceAll(f.tot22.value, ' ', ''))+
									parseInt(replaceAll(f.tot23.value, ' ', ''))+
									parseInt(replaceAll(f.tot24.value, ' ', '')));
		// Livraison expresse
		f.diffexpress.value=formateMilliersInt((Math.round(parseInt(replaceAll(f.total.value, ' ', ''))*0.1*100))/100);
		f.totalexpress.value=formateMilliersInt((Math.round(parseInt(replaceAll(f.total.value, ' ', ''))*1.1*100))/100);
}


// Formatte une chaine numerique avec un separateur de milliers
function formateMilliersInt(val)
{
	var separator = " ";
	var str = String(val);
	var dec;

	// S'il y a une partie decimale, on ne traite que la partie entiere
	if (str.indexOf('.') != -1)
	{
		str = str.split('.');
		dec = str[1];
		str = str[0];
	}

	var res = str.replace ( new RegExp ( separator, "g" ), "" );
	var regexp = new RegExp ( "\\B(\\d{3})(" + separator + "|$)" );

	do
	{
		res = res.replace ( regexp, separator + "$1" );
	} while ( res.search ( regexp ) >= 0 )

	// On remet la partie decimale
	if (dec)
	{
		// La partie decimale sur deux chiffres
		if (dec<10) dec=dec*10;
		res=res+'.'+dec;
	}

	return res;
}
// Applique la fonction formateMilliersInt a une textebox
function formateMilliersIntTextBox(input, ev)
{
	input.value=formateMilliersInt(input.value);

	// Pour IE
	// Si la touche etait un tab, on selectionne le contenu
	if (ev.keyCode && (ev.keyCode==9))
		input.select();

}



// Remplace toutes les occurences de from par to en utilisant la fonction replace
function replaceAll(str, from, to)
{
	do
	{
		str = str.replace(from, to);
	} while (str.search(from) != -1);

	return str;
}




// Compte le nombre de c dans la chaine str
function getNbChar(c, str)
{
	var nb=-1;
	var i=-1;

	do
	{
		nb++;
		i=str.indexOf(c,i+1);
	} while(i!=-1);

	return nb;
}




// On verifie que le formulaire de vente est ok
function verifVenteN3Animaux(male, femelle)
{
	if (!verifSubmit()) return false;

	var message=_("site:venten3animauxform");
	var ok=true;

	// La quantite non nulle
	if ((male && document.vente.qttm.value==0) || (femelle && document.vente.qttf.value==0))
	{
	 	 message+=_("site:venten3animauxquant");
		 ok=false;
	}

	// Le prix non nul
	if ((male && document.vente.prixm.value==0) || (femelle && document.vente.prixf.value==0))
	{
	 	 message+=_("site:venten3animauxprixsup");
		 ok=false;
	}

	// Le nombre de , et . <2
	if ((male && getNbChar(',', document.vente.prixm.value) + getNbChar('.', document.vente.prixm.value)>1)
	|| (femelle && getNbChar(',', document.vente.prixf.value) + getNbChar('.', document.vente.prixf.value)>1))
	{
	 	 message+=_("site:venten3animauxprixnoncorrect");
		 ok=false;
	}

	if (!ok) window.alert(message);

	if (ok) submit=1;
	return ok;
}





// On envoie vers la page de vente sur le marche au bestiaux
function venteN3Bestiaux(formu, act)
{
	if (!verifSubmit()) return false;
	submit=1;

	// On change la destination du formulaire
	eval('document.'+formu+'.action="/vente_bestiaux.php";');
	eval('document.'+formu+'.act.value="'+act+'";');
	eval('document.'+formu+'.submit();');
}





// On demande confirmation de la reinitialisation du compte
function confirmReinit()
{
	return window.confirm(_("site:confirmreinit"));
}








// On charge une page depuis une pop-up dans la fenetre principale
function load_opener(page, cl)
{
	if (opener && !opener.closed)
  	opener.location.href=page;
	else
		window.open(page,'main');

	if (cl) window.close();
}















// On verifie qu'il peut ajouter l'article
function boutiqueTSVerifAjoute(article)
{
	var message=_("site:boutiqueTSinformations");
	var ok=true;
	var choix;

	// Les t-shirts
	if (article==1)
	{
		// Le dos
		choix=false;
		elt=document.tshirt.dos;
		for (i=0; i<elt.length; i++) if(elt[i].checked) choix=true;
		if (!choix)
		{
			message+=_("site:boutiqueTSpasdevisuel");
			ok=false;
		}

		// La taille
		choix=false;
		elt=document.tshirt.taille;
		for (i=0; i<elt.length; i++) if(elt[i].checked) choix=true;
		if (!choix)
		{
			message+=_("site:boutiqueTSpasdetaille");
			ok=false;
		}

		// La qtt
		if (document.tshirt.qtt.options[document.tshirt.qtt.selectedIndex].value==0)
		{
			message+=_("site:boutiqueTSquantitenull");
			ok=false;
		}
	}

	// Les sacs a dos
	if (article==2)
	{
		// La qtt
		if (document.sac.qtt.options[document.sac.qtt.selectedIndex].value==0)
		{
			message+=_("site:boutiqueTSquantitenull");
			ok=false;
		}
	}

	// Les tapis de souris
	if (article==3)
	{
		// La qtt
		if (document.tapis.qtt.options[document.tapis.qtt.selectedIndex].value==0)
		{
			message+=_("site:boutiqueTSquantitenull");
			ok=false;
		}
	}

	if (!ok) window.alert(message);

	return ok;
}




// On verifie que le mec a bien mis son adresse
function boutiqueVerifAdresse()
{
	var message=_("site:boutiqueVerifAdresseform");
	var ok=true;

	if (document.commande.adresse.value=='')
	{
		message+=_("site:boutiqueVerifAdresselivr");
		ok=false;
	}

	if (!ok) window.alert(message);

	return ok;
}





// La fonction d'internationnalisation
function _(clef)
{
	// Si la traduction existe
	try
	{
		// Récupération de la chaine correspondant à la clef
		var str = i18n[clef];

		// Si la traduction n'existe pas
		if (str === undefined)
		{
			// Renvoi la clef
			str = clef;
		}

		// Renvoi la chaine traduite
		return str;

	}
	catch(e)
	{
		// Si il y a un problème (fichier non chargé par exemple), on renvoi la clée
		return clef;
	}
}
