/**
 * @param {String} page :: url relative de la page a appeler
 * @param {String} nom :: nom de la page a appeler
 * @param {Int} top:: marge haute
 * @param {Int} left :: marge gauche
 * @param {Int} width :: largeur de la fenetre
 * @param {Int} height :: hauteur de la fenetre
 */
var F1=null;
function imprimeDevisStockage( datas )
{  
	F1=window.open('about:blank','imprime', 'top=100,left=100, width=781, height=600, resizable=yes, toolbar=no, scrollbars=yes, status=yes');
		
	F1.document.write ( datas );
	F1.document.close();
}

// fonction pour le formulaire de demande de devis
function affichePrestaForfait(id)
{
	cachePrestaForfait();
	$('forfait_'+id).style.display='';
	
	//
	$('ForfaitChargesLourdes_devis_'+id).name='ForfaitChargesLourdes_devis';
	//if($('ForfaitFournitures_devis_'+id))$('ForfaitFournitures_devis_'+id).name='ForfaitFournitures_devis';
	
 	ArrNumeric = new Array(
		'cartonsStandard_devis','cartonsLivre_devis','bulles1x10_devis','bulles05x100_devis','bulles1x100_devis','scotch_devis','sacs_devis','cartonsBouteilles_devis'
		);
	for(indice in ArrNumeric)
	{
	 	monChamp = ArrNumeric[indice];
		if($(monChamp+'_'+id))$(monChamp+'_'+id).name=monChamp;
	}
}
function cachePrestaForfait()
{
	for(var i=1;i<=3;i++)
	{
		$('forfait_'+i).style.display='none';
	}
}


// JavaScript Document
function verif(forme)
{
 var nom=forme.id;
 switch (nom)
 {
 /*===============================================================================
 				CONTACT
 ================================================================================*/
 case "formulaire_contact":
 //si les champs sont vides:
 if (forme.nom_contact)if (forme.nom_contact && forme.nom_contact.value==''){alert ('Remplissez le champ "nom" !');forme.nom_contact.focus();colore('nom_contact');return false;}else init('nom_contact');
 if (forme.prenom_contact)if (forme.prenom_contact && forme.prenom_contact.value==''){alert ('Remplissez le champ "prénom" !');forme.prenom_contact.focus();colore('prenom_contact');return false;}else init('prenom_contact');
 if (forme.email_contact)if (forme.email_contact && forme.email_contact.value==''){alert ('Remplissez le champ "email" !');forme.email_contact.focus();colore('email_contact');return false;}else init('email_contact');
 
 if (forme.email_contact)if (forme.email_contact && !(verifMail(forme.email_contact.value))){alert ("Votre email n'est pas valide!");forme.email_contact.focus();colore('email_contact');return false;}else init('email_contact');
 
 if (forme.tel_contact)if (forme.tel_contact && forme.tel_contact.value==''){alert ('Remplissez le champ "téléphone" !');forme.tel_contact.focus();colore('tel_contact');return false;}else init('tel_contact');
 if (forme.message_contact)if (forme.message_contact && forme.message_contact.value==''){alert ('Remplissez le champ "message" !');forme.message_contact.focus();colore('message_contact');return false;}else init('message_contact');
 
 break;
 
 /*===============================================================================
 				DEVIS
 ================================================================================*/
 case "formulaire_devis":
 //si les champs sont vides:
 if (forme.nom_devis)if (forme.nom_devis && forme.nom_devis.value==''){alert ('Remplissez le champ "nom" !');forme.nom_devis.focus();colore('nom_devis');return false;}else init('nom_devis');
 if (forme.prenom_devis)if (forme.prenom_devis && forme.prenom_devis.value==''){alert ('Remplissez le champ "prénom" !');forme.prenom_devis.focus();colore('prenom_devis');return false;}else init('prenom_devis');
 
 if (forme.adresse_devis)if (forme.adresse_devis && forme.adresse_devis.value==''){alert ('Remplissez le champ "adresse" !');forme.adresse_devis.focus();colore('adresse_devis');return false;}else init('adresse_devis');
 if (forme.cp_devis)if (forme.cp_devis && forme.cp_devis.value==''){alert ('Remplissez le champ "Code Postal" !');forme.cp_devis.focus();colore('cp_devis');return false;}else init('cp_devis');
 if (forme.ville_devis)if (forme.ville_devis && forme.ville_devis.value==''){alert ('Remplissez le champ "Ville" !');forme.ville_devis.focus();colore('ville_devis');return false;}else init('ville_devis');
 if (forme.pays_devis)if (forme.pays_devis && forme.pays_devis.value==''){alert ('Remplissez le champ "Pays" !');forme.pays_devis.focus();colore('pays_devis');return false;}else init('pays_devis');
 
 
 if (forme.tel_devis)if (forme.tel_devis && forme.tel_devis.value==''){alert ('Remplissez le champ "Téléphone" !');forme.tel_devis.focus();colore('tel_devis');return false;}else init('tel_devis');
 
 
 if (forme.email_devis)if (forme.email_devis && forme.email_devis.value==''){alert ('Remplissez le champ "email" !');forme.email_devis.focus();colore('email_devis');return false;}else init('email_devis');
 
 if (forme.email_devis)if (forme.email_devis && !(verifMail(forme.email_devis.value))){alert ("Votre email n'est pas valide!");forme.email_devis.focus();colore('email_devis');return false;}else init('email_devis');
 if (forme.visite_devis) 
 	if (document.getElementById('visite_devisO').checked == false && document.getElementById('visite_devisN').checked == false) {
 		alert('Remplissez le champ "Souhaitez-vous une visite" !');
 		document.getElementById('visite_devis').style.border = '1px solid #000';
 		colore('visite_devis');
 		return false;
 	}
 	else {
 		document.getElementById('visite_devis').style.border = 'none';
 		init('visite_devis');
 	}
 
 	// test sur le type INT 
 	ArrNumeric = new Array(
		'cartonsStandard_devis_1','cartonsLivre_devis_1','bulles1x10_devis_1','bulles05x100_devis_1','bulles1x100_devis_1','scotch_devis_1','sacs_devis_1','cartonsBouteilles_devis_1',
		'cartonsStandard_devis_2','cartonsLivre_devis_2','bulles1x10_devis_2','bulles05x100_devis_2','bulles1x100_devis_2','scotch_devis_2','sacs_devis_2','cartonsBouteilles_devis_2'
		);
 
	 for(indice in ArrNumeric)
	 {
	 	monChamp = ArrNumeric[indice];
		if( !document.getElementById(monChamp) )continue;
		if(!is_numeric( $(monChamp).value ))
		{
			alert ( 'La valeur du champ doit etre numérique !' );
			$(monChamp).focus();
			colore(monChamp);
			return false;
		}
		else init(monChamp);
		
	 }
 
 if (forme.sondage_devis)if (forme.sondage_devis && forme.sondage_devis.value==''){alert ('Remplissez le champ "Comment avez-vous connu l\'entreprise" !');forme.sondage_devis.focus();colore('sondage_devis');return false;}else init('sondage_devis');
 
 break; 
 }
 return true;
}

