var showProcId;
var hideProcId;
var tooltipElement, produitElement;
var currentPrdNbMaxiCommande;

function displayLayer(layerID,elementID,x,y){
	tooltipElement = YAHOO.util.Dom.get(layerID);
	produitElement = YAHOO.util.Dom.get(elementID);
	var xID = YAHOO.util.Dom.getX(elementID);
	var yID = YAHOO.util.Dom.getY(elementID);
	YAHOO.util.Dom.setStyle(tooltipElement, "display", "block");
	YAHOO.util.Dom.setXY(tooltipElement,[xID+x, yID+y],true);
	hideSelect(tooltipElement);
}

/*************************************************************************
 * Fonctions d'affichage et de disparition du layer image produit en mode ligne
 *********************************************************************** */
function alimenterImageProduit(e, elementId, xposition, yposition, imgsrc) {
	displayLayer('imgGrandProduitLayer', elementId, xposition, yposition);
	image = YAHOO.util.Dom.get('imgGrandProduit');
	image.src = imgsrc;
}

// Lancer sur le onmousemove du produit et du layer
function afficherImageProduit(e){
	if (hideProcId) {
		clearTimeout(hideProcId);
		hideProcId = null;
	}
}

// lancer sur le onmouseout du produit
function fermerImageProduit(e){
	if (hideProcId) {
		clearTimeout(hideProcId);
		hideProcId = null;
	}
	hideProcId = setTimeout(function() {effacerImageProduit();	}, 500);
}

// Fonction appelée par le setTimout
function effacerImageProduit(){
	//image = YAHOO.util.Dom.get('imgGrandProduitLayer');
	YAHOO.util.Dom.setStyle(tooltipElement, "display", "none");
	showSelect(tooltipElement);
}


/*************************************************************************
 * Fonctions d'affichage et de disparition du layer sur le produit (mode produit)
 *********************************************************************** */
// Lancer sur le onmouseover du produit
function alimenterLayerProduit(e,elementID,xposition,yposition,prdcode,prdlibelle,prdprice,prdprixpromo,prdmarque,prdcont,prdprixunit,prdssmarque,pointrouge,prdPondereux,quantiteCompteur,isInListe,listeId){
	displayLayer('blocLayer',elementID,xposition,yposition);
	
	prdInputHidden = YAHOO.util.Dom.get('prdCode');
	prdInputHidden.value = prdcode;
	prdMarque = YAHOO.util.Dom.get('prdmarque');
	prdMarque.innerHTML = prdmarque;
	prdSsMarque = YAHOO.util.Dom.get('prdssmarque');
	prdSsMarque.innerHTML = prdssmarque;
	prdLibelle = YAHOO.util.Dom.get('prdlibelle');
	prdLibelle.innerHTML = prdlibelle;
	prdPrice = YAHOO.util.Dom.get('prdprice');
	prdPrice.innerHTML = prdprice;
	prdCont = YAHOO.util.Dom.get('prdcont');
	prdCont.innerHTML = prdcont;
	prdPrixUnit = YAHOO.util.Dom.get('prdprixunit');
	prdPrixUnit.innerHTML = prdprixunit;
	prdPrixPromo = YAHOO.util.Dom.get('prdprixpromo');
	prdPrixPromo.innerHTML = prdprixpromo;
	
	divPointRouge = YAHOO.util.Dom.get('pointRouge');
	if(pointrouge){
		divPointRouge.innerHTML = "<img src='../static/images/fo/v2/produits/picto_vip.gif' alt='Hors promotion VIP' title='Hors promotion VIP'/>";
	} else {
		divPointRouge.innerHTML = "";
	}
	
	divPondereux = YAHOO.util.Dom.get('pondereux');
	if(prdPondereux){
		divPondereux.innerHTML = "<img src='../static/images/fo/v2/produits/picto_pl.png' alt='Article Lourd' title='Article Lourd'/>";
	} else {
		divPondereux.innerHTML = "";
	}
	
	compteurLayerQuantite = YAHOO.util.Dom.get('ZZDTO_COMPTEUR_LAYERXXQUANTITE');
	if(compteurLayerQuantite != null){
		compteurLayerQuantite.value=quantiteCompteur;
	}
	
	divisinliste = YAHOO.util.Dom.get('isinliste');
	divajoutliste = YAHOO.util.Dom.get('ajoutliste');
	if(isInListe){
		YAHOO.util.Dom.setStyle(divisinliste, "display", "block");
		YAHOO.util.Dom.setStyle(divajoutliste, "display", "none");
	}else{
		YAHOO.util.Dom.setStyle(divisinliste, "display", "none");
		YAHOO.util.Dom.setStyle(divajoutliste, "display", "block");
		listeInputHidden = YAHOO.util.Dom.get('inputListeId');
		listeInputHidden.value = listeId;		
	}
}

