///////////////////////////////////////////////////////
//fonction permettant de rediriger la page vers url  //
///////////////////////////////////////////////////////
function redirige(url){
	document.location.href=url;
}
///////////////////////////////////////////////////////
//fonction permettant de rendre invisible la div info//
///////////////////////////////////////////////////////
function cache_info(){
	fHide('info');
}

///////////////////////////////////////////////////////
//fonction permettant de rendre visible la div info  //
///////////////////////////////////////////////////////
function montre_info(){
	fAffiche('info');
	//setTimeout('cache_info()',25000);
}

/////////////////////////////////////////////
//fonction appeler au chargement de la page//
/////////////////////////////////////////////
function chargement(){
	//var obj = document.getElementById("div_contenu");
	//obj.style.display = "";
}


///////////////////////////////////////
//gestion des cookies//////////////////
///////////////////////////////////////

function EcrireCookie(nom, valeur){
	var argv=EcrireCookie.arguments;
	var argc=EcrireCookie.arguments.length;
	var expires=(argc > 2) ? argv[2] : null;
	var path=(argc > 3) ? argv[3] : null;
	var domain=(argc > 4) ? argv[4] : null;
	var secure=(argc > 5) ? argv[5] : false;
	document.cookie=nom+"="+escape(valeur)+
	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
	((path==null) ? "" : ("; path="+path))+
	((domain==null) ? "" : ("; domain="+domain))+
	((secure==true) ? "; secure" : "");
}

function getCookieVal(offset){
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1) endstr=document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

function LireCookie(nom){
	var arg=nom+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while (i<clen){
		var j=i+alen;
		if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
		i=document.cookie.indexOf(" ",i)+1;
		if (i==0) break;
	}
	return null;
}

///////////////////////////////////////
///////////////////////////////////////



function change_classe(formulaire,champ,etat) {
  eval("document." + formulaire + "." + champ).className = etat;
}

function changeto(e,highlightcolor){

	source=e.srcElement||e.target;
	
	if (source.tagName=="TD"||source.tagName=="TABLE")return;
	
	while(source.tagName!="TD")source=source.parentNode;
	
	if (source.className!=highlightcolor&&source.id!="ignore")source.className=highlightcolor;

}

function changeback(e,highlightcolor){

	source=e.srcElement||e.target;
	
	if (source.tagName=="TD"||source.tagName=="TABLE")return;
	
	while(source.tagName!="TD")source=source.parentNode;
	
	if (source.className=highlightcolor&&source.id!="ignore")source.className=highlightcolor;

}

//////////////////////////////////////////////////////////////////
//test de validité des données entrées dans le formulaire/////////
//////////////////////////////////////////////////////////////////

String.prototype.trim = function() {

 // skip leading and trailing whitespace
 // and return everything in between
  var x=this;
  x=x.replace("/^\s*(.*)/", "$1");
  x=x.replace("/(.*?)\s*$/", "$1");
  return x;
}


function emailValidation(entered, alertbox){
	with (entered){
		apos=value.indexOf("@"); 
		dotpos=value.lastIndexOf(".");
		lastpos=value.length-1;
		if (apos < 1 || dotpos-apos < 2 || lastpos-dotpos > 3 || lastpos-dotpos < 2 || lastpos>49) 
		{
			if (alertbox) {alert(alertbox);}
			return false;
		}else {
			return true;
		}
	} 
}

// Vérification d'un date
function isDate(d) {
  // Cette fonction permet de vérifier la validité d'une date au format jj/mm/aa ou jj/mm/aaaa
  // Par Romuald
  
  if (d == "") // si la variable est vide on retourne faux
    return false;
  
  e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{2}|[0-9]{4})$");
  
  if (!e.test(d)) // On teste l'expression régulière pour valider la forme de la date
    return false; // Si pas bon, retourne faux

  // On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
  j = parseInt(d.split("/")[0], 10); // jour
  m = parseInt(d.split("/")[1], 10); // mois
  a = parseInt(d.split("/")[2], 10); // année

  // Si l'année n'est composée que de 2 chiffres on complète automatiquement
  if (a < 1000) {
    if (a < 89)  a+=2000; // Si a < 89 alors on ajoute 2000 sinon on ajoute 1900
    else a+=1900;
  }

  // Définition du dernier jour de février
  // Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
  if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29;
  else fev = 28;

  // Nombre de jours pour chaque mois
  nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);

  // Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
  return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
}


