
    function openSubMenu(idSegment){
       var oForm  = $("menu");
       if(oForm){
          var kLine  = oForm.childNodes.length;

        // Fermer tout
          for(x=0;x<kLine;x++){
             if(oForm.childNodes[x].id.substring(0,8)=="segment_"){
                tabVal = oForm.childNodes[x].id.split("_");
                if(tabVal[1] != idSegment){
                   oForm.childNodes[x].style.display="none";
                }
             }
          }

        // ouvrir la sélection
          for(x=0;x<kLine;x++){
             if(oForm.childNodes[x].id.substring(0,8)=="segment_"){
                tabVal = oForm.childNodes[x].id.split("_");
                if(tabVal[1] == idSegment){
                   oForm.childNodes[x].style.display="";
                   document.getElementById("closeButtonDiv_" + idSegment).style.display="";
                   document.getElementById("openButtonDiv_" + idSegment).href="javascript:closeSubMenu('" + idSegment+ "');";
                }
             }
          }

       }
    }

    function closeSubMenu(idSegment){
       var oForm  = $("menu");
       if(oForm){
          var kLine  = oForm.childNodes.length;

        // Fermer tout
          for(x=0;x<kLine;x++){
             if(oForm.childNodes[x].id.substring(0,8)=="segment_"){
                tabVal = oForm.childNodes[x].id.split("_");
                if(tabVal[1] == idSegment){
                   oForm.childNodes[x].style.display="none";
                   document.getElementById("closeButtonDiv_" + idSegment).style.display="none";
                   document.getElementById("openButtonDiv_" + idSegment).href="javascript:openSubMenu('" + idSegment+ "');";
                }
             }
          }
       }
    }
    
    function updateCartQte(){
   	    var oContentDiv = $("cartQte");

        var sURL = "/cart/ajax-cartQte.php";
        var oRequest = new Ajax.Request(sURL, {onComplete : function(p_oRequest)
        {
            oContentDiv.innerHTML = p_oRequest.responseText;
        }, onException : function(p_oRequest, p_oException)
        {
            throw p_oException;
        },
        onLoaded : function()
        {
        }});

    }

    // Application ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Application = Class.create();
    Application.prototype =
    {
        sVersion : null,
        sPath : null,

        initialize : function()
        {
            this.sVersion = "?";
            this.sPath = "";
        },

        getVersion : function()
        {
            return this.sVersion;
        },

        getPath : function()
        {
            return this.sPath;
        }
    };

    Application.oInstance = null;
    Application.getInstance = function(p_sString)
    {
        if(Application.oInstance == null)
        {
            Application.oInstance = new Application();
        }

        return Application.oInstance;
    };

    // Static methods
    {
        Application.getVersion = function()
        {
            return Application.getInstance().getVersion();
        };

        Application.getPath = function()
        {
            return Application.getInstance().getPath();
        };
    }



    // Localization ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Localization = Class.create();
    Localization.prototype =
    {
        sLanguage : "fr_FR",
        aTranslations : null,

        initialize : function()
        {
            this.aTranslations = [];
        },

        setLanguage : function(p_sLanguage)
        {
            this.sLanguage = p_sLanguage;
        },

        getLanguage : function()
        {
            return this.sLanguage;
        },

        setTranslation : function(p_sString, p_sTranslation)
        {
            this.aTranslations[p_sString] = p_sTranslation;
        },

        getTranslation : function(p_sString)
        {
            return this.aTranslations[p_sString];
        }
    };

    Localization.oInstance = null;
    Localization.getInstance = function(p_sString)
    {
        if(Localization.oInstance == null)
        {
            Localization.oInstance = new Localization();
        }

        return Localization.oInstance;
    };

    // Static methods
    {
        Localization.setLanguage = function(p_sLanguage)
        {
            if(!bChanged || confirmChangesLoss())
            {
                window.location.href = setURLParameter(window.location.href, "language", p_sLanguage);
            }
        };

        Localization.getLanguage = function(p_sString)
        {
            return Localization.getInstance().getLanguage();
        };

        Localization.setTranslation = function(p_sString, p_sTranslation)
        {
            Localization.getInstance().setTranslation(p_sString, p_sTranslation);
        };

        Localization.getTranslation = function(p_sString)
        {
            return Localization.getInstance().getTranslation(p_sString);
        };

        // Load some strings from a XML element.
        Localization.load = function(xLocalization)
        {
            var aStrings = xLocalization.getElementsByTagName("string");
            var aTranslations;
            var iTranslationIndex;
            var xTranslation;
            var sTranslation
            var iIndex;
            for(iIndex = 0; iIndex < aStrings.length; ++iIndex)
            {
                // Select the appropiate translation, according to the current language.
                aTranslations = aStrings[iIndex].getElementsByTagName("translation");
                for(iTranslationIndex = 0; iTranslationIndex < aTranslations.length; ++iTranslationIndex)
                {
                    xTranslation = aTranslations[iTranslationIndex];
                    sTranslation = "";//"?" + aStrings[iIndex].getAttribute("id") + "?";
                    if(xTranslation.getAttribute("language") == Localization.getLanguage())
                    {
                        if(xTranslation["firstChild"] && xTranslation.firstChild.nodeType == 3)
                        {
                            sTranslation = xTranslation.firstChild.nodeValue;
                            break;
                        }
                    }
                }

                Localization.setTranslation(aStrings[iIndex].getAttribute("id"), sTranslation);
            }
        };
    }

	var oLanguageDialog = null;
	Event.observe(window, 'load', function()
	{
		var oLanguageItem = $('languageMenuItem');
		if(oLanguageItem)
		{
			oLanguageDialog = new Dialog(oLanguageItem.down("a"),
			{
			});
		}
	});

	function hideLanguageDialog()
	{
		if(oLanguageDialog)
		{
			oLanguageDialog.close();
		}
	}



    // Change detection ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    {
        bChanged = false;

        function notifyChange()
        {
            bChanged = true;
        }

        function confirmChangesLoss()
        {
            return confirm(Localization.getTranslation("message.confirmChangesLoss"));
        }
    }


    // Navigation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    {
        function go(p_sURL)
        {
            var lang= getURLParameter(window.location.href, "language");

            if(lang != null){

                 p_sURL = setURLParameter(p_sURL, "language", lang);
            }
            if(!bChanged || confirmChangesLoss())
            {
                window.location.href = p_sURL;
            }
        }

        function getURLParameter(p_sURL, p_sParameter)
        {
            var r_sValue = null;
            var oPattern = new RegExp("[\\?&]" + p_sParameter + "=([^&#]*)");
            var aResults = oPattern.exec(p_sURL);
            if(aResults != null)
            {
                r_sValue  = unescape(aResults[1]);
            }
            return r_sValue;
        }

        function setURLParameter(p_sURL, p_sParameter, p_sValue)
        {
            var r_sURL = p_sURL;

            // First, remove the parameter if it exists yet.
            if(getURLParameter(p_sURL, p_sParameter))
            {
                r_sURL = removeURLParameter(p_sURL, p_sParameter);
            }

            // If the URL contains parameters, add the parameter after '&'
            if(r_sURL.indexOf("?") > -1)
            {
                r_sURL += "&";
            }
            else
            {
                // If the URL does not contain any parameter, add the parameter after '?'
                r_sURL += "?";
            }

            r_sURL += p_sParameter + "=" + p_sValue;

            return r_sURL;
        }

        function removeURLParameter(p_sURL, p_sParameter)
        {
            var r_sURL = p_sURL;
            if(getURLParameter(p_sURL, p_sParameter))
            {
                var iIndex = p_sURL.indexOf("?");
                var r_sURL = p_sURL.substring(0, iIndex);
                if(iIndex > -1)
                {
                    aParameters = p_sURL.substring(iIndex + 1).split("&");
                    var sParameter;
                    var bFirstParameter = true;
                    for(iIndex = 0; iIndex < aParameters.length; ++iIndex)
                    {
                        sParameter = aParameters[iIndex];
                        if(sParameter.split("=")[0] != p_sParameter)
                        {
                            if(bFirstParameter)
                            {
                                r_sURL += "?";
                                bFirstParameter = false;
                            }
                            else
                            {
                                r_sURL += "&";
                            }
                            r_sURL += sParameter;
                        }
                    }
                }
            }

            return r_sURL;
        }
    }



	// Authentication ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	var oLogInDialog = null;
	Event.observe(window, 'load', function()
	{
		var oLogInItem = $('logInMenuItem');
		if(oLogInItem)
		{
			oLogInDialog = new Dialog(oLogInItem.down("a"),
			{
			});
		}
	});

	function setUpLogInDialogFieldsListeners()
	{
		var logInOnKeyEnter = function(p_oEvent)
        {
            oKeyEvent = new KeyEvent(KeyEvent.Type.PRESSED, p_oEvent);
            if(oKeyEvent.getCode() == KeyEvent.ENTER)
            {
                logIn();
            }
        };

		$("logInDialogUserField").observe("keydown", logInOnKeyEnter);
		$("logInDialogPasswordField").observe("keydown", logInOnKeyEnter);
	}

	function showLogInDialog()
	{
		if(oLogInDialog)
		{
			oLogInDialog.open();
			$("logInDialogUserField").focus();
		}
	}

	function hideLogInDialog()
	{
		if(oLogInDialog)
		{
			oLogInDialog.close();
		}
	}

	function logIn()
	{
	     
	    var lang= getURLParameter(window.location.href, "language");
	    

	    if(document.getElementById("logInDialogUserField").value==""){
	       if(lang=="en_EN"){
	          alert("Please enter your username");
	       }
	       else{
	          alert("Veuillez entrer votre nom d'usager");
	       }
	       return;
	    }

	    if(document.getElementById("logInDialogPasswordField").value==""){
	       if(lang=="en_EN"){
	          alert("Please enter password");
	       }
	       else{
	          alert("Veuillez entrer un mot de passe");
	       }
	       return;
	    }
	    $('logInForm').submit();
	}


	function logOut()
	{
	    go("/logOut.php");
	}

	function sendPass()
	{
	    $('sendPassForm').submit();
	}


	function forgetPassForm()
	{
	   $('forgetPassForm').style.display='';
	   $('forgetPassLink').style.display='none';
	}

        function showPolicies(page){
           dlgwin = window.open(page,'', 'height=,700, width=800,scrollbars,resizable');
           dlgwin.focus();
        }


   	function centerPopup(element)
    {
    	var pHeight = 0;
    	var pWidth = 0;
    	var pLeft = 0;
    	var pTop = 0;

        // IE
     if(document.all)
        {
         pHeight = document.documentElement.clientHeight;	    // Hauteur de l'élément document
        	pWidth  = document.documentElement.clientWidth;		     // Largeur de l'élément document
        	pTop    = document.documentElement.scrollTop;           // Hauteur de défilement de l'élément document
        	pLeft   = document.documentElement.scrollLeft;         // Longueur de défilement de l'élément document
        }
        // Firefox
     else
    	{
        	pHeight = window.innerHeight;	  // Hauteur de l'élément window
        	pWidth  = window.innerWidth;		   // Largeur de l'élément window
        	pTop    = window.pageYOffset;      // Hauteur de défilement de l'élément window
        	pLeft   = window.pageXOffset;     // Longueur de défilement de l'élément window
     }

     pTop += 5;
     pLeft = (pWidth - 600) / 2;

     element.style.position = 'absolute';
    	element.style.top  = pTop+"px";
    	element.style.left = pLeft+"px";

/*    	alert(element.style.top);
    	alert(element.style.left);
    	alert(pWidth);
    	*/

    }