function callbackAjoutProduitListeClient(){
	divisinliste = YAHOO.util.Dom.get('isinliste');
	divajoutliste = YAHOO.util.Dom.get('ajoutliste');
	YAHOO.util.Dom.setStyle(divisinliste, "display", "block");
	YAHOO.util.Dom.setStyle(divajoutliste, "display", "none");
}

function augmenterProduitBloc(prdCode,lisId){
	 prdQte=YAHOO.util.Dom.get('ZZDTO_COMPTEUR_PANIERXXQUANTITE');
	 prdQte.value=-(-prdQte.value-1);
	 prdQteHid=YAHOO.util.Dom.get('qte');
	 prdQteHid.value=prdQte.value;
	 prix = YAHOO.util.Dom.get('prixUnit').value;
	 prdPrice = YAHOO.util.Dom.get('prdprice');
	 prdPrice.innerHTML = (prix*prdQte.value).toFixed(2)+' &euro;';
}

function diminuerProduitBloc(prdCode,lisId){
	prdQte=YAHOO.util.Dom.get('ZZDTO_COMPTEUR_PANIERXXQUANTITE');
	prdQte.value=prdQte.value-1;
	prix = YAHOO.util.Dom.get('prixUnit').value;
	prdPrice = YAHOO.util.Dom.get('prdprice');
	prdPrice.innerHTML = (prix*prdQte.value).toFixed(2)+' &euro;';
}


// Lancer sur le onmousemove du produit et du layer
function afficherLayerProduit(e){
	if (hideProcId) {
		clearTimeout(hideProcId);
		hideProcId = null;
	}
}

// lancer sur le onmouseout du produit
function fermerLayerProduit(e){
	
	if (hideProcId) {
		clearTimeout(hideProcId);
		hideProcId = null;
	}

	hideProcId = setTimeout(function() {effacerLayerProduit();	}, 500);
}

function overElement(e){
	layerRegion = YAHOO.util.Dom.getRegion(tooltip);
	prodRegion = YAHOO.util.Dom.getRegion(produit);
	
	unionRegion = prodRegion.union(layerRegion);

	x = YAHOO.util.Event.getPageX(e);
	y = YAHOO.util.Event.getPageY(e);
	mousePointer = new	YAHOO.util.Point(x,y);
	
	return unionRegion.contains(mousePointer);
}

// Fonction appelée par le setTimout
function effacerLayerProduit(){
	YAHOO.util.Dom.setStyle(tooltipElement, "display", "none");	
	showSelect(tooltipElement);
}

/************************************************/
/* compteur du layer
/************************************************/

function augmenterCompteurLayer(compteur,max){
	prdQte=YAHOO.util.Dom.get(compteur);
	if(prdQte !== null){
		quantite = parseInt(prdQte.value) + 1;
		if(currentPrdNbMaxiCommande !== null){
			max = currentPrdNbMaxiCommande;
		}
		if(quantite <= max || max == null){
			prdQte.value = quantite;
		}
	}
}

function diminuerCompteurLayer(compteur){
	prdQte=YAHOO.util.Dom.get(compteur);
	if(prdQte !== null){
		quantite = parseInt(prdQte.value);
		if(quantite > 1){
			prdQte.value = quantite - 1;
		}
	}
}

/************************************************/
/*  DIALOG AJOUT PANIER 						*/
/************************************************/
YAHOO.namespace("liste.container");
	
function initDialogAjoutListe() {
	//var layerleft = document.getElementById("page").offsetLeft + 300;
	//var layertop = 220;
	//YAHOO.liste.container.overlay2 = new YAHOO.widget.Overlay("dialogAjoutPanierListe", {xy:[layerleft,layertop], visible:false, width:"400px"});
	
	//-------------------------------------------------------------------
	//TG : pour palier a un mauvais affichage (ne mode "hide") sous IE7
	//[des traits apparaissent alors que la box n'est pas affichée]
	//l'overlay est en display:none au chargement
	//on le met en display:bloc au click et on recalcule sa position
	//-------------------------------------------------------------------
	YAHOO.liste.container.overlay2 = new YAHOO.widget.Overlay("dialogAjoutPanierListe", {visible:false, width:"400px"});
	YAHOO.liste.container.overlay2.render();
	//YAHOO.util.Event.addListener("show", "click", YAHOO.liste.container.overlay2.show, YAHOO.panier.container.overlay2, true);
	//YAHOO.util.Event.addListener("hide", "click", YAHOO.liste.container.overlay2.hide, YAHOO.panier.container.overlay2, true);
	YAHOO.liste.container.overlay3 = new YAHOO.widget.Overlay("dialogAjoutCommandeListe", {visible:false, width:"400px"});
	YAHOO.liste.container.overlay3.render();
	
	// popin de création ou de choix d'une liste dans laquelle le client veut ajouter un produit (Layer)
	YAHOO.liste.container.overlay4 = new YAHOO.widget.Overlay("dialogAjoutProduitListeContainer", {visible:false, width:"100%"});
	YAHOO.liste.container.overlay4.render();
	YAHOO.liste.container.overlay5 = new YAHOO.widget.Overlay("dialogAjoutProduitListe", {visible:false, width:"400px"});
	YAHOO.liste.container.overlay5.render();
}