// Vérifié qu'il s'agit bien d'une date
// entered : objet contenant la date
// alertbox : le mesage en cas d'erreur
function dateValidation(entered, alertbox){

	with (entered){
		if (isDate(entered.value) == false){
			if (alertbox!="") {alert(alertbox+"\n"+" Le format est (JJ/MM/AAAA) ou (JJ/MM/AA)");} 
			return false;
		}
		else {return true;}
	}	
}

// Vérifie que l'Objet donné est bien renseigné TRUE si c'est rempli
// entered : l'objet a vérifier
// alertbox : le message en cas d'erreur
function emptyValidation(entered, alertbox){
	with (entered){
		if (value==null || value==""){
			if (alertbox!="") {alert(alertbox);} 
			return false;
		}
		else {return true;}
	}
}


function listeValidation(entered, alertbox){
	with (entered){

		checkValue = "";
		isNumber = true;

  		MyArrayOfS=value.split(",");
		
		
		// On enleve tous les caractères non numériques
		for (i = 0; i<MyArrayOfS.length ; i = i+1){
			c = MyArrayOfS[i];
			if (isNaN(c) == true || c.trim() == ""){
				if (alertbox) {alert(alertbox);}
				return false;
			}
			
		}
		
		return true;
	}
}

// Vérifie que la valeur se trouve bien dans l'interval entre min et max
function digitValidation(entered, min, max, alertbox){
	with (entered){

		checkValue = "";
		// On enleve tous les caractères non numériques
		for (i = 0; i<value.length ; i = i+1){
			c = value.charAt(i);
			if ((isNaN(c) == false) && (c != " ")){
				checkValue = checkValue+value.charAt(i);
			}
			
		}
		
		if ((checkValue.length < min) || (checkValue.length > max) || isNaN(checkValue)){
			if (min != max){
				if (alertbox!="") {alert(alertbox+"\n"+"Le champ doit comporter entre "+min+" et "+max+" chiffres");} 
				return false;
			}
			else{
				if (alertbox!="") {alert(alertbox+"\n"+"Le champ doit comporter exactement "+min+" chiffres");} 
				return false;
			}
			
		}
		else {return true;}
	}
} 

function digitValidationStrict(entered, min, max, alertbox){
	with (entered){

		checkValue = "";
		// On enleve tous les caractères non numériques
		for (i = 0; i<value.length ; i = i+1){
			c = value.charAt(i);
			
			if ((isNaN(c) == false) && (c != " ")){
				checkValue = checkValue+value.charAt(i);
			}
			else {
				if (c != " "){
				 
					if (alertbox!="") {alert(alertbox+"\n"+"Le champ doit comporter entre "+min+" et "+max+" chiffres");} 
					return false;			
				}
			}
			
		}
		
		if ((checkValue.length < min) || (checkValue.length > max) || isNaN(checkValue)){
			if (min != max){
				if (alertbox!="") {alert(alertbox+"\n"+"Le champ doit comporter entre "+min+" et "+max+" chiffres");} 
				return false;
			}
			else{
				if (alertbox!="") {alert(alertbox+"\n"+"Le champ doit comporter exactement "+min+" chiffres");} 
				return false;
			}
			
		}
		else {return true;}
	}
} 

function digitValidationStrict2(entered, min, max){
	with (entered){

		checkValue = "";
		// On enleve tous les caractères non numériques
		for (i = 0; i<value.length ; i = i+1){
			c = value.charAt(i);
			
			if ((isNaN(c) == false) && (c != " ")){
				checkValue = checkValue+value.charAt(i);
			}
			else {
				if (c != " "){
				 
					alert("Le code postal doit comporter "+min+" ou "+max+" chiffres (departement ou ville)."); 
					return false;			
				}
			}
			
		}
		
		if (((checkValue.length != min) && (checkValue.length != max)) || isNaN(checkValue)){
			alert("Le code postal doit comporter "+min+" ou "+max+" chiffres (departement ou ville).");
			return false;
		}
		else {return true;}
	}
} 

