/* Création de la requette ajax
 * anciennement dans geniecommerce_ajax.js le 12/09/2008 par marc
 **/
function getXmlHttpRequest(){
     if (window.XMLHttpRequest) { // Mozilla, Safari, ...
     	httpRequest = new XMLHttpRequest();
     	if (httpRequest.overrideMimeType) {
             httpRequest.overrideMimeType('text/xml');
         }	
         return httpRequest;
     } else if (window.ActiveXObject) { // IE
         return new ActiveXObject("Microsoft.XMLHTTP");
     }
    // throw new Error("XMLHttpRequest");
    return false;
 }
/* Execution des script javascrit lors de la récupération ajax
 * anciennement dans geniecommerce_ajax.js le 12/09/2008 par marc
 **/
function playScripts(target,code1){
   var allscript = target.getElementsByTagName("script");
   var dj_global = this;
   //si nb script  =0  alors que il y a des script mettre balise script a la fin du code AJAX
   for(var i=0;i< allscript.length;i++){
      var code = allscript[i].text;
      if (window.execScript) {
         window.execScript(code);
      }else {
      	if(navigator.userAgent.indexOf("KHTML") != -1){ //safari, konqueror..
		    var s = document.createElement("script");
			    s.type = "text/javascript";
			    s.innerHTML = code1;
		     	document.getElementsByTagName("head")[0].appendChild(s);
		 }else{
	          if( dj_global.eval ){
	             dj_global.eval(code);
	          }else {
	             eval(code);
	          }
		 }
      }
   }
}
/* Utiliser pour quand on clique sur un bouton acheter
 * génériquer le 12/09/2008
 * @param numArticle :id du div div a cacher/afficher
 * @author Marc
 **/
function AjouterArticlePanier2(numArticle) {

	var req = "ajouteArticle.do?" +
	     	  "numArticle=" + numArticle +
	      	  "&quantite=" + "1"
	var request = getXmlHttpRequest();
	
	if (request){
		request.open("GET", req , true);
		request.onreadystatechange = function(){
			if( request.readyState == 4 ){
				var div = document.getElementById("addpanier");
				if( request.status == 200 ){
					var txt = request.responseText;
					//alert(txt);
					div.innerHTML = txt;
					if(navigator.userAgent.indexOf("KHTML") != -1){ //safari, konqueror..
						txt.evalScripts();
						var allScript =  txt.extractScripts();
						var textScript ="";
						for(var i=0;i<allScript.length;i++){
							textScript+=allScript[i];
						}
						var unScript = document.createElement("script");
						unScript.innerHTML = textScript;
						playScripts(div,unScript);
						
					}else{
						playScripts(div,"");
					}
					setContenuPanier();
				}
				else {
					div.innerHTML = request.statusText;
				}
			}
		}
		request.send(null);
	} else {
		document.forms.ajouteArticleForm.submit();
	}
}
/* Utiliser pour mettre a jour le bloc 'Rappel du panier'
 * @author Marc
 **/
function setContenuPanier(){
	if($("gcinfopanier")){
		var jour= new Date();
		var req = "quelPanier.do?rand="+jour.getTime() ;
		new Ajax.Request(req,{
	    method:'get',
	    evalScripts:true,
	    onSuccess: function(transport) {
	     	var gcinfopanier = $("gcinfopanier");
	     	gcinfopanier.innerHTML=transport.responseText;
	    },
	    onFailure: function(transport){ 
	    	var erreur = "Probleme de récupération du panier"
	    	$("gcinfopanier").innerHTML ="<div class=\"gcpanierlayerajax\"><div class=\"gclignevide\"><span>"+erreur+"</span></div></div>"
	    	alert(erreur);
	    }
	  });
  	}
}
/* Utiliser pour mettre a jour le bloc WishList
 **/
function setContenuWishList(){
	if($("gcinfowishlist")){
		var jour= new Date();
		var req = "quelleWishlist.do?rand="+jour.getTime() ;
		new Ajax.Request(req,{
			method:'get',
			evalScripts:true,
			onSuccess: function(transport) {
	     		var gcinfowishlist = $("gcinfowishlist");
	     		gcinfowishlist.innerHTML=transport.responseText;
	    	},
	    	onFailure: function(transport){ 
	    		var erreur = "Probleme de récupération du wishList"
	    		$("gcinfowishlist").innerHTML ="<div>"+erreur+"</div>"
		    	alert(transport.responseText);
	    		alert(erreur);
	    	}
	  });
  	}else{
  		alert('probleme setContenuWishList()')
  	}
}

