 function envoieRequete(url,id)
 {
 //   document.body.style.cursor='wait'; 
 var xhr_object = null;
 var position = id;
 if (window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
 else if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
 else {
	// boite d'alerte
	alert("Votre navigateur ne prend pas en charge XmlHttpRequest");
	}
 // On ouvre la requete vers la page désirée
 xhr_object.open("GET", url, true);
 //xhr_object.open("GET", url, false); // test synchrone
 xhr_object.onreadystatechange = function(){
 if ( xhr_object.readyState == 4 )
 {
 // j'affiche dans la DIV spécifiées le contenu retourné par le fichier
 document.getElementById(position).innerHTML = xhr_object.responseText;
     document.body.style.cursor='auto'; 
	 }
 }
 // dans le cas du get
 xhr_object.send(null);
 return true;
 }

 var btlaction='';
 var NbResteaction='';
 var departaction='';
 var IdCasierOrigineaction='';
 var iorigineaction='';
 var jorigineaction='';
 var oldselid='';
 
function getObjectById() {
if (getObjectById < 1) {return false;}
object = window.document.getElementById(getObjectById.arguments[0]);
if (object == null) {
return false
}
else {
return object;
}
}

 function setClass(objet,dmcNom){objet.className=dmcNom;}
/* Objet : Objet HTML ou XHTML
dmcClass : nom de la class à assigner à l'objet HTML
*/ 

 
 function selectionnebtl(idbout, NbReste, depart, IdCasierOrigine, iorigine, jorigine, selid) {
   setClass(getObjectById(oldselid),'vis7');
   document.body.style.cursor='move';
   document.getElementById('console').innerHTML="message : Nombre de bouteilles sélectionnées : "+NbReste+" ; cliquez sur la destination";
   btlaction=idbout;
   NbResteaction=NbReste;
   departaction=depart;
   IdCasierOrigineaction=IdCasierOrigine;
   iorigineaction=iorigine;
   jorigineaction=jorigine;
   setClass(getObjectById(selid),'vis9');
   oldselid=selid;
 }
 
 function affectebtl(IdBouteilleReste,j,i,NbReste,IdCasierDest,NbCol,NbRang,depart,IdCasierOrigine,iorigine,jorigine) {
  // on réinitialise les var action bout pour ne plus affecter une seconde fois
    btlaction='';

	// on vérifie qu'une bouteille est bien sélectionnée
	if (IdBouteilleReste > 0) {


   if (IdCasierDest == 0) { //s'il n'y a pas de casier c'est une conso
   // enregistre conso 
   var url3 = "index.php?rub=ges&arg=edib1&IdBout="+IdBouteilleReste+"&fromcasier="+IdCasierOrigine+"&i="+iorigine+"&j="+jorigine;
     window.location.href = url3;
   } else { // sinon c'est une rangement ou déplacement

   // envoie requete rangement
   var url1 = "cavescript.php?rub=rangebouteille&IdBouteilleReste="+IdBouteilleReste+"&RangDest="+j+"&ColDest="+i +"&NbReste="+NbReste+"&IdCasierDest="+IdCasierDest+"&NbCol="+NbCol+"&NbRang="+NbRang+"&depart="+depart;
   var btlrangee = false;
   btlrangee = envoieRequete(url1,'console');
   
   if (btlrangee) {
      document.getElementById('console').innerHTML="patientez...";
   // s'il s'agit d'un déplacement, on met à jour le casier origine
   if ( IdCasierOrigine > 0 ) {
       var url2 = "cavescript.php?rub=suppcasierbouteille&IdBouteilleCatch="+IdBouteilleReste+"&RangCatch="+jorigine+"&ColCatch="+iorigine+"&IdCasierCatch="+IdCasierOrigine;
	   envoieRequete(url2,'console');
	   affichecase(IdCasierOrigine,iorigine,jorigine,NbCol,NbRang);
	   setClass(getObjectById(oldselid),'vis7');
   }
   // rafraichit casier dest
   if (IdCasierDest > 0) {
     if (NbReste > 1) { // s'il y a plus d'une bouteille on rafraichit le casier
       var urldest = "cavescript.php?rub=affichecasier&IdCasier="+IdCasierDest;
       var divdest = "casier_"+IdCasierDest;
       envoieRequete(urldest, divdest);
	 } else { // sinon on rafraichit la case
	   affichecase(IdCasierDest,i,j,NbCol,NbRang);	 
     }
   }
   
   // rafraichit restearanger ou casier origine
   if ( IdCasierOrigine == 0 ) {
     var urlorigine = "cavescript.php?rub=voirrestearanger&depart="+depart+"&IdBouteilleReste=0&NbReste=0";
     var divorigine = "restearanger";
     envoieRequete(urlorigine, divorigine);
   }
   } // fin tempo rangement
   }  // fin cas rangement
   } else { // pas de bouteille sélectionnée : msg erreur
      document.getElementById('console').innerHTML="message : veuillez d'abord sélectionner un bouteille.";
   }
 }

 function affichecase(IdCasier,i,j,NbCol,NbRang) {
     var urldest = "cavescript.php?rub=affichecase&IdCasier="+IdCasier+"&i="+i+"&j="+j+"&NbCol="+NbCol+"&NbRang="+NbRang;
     var divdest = "c_"+IdCasier+"_"+i+"_"+j;
     envoieRequete(urldest, divdest);     
 }
 
 function clk(id)
{
	(new Image()).src="corpo.php?rub=redir&IdProducteur="+id;
	return true;
};

function popupTool(id) {
    var images_path = "img/";
	var tooltipWidth = 420
	var xhr_object = null;
	var position = id;
	if(window.XMLHttpRequest)  xhr_object = new XMLHttpRequest();
	else if (window.ActiveXObject)  xhr_object = new ActiveXObject("Microsoft.XMLHTTP");

	document.getElementById('popupContent').innerHTML = '<img src="'+images_path+'loading.gif" /> Chargement...';

	xhr_object.open("GET", 'cavescript.php?rub=popupTool&IdBout='+id.replace('popuptool_',''), true);
	xhr_object.onreadystatechange = function(){
		if ( xhr_object.readyState == 4 ) {
			document.getElementById('popupContent').innerHTML = xhr_object.responseText;
		}
	}
	document.getElementById('popupBox').style.width = tooltipWidth + 'px'
	centerDiv(document.getElementById('popupBox'),tooltipWidth)
	xhr_object.send(null);
}

function popupToolconso(id) {
    var images_path = "img/";
	var tooltipWidth = 420
	var xhr_object = null;
	var position = id;
	if(window.XMLHttpRequest)  xhr_object = new XMLHttpRequest();
	else if (window.ActiveXObject)  xhr_object = new ActiveXObject("Microsoft.XMLHTTP");

	document.getElementById('popupContent').innerHTML = '<img src="'+images_path+'loading.gif" /> Chargement...';

	xhr_object.open("GET", 'cavescript.php?rub=popupToolconso&IdConso='+id.replace('popuptoolconso_',''), true);
	xhr_object.onreadystatechange = function(){
		if ( xhr_object.readyState == 4 ) {
			document.getElementById('popupContent').innerHTML = xhr_object.responseText;
		}
	}
	document.getElementById('popupBox').style.width = tooltipWidth + 'px'
	centerDiv(document.getElementById('popupBox'),tooltipWidth)
	xhr_object.send(null);
}

function centerDiv(divobj,divobjWidth){
	var standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes
	var ie=document.all && !window.opera
	var dom=document.getElementById
	var scroll_top=(ie)? standardbody.scrollTop : window.pageYOffset
	var scroll_left=(ie)? standardbody.scrollLeft : window.pageXOffset
	var docwidth=(ie)? standardbody.clientWidth : window.innerWidth-16
	var docheight=(ie)? standardbody.clientHeight: window.innerHeight
	var docheightcomplete=(standardbody.offsetHeight>standardbody.scrollHeight)? standardbody.offsetHeight : standardbody.scrollHeight //Full scroll height of document
	var objwidth=divobjWidth //width of div element
	var objheight=divobj.offsetHeight //height of div element
	var topposition=(docheight>objheight)? scroll_top+docheight/2-objheight/2-100+"px" : scroll_top+10+"px" //Vertical position of div element: Either centered, or if element height larger than viewpoint height, 10px from top of viewpoint // -100 rajouté pour monter la div
	divobj.style.left=docwidth/2-objwidth/2+"px" //Center div element horizontally
	divobj.style.top=Math.floor(parseInt(topposition))+"px"
	divobj.style.zIndex=3000
	divobj.style.display=""
}

function showMe(portlet) {
		document.getElementById(portlet).style.display="";
}
function hideMe(portlet) {
		document.getElementById(portlet).style.display="none";
}

//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Your Browser Sucks!\nIt's about time to upgrade don't you think?");
	}
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest() {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById('txtSearch').value);
		searchReq.open("GET", 'searchSuggest.php?search=' + str, true);
		searchReq.onreadystatechange = handleSearchSuggest; 
		searchReq.send(null);
	}		
}