// Fonction permettant de vérifier une valeur numérique
// ----------------------------------------------------
// - Si min != max : vérifie que le nombre est bien dans la fourchette donnée
// - Si la valeur contient un ',' il est remplacé par '.'
// - vérifcation qu'il ne s'agit pas d'un NaN, avec datatype non renseigné
// ----------------------------------------------------
// entered : l'OBJET contenant la valeur
// min : la valeur minimal
// max : la valeur maximale
// alertbox : est le texte retourné en cas d'erreur
// datatype : une vérification au niveau du type
// 
function valueValidation(entered, min, max, alertbox, datatype){
	
	
	
	with (entered){
	
		valeur = value.replace(/\,/g,".");
				
		if (isNaN(valeur) == true) {
					
				if (alertbox != "") {
					
						alert(alertbox);
						return false;
						
				} 
					
		}
		checkvalue=parseFloat(valeur);
		if (datatype){
			
			smalldatatype=datatype.toLowerCase();
			
			if (smalldatatype.charAt(0)=="i") {
				checkvalue=parseInt(valeur);
			}
			
			if (min != max) {
				if ((parseFloat(min)==min && checkvalue < min) || (parseFloat(max)==max && checkvalue > max) || value!=checkvalue){
					if (alertbox!="") {
						alert(alertbox+"\n"+"Le champ doit être compris entre "+min+" et "+max);
					} 
					return false;
				}
				return true;
			
			}
			else return true;
			
			
		}
		else {return true;}
	}
	
} 

function zoom(chemin,nom){
	i1 = new Image;
	i1.src = chemin;
	html = '<html><head><title>'+nom+'</title></html>';
	html += '<meta http-equiv="ImageToolbar" content="No">';
	html = html + '<body topmargin=0 leftmargin=0 onclick="javascript:window.close()">';
	if(navigator.appName == "Microsoft Internet Explorer")
		html = html + '<img src="'+chemin+'" name=zoom onLoad="window.resizeTo(document.zoom.width+10,document.zoom.height+120)">';
	else
		html = html + '<img src="'+chemin+'" name=zoom onLoad="window.resizeTo(document.zoom.width+20,document.zoom.height+150)">';
	html = html + '</body></html>';
	
	popupImage = window.open('','_blank','toolbar=1,location=0,directories=0,menubar=1,scrollbars=0,resizable=0,top=0,left=0');
	popupImage.document.open();
	popupImage.document.write(html);
	popupImage.document.close();
}

function fin_flash(){
	//document.body.background = "img/fond/principal.gif";
	//document.body.backgroundRepeat = "repeat-x";	
	//url(img/fond/principal.gif)
	
	var obj = document.getElementById("div_chargement");
	obj.style.display = "none";
	var obj = document.getElementById("div_contenu");
	obj.style.display = "";
	//document.location.href = "http://www.storistes-de-france.com/";
	//document.location.href = "http://82.238.55.34/sinlenoble";
	
	chargement();
		
	}
	
	// JavaScript Document
