// javascript Edilex
	var strloading;
	var divpanier = 'affpanier';
	var nbitemspanier =0;
	strloading = "<img src=\"/images/loading.gif\" alt=\"Chargement - Loading\" style=\"margin: 10px 30px;\">";

//* Ouverture/Fermeture des listes du sous-menu
	function ouvrirUneListe(indice, idPuce) {
		var bolretour = false;
		if (indice != "") {
			var liste = "liste" + indice;
			document.getElementById(liste).className= "listeDisponible";
			
			document.getElementById("elem" + indice).className = "smgActif";		
			bolretour = true;
		}
		return bolretour;
	}	
	function mettrePuceActive(idPuce) {
		document.getElementById("lien" + idPuce).className= "puceActive";
	}
	function rendreActif(lien) {
		((lien.className == "sousMenuNonActif")?lien.className = "sousMenuActif":lien.className = "sousMenuNonActif")
		
	}
	function fermerToutesLesListes(elementException, nombreDeListes, idPuce, nombreDePuces) {
		//* ouverture / fermeture	
		for  (var c = 1;c <= nombreDeListes;c++ ) {
			if(document.getElementById("liste" + c))	{
				document.getElementById("liste" + c).className = "listeNonDisponible";
			}
			var np;
			if (idPuce != "x") {
			//* mettre lien en bleu
				np = nombreDePuces;
			}
			else {
				np = 15;
			}
			for (var d = 1;d <= nombreDePuces;d++) {
				try {
					document.getElementById("lien" + elementException + d).className= "puceNonActive";
				}
				catch(err){
					break;
				}
			}
			document.getElementById("lien" + elementException + c).className= "puceNonActive";			
			document.getElementById("sect" + c).className = "sousMenuNonActif";
			document.getElementById("elem" + c).className = "smgNonActif";
		}
		
		/* ici code pour fermer laisser les listes fermées */
		
		var z = document.getElementById("sect" + elementException);
		if (z.className == "sousMenuNonActif") {
			rendreActif(z);
			ouvrirUneListe(elementException);			
		}
		
		/*rendreActif(z);
		ouvrirUneListe(elementException);*/
		
		if (idPuce != "x") {
			//* mettre lien en bleu
			mettrePuceActive(idPuce);
		}
		else {
/*			alert(z.className);*/
/*			(z.className == "sousMenuActif"?alert("yo"):rendreActif(z))		*/
		}
	}
	
	//* sous-menu
	
	//* Vérifier si le sous-menu doit être ouvert.
		//* Querystring
    	function getQueryVariable(variable) {
    	  var retour = null;
	      var query = window.location.search.substring(1);
	      var vars = query.split("&");
	      for (var i=0;i<vars.length;i++) {
			var pair = vars[i].split("=");
			if (pair[0] == variable) {				
				retour = pair[1];				
			}   
	      }  
	      return retour;
      	}
      	var historique = 0;
      	if (getQueryVariable("exception") != null) {
			var elexcp = getQueryVariable("exception");
			historique++;
      	}
		if (getQueryVariable("nlistes")  != null) {
			var nbListes = getQueryVariable("nlistes");
			historique++;
      	}      	
		if (getQueryVariable("puce")  != null) {
			var puce = getQueryVariable("puce");
			historique++;
      	}      	
      	
      	//* nombre de paramètres   	
		function sousMenu() {
	      	if (historique == 3) {
				fermerToutesLesListes(elexcp, nbListes, puce);
			}
		}
		// Attacher la fonction sur le load du body
		window.addEventListener?window.addEventListener("load",sousMenu,false):window.attachEvent("onload",sousMenu);

