var num = "0123456789";
function res(t,v){
	var w = "";
	for (i=0; i < t.value.length; i++) 
		{
			x = t.value.charAt(i);
			if (v.indexOf(x,0) != -1)
			w += x;
		}
		t.value = w;
}

function ToggleNode(nodeObject, imgObject) { 
	nodeObject = document.getElementById(""+nodeObject+"");
	imgObject = document.images[""+imgObject+""];
	if(nodeObject.style.display == '' || nodeObject.style.display == 'block'){ 
		nodeObject.style.display = 'none'; 
		imgObject.src = '/img/commun/voiroptions.gif'; 
	}else{ 
		nodeObject.style.display = 'block'; 
		imgObject.src = '/img/commun/masqueroptions.gif'; 
	} 
}


function AnchorPosition_getPageOffsetLeft (el) {
	var ol=el.offsetLeft;
	while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }
	return ol;
	}

function AnchorPosition_getWindowOffsetLeft (el) {
	return AnchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft;
	}	

function AnchorPosition_getPageOffsetTop (el) {
	var ot=el.offsetTop;
	while((el=el.offsetParent) != null) { ot += el.offsetTop; }
	return ot;
	}

function AnchorPosition_getWindowOffsetTop (el) {
	return AnchorPosition_getPageOffsetTop(el)-document.body.scrollTop;
	}

function getAnchorPosition(anchorname) {
	// Retourne les coordonnées X et Y d'une balise Anchor
	var useWindow=false;
	var coordinates=new Object();
	var x=0,y=0;
	// Browser capability sniffing
	var use_gebi=false, use_css=false, use_layers=false;
	if (document.getElementById) { use_gebi=true; }
	else if (document.all) { use_css=true; }
	else if (document.layers) { use_layers=true; }
	// Logic to find position
 	if (use_gebi && document.all) {
		x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
		y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
		}
	else if (use_gebi) {
		var o=document.getElementById(anchorname);
		x=AnchorPosition_getPageOffsetLeft(o);
		y=AnchorPosition_getPageOffsetTop(o);
		}
 	else if (use_css) {
		x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
		y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
		}
	else if (use_layers) {
		var found=0;
		for (var i=0; i<document.anchors.length; i++) {
			if (document.anchors[i].name==anchorname) { found=1; break; }
			}
		if (found==0) {
			coordinates.x=0; coordinates.y=0; return coordinates;
			}
		x=document.anchors[i].x;
		y=document.anchors[i].y;
		}
	else {
		coordinates.x=0; coordinates.y=0; return coordinates;
		}
	coordinates.x=x;
	coordinates.y=y;
	return coordinates;
	}




function toggleOptions()
	{
 	//var scrollingY = (document.all) ? document.body.scrollTop : window.pageYOffset;
	var coordo = getAnchorPosition("options");
	window.scrollTo(coordo.x,coordo.y);
	ToggleNode('td_option_table', 'img_options');
	}


function Trim(s) 
{
  // Supprime les espaces et les retours à la ligne
  
  while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
  {
    s = s.substring(1,s.length);
  }

  while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
  {
    s = s.substring(0,s.length-1);
  }
  return s;
}


function postFormPanier(){
		// On va d'abord soumettre les options à un champ caché
		if(tab_options_panier.length > 0){
			// Si la longueur du tableau est supérieure à 0
			// On soumet les options au panier
			document.forms['f_panier'].elements['optionsProduit'].value = tab_options_panier;
		}
		return true;	
}

function supprimeElm(elementnr) {
	// elementnr est le numéro d'index que nous voulons supprimer
    	for (elementnr; elementnr < tab_options.length ; elementnr++){
       	// assigne la valeur d'elementnr à + 1 ainsi tous les éléments sont incrémentés de 1
		// Le dernier éléments est mis à la fin
		tab_options[elementnr] = tab_options[elementnr + 1];
	}
	// Et on raccourcit le tableau de 1 ! le tour est joué...
	tab_options.length=tab_options.length-1;
}