/**
 * function is_numeric(champ)
 * 
 * @param Mixed champ :: valeur a tester
 * 
 * @return Bool teste si une valeur est numérique ou vide
 * 
 */
function is_numeric(champ)
{
	if(isNaN(champ) && champ != '')	return false;
	else return true;
}

function verifMail(mail)
{
  var sigle,mail,N;
  var valide=true;
  
  // si il y a un espace, ou si le champs est vide, non valide
  if (mail.lastIndexOf(' ')!=-1 || mail==''){return(false);}
  
  // s'il y a plus qu'un @ ou si @ n'existe pas dans la chaine
  if ((mail.indexOf('@')!=mail.lastIndexOf('@')) || mail.indexOf('@')==-1) {return(false)}
  
  chaine=mail.substring(mail.indexOf('@'),mail.lastIndexOf('.'));//la ss chaine entre @ et .
  
  //Un minimum de 2 caract entre @ et '.' et aussi minimum de 2 caract apres le dernier '.'
  if ((chaine.length<2)||((mail.substring(mail.lastIndexOf('.'))).length<2)){return(false)}
  
  // Mini 1 caract avant @
  if (mail.substring(0,mail.indexOf('@')).length<1){return(false)} 
  
  // pas de succession de point "...." avant l'@
  //MIEUX: if (mail.indexOf('..')!=-1){return false}
  chaine=mail.substring(0,mail.indexOf('@'));//ss chaine de 0 Ó l'@
  n=chaine.length;
  for (i=0;i<n;i++)
  {
    if (chaine.charAt(i)=='.' && chaine.charAt(i+1)=='.'){return(false)}
  }
  return(true);
}

function verifCP(cp)
{
  if (cp.length!=5)
  {return false;}  
  else {return true;}
}