function afficherDialogAjoutPanierListe(){
	//-------------------------------------------------------------------
	//TG : pour palier a un mauvais affichage (ne mode "hide") sous IE7
	//[des traits apparaissent alors que la box n'est pas affichée]
	//l'overlay est en display:none au chargement
	//on le met en display:block au click et on recalcule sa position
	//-------------------------------------------------------------------
	var layerleft = (YAHOO.util.Dom.getViewportWidth()/2) - 200;
	var layertop = YAHOO.util.Dom.getViewportHeight()/2 + YAHOO.util.Dom.getDocumentScrollTop() - 150;
	//var layerleft = document.getElementById("global").offsetLeft + 300;
	//var layertop = f_scrollTop() + 220;
	YAHOO.util.Dom.setStyle('dialogAjoutPanierListe','z-index','2');
	YAHOO.util.Dom.setStyle('dialogAjoutPanierListe','display','block');
	YAHOO.util.Dom.setStyle('dialogAjoutPanierListe','top',layertop + 'px');
	YAHOO.util.Dom.setStyle('dialogAjoutPanierListe','left',layerleft + 'px');
	YAHOO.liste.container.overlay2.show();
	
}

function fermerDialogAjoutPanierListe(){
	YAHOO.liste.container.overlay2.hide();
}

function afficherDialogAjoutCommandeListe(cmdId){
	//-------------------------------------------------------------------
	//TG : pour palier a un mauvais affichage (ne mode "hide") sous IE7
	//[des traits apparaissent alors que la box n'est pas affichée]
	//l'overlay est en display:none au chargement
	//on le met en display:block au click et on recalcule sa position
	//-------------------------------------------------------------------
	prdInputHidden = YAHOO.util.Dom.get('cmdId');
	prdInputHidden.value = cmdId;
	var layerleft = (YAHOO.util.Dom.getViewportWidth()/2) - 200;
	var layertop = YAHOO.util.Dom.getViewportHeight()/2 + YAHOO.util.Dom.getDocumentScrollTop() - 150;
	//var layerleft = document.getElementById("global").offsetLeft + 300;
	//var layertop = f_scrollTop() + 220;
	YAHOO.util.Dom.setStyle('dialogAjoutCommandeListe','z-index','2');
	YAHOO.util.Dom.setStyle('dialogAjoutCommandeListe','display','block');
	YAHOO.util.Dom.setStyle('dialogAjoutCommandeListe','top',layertop + 'px');
	YAHOO.util.Dom.setStyle('dialogAjoutCommandeListe','left',layerleft + 'px');
	YAHOO.liste.container.overlay3.show();
}

function fermerDialogAjoutProduitListe(){
	YAHOO.liste.container.overlay3.hide();
}

