/*** functions generales ***/
    function displayDiv(division,modeDisplay) {
        if(document.getElementById(division)!=null) {
            document.getElementById(division).style.display = modeDisplay;
        }
    }
    
    function displayDivByName(division,modeDisplay,divcachees) {

    	//cache ses soeurs
    	//bug à faire
    	/*
    	if(divcachees!='') {
    	   displayDivByName(divcachees,'none','');
    	}*/
        
        var a   = document.getElementsByTagName('div');
    	var len = a.length;
    	var out = new Array();
    	
    	for (var i = 0; i < len; i++)
    	{
    		if (a[i].getAttribute('name')==division)
            var idDiv = a[i].getAttribute('id');
            if(document.getElementById(idDiv)!=null) {
                document.getElementById(idDiv).style.display = modeDisplay;
            }
    	}



    }

function resizeFlash(divId,h){
	document.getElementById(divId).style.height = h+"px";		
}
    
function popup(page,nom,largeur,hauteur,options) {
	var top=(screen.height-hauteur)/2;
	var left=(screen.width-largeur)/2;
	window.open(page,nom,"top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
}



function zoomImage(source) {
    //enleve la string minis/
    source = source.replace('/minis', '');
    var chemin = window.location.href;
    tabChemin = chemin.split('web/');  
    popup(tabChemin[0]+"web/zoomImage.php?source="+source,'zoom','700','500','resizable=1,scrollbars=1');
} 

//fonction zoom image simple
/*
function zoomImage(source) {
    //enleve la string minis/
    source = source.replace('/minis', '');    
    popup(source,'zoom','700','500','resizable=1,scrollbars=1');
} 
*/

/*****utils*****/
function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }

    return true;
}

String.prototype.trim = function() {
	return this.replace(/(^\s*)|(\s*$)/g, "");
}

/*** recherche ***/
function valideRechercheForm(formulaire) {
	formulaire.mots.value = formulaire.mots.value.trim();
	if(formulaire.mots.value=='') {
		alert('Veuillez indiquer un mot pour votre recherche !');
		formulaire.mots.focus();
        return false;	
	} else {
		if(formulaire.mots.value.length<=2) {
			alert('Veuillez indiquer un mot de plus de 2 lettres !');
			formulaire.mots.focus();
            return false;	
		}		
	}
	return true;	
}

/*** required (formulaire complet) + champs aux formats speciaux (email,date) ***/
function validateAllForm(formulaire) {


    
    if(validateEmail(formulaire)==false) {
        return false;
    }
    if(validateDate(formulaire)==false) {
        return false;
    }


    var alerte = 0;
    for(f=0;f<formulaire.elements.length;f++) {
        if(formulaire.elements[f].value=='') {
            alerte++;
            break;
        }
    }

    
    if(alerte>0) {
		alert('Merci de remplir tous les champs !');
		if ((formulaire.elements[f].type == "radio") || (formulaire.elements[f].type == "select") || (formulaire.elements[f].type == "text") || (formulaire.elements[f].type == "textarea")) {
		  formulaire.elements[f].focus();
		}
        
		return false;   
    }
    return true;
    
}

/***champs required + formats speciaux ***/
function validateRequiredForm(formulaire) {
    
    if(validateEmail(formulaire)==false) {
        return false;
    }
    if(validateDate(formulaire)==false) {
        return false;
    }

    if(validateFloat(formulaire)==false) {
        return false;
    }

    var alerte = 0;
    for(f=0;f<formulaire.elements.length;f++) {
        var thisAttribut = formulaire.elements[f].getAttribute("required");
        if((thisAttribut!='')&&(thisAttribut!=null)) {
            //cas speciaux 
            var thisType = formulaire.elements[f].getAttribute("type");
            if(thisType == "radio" || thisType == "checkbox") {
                var thisName = formulaire.elements[f].getAttribute("name");
                caseChecked = false;
                for(i=0;i<formulaire[thisName].length;i++) {
                    if(formulaire[thisName][i].checked==true) {
                        caseChecked = true;
                    }
                    
                }
                if(!caseChecked) {
                    alert('Merci de remplir le champ "'+thisAttribut+'"');
                    formulaire.elements[f].focus();
                    return false;   
                    break;
                }
            } else {
                if(formulaire.elements[f].value=='') {
                    alert('Merci de remplir le champ "'+thisAttribut+'"');
                    formulaire.elements[f].focus();
                    return false;   
                    break;
                }
            }
        }
    }
    return true;
}