/** variable utilises pour la gestion des erreurs dans la fonction conseiller rappelle */
var errors = "";
/**
 * envoie ajax du formulaire ConseillerRappelle
 * Une verfication du mail se fait avant
 * @return
 */
function conseillerRappelle(){
	var name = $('conseiller_form_nom');
	var firstName = $('conseiller_form_prenom');
	var email = $('conseiller_form_mail');
	var zipCode =  $('conseiller_form_codePostal');
	var telNumber = $('conseiller_form_tel');
	
	errors = "Les champs suivants ne sont pas valides ou n'on pas ete renseignes : \n";
	var isTelValide = validerTel(telNumber.value, errors);
	var isNomValide = validerChamp(name.value, ' - le nom \n', "^Nom");
	var isPrenomValide = validerChamp(firstName.value, ' - le prenom \n', "^Pr.nom");
	var isMailValide = validerMail(email.value, errors);
	if( !(isTelValide && isNomValide && isPrenomValide && isMailValide)){
		alert(errors);
		return;
	}
		
	new Ajax.Request( "conseillerRappelle.do" , {
		method : 'post',
		parameters : {nom : name.value, prenom : firstName.value, telephone :  telNumber.value , mail :  email.value, codePostal : zipCode.value},
		requestHeaders: {Accept: 'application/json'},
		evalScripts:true,
		onSuccess: function(transport) {
     		var gcConseiller = $("addConseiller");
     		gcConseiller.innerHTML = transport.responseText;
     		playScripts(gcConseiller, "");     		
    	},
    	onFailure: function(transport){ 
    		var erreur = "Probléme lors de l'envoi du message au conseiller"
    		$("addpanier").innerHTML ="<div>"+erreur+"</div>"
    	}
	});
}

/**
 * verifie que le champs est un mail
 * @param mailTextID
 * @return
 */
function validerMail(mailTextID) {
	var Regex = new RegExp("^[A-Za-z0-9]+([_\.\-][A-Za-z0-9]*)*@[A-Za-z0-9]+([_\.\-][A-Za-z0-9]{1,})*\.([A-Za-z]{2,}){1}$");

	if(Regex.test(mailTextID)) {
		return true;
	} else {
		errors += " - L'adresse mail \n";
		return false;
	}
}

/**
 * verfie le numero de tel
 * @param telText
 * @return
 */
function validerTel(telText){
	var Regex = new RegExp("^([\+]?[0-9]{0,3}[-_/ \.]?)([-_/ \.]?[0-9]{2}){4}$");
	if(Regex.test(telText)) {
		return true;
	} else {
		errors += " - Le numero de telephone \n";
		return false;
	}	
}

/**
 * verifie le champ
 * @param champ
 * @param type
 * @return
 */
function validerChamp(champ , typeErreur, regex){
	var lettre = new RegExp("^.*([a-zA-Z]+).*$"); //contient des lettres
	var chiffre = new RegExp("^([0-9]+)$"); //contient de chiffres
	var Regex2 = new RegExp(regex)
	var len = new String(champ).length;
	
	if(lettre.test(champ) && !chiffre.test(champ) && !Regex2.test(champ)&& len >0) {
		return true;
	} else {
		errors += typeErreur;
		return false;
	}	
}
/* Utiliser pour l'affichage du layer récapitulatif du panier
 * @param divid :id du div div a cacher/afficher
 * @param action : false= cacher true = afficher
 * @author Marc
 **/
function afficherLayerPanier(divid,action){
	if(action==true){
		if($(divid).getStyle("display")=="none"){
			$(divid).setStyle({display:"block"});
		}
	}else{
		$(divid).setStyle({display:"none"});
	}
}

function fermerElement(nom){
		var obj = window.document.getElementById(nom);
		var currentDisplay = obj.style.display;
		if(currentDisplay!="none") {
			obj.style.display="none";
		}
		
		if(window.delaiPanier){
			clearTimeout(window.delaiPanier)
		}
}

function ouvrirElement(nom){
	var obj = window.document.getElementById(nom);
	var currentDisplay = obj.style.display;
	if(currentDisplay=="none") {
		obj.style.display="block";
	}	
}