tab_index = 0;
tab_options = new Array();
tab_options_panier = new Array();
tab_selected = new Array();

function majOption(checkb, state, index, option_grp_id, o_id, o_titre, o_prix, o_dispo, o_unique_val){
		var suppr = false;
		o_groupe = option_grp_id;
		
		// Met à jour les classes CSS en fonction de l'état checked
				if(state == "option_btn")
				
					{
				
						document.getElementById("td_option_"+index+"_"+option_grp_id+"_ctr").className="option_checked";					
						tab_options[tab_index] = new Array(o_id, o_titre, o_prix, o_dispo, o_groupe, o_unique_val);
						tab_selected[tab_index] = new Array(index, option_grp_id);
						tab_index++;
						
						for(var i=1; i < tab_selected.length; i++)
						
							{
								
							if((index != tab_selected[i][0]) && (option_grp_id == tab_selected[i][1]))
							
										{
									
		
											document.getElementById("td_option_"+tab_selected[i][0]+"_"+tab_selected[i][1]+"_ctr").className="option_unchecked";
											
											delete tab_options[i];
											
											suppr=true;
												
										}
							
								
							}
							
						
							
					}
					
				else
				
					{
					
						if(state==true)
						
							{
							
								document.getElementById("td_option_"+index+"_"+option_grp_id+"_ctr").className="option_checked";
								
								tab_options[index] = new Array(o_id, o_titre, o_prix, o_dispo, o_groupe, o_unique_val);
							
							}
							
						else
						
							{
							
								
								document.getElementById("td_option_"+index+"_"+option_grp_id+"_ctr").className="option_unchecked";
								
								//delete tab_options[index];
								
								delete tab_options[index];
							
							}	

					  }
					  
					  b=0;
					  				 
					 for (var a in tab_options)
									
						{
																			
							tab_options_panier[b] = new Array(tab_options[a]);
										
							b++;
									
						}
						

				}
				
//Fonction de verification des champs de devis