/*****date*****/

function validateDate(formulaire) {
    var alerte = 0;
    for(f=0;f<formulaire.elements.length;f++) {
        var thisAttribut = formulaire.elements[f].getAttribute("format");
        if(thisAttribut=='date' && thisAttribut!=null) {
            tabDate = formulaire.elements[f].value.split('/');
            if(formulaire.elements[f].value!='') {
                if(tabDate.length!=3) {
                    alerte++;
                    break;                
                } else {
                    if(tabDate[2]!='0000' && isValidDate(tabDate[0], tabDate[1], tabDate[2])==false) {
                        alerte++;
                        break;
                    }                
                }
            
            }

        }
    }
      
    if(alerte>0) {
		alert('Merci de respecter le format des dates !');
		if ((formulaire.elements[f].type == "radio") || (formulaire.elements[f].type == "select") || (formulaire.elements[f].type == "text") || (formulaire.elements[f].type == "textarea")) {
            formulaire.elements[f].focus();
		}
        
		return false;   
    }
    return true;
    
}

function isValidDate(day, month, year) {
	    if(day=='' || month=='' || year=='' || day=='undefined' || month=='undefined' || year=='undefined') {
            return false;
        } else {
            if (month < 1 || month > 12) {
                return false;
            }
            if (day < 1 || day > 31) {
                return false;
            }
            if ((month == 4 || month == 6 || month == 9 || month == 11) &&
                (day == 31)) {
                return false;
            }
            if (month == 2) {
                var leap = (year % 4 == 0 &&
                   (year % 100 != 0 || year % 400 == 0));
                if (day>29 || (day == 29 && !leap)) {
                    return false;
                }
            }        
        }
        

        return true;
}

/***email***/
function validateEmail(formulaire) {
    var alerte = 0;
    for(f=0;f<formulaire.elements.length;f++) {
        var thisAttribut = formulaire.elements[f].getAttribute("format");
        if(thisAttribut=='email' && thisAttribut!=null) {
            if(formulaire.elements[f].value!='') {
                if(checkEmail(formulaire.elements[f].value)==false) {
                        alerte++;
                        break;
                }                
            }

        }
    }
      
    if(alerte>0) {
		alert('Merci de respecter le format des e-mails !');
		if ((formulaire.elements[f].type == "text") || (formulaire.elements[f].type == "textarea")) {
            formulaire.elements[f].focus();
		}
        
		return false;   
    }
    return true;
    
}

function checkEmail(emailStr) {
       if (emailStr.length == 0) {
           return true;
       }
       var emailPat=/^(.+)@(.+)$/;
       var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
       var validChars="\[^\\s" + specialChars + "\]";
       var quotedUser="(\"[^\"]*\")";
       var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
       var atom=validChars + '+';
       var word="(" + atom + "|" + quotedUser + ")";
       var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
       var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
       var matchArray=emailStr.match(emailPat);
       if (matchArray == null) {
           return false;
       }
       var user=matchArray[1];
       var domain=matchArray[2];
       if (user.match(userPat) == null) {
           return false;
       }
       var IPArray = domain.match(ipDomainPat);
       if (IPArray != null) {
           for (var i = 1; i <= 4; i++) {
              if (IPArray[i] > 255) {
                 return false;
              }
           }
           return true;
       }
       var domainArray=domain.match(domainPat);
       if (domainArray == null) {
           return false;
       }
       var atomPat=new RegExp(atom,"g");
       var domArr=domain.match(atomPat);
       var len=domArr.length;
       if ((domArr[domArr.length-1].length < 2) ||
           (domArr[domArr.length-1].length > 4)) {
           return false;
       }
       if (len < 2) {
           return false;
       }
       return true;
    }
    