function afficherDialogAjoutProduitListe(prdCode){
	//-------------------------------------------------------------------
	//TG : pour palier a un mauvais affichage (ne mode "hide") sous IE7
	//[des traits apparaissent alors que la box n'est pas affichée]
	//l'overlay est en display:none au chargement
	//on le met en display:block au click et on recalcule sa position
	//-------------------------------------------------------------------
	prdInputHidden = YAHOO.util.Dom.get('prdCodeAjout');
	prdInputHidden.value = prdCode;
	var layerleft = (YAHOO.util.Dom.getViewportWidth()/2) - 200;
	var layertop = YAHOO.util.Dom.getViewportHeight()/2 + YAHOO.util.Dom.getDocumentScrollTop() - 150;
	//var layerleft = document.getElementById("global").offsetLeft + 300;
	//var layertop = f_scrollTop() + 220;
	
	YAHOO.util.Dom.setStyle('dialogAjoutProduitListeContainer','z-index','10001');
	YAHOO.util.Dom.setStyle('dialogAjoutProduitListeContainer','height',YAHOO.util.Dom.getDocumentHeight() + 'px');
	YAHOO.util.Dom.setStyle('dialogAjoutProduitListeContainer','display','block');
	YAHOO.util.Dom.setStyle('dialogAjoutProduitListeContainer','top','0px');
	YAHOO.util.Dom.setStyle('dialogAjoutProduitListeContainer','left','0px');
	YAHOO.util.Dom.setStyle('dialogAjoutProduitListe','position','absolute');
	YAHOO.util.Dom.setStyle('dialogAjoutProduitListe','z-index','11000');
	YAHOO.util.Dom.setStyle('dialogAjoutProduitListe','display','block');
	YAHOO.util.Dom.setStyle('dialogAjoutProduitListe','top',layertop + 'px');
	YAHOO.util.Dom.setStyle('dialogAjoutProduitListe','left',layerleft + 'px');
	YAHOO.liste.container.overlay4.show();
	YAHOO.liste.container.overlay5.show();
}

function fermerDialogAjoutProduitListe(){
	YAHOO.liste.container.overlay4.hide();
	YAHOO.liste.container.overlay5.hide();
}

/********************************************************************/
/*  Fonction permettant de récupérer la largeur, hauteur de la page */
/* 	la position des barre de scroll									*/
/********************************************************************/
function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}

function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

/** ***********************************************************************
 * fonctions utilitaires pour gestion des cookies
 *********************************************************************** */

function setCookie (name, value) {
	var argv=setCookie.arguments;
	var argc=setCookie.arguments.length;
	var expires=(argc > 2) ? argv[2] : null;
	var path=(argc > 3) ? argv[3] : null;
	var domain=(argc > 4) ? argv[4] : null;
	var secure=(argc > 5) ? argv[5] : false;
	document.cookie=name+"="+escape(value)+
		((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
		((path==null) ? "" : ("; path="+path))+
		((domain==null) ? "" : ("; domain="+domain))+
		((secure==true) ? "; secure" : "");
}

function getCookieVal(offset) {
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1)
      		endstr=document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}


function getCookie (name) {
	var arg=name+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while (i<clen) {
		var j=i+alen;
		if (document.cookie.substring(i, j)==arg){
			return getCookieVal (j);
		}
		i=document.cookie.indexOf(" ",i)+1;
        if (i==0){
        	break;
        }
    }
	return null;
}

/****************************************************
* FONCTION POUR IE : palie au bug du layer au dessus d'un objet select
*******************************************************/
// x : position x
// y : postion y
// w : width
// h : height
function hideSelect (object,height){
	if(object){
		var x = YAHOO.util.Dom.getX(object);
		var y = YAHOO.util.Dom.getY(object);
		var w = object.offsetWidth;
		var h = height;
	
		if(YAHOO.env.ua.ie == 6){
			tagName = "SELECT";
			var i;
			for (i = 0; i < document.all.tags(tagName).length; ++i)
			{
				var obj = document.all.tags(tagName)[i];
				if (!obj || !obj.offsetParent)
					continue;
					
				// check if the object and the subMenu overlap
				var ox = YAHOO.util.Dom.getX(obj);
				var oy = YAHOO.util.Dom.getY(obj);
				var ow = obj.offsetWidth;
				var oh = obj.offsetHeight;
				
				if (ox > (x + w) || (ox + ow) < x)
					continue;
				if (oy > (y + h) || (oy + oh) < y)
					continue;
		
				//subMenu.cmOverlap.push (obj);
				obj.style.visibility = "hidden";
			}
		}
	}
}

function showSelect (object,height){
	if(object){
		var x = YAHOO.util.Dom.getX(object);
		var y = YAHOO.util.Dom.getY(object);
		var w = object.offsetWidth;
		var h = height;
	
		if(YAHOO.env.ua.ie == 6){
			tagName = "SELECT";
			var i;
			for (i = 0; i < document.all.tags(tagName).length; ++i)
			{
				var obj = document.all.tags(tagName)[i];
				if (!obj || !obj.offsetParent)
					continue;
					
				// check if the object and the subMenu overlap
				var ox = YAHOO.util.Dom.getX(obj);
				var oy = YAHOO.util.Dom.getY(obj);
				var ow = obj.offsetWidth;
				var oh = obj.offsetHeight;
				
				if (ox > (x + w) || (ox + ow) < x)
					continue;
				if (oy > (y + h) || (oy + oh) < y)
					continue;
		
				//subMenu.cmOverlap.push (obj);
				obj.style.visibility = "";
			}
		}
	}
}