function sub_form_devis() 

	{
	
	// On va écourter les noms des champs en leur affectant une variable

	var f_civilite = document.devis.civilite;
	var f_nom = document.devis.nom;
	var f_prenom = document.devis.prenom;
	var f_adresse1 = document.devis.adresse_ligne1;
	var f_codepostal = document.devis.codepostal;
	var f_ville = document.devis.ville;
	var f_pays = document.devis.pays;
	var f_tel = document.devis.tel_pro;
	var f_acces = document.devis.acces;
	var f_lieuimp = document.devis.lieu_imp;
	var f_projet = document.devis.projet;
	
	
	var f_courriel = document.devis.courriel;
	//var f_dnaissance = document.devis.client_datenaissance;
	
	var civilite = f_civilite.value;
	var nom = f_nom.value;
	var prenom = f_prenom.value;
	var adresse1 = f_adresse1.value;
	var codepostal = f_codepostal.value;
	var ville = f_ville.value;
	var pays = f_pays.value;

	var tel = f_tel.value;
	var acces = f_acces.value;
	var lieuimp = f_lieuimp.value;
	var projet = f_projet.value;
	var courriel = f_courriel[0].value;

	//var email = f_email[0].value;
	//var datenaissance = f_dnaissance.value;
	

	var regexp_f 		 = /[;\'\"*]/;
	var regexp_az 	 = /[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-]/;
	var regexp_email = /[;\'\"*éèàê]/;
	var regexp_dn		 = /^\d{2}([\/]|[\-])+\d{2}([\/]|[\-])+\d{4}(\d{4})*$/;
	
	var erreur = false;
		
	// On vérifie la civilité

	if(civilite==0)
	
		{
		
			alert("La civilité n'a pas été sélectionnée\n\nMerci de bien vouloir corriger");
			
			f_civilite.focus();
			
			f_civilite.className='input_focus';
			
			erreur = true;
			
			return false;
			
			
		}
	
	// On vérifie le nom
	// 1) est-ce que le nom est exempt de caractères spéciaux ?
	
	if (nom.match(regexp_f)) 
		
		{ 
			
			alert('Attention !\n les caractères * " ; \' ne peuvent être utilisés, merci de bien vouloir corriger.');
		
			f_nom.focus();
			
			f_nom.className='input_focus';
			
			erreur = true;
			
			return false; 
		
		}
		
	// 2) Est-ce qu'il a été saisi ? et est-ce qu'il n'a pas été composé que d'espaces ou de chiffres ?
	
	if((nom.length==0) || (!nom.match(regexp_az)))
	
		{
		
			alert("Le nom n'a pas été renseigné ou des\ncaractères invalides ont été saisis dans celui-ci\n\nMerci de bien vouloir corriger");
			
			f_nom.value="";
			
			f_nom.focus();
			
			f_nom.className='input_focus';
			
			erreur = true;
			
			return false;
			
		}
		
	
	// On vérifie le prénom
	// 1) est-ce que le prénom est exempt de caractères spéciaux ?
	
	if (prenom.match(regexp_f)) 
		
		{ 
			
			alert('Attention !\n les caractères * " ; \' ne peuvent être utilisés, merci de bien vouloir corriger.');
		
			f_prenom.focus();
			
			f_prenom.className='input_focus';
			
			erreur = true;
			
			return false; 
		
		}
		
	// 2) Est-ce qu'il a été saisi ? et est-ce qu'il n'a pas été composé que d'espaces ou de chiffres ?
	
	if((prenom.length==0) || (!prenom.match(regexp_az)))
	
		{
		
			alert("Le prénom n'a pas été renseigné ou des\ncaractères invalides ont été saisis dans celui-ci\n\nMerci de bien vouloir corriger");
			
			f_prenom.value="";
			
			f_prenom.focus();
			
			f_prenom.className='input_focus';
			
			erreur = true;
			
			return false;
			
		}
		
	// On vérifie l'adresse (la ligne 1)
	// 1) est-ce qu'elle est exempte de caractères spéciaux ?
	
	if (adresse1.match(regexp_f)) 
		
		{ 
			
			alert('Attention !\n les caractères * " ; \' ne peuvent être utilisés, merci de bien vouloir corriger.');
		
			f_adresse1.focus();
			
			f_adresse1.className='input_focus';
			
			erreur = true;
			
			return false; 
		
		}
		
	// 2) Est-ce qu'elle a été saisie ?
	
	if(adresse1.length==0)
	
		{
		
			alert("L'adresse n'a pas été renseignée ou des\ncaractères invalides ont été saisis dans celui-ci\n\nMerci de bien vouloir corriger");
			
			adresse1.value="";
			
			f_adresse1.focus();
			
			f_adresse1.className='input_focus';
			
			erreur = true;
			
			return false;
			
		}		
		
	// Est-ce que le code postal a été saisi ?
	
	if(codepostal.length==0)
	
		{
		
			alert("Le code postal n'a pas été renseigné\n\nMerci de bien vouloir corriger");
			
			f_codepostal.focus();
			
			f_codepostal.className='input_focus';
			
			erreur = true;
			
			return false;
			
		}
		
	// Est-ce que la ville a été saisie ?
	
	if(ville==0)
	
		{
		
			alert("La ville n'a pas été sélectionnée\n\nMerci de bien vouloir corriger");
			
			f_ville.focus();
			
			f_ville.className='input_focus';
			
			erreur = true;
			
			return false;
			
		}
	// Est-ce que le mail a été saisi ?
	
	if (courriel.match(regexp_email)) 
	
		{ 
			
			alert('Attention : les caractères é è à ê * " ; \' ne peuvent être utilisés dans l\'adresse e-mail, merci de corriger.');
			
			f_courriel[0].value = "";
			
			f_courriel[0].focus();
			
			f_courriel[0].className="input_focus";
			
			erreur = true;
			
			return false; 
		
		}
		
	longueur = f_courriel[0].value.length;
 	index = f_courriel[0].value.indexOf("@");
	index2 = f_courriel[0].value.indexOf(";");

	<!--- pas de @ --->
	 
 	if((index<1)||(index==(longueur-1))) 
		
		{
 			
			alert("Vous devez entrer un e-mail valide de type nom@fournisseuracces.com");
 			
			f_courriel[0].focus();
 			
			f_courriel[0].className="input_focus";
			
			erreur = true;
			
			return false;
 		
		}	
	
	if (index2 >0) 
	
		{
		
			alert("Vous ne devez pas avoir de ; dans votre adresse e-mail, merci de bien vouloir corriger");
			
			f_courriel[0].focus();
			
			f_courriel[0].className="input_focus";
			
			erreur = true;
			
			return false;
		
		}	
		
	domaine = f_courriel[0].value.substring(index+1,longueur);
  
	longueur = domaine.length;
  
	index = domaine.indexOf(".");

	<!--- pas de . après @   --->
  	
	if ((index<1)||(index==(longueur-1))) 
		
		{
			alert("Vous devez entrer un e-mail valide de type nom@fournisseuracces.com");
 			
			f_courriel[0].focus();
 			
			f_courriel[0].className="input_focus";
			
			erreur = true;
			
			return false;
  	
		}
		
		if(f_courriel[1].value=="")
		
			{
			
					alert('Vous devez confirmer votre adresse email ! merci de bien vouloir corriger');
					
					f_courriel[1].focus();
 			
					f_courriel[1].className="input_focus";
					
					erreur = true;
			
					return false;
			
			}
		
			if(Trim(f_courriel[0].value)!=Trim(f_courriel[1].value))
		
					{
			
					alert('Les deux e-mails doivent correspondre ! merci de bien vouloir corriger');
					
					erreur = true;
			
					return false;
			
					}
					
	if(tel==0)
	
		{
		
			alert("Le téléphone n'a pas été entré ! merci de bien vouloir corriger");
			
			f_tel.focus();
			
			f_tel.className='input_focus';
			
			erreur = true;
			
			return false;
			
			
		}
	if(lieuimp==0)
	
		{
		
			alert("Le lieu d'implantation n'a pas été précisé ! merci de bien vouloir corriger");
			
			f_lieuimp.focus();
			
			f_lieuimp.className='input_focus';
			
			erreur = true;
			
			return false;
			
			
		}
		
	if((f_acces[0].checked == false) && (f_acces[1].checked == false))	

		{
		
			alert("La facilité d'accès n'a pas été précisée ! merci de bien vouloir corriger");
							
			erreur = true;
			
			return false;
		
		}
										

	
	var i=0;
	
	var booltrouve = false;
	
	var liste_projets = new Array();
	
	
	for(i=0; i < f_projet.length ; i++)
	
		{
		
			if(f_projet[i].checked==true)
	
				{
									
					liste_projets[i] = f_projet[i].value;
					
					booltrouve = true;
				
				}
		
		}
		
		document.devis.proj_val.value = liste_projets;
		
		//alert(document.devis.proj_val.value);
		
		if(booltrouve==false)
		
			{
			
					alert("Votre projet n'a pas été précisé ! merci de bien vouloir corriger");
			
					erreur = true;
					
					return false;
			
			}
			
		// On va détecter les champs de formulaire du childNode : carac_piscines
		
		var car_piscines = new Array('cote_bassin_sous_margelles', 'largeur_piscine', 'longueur_piscine', 'largeur_apres_margelle', 'longueur_apres_margelle', 'type_construction', 'type_revetement', 'escalier_forme_taille');

		var boolcap = true;
		
		for(var a=0; a < car_piscines.length; a++)
		
			{
				
					if(document.forms['devis'].elements[car_piscines[a]].value=="")
				
					boolcap=false;
				
			}
			
			
		if(boolcap==false)
		
			{
				
				alert("Toutes les caractéristiques pour la piscine doivent être saisies !");
				
				erreur=true;
				
				return false;
				
			}
		


		if(erreur==false)
		
			{
				
				return true;
				
			}
			
}
				
