//************************************************
function get_Xhr()
	{
	var xhr=null;
	
	if(window.XMLHttpRequest)//firefox
		{
		xhr = new XMLHttpRequest();
		}
	else if(window.ActiveXOject)//ie
		{
		try
			{
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
			}
		catch(e)
			{
			try
			{
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(el)
				{
				xhr = null;
				}
			}
		}
	else//non supporté
		{
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest\nVeuillez le mettre à jour");
		}
	return(xhr);
	}
	
//************************************************
function afficher_adresse(td_id, popup_id)
	{				
	var td = document.getElementById(td_id);
	var popup = document.getElementById(popup_id);
	
	var xhr = get_Xhr();
	// C'est la que c'est un poil bizarre, nous définissons ce que fera AJAX avant même de lui dire quoi transmettre.
	xhr.onreadystatechange = function()
		{
		//Si la requete est terminée et qu'elle ne remonte pas d'erreur ( voir *1* ci dessous )
		if(xhr.readyState == 4 && xhr.status == 200)
			{
			td.innerHTML = xhr.responseText;
			}
		}
	// On ouvre la page $url en mode asynchrone ( true ) 
	xhr.open("POST", "/php/spec/ajax/lire_adresse.php", true);
	// Obligatoire si l'on passe en POST   
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");                  
	xhr.send("adresse_id="+popup.value);	//Envoi de la requete
	
	}

//************************************************
function appel_ajax(type, carac)
	{	
	// Nous créons un objet XMLHttpRequest
	var xhr = get_Xhr();
	var url = null;
	var popup = null;
	
	if(carac!=null)
		carac="&carac="+carac;
	else
		carac="";
		
	// c'est ici que l'on indique les valeurs à transmettre
	if(type=='marque')
		{
		popup=document.getElementById("pop_marque");
		url="marque="+popup.options[popup.selectedIndex].text; // pas de value donc text
				
		document.getElementById("img_marque").style.visibility='visible';
		}
	else if(type=='cylindree')
		{
		popup=document.getElementById("pop_marque");
		url="marque="+popup.options[popup.selectedIndex].text+"&cylindree="+document.getElementById("pop_cylindree").value;
		
		document.getElementById("img_cylindree").style.visibility='visible';
		}
	else if(type=='annee')
		{
		popup=document.getElementById("pop_marque");
		pop_annee=document.getElementById("pop_annee");
		url="marque="+popup.options[popup.selectedIndex].text+"&cylindree="+document.getElementById("pop_cylindree").value+"&annee="+pop_annee.options[pop_annee.selectedIndex].text;
		
		document.getElementById("img_annee").style.visibility='visible';
		}
	else if(type=='produit_id')
		{
		document.getElementById("img_produit_id").style.visibility='visible';
		url="produit_id="+document.getElementById("pop_produit_id").value;
		}
	
	url+=carac;
	
	// C'est la que c'est un poil bizarre, nous définissons ce que fera AJAX avant même de lui dire quoi transmettre.
	xhr.onreadystatechange = function()
		{
		//Si la requete est terminée est qu'elle ne remonte pas d'erreur ( voir *1* ci dessous )
		if(xhr.readyState == 4 && xhr.status == 200)
			{			
			if(type=='produit_id')
				{
				window.location.href = xhr.responseText;
				}
			else if(xhr.responseText.substr(0,1)=="/") 
				{
				document.getElementById("pop_annee").selectedIndex=1; //
				
				window.location.href = xhr.responseText;
				}
			else if(type=='marque')
				{
				td=document.getElementById('cylindree');
				td.innerHTML = xhr.responseText;
			
				td=document.getElementById('annee');
				td.innerHTML="&nbsp;"

				td=document.getElementById('modele');
				td.innerHTML="&nbsp;"

				}
			else if(type=='cylindree')
				{
				td=document.getElementById('annee');
				td.innerHTML = xhr.responseText;

				td=document.getElementById('modele');
				td.innerHTML="&nbsp;"
				}
			else if(type=='annee')
				{
				td=document.getElementById('modele');
				td.innerHTML = xhr.responseText;
				}
			
			// on cache tous les spinners au cas où on revienne depuis une page précédente
			document.getElementById("img_marque").style.visibility='hidden';
			document.getElementById("img_cylindree").style.visibility='hidden';
			document.getElementById("img_annee").style.visibility='hidden';
			document.getElementById("img_produit_id").style.visibility='hidden';
			}
		}
				
	// On ouvre la page $url en mode asynchrone ( true ) 
	xhr.open('POST', "/php/spec/ajax/engine.php", true);
	// Obligatoire si l'on passe en POST   
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");                  
 	xhr.send(url);	//Envoi de la requete
	}
	
	

//************************************************
function afficher_partie(id)
	{				
	var partie = document.getElementById('partie_'+id);
	var coche = document.getElementById('coche_'+id);
					
	if (coche.src.indexOf('coche_off')>=0)
		{
		partie.style.display='block';
		coche.src=coche.src.replace('coche_off','coche_on');
		}
	else
		{
		partie.style.display='none';
		coche.src=coche.src.replace('coche_on','coche_off');
		}
	}

//************************************************
function afficher_info(id, statut)
	{				
	var lien = document.getElementById('lien_'+id);
	var info = document.getElementById('block_'+id);
	var cacher = document.getElementById('cacher_'+id);
	
	if (statut=='montrer')
		{
		if(!info.innerHTML)//si block vide => Appel Ajax
			{
			var xhr = get_Xhr();
			// C'est la que c'est un poil bizarre, nous définissons ce que fera AJAX avant même de lui dire quoi transmettre.
			xhr.onreadystatechange = function()
				{
				//Si la requete est terminée et qu'elle ne remonte pas d'erreur ( voir *1* ci dessous )
				if(xhr.readyState == 4 && xhr.status == 200)
					{
					info.innerHTML = xhr.responseText;
					}
				}
			// On ouvre la page $url en mode asynchrone ( true ) 
			xhr.open("POST", "/php/spec/ajax/detail_tarif_produit.php", true);
			// Obligatoire si l'on passe en POST   
			xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");                  
			xhr.send("tarif_id="+id);	//Envoi de la requete
			}
		//else
		//	alert(info.innerHTML);
			
		lien.style.display='none';
		info.style.display='block';
		cacher.style.display='block';
		}
	else
		{
		lien.style.display='block';
		info.style.display='none';
		cacher.style.display='none';
		}
	}


/*************************/
function offset(elem) {
	if(!elem) elem = this;

	var x = elem.offsetLeft;
	var y = elem.offsetTop;

	while (elem = elem.offsetParent) {
		x += elem.offsetLeft;
		y += elem.offsetTop;
	}

	return { left: x, top: y };
}
//************************************************
function choix_option(tarif_id)
	{
	var dialoption = document.getElementById('dialoption');
	var option = document.getElementById('option_tarif_'+tarif_id);
	
	if(dialoption.style.display!='block')
		{
		var xhr = get_Xhr();
		// C'est la que c'est un poil bizarre, nous définissons ce que fera AJAX avant même de lui dire quoi transmettre.
		xhr.onreadystatechange = function()
			{
			//Si la requete est terminée et qu'elle ne remonte pas d'erreur ( voir *1* ci dessous )
			if(xhr.readyState == 4 && xhr.status == 200)
				{
				var y=(offset(option).top-28);
				var x=(offset(option).left);
				
				dialoption.innerHTML =xhr.responseText;// "Left :"+x+", Top:"+y+"<br>"+
	
				
				if((dialoption.offsetLeft != x) || (dialoption.offsetTop != y))
					{
					dialoption.style.left=x+'px';
					dialoption.style.top=y+'px';
					}
	
				dialoption.style.display='block';
				}
			}
		// On ouvre la page $url en mode asynchrone ( true ) 
		xhr.open("POST", "/php/spec/ajax/choix_option_stock.php", true);
		// Obligatoire si l'on passe en POST   
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");                  
		xhr.send("tarif_id="+tarif_id);	//Envoi de la requete
		}
	else
		dialoption.style.display='none';
	}
	
//************************************************
function selection_option(tarif_id, option_id)
	{
	var option = document.getElementById('option_tarif_'+tarif_id);
	var dialoption = document.getElementById('dialoption');
	var libelle = document.getElementById('libelle_option_'+option_id);
	var input_option = document.getElementById('input_option_'+tarif_id);
	var image = document.getElementById('image_option_'+option_id);
	var lien_option = document.getElementById('lien_option_'+tarif_id);

	var image_panier_off = document.getElementById('image_panier_off_'+tarif_id);
	var image_panier_on = document.getElementById('image_panier_on_'+tarif_id);

	input_option.value=option_id;

	//alert(option.innerHTML);
	
	lien_option.innerHTML="<table align='right' border='0' cellpadding='2' cellspacing='0'><TR><td>"+image.innerHTML+"</td></tr></table><DIV align='justify' >"+libelle.innerHTML+"</DIV>";
	dialoption.style.display='none';

	image_panier_off.style.display='none';
	image_panier_on.style.display='block';
	image_panier_on.style.visibility='visible';
	}
	
//************************************************
function recherche_interne()
	{				
	var ref = document.getElementById("ri_reference");
	var lib = document.getElementById("ri_libelle");
	var img = document.getElementById("img_spinner");
	var result = document.getElementById("ri_resultat");
	
	img.style.visibility='visible';		

	var xhr = get_Xhr();
	// C'est la que c'est un poil bizarre, nous définissons ce que fera AJAX avant même de lui dire quoi transmettre.
	xhr.onreadystatechange = function()
		{
		//Si la requete est terminée et qu'elle ne remonte pas d'erreur ( voir *1* ci dessous )
		if(xhr.readyState == 4 && xhr.status == 200)
			{
			result.innerHTML = xhr.responseText;
			img.style.visibility='hidden';		
			}
		}

	// On ouvre la page $url en mode asynchrone ( true ) 
	xhr.open("POST", "/php/spec/ajax/recherche_interne.php", true);
	// Obligatoire si l'on passe en POST   
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");                  
	xhr.send("reference="+ref.value+"&libelle="+lib.value);	//Envoi de la requete
	}

//************************************************
function select_reference(coderef)
	{
	var ref = document.getElementById("ri_reference");
	var lib = document.getElementById("ri_libelle");
	lib.value="";
	ref.value=coderef;
	recherche_interne();
	}