//Called when the AJAX response is returned.
function handleSearchSuggest() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('search_suggest')
		ss.innerHTML = '';
		var str = searchReq.responseText.split("\n");
		for(i=0; i < str.length - 1; i++) {
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
			var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearch(this.innerHTML);" ';
			suggest += 'class="suggest_link">' + str[i] + '</div>';
			ss.innerHTML += suggest;
		}
	}
}

//Mouse over function
function suggestOver(div_value) {
	div_value.className = 'suggest_link_over';
}
//Mouse out function
function suggestOut(div_value) {
	div_value.className = 'suggest_link';
}
//Click function
function setSearch(value) {
//	document.getElementById('txtSearch').value = value;
	document.getElementById('search_suggest').innerHTML = '';
}

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchProducteur(IdRegion, IdSubRegion, SecondVinReg) {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById('txtSearch').value);
		searchReq.open("GET", 'cavescript.php?rub=searchprod&IdRegion=' + IdRegion + '&SecondVinReg=' + SecondVinReg + '&IdSubRegion=' + IdSubRegion + '&search=' + str, true);
		searchReq.onreadystatechange = handleSearchProducteur; 
		searchReq.send(null);
	}		
}

//Called when the AJAX response is returned.
function handleSearchProducteur() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('search_suggest')
		ss.innerHTML = '';
		var str = searchReq.responseText.split("\n");
		for(i=0; i < str.length - 1; i++) {
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
			var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
//			suggest += 'onclick="javascript:setProducteur(this.innerHTML);" ';
			suggest += 'class="suggest_link">' + str[i] + '</div>';
			ss.innerHTML += suggest;
		}
	}
}

//Click function
function setProducteur(value) {
//	document.getElementById('txtSearch').value = value;
	document.getElementById('search_suggest').innerHTML = '';
}
//Click function
function resetProducteur(IdRegion,IdSubRegion,SecondVinReg) {
	envoieRequete('cavescript.php?rub=resetprod&IdRegion='+IdRegion+'&SecondVinReg='+SecondVinReg+'&IdSubRegion='+IdSubRegion,'ztprod');
	if (document.getElementById('SecondVinDiv')) {document.getElementById('SecondVinDiv').innerHTML = '';}
}
// Verif form ajoutb
function verifAjoutb() { 
	var ztnombre = document.formulaire.ztnombre.value;
	if (document.formulaire.ztnombre.value < 1)
	{
		alert ('Veuillez entrer le nombre de bouteilles');
		document.formulaire.ztnombre.focus();
		return false;
	}
	else {	
		if ( document.formulaire.ztnombre.value*0 !=0) {
			alert ('Veuillez entrer un nombre valide de bouteilles');
			document.formulaire.ztnombre.focus();
			return false;
		}
		else {return true;}
	}
}