//* Fin	

	//* Boutique

	//* Ajax call
	function getXhr(){
	    var xhr = null;
		if(window.XMLHttpRequest) // Firefox et autres
		   xhr = new XMLHttpRequest();
		else if(window.ActiveXObject){ // Internet Explorer
		   try {
		            xhr = new ActiveXObject("Msxml2.XMLHTTP");
		        } catch (e) {
		            xhr = new ActiveXObject("Microsoft.XMLHTTP");
		        }
		}
		else { // XMLHttpRequest non supporté par le navigateur
		   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
		   xhr = false;
		}
		return xhr
	}

	function accueil_chapitre(astrouvrage, astrchapitre, aintcat, astridactif) {
		document.getElementById("boutique_accueil").style.display = "none";
		for(i=1;i<=3;i++) {
			if(i == aintcat) {
				document.getElementById("boutiquecategorie" + i).style.display = "block";
				document.getElementById("enteteniveau" + i).style.display = "block";
				document.getElementById("btniveau" + i).style.display = "none";
			}
			else{
				document.getElementById("boutiquecategorie" + i).style.display = "none";
				document.getElementById("enteteniveau" + i).style.display = "none";
				document.getElementById("btniveau" + i).style.display = "block";
			}
		}
		if(astrchapitre == null) {
			document.getElementById("navniveau1").className = "navniveau sectionactive"
			document.getElementById("navniveau2").innerHTML = "";
			document.getElementById("navniveau2").className = "navniveau sectionactive"
			document.getElementById("navniveau3").innerHTML = "";
			document.getElementById("navniveau3").className = "navniveau sectionactive"
			document.getElementById("navniveau4").innerHTML = "";
		}
		else {
			document.getElementById("boutique_navigation").style.display = "block";
			boutique_chapitre(astrouvrage, astrchapitre, astridactif);
		}
	}
	
	function boutique_chapitre(astrouvrage, astrchapitre, astridactif){
		var strurl;
		var xhr = getXhr()
		// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function(){
			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr.readyState == 4 && xhr.status == 200){
				document.getElementById("navniveau2").innerHTML = xhr.responseText;
			}
		}
		document.getElementById("navniveau1").className = "navniveau sectioninactive";
		document.getElementById("affpanier").style.display = "none";
		
		try {
			var tw = document.createTreeWalker(document.getElementById("navniveau1"), NodeFilter.SHOW_ELEMENT, null, false);
			while (tw.nextNode()) {
				tw.currentNode.className = "";
			}
		}
		catch(e) {
		}		
		document.getElementById(astridactif).className = "lienactif"

		test = document.getElementById(astridactif);

		document.getElementById("navniveau2").innerHTML = strloading;
		document.getElementById("navniveau2").className = "navniveau sectionactive"
		strurl = "/" + strlangue +"/boutique/ajxboutique.php?ouvrage=" + astrouvrage+"&chapitre=" + astrchapitre;
		document.getElementById("navniveau3").innerHTML = "";
		document.getElementById("navniveau4").innerHTML = "";
		xhr.open("GET",strurl,true);
		xhr.send(null);
	}
	function boutique_section(astrouvrage, astrsection, astridactif){
		var strurl;
		var xhr = getXhr()
		// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function(){
			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr.readyState == 4 && xhr.status == 200){
				document.getElementById("navniveau3").innerHTML = xhr.responseText;
			}
		}
		document.getElementById("navniveau2").className = "navniveau sectioninactive"
		document.getElementById("affpanier").style.display = "none";
		try {
			var tw = document.createTreeWalker(document.getElementById("navniveau2"), NodeFilter.SHOW_ELEMENT, null, false);
			while (tw.nextNode()) {
				tw.currentNode.className = "";
			}
		}
		catch(e) {
		}		
		document.getElementById(astridactif).className = "lienactif"
		document.getElementById("navniveau3").innerHTML = strloading;
		document.getElementById("navniveau3").className = "navniveau sectionactive"		
		strurl = "/" + strlangue +"/boutique/ajxboutique.php?ouvrage=" + astrouvrage+"&section=" + astrsection;
		document.getElementById("navniveau4").innerHTML = "";
		xhr.open("GET",strurl,true);
		xhr.send(null);
	}	
	
	function boutique_document(astrouvrage, astrdocument, astridactif){
		var strurl;
		var xhr = getXhr()
		// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function(){
			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr.readyState == 4 && xhr.status == 200){
				document.getElementById("navniveau4").innerHTML = xhr.responseText;
			}
		}
		document.getElementById("navniveau3").className = "navniveau sectioninactive"
		document.getElementById("affpanier").style.display = "none";
		try {
			var tw = document.createTreeWalker(document.getElementById("navniveau3"), NodeFilter.SHOW_ELEMENT, null, false);
			while (tw.nextNode()) {
				tw.currentNode.className = "";
			}
		}
		catch(e) {
		}				
		document.getElementById(astridactif).className = "lienactif";
		document.getElementById("navniveau4").innerHTML = strloading;
		strurl = "/" + strlangue +"/boutique/ajxboutique.php?ouvrage=" + astrouvrage+"&document=" + astrdocument;
		xhr.open("GET",strurl,true);
		xhr.send(null);
	}	
	
	function recherche_document(astrouvrage, astrdocument){
		var strurl;
		var xhr = getXhr()
		// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function(){
			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr.readyState == 4 && xhr.status == 200){
				document.location.href = xhr.responseText;
			}
		}
		document.getElementById("affpanier").style.display = "none";
		document.getElementById("navniveau4").innerHTML = strloading;
		strurl = "/" + strlangue +"/boutique/ajxboutique.php?ouvrage=" + astrouvrage+"&document=" + astrdocument;
		xhr.open("GET",strurl,true);
		xhr.send(null);
	}	
		
	function boutique_achat(astrdocument){
		var strurl;
		var xhr = getXhr()
		// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function(){
			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr.readyState == 4 && xhr.status == 200){
				document.getElementById("affpanier").innerHTML = xhr.responseText;
				nbitemspanier = document.getElementById("updatepanier").innerHTML;
				document.getElementById("nbitempanier").innerHTML = nbitemspanier;				
			}
		}
		
		document.getElementById("btpanier").style.display = "block";
		document.getElementById("affpanier").style.display = "block";
		document.getElementById("affpanier").innerHTML = strloading;
		strurl = "/" + strlangue +"/boutique/ajxpanier.php?document=" + astrdocument +"&action=add";
		xhr.open("GET",strurl,true);
		xhr.send(null);
	}
	function boutique_retrait(astrdocument){
		var strurl;
		var xhr = getXhr()
		// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function(){
			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr.readyState == 4 && xhr.status == 200){
				document.getElementById(divpanier).innerHTML = xhr.responseText;
				
				nbitemspanier = document.getElementById("updatepanier").innerHTML;
				
				var nbItemPanierArea = document.getElementById("nbitempanier");
				if (nbItemPanierArea != null)
				{
					document.getElementById("nbitempanier").innerHTML = nbitemspanier;
					if (nbitemspanier < 1) {
						document.getElementById("btpanier").style.display = "none";
					}
					else {
					document.getElementById("btpanier").style.display = "block";
					}
				}
				
				if (typeof(panierUpdatedCallback) != 'undefined'  && panierUpdatedCallback != null)
					panierUpdatedCallback();
			}
		}
		
		document.getElementById(divpanier).innerHTML = strloading;
		strurl = "/" + strlangue +"/boutique/ajxpanier.php?document=" + astrdocument +"&action=del";
		if(divpanier == 'resumepanier') {
			strurl = strurl + '&mode=paiement';	
		}
		
		xhr.open("GET",strurl,true);
		xhr.send(null);
	}
	function boutique_retour() {
		if (returnDocument() == '' || 
			returnDocument() == 'index.php' || 
			returnDocument() == 'doc_viewer.php') 
		{
			document.getElementById(divpanier).style.display = "none";
		}
		else  {
			document.location.href = 'index.php';
		}
	}
	
	function boutique_affpanier(strdiv){
		var strurl;
		var xhr = getXhr()
		divpanier = strdiv;
		// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function(){
			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr.readyState == 4 && xhr.status == 200)
			{
				document.getElementById(strdiv).innerHTML = xhr.responseText;
				
				if (typeof(panierUpdatedCallback) != 'undefined'  && panierUpdatedCallback != null)
					panierUpdatedCallback();
			}
		}
		document.getElementById(strdiv).style.display = "block";
		document.getElementById(strdiv).innerHTML = strloading;
		strurl = "/" + strlangue +"/boutique/ajxpanier.php";
		if(divpanier == 'resumepanier') {
			strurl = strurl + '?mode=paiement';	
		}
		xhr.open("GET",strurl,true);
		xhr.send(null);
	}
	
	//* textbox login

	function showHideDefaultMessage(frmInput, msg, mode, param) {
		var valeurForm;
		(param == "default"?valeurForm = msg:valeurForm = param)
		if (mode == "focus") {
			(frmInput.value == valeurForm?frmInput.value = "":frmInput.value = frmInput.value)		
		}
		else if (mode == "blur") {
			(frmInput.value == ''?frmInput.value = valeurForm:frmInput.value = frmInput.value)		
		}
	}
	
	function showHidePassword(frmTmp,idDest, mode) {
		var frmDest;
		frmDest = document.getElementById(idDest);
		if (mode == "focus") {
			frmTmp.style.display = "none";
			frmDest.style.display = "inline";
			frmDest.focus();
		}
		else if (mode == "blur") {
			if(frmTmp.value == "") {
				frmDest.style.display = "inline";
				frmTmp.style.display = "none";
			}
		}
	}

	function visiteurLogin() {
		document.getElementById("panneauLicense").style.display = "block";
		document.getElementById("panneauLogin").style.display = "none";
	}
	
    function returnDocument() {
        var file_name = document.location.href;
        var end = (file_name.indexOf("?") == -1) ? file_name.length : file_name.indexOf("?");
        return file_name.substring(file_name.lastIndexOf("/")+1, end);
    }

    function ValidateCreditCard(inputId) {

        var inputElement = document.getElementById(inputId);
        var strInput = inputElement.value;

        var numberInput = '';

        for (var i = 0; i < strInput.length; i++) {

            var c = strInput.charAt(i);
            var n = parseInt(c);
            if (!isNaN(n))
                numberInput += n.toString();
        }

        inputElement.value = numberInput;
        return isValidIdentifier(numberInput);
    
    }

    //Luhn algorithm identifier verification
    //MIT Licensed
    function isValidIdentifier(identifier) {

        var sum = 0,
        alt = false,
        i = identifier.length - 1,
        num;

        if (identifier.length < 13 || identifier.length > 19) {
            return false;
        }

        while (i >= 0) {

            //get the next digit
    
            num = parseInt(identifier.charAt(i), 10);

            //if it's not a valid number, abort
            if (isNaN(num)){
                return false;
            }

            //if it's an alternate number...
            if (alt) {
                num *= 2;
                if (num > 9){
                    num = (num % 10) + 1;
                }
            } 

            //flip the alternate bit
            alt = !alt;

            //add to the rest of the sum
            sum += num;

            //go to next digit
            i--;
        }

        //determine if it's valid
        var isValid = (sum % 10 == 0);
        return isValid;
    }

    function CreateToolTipHandler(itemId, descProvider) 
    {
        $('#' + itemId).qtip({

            content: {
                url: '/boutique/ajx_provider.php',
                data: { id: itemId, item: descProvider },
                method: 'get'
            },

            position: {
                
                corner: {
                    target: 'bottomLeft',
                    tooltip: 'topLeft'
                },
                
                adjust: {
                    x: 225,
                    screen: true
                }
            },

            style: {
                width: 450,
                padding: 8,
                background: '#f0ede4',
                color: '#171749',
                border: {
                    width: 1,
                    color: '#B8A97E'
                }
            }
        });
    }
	