/**/
function getEcranX(){
	if (window.innerWidth != null){
		return parseInt(window.innerWidth);
	}
	if (document.body.clientWidth != null){
		return parseInt(document.body.clientWidth);
	}
	return (0);
}
/**/
function getEcranY(){
	if (window.innerHeight != null){
		return parseInt(window.innerHeight);
	}
	if (document.body.clientHeight != null){
		return parseInt(document.body.clientHeight);
	}
	return (0);
}
/**/
function controleTel(numTel){
	var exp = new RegExp("^[\\d-]{10,}$", "ig");
	
	if(exp.test(numTel)==false) {
		return 1;
	}	
	return 0;
}
/**/
function trim(string){
	return string.replace(/(^\s*)|(\s*$)/g,'');
} 
/**/
function openParrainage() {
		openPopScroll("maroquinerie_valise_bagages_sac.gnc?Destination=affPopupParrainage","Parrainage",695,530);
}
/**
 * Ouverture d'une popup sans décoration
 */ 
function openPop(url, nom, largeur, hauteur) {
  var options = "width="+largeur+" height="+hauteur+" toolbar=no scrollbars=no resizable=yes titlebar=yes";
  newWindow = open(url, nom, options);
  newWindow.moveTo( (parseInt(screen.width)-largeur)/2 ,(parseInt(screen.height)-hauteur)/2 );
  newWindow.focus();
}
/**
 * Ouverture d'une popup avec scroll bars
 */ 
function openPopScroll(url, nom, largeur, hauteur) {
  newWindow = open(url, nom, "width="+largeur+",height="+hauteur+",toolbar=no,scrollbars=yes,resizable=yes,menubar=no,location=no,status=no,titlebar=no")
  //newWindow = open(url, nom, "width="+largeur+",height="+hauteur+",toolbar=no,scrollbars=yes,resizable=yes,titlebar=yes")
  newWindow.moveTo( (parseInt(screen.width)-largeur)/2 ,(parseInt(screen.height)-hauteur)/2 );
  newWindow.focus();
}
/**/
function affichesousmenu(id){
	var sousmenu = Dmc_Layer.is_object("sousmenu"+id)
	//document.getElementById("sousmenu"+id)
	if(sousmenu!=false){
		if(sousmenu.style.display=="none"){sousmenu.style.display="block"}else{sousmenu.style.display="none"}
	}
}

/** Sélectionne automatiquement l'option de la liste 
 * de la valeur passée en paramètre
 * @param sel : le select
 * @param value : la valeur à sélectionner 
 */
function selectOption(sel, value){
	for (i=0;i<sel.options.length;i++) { 
	  if (sel.options[i].value==value) { 
		sel.options[i].selected=true;
		break;
	  }
	} 
}

/**
 * Retourne une url sans en ayant transformé les caractères spéciaux.<br>
 * L'url est prévu pour servir d'url dans un form ou submiter.
 * 
 * @param url Jamais null.
 * @returns Jamais null.
 */
function replaceUrl(url) {
	// url ne doit pas être null.
	return url.replace("+", "%2B");
}

/* ////////////////////////////////////////////// */
/*	Test un ensemble de caract Å¡res                */
/*	@return true ou false                         */
/* ////////////////////////////////////////////// */
function defendu(string) {
if (!string){return false;}

   var iChars = "abcdefghijklmnopqrstuvwxyz@-_.~0123456789";
   for (var i = 0; i < string.length; i++) {
		if (iChars.indexOf(string.charAt(i).toLowerCase()) == -1){
			return false;
		}
   }
   return true;
}

