var url; 
var moz = (document.implementation && document.implementation.createDocument); 
var ie = (window.ActiveXObject); 

function pa_xml( valeur, fonction, index ) {
//	alert("debut fonction : "+valeur+'-'+fonction+'-'+index);
	if(valeur != '') {
		var page = 'pa_fct.php';
		if (fonction == 'pid_4_refcat' || 
			fonction == 'is_xpack' || 
			fonction == 'get_xpack' || 
			fonction == 'is_express_dispo' || 
			fonction == 'is_reference') {
			var bouton = 'bouton_caddie';
			var message = 'plus_stock';
			var mess_ref = 'pas_ref';
			var sel_size = document.forms['cart_express'].elements['product_size'];
			var save_pa_id = document.forms['cart_express'].elements['save_pa_id'];
			var save_pid = document.forms['cart_express'].elements['products_id'];
			var xpack = document.forms['cart_express'].elements['zone_xpack'];
			var is_it_xpack = document.forms['cart_express'].elements['is_it_xpack'];
			var sel_nbre = document.forms['cart_express'].elements['products_nber'];
			var reference_xpack = document.forms['cart_express'].elements['ref_xpack'];
		} else if(fonction != 'catalogue_pdf') {
			var sel_nbre = document.forms['cart_quantity'].elements['products_nber'];
			var sel_size = document.forms['cart_quantity'].elements['product_size'];
			var save_refcat = document.forms['cart_quantity'].elements['save_pa_refcat'];
			var selecteur = 'article_epuise'+index;
			var radio_epuise = document.forms['cart_quantity'].elements['reference'][index];
			var save_pid = document.forms['cart_quantity'].elements['products_id'];
			var save_index = document.forms['cart_quantity'].elements['save_reference_index'];
		}

		if(fonction == 'list_size_free') {
			//on stocke dans le champ caché le refcat
			save_refcat.value = valeur;
			//on stocke dans le champ caché l'index du radio référence qui a été sélectionné
			save_index.value = index;
			url = page + '?pa_refcat=' + escape(valeur)+ '&fct=' + escape(fonction) ;
		} else if(fonction == 'quantity_free') {
			url = page + '?qte=' + escape(valeur) ;
			url += '&pa_refcat' + '=' + escape(save_refcat.value) + '.' + sel_size.value;
			url += '&fct=' + escape(fonction);
		} else if(fonction == 'pid_4_refcat') {
			url = page + '?pa_refcat=' + escape(valeur) ;
			url += '&fct=' + escape(fonction);
		} else if(fonction == 'is_refcat_dispo') {
			nbre_prod = new RegExp("[0-9]+");
			if(sel_size.value != '' && sel_size.value != ' ' && nbre_prod.test(sel_nbre.value) 
				&& sel_nbre.value > 0) {
				if(valeur == 'refcat')
					url = page + '?pa_refcat=' + save_refcat.value + "." + sel_size.value;
				else
					url = page + '?pa_refcat=' + escape(valeur) + "." + sel_size.value;
				url += '&fct=' + escape(fonction);
				if(index != '')
					url += '&nbre=' + Number(index);
				else
					url += '&nbre=' + sel_nbre.value;
			}
		} else if(fonction == 'is_xpack_dispo') {
			nbre_prod = new RegExp("[0-9]+");
			if(sel_size.value != '' && sel_size.value != ' ' && nbre_prod.test(index) 
				&& Number(index) > 0) {
				url = page + '?pa_refcat=' + escape(valeur) + "." + sel_size.value;
				url += '&fct=is_refcat_dispo';
				url += '&nbre=' + Number(index);
			}
		} else if(fonction == 'is_xpack') {
			url = page +'?pa_refcat' + '=' + escape(valeur);
			url += '&fct=' + escape(fonction);
		} else if(fonction == 'get_xpack') {
			url = page +'?pa_refcat' + '=' + escape(valeur);
			url += '&fct=' + escape(fonction);
		} else if(fonction == 'is_express_dispo') {
			nbre_prod = new RegExp("[0-9]+");
			if(sel_size.value != '' && sel_size.value != ' ' && nbre_prod.test(sel_nbre.value) 
				&& sel_nbre.value > 0) {
				if(index == 'xpack') {
					url = page + '?pa_refcat=' + reference.value + "." + sel_size.value;
						if(ref_xpack.value != '')
							url += '&xpack=' + ref_xpack.value + "." + sel_size.value;
				} else {
					url = page + '?pa_refcat=' + escape(valeur) + "." + sel_size.value;
				}
				url += '&fct=is_refcat_dispo';
				url += '&nbre=' + sel_nbre.value;
			}
		} else if(fonction == 'is_reference') {
			url = page + '?pa_refcat=' + escape(valeur);
			url += '&fct=' + escape(fonction);
		} else if(fonction == 'catalogue_pdf') {
			url = page + '?customers_id=' + escape(valeur);
			url += '&fct=' + escape(fonction);
		}
//		alert(url);
		if(url != '') {
			if (ie) {
				var xmlHTTP = new ActiveXObject('Microsoft.XMLHTTP');
			} else {
				var xmlHTTP = new XMLHttpRequest();
			}
			xmlHTTP.open('GET', url, false);
			xmlHTTP.send('');

			var xml_string = xmlHTTP.responseText;
//alert('réponse : '+xml_string);
			if(fonction == 'list_size_free') {
				xml = xml_string.split(',');

				//on vide la liste des tailles/pointures
				if(sel_size.length > 0) {
				   for (x=sel_size.length-1; x>=0; x--) {
					   sel_size.options[x] = null;
					}
				} 

				//s'il n'y a aucune taille/pointure on affiche "Plus en stock" et on cache le radio bouton
				if(xml_string.length == 2) {
					radio_epuise.style.visibility = 'hidden';
					if (document.layers) document.layers[''+selecteur+''].visibility = "show";
					else if (document.all) document.all[''+selecteur+''].style.visibility = "visible";
					else if (document.getElementById) document.getElementById(''+selecteur+'').style.visibility = "visible";
				} else {
					//on remplit la liste des tailles avec les nouvelles valeurs
					for (x=0; x<=xml.length-1; x++) {
						sel_size[sel_size.length] = new Option(xml[x]);
						sel_size[sel_size.length-1].value = xml[x]; 
					}
				}
			} else if(fonction == 'quantity_free') {
				return xml_string;
			}  else if(fonction == 'pid_4_refcat') {
				if(xml_string != 'false') {
					xml = xml_string.split(',');
					save_pid.value = xml[0];
					var sans_taille = false;
					if (xml.length == 2 && xml[1].indexOf('.')) {
						sans_taille = true;
					}

					//on regarde si l'article fait partie d'un XPACK
					url = page + '?pa_refcat=' + escape(valeur)+ '&fct=get_xpack';
					xmlHTTP.open('GET', url, false);
					xmlHTTP.send('');
					xml_string_xpack = '';
					xml_string_xpack = xmlHTTP.responseText;

					//si l'article n'a pas de taille, on efface le sélecteur de taille et on affiche
					//le bouton OK
					if (sans_taille) {
						save_pa_id.value = xml[1];
						cache_champ_id(sel_size);
						affiche_champ_id(bouton_caddie);	//voir comment utiliser document.getElementById
					} else {
						//sinon on récupère la liste des tailles/pointures
						url = page + '?pa_refcat=' + escape(valeur)+ '&fct=list_size_free';
						xmlHTTP.open('GET', url, false);
						xmlHTTP.send('');
						xml_string = '';
						xml_string = xmlHTTP.responseText;
						xml = xml_string.split(',');

						//on vide la liste des tailles/pointures
						if(sel_size.length > 0) {
						   for (x=sel_size.length-1; x>=0; x--) {
							   sel_size.options[x] = null;
							}
						} 
						//s'il n'y a aucune taille/pointure on affiche "Plus en stock" 
						//et on cache bouton Ajouter panier
						if(xml_string.length == 2) {
							cache_champ_id(sel_size);
							if (document.layers) document.layers[''+message+''].visibility = "show";
							else if (document.all) document.all[''+message+''].style.visibility = "visible";
							else if (document.getElementById) document.getElementById(''+message+'').style.visibility = "visible";
							if (document.layers) document.layers[''+bouton+''].visibility = "hide";
							else if (document.all) document.all[''+bouton+''].style.visibility = "hidden";
							else if (document.getElementById) document.getElementById(''+bouton+'').style.visibility = "hidden";
						} else {
							//on remplit la liste des tailles avec les nouvelles valeurs
							//sinon on remplit la liste avec les tailles/pointures dispos
							for (x=0; x<=xml.length-1; x++) {
								sel_size[sel_size.length] = new Option(xml[x]);
								sel_size[sel_size.length-1].value = xml[x]; 
							}
							//on affiche le sélecteur de taille en regardant si on est en XPACK que la liste est bien sélectionnée (remplie)
							if(xml_string_xpack.length == 0)
								affiche_champ_id(sel_size);
						}
					}

					//si il y a des XPACK on remplit la liste avec leur REFCAT
					if(xml_string_xpack.length>0) {
						//on remplit la liste ref_xpack (reference_xpack)
						xml = xml_string_xpack.split(',');
						//on vide la liste
						if(reference_xpack.length > 0) {
						   for (x=reference_xpack.length-1; x>=0; x--) {
							   reference_xpack.options[x] = null;
							}
						}

						for (x=0; x<=xml.length-1; x++) {
							reference_xpack[reference_xpack.length] = new Option(xml[x]);
							reference_xpack[reference_xpack.length-1].value = xml[x]; 
						}
						affiche_champ('zone_xpack');
					} else
						cache_champ('zone_xpack');
					return true;
				} else
					return false;
			} else if(fonction == 'is_refcat_dispo') {
//alert(Number(xml_string));
				if(!Number(xml_string)) {
					//on cache le radio bouton 
					objet = new RegExp("^reference", "i");
					var indice = 0;
					for (i=0; i<document.forms['cart_quantity'].length; i++) {
						if(objet.test(document.forms['cart_quantity'][i].name)) {
							var check = document.forms['cart_quantity'].elements['reference'][indice];
							if(check.checked == true) {
//alert("is_refcat_dispo : "+check.name+'-'+check.value+'-'+check.checked + " - " + indice);
								check.checked = false;
								check.style.visibility = 'hidden';
								sel_nbre.value = 1;
								break;
							}
							indice++;
						}
					}
					//on fait apparaitre "hors stock"
					var epuise = 'article_epuise'+save_index.value;
					if (document.layers) document.layers[''+epuise+''].visibility = "show";
					else if (document.all) document.all[''+epuise+''].style.visibility = "visible";
					else if (document.getElementById) document.getElementById(''+epuise+'').style.visibility = "visible";
				}
				return true;
			} else if(fonction == 'is_xpack_dispo') {
//alert(Number(xml_string));
				if(!Number(xml_string)) {
					//on cache la case à cocher
					//raz du nbre xpack
					//on cache le nbre xpack
					//on affiche out opf stock
					var case_cocher = document.forms['cart_quantity'].elements['ref_'+valeur];
					var champ_nbre = document.forms['cart_quantity'].elements['nber_'+valeur];
					case_cocher.checked=false;
//					case_cocher.style.visibility='hidden';
					champ_nbre.value = '';
//					champ_nbre.style.visibility='hidden';

					var out_stock = 'xpack_epuise_'+valeur;
					if (document.layers) document.layers[''+out_stock+''].visibility = "show";
					else if (document.all) document.all[''+out_stock+''].style.visibility = "visible";
					else if (document.getElementById) document.getElementById(''+out_stock+'').style.visibility = "visible";
				}
				return true;
			} else if(fonction == 'is_xpack') {
				if(Number(xml_string)) {
					is_it_xpack.value = true;
					affiche_champ('zone_xpack');
					reference_xpack.focus();
				} else {
					is_it_xpack.value = false;
					cache_champ('zone_xpack');
				}
			} else if(fonction == 'is_express_dispo') {
//alert(sel_size.value);
				if(xml_string.value==' ' || xml_string.value==' ,') {
					//on cache le bouton "ajouter caddie"
					//on affiche le message "hors stock"
//alert(Number(xml_string));
					affiche_champ(message);
					cache_champ(bouton);
				} else {
					if(sel_size.value && sel_size.value!=' ')	//taille sélectionnée
						affiche_champ(bouton);
					else
						cache_champ(bouton);					//taille non sélectionnée

					cache_champ(message);
				}

				return true;
			} else if(fonction == 'is_reference') {
//alert('xml_string : '+ xml_string +"-"+Number(xml_string));
				if(Number(xml_string)) {
					//on cache le message "reference inexistante"
					cache_champ(mess_ref);
					return true;
				} else {
					affiche_champ(mess_ref);
					return false;
				}

			}
		} else
			return "NULL URL...";
	} else
		return "NO VALUE...";
}