/* A FAIRE
float
*/    
function validateFloat(formulaire) {
    var alerte = 0;
    for(f=0;f<formulaire.elements.length;f++) {
        var thisAttribut = formulaire.elements[f].getAttribute("format");
        if(thisAttribut=='float' && thisAttribut!=null) {
            if(formulaire.elements[f].value!='') {
                if(isNaN(parseFloat(formulaire.elements[f].value))) {
                    alerte++;
                    break;                
                }
            
            }

        }
    }
      
    if(alerte>0) {
		alert('Merci de respecter le format des prix !');
		if ((formulaire.elements[f].type == "radio") || (formulaire.elements[f].type == "select") || (formulaire.elements[f].type == "text") || (formulaire.elements[f].type == "textarea")) {
            formulaire.elements[f].focus();
		}
        
		return false;   
    }
    return true;
    
}

/***photo detail**/
function viewPhotoDetail(photo,division) {
    document.getElementById(division).innerHTML = "<p align=\"right\"><a href=\"javascript:void(0)\" onclick=\"displayDiv('"+division+"','none')\">[X]</a></p><p align=\"center\"><img src=\""+photo+"\"/></p>";
    document.getElementById(division).style.display = "block";
}

/*AJAX*/
function runfile(fichier) 
     { 
     if(window.XMLHttpRequest) // FIREFOX 
          xhr_object = new XMLHttpRequest(); 
     else if(window.ActiveXObject) // IE 
          xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
     else 
          return(false); 
     xhr_object.open("GET", fichier, false); 
     xhr_object.send(null); 
     if(xhr_object.readyState == 4) {
        return(xhr_object.responseText);
        } else {
        return(false);
        } 
     }

/**codes securite**/
function verifCodeSecurite(codeValue) {
    var retour = runfile("web/moduledynamique/ajaxVerifCodeSecurite.php?codeValue="+codeValue);
    if(retour=="1") {
        return true;
    } else {
        alert('Le code sécurité est erroné !');
        return false;
    }
}


function gotoAncre(ancre) {
    var thisLocation = window.location.href;
    tabLocation = thisLocation.split('#');
    window.location.href = tabLocation[0] + "#" + ancre;  
    window.status = "Lien vers " + ancre;  
}

function changeLocation(loc) {
    SideBar_RedirectUrl = loc;
    setTimeout( "window.location.href = SideBar_RedirectUrl", 0 );
}

/* panier & commande */

//calcul d'une quantite dans fiche article
function calculQte(qte,divAffiche,champForm) {
    var qteActuelle = document.getElementById(champForm).value;
    var qteNew = parseInt(qteActuelle) + parseInt(qte);
    if(qteNew<1) {
        qteNew = 1;
    }
    document.getElementById(champForm).value = qteNew;
    document.getElementById(divAffiche).innerHTML = qteNew;
}

//calcul d'une quantite dans panier (remet à jour panier en session)
function calculQtePanier(qte,divAffiche,champForm,idLigne) {
    var qteActuelle = document.getElementById(champForm).value;
    var qteNew = parseInt(qteActuelle) + parseInt(qte);
    document.getElementById(champForm).value = qteNew;
    document.getElementById(divAffiche).innerHTML = qteNew;
    
    var ajouterPanier = runfile("ajax/ajaxChgeQteLignePanier.php?idLigne="+idLigne+"&quantite="+parseInt(qte));
    window.location.reload();
}

//ajout d'un article
function addPanier() {
    var idArticle = document.getElementById("idArticle").value;
    var quantite = document.getElementById("quantite").value;
    var idCouleur = document.getElementById("idCouleur").value;
    var ajouterPanier = runfile("ajax/ajaxAddPanier.php?idArticle="+idArticle+"&quantite="+quantite+"&idCouleur="+idCouleur);
    //alert("Article ajouté !");
    viewPanier(true);
}