/* ////////////////////////////////////////////// */
/*	Test l'email                                  */
/*	@return false ou String                       */
/* ////////////////////////////////////////////// */
function isEmailOk(emails){
	if (emails.indexOf("@") != -1 && emails.indexOf("..")==-1 && defendu(emails)==true){
			var longueur = emails.split("@");
			if((longueur.length==2) && (longueur[0]!="" && longueur[1]!="")){
				var taille=longueur[1].lastIndexOf(".");
				if(taille!=-1){
					if((longueur[1].length-1-taille)>=2 || (longueur[1].length-1-taille)<=4 ){
						return true;
					}
					return false;
				}
				return false;
			}
			return false;
	}
	return false;		
}
/**/
function initImput(objInput){
	if(objInput.value==""){
		objInput.value=objInput.defaultValue;
	}
}
/**/
function affichemenuRayonMarque(nom){
	var menu = Dmc_Layer.is_object(nom)
	if(menu!=false){
		if(menu.style.display=="none"){menu.style.display="block"}else{menu.style.display="none"}
	}
}
/**/
function validerechercheSinple(){
document.forms.formrecherchetext.submit();
}
/**/
function favoris(url,descriptif) {

    var title=top.document.title;
    var url=top.location.href;
    if (window.sidebar) {
    	//alert ("Firefox ne permet pas d'ajouter automatiquement un site aux favoris. Utilisez le raccourci Ctrl + D à la place");
    	// firefox
    	window.sidebar.addPanel (descriptif,url,"");
	} else if ( window.opera && window.print ) {
		// opera
    	var mbm = document.createElement ('a');
    	mbm.setAttribute ('rel','sidebar');
    	mbm.setAttribute ('href',url);
    	mbm.setAttribute ('title',title);
    	mbm.click ();
    } else if ( window.external ) {
    	window.external.AddFavorite (url,descriptif);
	} else {
		alert ('fonction non implémentée sur ce navigateur web');
	}
 
} 
/**/
function validerRechercheHome(){
	var objform = document.forms.afficheResultatsForm; //anciennement : frecherche;
	// var valeurMarque = objform.marque.value;

// ### On ne gere plus les rayons ###
	
//	if(valeurMarque.indexOf("M")!=-1){
//		objform.numMarque.value = valeurMarque.substring(1,valeurMarque.length) ;
//		objform.numLigne.value = "";
//	}else if(valeurMarque.indexOf("L")!=-1){
//		objform.numLigne.value = valeurMarque.substring(1,valeurMarque.length);
//		objform.numMarque.value = "";
//	}else if(valeurMarque.indexOf("T")!=-1){
//		objform.numLigne.value = "";
//		objform.numMarque.value = "";
//	}else{
//		objform.numLigne.value = "";
//		objform.numMarque.value = "";
//	}
	
//	var valeurrayon =  objform.rayon.value;
//	if(valeurrayon.indexOf("R")!=-1){
//		objform.numRayon.value = valeurrayon.substring(1,valeurrayon.length) ;
//		objform.numFamille.value = "";
//		objform.numSousFamille.value = "";
//	}else if(valeurrayon.indexOf("F")!=-1){
//		objform.numFamille.value = valeurrayon.substring(1,valeurrayon.length);
//		objform.numRayon.value = "";
//		objform.numSousFamille.value = "";
//	}else if(valeurrayon.indexOf("S")!=-1){
//		objform.numRayon.value = "";
//		objform.numFamille.value = "";
//		objform.numSousFamille.value = valeurrayon.substring(1,valeurrayon.length);
//	}else{
//		objform.numSousFamille.value = "";
//		objform.numRayon.value = "";
//		objform.numFamille.value = "";
//	}	
		
	if((objform.texte.value).indexOf("l'aide d'un mot cl")!=-1){
		objform.texte.value="";
	}
	objform.submit()
}
/**/
function validenewsletter(objetForm){
		
		//test que l'email n'est pas vide
		if(objetForm.email.value==""){
			alert ("Vous devez saisir votre adresse email.");
		return;
		}
		
		// test de la validité de l'email
		if (!isEmailOk(objetForm.email.value)) {
			alert("L'email que vous avez saisi (\""+objetForm.email.value+"\") n'est pas valide.\nVeuillez le saisir à nouveau.");
			return;
		}else{	
			objetForm.Destination.value="validNewsLetter";
			objetForm.submit();
		}
		
}
/**/
function moteurrecherche(formu){
  var obj = document.forms[formu];
  obj.submit();
}
/**/
function is_VariableImg(nom){
	if(typeof(eval("window."+nom))=="object"){
		return eval("window."+nom);
	}
	return false;
}



 function changeImage(eventObjet,IdentifiantImage,moyenImage){
   var image= document.images[IdentifiantImage];
   loupe.desactiveZoom();
   
   loupe.change(moyenImage.url,(arguments[3]==undefined)? "": arguments[3].url);
   if(arguments[3]!=undefined){
     loupe.setTaille(moyenImage,arguments[3]);
     loupe.initTailleBloc();
     loupe.activeZoom();
   }
   if(image.lastSelect != undefined){
     image.lastSelect.removeClassName('selected') 
   }
   image.lastSelect=eventObjet;
   $(eventObjet).addClassName('selected') 
 }