function verifDate(chaineDate)
{
   if (chaineDate == "") return false;
   //date formatée en JJ/MM/AAAA
   var ladate = (chaineDate).split("/")

   // Si je n'ai pas récupéré trois éléments ou bien s'il ne s'agit pas d'entiers, pas la peine non plus d'aller plus loin
   if ((ladate.length != 3) || isNaN(parseInt(ladate[0])) || isNaN(parseInt(ladate[1])) || isNaN(parseInt(ladate[2]))) 
   {
	   //date formatée MySQL
	   ladate = (chaineDate).split(" ");
	   ladate = (ladate[0]).split("-");
	   if ((ladate.length != 3) || isNaN(parseInt(ladate[0])) || isNaN(parseInt(ladate[1])) || isNaN(parseInt(ladate[2])))
	   {
		   alert("Mauvais format de date : ecrire une date de la forme \"JJ/MM/AAAA\" ou \"AAAA-MM-JJ\"");
		   return false;
	   }
	   else {a=ladate[0];ladate[0]=ladate[2];ladate[2]=a}
   }

   // Sinon, c'est maintenant que je crée la date correspondante. Attention, les mois sont étalonnés de 0 à 11
   var unedate = new Date(eval(ladate[2]),eval(ladate[1])-1,eval(ladate[0]))

   var annee = unedate.getYear()
   if ((Math.abs(annee)+"").length < 4) annee = annee + 1900

   // Il ne reste plus qu'à vérifier si le jour, le mois et l'année obtenus sont les mêmes que ceux saisis par l'utilisateur.
   if (((unedate.getDate() == eval(ladate[0])) && (unedate.getMonth() == eval(ladate[1])-1) && (annee == eval(ladate[2]))) == false )
   {
	   alert ("Votre date n'est pas valide!");
   	   return false;
   }
   return true;
}
function formatMysqlDate(chaineDate,champDate)
{
	var ladate = (chaineDate).split("/");
	champDate.value=ladate[2]+"/"+ladate[1]+"/"+ladate[0];
}


function colore(id)
{
	with(document.getElementById(id).style) 
	{
      	borderColor="#fd5555";
    }
}
function init(id)
{
	with(document.getElementById(id).style) 
	{
      	borderColor="#A89036";
    }
}

/*########################################*/
// fonction qui sert à la page param module
function aller_param_module(valeur)
{
	// valeur = "id_sites_module"_"table_module"
	// on scinde valeur en 2
	valeur=valeur.split("|");
	id=valeur[0];
	table=valeur[1];
	window.location="index.php?p="+table+"_params&module="+id;
}



/*###################################################################################
###################################################################################*/
/*#######################################*/
// fonction qui récupère les selectedIndex
// d'un select multiple
function selectedIndexes(TheSelect)
{
	var indexes=Array();
	var cpt=0;
	for (i=0; i<TheSelect.options.length; i++) 
	{
	    if (TheSelect.options[i].selected ) 
	    {
	    	indexes[cpt]=i;
	    	cpt++;
	    }
	}
	return indexes;
}

// fonction équivalente de print_r de php
function print_r(input)
{
	var ret;
	for(var i in input)
	{
		ret +="["+i+"] = "+input[i]+"\n";
	}
	alert(ret);
}
/* ###################################### */
// fonction qui met tous les elements d'un formulaire dans un tableau
function recup_form(forme)
{
	var ret=Array();
	var input=$('ajout_article').elements;
	var len=$('ajout_article').length;
	
	for(i=0;i<len;i++)
	{
		if(input[i].name!='')ret[input[i].name] =input[i].value;
	}
	return ret;
}
/*#######################################*/
// function getElementById
function $(id) { return document.getElementById(id); }

/*============================================================================
	Function de preload
	PREREQUIS:
	# le nb total d'images
	# la variable pause ( à "false")
	# le nom "timer" du timer
	# le cpt pour le num de l'image en cours
	# le tableau [liste_img] de la liste des chemins des images
	# le tableau [liste_alt] de la liste des alts des images
===========================================================================*/
var image=new Array();
function preload(liste_img)
{
	var nb_img=liste_img.length;
	
	for(i=0;i<nb_img;i++)
	{
		image[i]= new Image();
		image[i].src=liste_img[i];
	}
}

/*============================================================================
	Function de slide show
	PREREQUIS:
	# le nb total d'images
	# la variable pause ( à "false")
	# le nom "timer" du timer
	# le cpt pour le num de l'image en cours
	# le tableau [liste_img] de la liste des chemins des images
	# le tableau [liste_alt] de la liste des alts des images
===========================================================================*/
function roulement(image)
{
	// on met à jour les boutons play et pause
	maj_commandes();
	
	//alert(nb_max);
	//on change la photo
	TheDiv=document.getElementById(image);
	
	TheDiv.innerHTML="<img  class='photo' src='"+liste_img[cpt]+"' alt='"+liste_alt[cpt]+"' />";
	cpt++;
	if (cpt==nb_max)cpt=0;

	if(pause == false)timer=window.setTimeout("roulement('"+image+"')",4000);	
}

/*============================================================================
	Function pour les images des commandes
	PREREQUIS:
	# le nb total d'images
	# la variable pause 
	# les IDs des boutons play et pause
	# Les chemins des images ON et OFF
===========================================================================*/
function maj_commandes()
{
	ThePlay=document.getElementById('img_play');
	ThePause=document.getElementById('img_pause');
	if(pause == true)
	{
		ThePause.src='images/diapo_pause_on.gif';
		ThePlay.src='images/diapo_play_off.gif';
	}
	else
	{
		ThePause.src='images/diapo_pause_off.gif';
		ThePlay.src='images/diapo_play_on.gif';
	}
	//alert(ThePlay.src);
}