//ajout d'un article avec parametres
function addPanierParams(idArticle, quantite, idCouleur) {
    var ajouterPanier = runfile("ajax/ajaxAddPanier.php?idArticle="+idArticle+"&quantite="+quantite+"&idCouleur="+idCouleur);

    viewPanier(true);
    
    //affiche d'une div de confirmation
    var confirmation = runfile("ajax/ajaxConfirmationAddPanier.php?idArticle="+idArticle+"&quantite="+quantite+"&idCouleur="+idCouleur);
    document.getElementById("confirmationPanier").innerHTML = confirmation;

    //calcul de la position
    if(window.innerWidth!=undefined) {
        width = window.innerWidth;
        height = window.innerHeight;
    } else {
        width = document.body.clientWidth;
        height = document.body.clientHeight;
    }
    var XconfirmationPanier = Math.round((parseInt(width,10) - parseInt(document.getElementById("confirmationPanier").style.width,10)) / 2);
    document.getElementById("confirmationPanier").style.left = XconfirmationPanier+"px";
    document.getElementById("confirmationPanier").style.top = 200+"px";
    window.scrollTo(0,0);
    
    document.getElementById("confirmationPanier").style.display = 'block';

}

function addPanierAccessoire(idA) {
    var idArticle = document.getElementById("idArticle").value;
    var quantite = document.getElementById("quantite_"+idA).value;
    var ajouterPanier = runfile("ajax/ajaxAddPanier.php?idArticle="+idA+"&quantite="+quantite);
    viewPanier(true);
}

//affichage du panier
function viewPanier(view) {
    
    var divParent = document.getElementById('conteneurPanier');
    
    if(view==true) {

        //si la div n'existe pas, on la créé
        if(document.getElementById('panier')==null) {
            var divPanier = document.createElement('div');
            divPanier.setAttribute("id", "panier");
            divParent.appendChild(divPanier);        
        }

        document.getElementById('panier').style.width = "176px";
        //document.getElementById('panier').style.height = "150px";
        //document.getElementById('panier').style.top = 5;
        //document.getElementById('panier').style.right = 5;
        document.getElementById('panier').style.position = "relative";
        document.getElementById('panier').style.visibility = "visible";
        
        var contenuPanier = runfile("ajax/ajaxContenuPanier.php");
        document.getElementById('panier').innerHTML = contenuPanier;
        document.getElementById('panier').style.display = 'block';
        document.getElementById("panierContainer").style.display = 'block';
        
    } else {
        //masque le panier
        try {
            document.getElementById('panier').style.display = 'none';
            document.getElementById("panierContainer").style.display = 'none';
        } catch(Exception) {
        }
    }
}

//suppression du panier
function videPanier(optionReload) {
    viewPanier(false);
    var videPanier = runfile("ajax/ajaxVidePanier.php");
    if(optionReload) {
        window.location.reload();
    } else {
        isPanier();
    }    
}

//test si panier vide
function isPanier() {    
    var isPanier = runfile("ajax/ajaxIsPanier.php");
    if(isPanier==1) {
        viewPanier(true);
    } else {
        viewPanier(false);
    }
}

//suppression d'une ligne
function deleteLignePanier(idLigne,optionReload) {
    var deleteLignePanier = runfile("ajax/ajaxDeleteLignePanier.php?idLigne="+idLigne);
    if(optionReload) {
        window.location.reload();
    } else {
        viewPanier(true);
    }
}

//select la couleur
function setCouleur(idC) {
    couleurs = document.getElementsByName("couleur");
    for(c=0;c<couleurs.length;c++) {
        couleurs[c].style.borderColor = '#ffffff';
        couleurs[c].style.border = '1px';
    }
    document.getElementById(idC).style.border = '2px solid #ff9900';
    document.getElementById("idCouleur").value = idC;
}
//si on utilise des pictos couleurs
function setCouleurChamp(idC,champ) {
    couleurs = document.getElementsByName("couleur");
    for(c=0;c<couleurs.length;c++) {
        couleurs[c].style.borderColor = '#ffffff';
        couleurs[c].style.border = '1px';
    }
    document.getElementById(idC).style.border = '2px solid #ff9900';
    document.getElementById(champ).value = idC;
}

//si on utilise des selects
function selectSetCouleurChamp(idC,champ) {
    document.getElementById(champ).value = idC;
}

function checkCouleur(isForce,idC,idArticle,qte) {
    ok = false;
    if(document.getElementById(isForce).value == 1) {
        if(document.getElementById(idC).value == 0 || document.getElementById(idC).value == '') {
            ok = false;
        } else {
            ok = true;
        }
    } else {
        ok = true;
    }
    if(ok) {
        addPanierParams(idArticle,qte,document.getElementById(idC).value);
    } else {
        alert('Merci de choisir un coloris !');
        //viewCouleurSwf(idC,idArticle);
    }
    
}

