// JavaScript Document
// expressions régulières types
var REG_PSEUDO=/^\w{1,15}$/;
var REG_PASSWORD=/^\w{5,15}$/;
var REG_NOM=/^[a-zA-Zéèêàçùôîï]{1,1}[a-zA-Zéèêàçùôîï\'\-]{0,23}[a-zA-Zéèêàçùôîï]{1,1}$/;
var REG_NOM_PRENOM=/^[a-zA-Zéèêàçùôîï]{1,1}[a-zA-Zéèêàçùôîï\'\- ]{0,23}[a-zA-Zéèêàçùôîï]{1,1}$/;
var REG_BLANK=/^\s*$/;
var REG_EMAIL=/^[a-zA-Z0-9]+([\-\.\_]{1,1}[a-zA-Z0-9]+)*@[a-zA-Z0-9]+([\-\.\_]{1,1}[a-zA-Z0-9]+)+$/;
var REG_CP=/\d{5}/;
var REG_DATE=/^[0-3][0-9]\/[01][0-9]\/20[0-9]{2}$/;
var REG_TEL=/^[0-9]{10}$/;

function retour(libelle,champ){
	this.libelle=libelle;
	this.champ=champ;
}

function go_to_suite(formId,url) { // fonction permettant d'ouvrir une page avec transmission des champs de formulaire *** (c) Alain Lechenet ***
	if (document.getElementById) // navigateurs modernes
		obj=document.getElementById(formId);
	else if (document.all) // IE 4
		obj=document.all[formId];
	else if (document.layers)  // navigator 4
		obj=document.layers[formId];
	obj.method="post";		// méthode d'envoi du formulaire
	obj.action=url;		// action du formulaire
	obj.target="_self";
	obj.submit();		// soumission du formulaire
}

function AL_unescape(str){ // *** (c) Alain Lechenet ***
	return str.replace('&quot;','"');
}

function AL_stripSlashes(str){//  *** (c) Alain Lechenet ***
	str1=str.replace("\'","'")
	return str1.replace('\"','"');
}

function isEmail(chaine) {	// true if the email syntax is ok *** (c) Alain Lechenet ***
	longueur=chaine.length;
	i=0;
	nbe_arobas=0;
	position_arobas=0;
	position_point=0;
	res=true;
	do{
		car=chaine.substr(i,1);
		if (!((car>="a")  &&  (car<="z"))) {
			if (!((car>="A")  &&  (car<="Z"))) {
				if (!((car>="0")  &&  (car<="9"))) {
					if (car!="-") {
						if (car!="_") {
							if (car!="@") {
								if (car!=".") {						
									res=false;
									break;
								}
								else
									position_point=i+1;
							}
							else {
								position_arobas=i+1;
								nbe_arobas++;
							}
						}
					}
				}
			}
		}
		i=i+1;
	} while(i<longueur);
	if ((position_point==0) || (position_arobas==0) || (nbe_arobas!=1) || (position_point<position_arobas))
		res=false;
	return res;
}

function isEmpty(str){ // vrai si la chaine STR ne contient pas de texte valide (champ vierge ou espaces / tab etc.)
	REGEX_BLANK = /^\s*$/;
	return str.match(REGEX_BLANK);
}

function sendMessage() { // *** (c) Alain Lechenet ***
	var obj=document.contactForm;
	if(obj.contactNom.value.length == 0)
		alert("le champ 'nom' est obligatoire");
	else if(obj.contactEmail.value.length == 0)
		alert("le champ 'email' est obligatoire");
	else if(!isEmail(obj.contactEmail.value))
		alert("adresse email invalide");
	else if(!(obj.contactObjet[0].checked)&&!(obj.contactObjet[1].checked)&&!(obj.contactObjet[2].checked))
		alert("Veuillez pr&eacute;ciser l'objet de votre message");
	else if(obj.contactMessage.value.length == 0)
		alert("Votre message est vide");
	else {
		obj.action="send-message.php";		// action du formulaire
		obj.submit();		// soumission du formulaire
	}
}

function showProperty(obj){ // liste les propriétés d'un objet
	if(win==null || win.closed) var win=window.open("","debugWin","width=800, height=400, scrollbars=yes");
//win.document.open("text/plain");
	var noms = "";
	for (var nom in obj){
		noms += nom + "=" + obj[nom] + "<br />";		
	}
	win.document.write(noms);
	win.document.write("=============================");
}

function trace(str){ // trace les événements dans une fenêtre spécifique
	if(win==null || win.closed) var win=window.open("","debugWin","width=500, height=1000, scrollbars=yes");
	win.document.write(str+"<br />");
}

function filePath(str){// permet d'extraire le chemin d'accès d'un fichier (path)
	if(!str.match(/\//))
		return "";
	else
		return str.match(/^(.*)\/[^\/]*$/)[1];
}

function fileName(str){// permet d'extraire le nom du fichier sans son extension)
	if(!str.match(/\//))
		return str.match(/^(.*)\.[a-zA-Z0-9]*$/)[1];
	else
		return str.match(/^.*\/([^\/]*)\.[a-zA-Z0-9]*$/)[1];
}

function fileExt(str){
	return str.match(/^.*\.([^\.]*)$/)[1];
}

function fullName(path,file,ext){
	return (path=="" ? "" : path+'/')+file+'.'+ext;
}

//====================== système de menus glissants dans la leftBar =================================
// l'événement déclencheur et l'événement glissant doivent avoir impérativement des noms dont la syntaxe est 
// (respectivement) : toggleNom et groupeNom
//
function slider(T,S){ // fonction prototype objet slider (2 propriétés toggleElt et SlideElt)
	this.T=T;
	this.S=S;
}

function toggleInit(){ // initialise tous les menus glissants du document
	$$('#leftBar span.theme').each(function(elt){
		var slide = new slider(elt,new Fx.Slide(elt.id.replace(/toggle/,'groupe')));
		slide.T.addClass('open'); 
		slide.S.hide(); // les menus glissants sont fermés au départ
		slide.T.addEvent('click', slideIt.bindAsEventListener(slide));
	});
}

function slideIt(e){
	e = new Event(e);
	this.T.toggleClass('open');
	this.T.toggleClass('close');
	this.S.toggle();
	e.stop();
}