// Le reference est pour le placer a partir de quoi !
// Le reference est pour le placer a partir de quoi !
  function flottementMenu(id_name, posX, posY, positionHorizontal, positionVerticale, vitesse, reference, auto){
	var ns = (navigator.appName.indexOf("Netscape") != -1);
    var doc = document;
	
	function init(elt) {
		 
	var elemRef;	  

	if (reference != "") {
		elemRef = support(reference);
		elt.y = getAbsoluTop(elemRef)+posY;
		elt.x = getAbsoluLeft(elemRef)+posX;
	} else {
		
		elt.y = posY;
		elt.x = posX;	
	
	}

      //  Activer ca  ce qui suit pour positionner l'initalisation de l'emplacement du diff au debut
	  // Sinoni içl risque de parcourir tout l'écran ... au démarrage de la page
	  // Cela permet aussi de faire des effets de travelling sympa :-) si on est en 0,0
		
	  
	  if (positionHorizontal == "droite") {
		if (reference == "") {		
		   elt.x = ns?pageXOffset+innerWidth: document.body.scrollLeft+document.body.clientWidth;
		   elt.x -=posX + elt.offsetWidth;
		} else {
		   elt.x -=posX - elt.offsetWidth;
		}
	   }
	  if (positionHorizontal == "gauche") {
		if (reference != "") {		
		   elt.x -=posX + elemRef.offsetWidth;
		}
	   }
	  
	   if (positionVerticale=="bas") {
      		if (reference == "") {		
			   elt.y=ns?pageYOffset+innerHeight:document.body.scrollTop+document.body.clientHeight;
        	   elt.y -=posY + elt.offsetHeight;
			}else {
        	   elt.y -=posY + elt.offsetHeight;
			}	
       }

	  if (positionVerticale=="haut") {
      		if (reference != "") {		
        	   elt.y -=posY - elt.offsetHeight;
			}	
      }	  
	  
	}
	
    function support(id){
      var elt=doc.getElementById?doc.getElementById(id):
                              doc.all?doc.all[id]:doc.layers[id];
    
      elt.sP=function(x,y){
		  this.style.left=x+"px";
		  this.style.top=y+"px";
	  };
     
	  return elt;
    }
    window.stabilisation=function(id_name, posX, posY, positionVerticale, positionHorizontal, vitesse, reference, auto){
      var ftlObj = support(id_name);
      var elemRef;	  

	if (reference != "") {
		elemRef = support(reference);
	}



	  pY = 0;
 	  pX = 0;
	 
	 
	  if (positionVerticale=="haut"){
         if (reference == "") {
			 pY = ns ? pageYOffset : document.body.scrollTop;
		} else {
   		   pY=getAbsoluTop(elemRef) - ftlObj.offsetHeight;
		 }
		ftlObj.y += (pY + posY- ftlObj.y)/vitesse;
      }
      else{
		  if (positionVerticale=="bas"){
		  if (reference == "") {
		   pY=ns?pageYOffset+innerHeight: document.body.scrollTop+document.body.clientHeight;
		   pY-= ftlObj.offsetHeight;
		  } else {
   		   pY=getAbsoluTop(elemRef)+elemRef.offsetHeight;
		  }
	       ftlObj.y += (pY - posY- ftlObj.y)/vitesse;
		}
      }
	 
	  if (positionHorizontal=="gauche"){
        if (reference == "") {
			pX = ns ? pageXOffset : document.body.scrollLeft;
		} else {
            pX=getAbsoluLeft(elemRef)-elemRef.style.width - ftlObj.offsetWidth;
		}
      	ftlObj.x += (pX + posX - ftlObj.x)/vitesse;
      }
      else{
 		  if (positionHorizontal=="droite"){
		  	// A vérifier pour Moz car il semble que ce la merde !!
		     if (reference == "") {
		  	  pX=ns?pageXOffset+innerWidth: document.body.scrollLeft+document.body.clientWidth;
			  pX-=ftlObj.offsetWidth;
		    } else {
	      	   pX=getAbsoluLeft(elemRef)+elemRef.offsetWidth;
		    }
        	ftlObj.x += (pX - posX - ftlObj.x)/vitesse;
		}
      }
	 
      ftlObj.sP(ftlObj.x, ftlObj.y);
	  
      if (auto) setTimeout("stabilisation('"+id_name+"',"+posX+", "+posY+", '"+positionVerticale+"', '"+positionHorizontal+"', "+vitesse+", '"+reference+"' , "+auto+" )",0);
    }
	init(support(id_name));
    stabilisation(id_name, posX, posY, positionVerticale,positionHorizontal, vitesse, reference, auto);
	var elt=doc.getElementById?doc.getElementById(id_name):doc.all?doc.all[id_name]:doc.layers[id_name];
		
	elt.style.visibility = "visible";
 }
	
 function getAbsoluTop(myTarget){

	var top = 0;	
	
	//if (!myTarget.offsetTop) return 0;
	
	while(myTarget!= document.body) { 
		{
			top += myTarget.offsetTop;
		}
		 myTarget = myTarget.offsetParent;   
	} 
	return top;
} 

//fonction retournant l'abscisse absolue d'un objet
function getAbsoluLeft(myTarget){

	var Left = 0;	

	//if (!myTarget.offsetLeft) return 0;

	while(myTarget!= document.body) {
		{
			Left += myTarget.offsetLeft;     	
		}
		 myTarget = myTarget.offsetParent;
	}   
	return Left;

} 