//connexin client
function connexionClient(idForm) {
    var formulaire = document.getElementById(idForm);
    if(validateRequiredForm(formulaire)) {
        formulaire.submit();
    }
    
}

//client session
function setClientSession(idForm,loc) {
    var formulaire = document.getElementById(idForm);
    
    if(validateRequiredForm(formulaire)) {
        var params = "";
        for(f=0;f<formulaire.elements.length;f++) {
            var el = formulaire.elements[f];
            params += el.name + "=" + nl2br(el.value) + "&";
        }
        
        var setClientSession = runfile("ajax/ajaxSetClientSession.php?"+params);
        changeLocation(loc);    
    }
    

}

function nl2br(str) 
{ 
return str.replace(/\n/g,"<br>"); 
} 

//verif mot de passe & confirmation
function checkPass(passChp,confirmChp){
    if(passChp.value!=confirmChp.value) {
        alert('Le mot de passe et la confirmation sont différents !');
        confirmChp.value = '';
        confirmChp.focus();
        return false;
    }
    return true;
}

//moyen de paiement
function setMoyendepaiement(mdp,chpReference) {
    var setMoyendepaiement = runfile("ajax/ajaxSetMoyendepaiement.php?mdp="+mdp);
    //on peut ensuite enregistrer la commande
    //var numeroCommande = enregistreCommande();
    //if(chpReference!="" && document.getElementById(chpReference)!=null) {
    //    document.getElementById(chpReference).value = numeroCommande;
    //}
}

//enregistre la commande (+client)
function enregistreCommande() {
    var numeroCommande = runfile("ajax/ajaxEnregistreCommande.php");
    return numeroCommande;
}

function submitForm(idForm) {
    var formulaire = document.getElementById(idForm);
    if(validateRequiredForm(formulaire)) {
        formulaire.submit();
    }    
}

function viewPage(loc) {
    window.location.href = loc;
}

/* trie catalogue*/
function setTriCatalogue(tri) {
    var setTri = runfile("ajax/ajaxTri.php?tri="+tri);
    window.location.reload();
}

/**special choix des couleurs**/
var yOffset = 0;
function viewCouleurSwf(idChamp, idArticle) {
  var swf = runfile("ajax/ajaxViewCouleurSwf.php?idChamp="+idChamp+"&idArticle="+idArticle);
  
  //document.getElementById("divFondu").innerHTML = '<embed src="web/swf/fond_fondu.swf" quality="high" wmode="transparent" width="100%" height="100%" name="fond_fondu" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
  document.getElementById("divFondu").innerHTML = '<embed src="web/swf/fond_fondu.swf" quality="high" wmode="transparent" width="100%" height="100%" name="fond_fondu" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
  document.getElementById("divFondu").style.display = 'block';  
  
  document.getElementById("div_couleurs").innerHTML = swf;
  document.getElementById("div_couleurs").style.display = "block";
  yOffset = window.pageYOffset;
  if(yOffset==undefined) {
    yOffset = document.documentElement.scrollTop;
  }
 
  
  window.scrollTo(0,0);
  document.body.style.overflowY = "hidden";
}

//appellée depuis couleur.swf
function jsSelColor(idCouleur, idChamp) {
  var divCol = "div_"+idChamp;
  
  document.getElementById("div_couleurs").style.display = "none";
  document.getElementById("divFondu").style.display = "none";
  
  //valeur dans le input
  document.getElementById(idChamp).value = idCouleur;
  //div de la couleur
  var divCouleur = runfile("ajax/ajaxDivCouleur.php?idCouleur="+idCouleur);

  document.getElementById(divCol).innerHTML = divCouleur;
  document.getElementById(divCol).style.display = "block";

  jsResetSelColor();
}

//reinit et revient sur la position de depart
function jsResetSelColor() {

  if(yOffset==undefined) {
    yOffset = 320;
  }  
  yOffset = yOffset + 30; 
  document.getElementById("div_couleurs").style.display = "none";
  document.getElementById("divFondu").style.display = "none";
  window.scrollTo(0,yOffset);
  document.body.style.overflowY = "auto";
}