var longueur_tel = 0;

Event.onDOMReady(function(){//Enregistrement des événements
	if(document.getElementById("impression_page"))//Enregistrement de l'évenement impression
		Event.observe('impression_page', 'click', imprime);
	
	if(document.getElementById("envoi_lien_produit"))
		Event.observe('envoi_lien_produit', 'click', formulaire_envoi_lien);
	
	for(var i = 0; i < document.getElementsByTagName("a").length; i ++){
		if(document.getElementsByTagName("a")[i].className == "target_blank"){
			if (this.addEventListener)
				document.getElementsByTagName("a")[i].addEventListener("click", nouvelle_fenetre, false);
			else
				document.getElementsByTagName("a")[i].attachEvent("onclick", nouvelle_fenetre);
		}
	}
	if(document.getElementById("defil_tel")){//Défilement téléphone
		for(var pp = 0; pp < document.getElementById("defil_tel").getElementsByTagName("a").length; ++pp){
			longueur_tel += document.getElementById("defil_tel").getElementsByTagName("a")[pp].offsetWidth;
			if (this.addEventListener){
				document.getElementById("defil_tel").getElementsByTagName("a")[pp].addEventListener("mouseover", text_mobile, false);
				document.getElementById("defil_tel").getElementsByTagName("a")[pp].addEventListener("mouseout", supp_text_mobile, false);
			}
			else{
				document.getElementById("defil_tel").getElementsByTagName("a")[pp].attachEvent("onmouseover", text_mobile);
				document.getElementById("defil_tel").getElementsByTagName("a")[pp].attachEvent("onmouseout", supp_text_mobile, false);
			}
		}
		document.getElementById("defil_tel").style.left = (longueur_tel * -1) + "px";
		defil_mobile();
		if (this.addEventListener){
			document.getElementById("defil_tel").parentNode.addEventListener("mouseover", arret_defil, false);
			document.getElementById("defil_tel").parentNode.addEventListener("mouseout", defil_mobile, false);
		}
		else{
			document.getElementById("defil_tel").parentNode.attachEvent("onmouseover", arret_defil);
			document.getElementById("defil_tel").parentNode.attachEvent("onmouseout", defil_mobile);
		}
	}
	if(document.getElementById("img_prod"))
		Event.observe('img_prod', 'click', img_grande);
	if(document.getElementById("link_show")){
		Event.observe('link_show', 'click', action_video);
		Event.observe('link_show', 'mouseover', action_video);
		Event.observe('desc_show', 'click', action_video);
		Event.observe('desc_show', 'mouseover', action_video);
	}
	if(document.getElementById("search"))
		Event.observe('search', 'submit', submitSearch);
	if(document.getElementById("newsletter"))
		Event.observe('newsletter', 'submit', chkMail);
	if(document.getElementById("mail_news")){
		Event.observe('mail_news', 'focus', effac_champ);
		Event.observe('mail_news', 'blur', remp_champ);
	}
	if(document.getElementById("fia_net"))
		Event.observe('fia_net', 'click', aff_fianet);
	//Evénements sélection marque / modèle
	if(document.getElementById("modele")){
		Event.observe('modele', 'change', function() {
			if (document.getElementById("idPage").value == "browse_cat")//Page browse_cat
					putmod();
			if (document.getElementById("idPage").value == "browse_cat2")//Page browse_cat
					putmod2();			
			if (document.getElementById("idPage").value == "browse_cat3")//Page browse_cat
					putmod4();						
			if (document.getElementById("idPage").value == "search")//Page search
					search_putmod();
		}
		);
	}
	if(document.getElementById("modele2")){
		Event.observe('modele2', 'change', function() {
			if (document.getElementById("idPage").value == "browse_cat")//Page browse_cat
					putmod();
			if (document.getElementById("idPage").value == "browse_cat2")//Page browse_cat
					putmod3();		
			if (document.getElementById("idPage").value == "browse_cat3")//Page browse_cat
					putmod5();						
			if (document.getElementById("idPage").value == "search")//Page search
					search_putmod();
		}
		);
	}
	if(document.getElementById("marque")){
		Event.observe('marque', 'change', function() {
			if(document.getElementById("marque").selectedIndex == 0)
				return;
			if (document.getElementById("idPage").value == "browse_cat")//Page browse_cat
					putmarq();
			if (document.getElementById("idPage").value == "browse_cat2")//Page browse_cat
					putmarq2();	
			if (document.getElementById("idPage").value == "browse_cat3")//Page browse_cat
					putmarq4();							
			if (document.getElementById("idPage").value == "search")//Page search
					search_putmarq();
		}
		);
	}
		if(document.getElementById("marque2")){
		Event.observe('marque2', 'change', function() {
			if(document.getElementById("marque2").selectedIndex == 0)
				return;
			if (document.getElementById("idPage").value == "browse_cat")//Page browse_cat
					putmarq();
			if (document.getElementById("idPage").value == "browse_cat2")//Page browse_cat
					putmarq3();	
			if (document.getElementById("idPage").value == "browse_cat3")//Page browse_cat
					putmarq5();						
			if (document.getElementById("idPage").value == "search")//Page search
					search_putmarq();
		}
		);
	}
	
	if(document.getElementById("form_propos_prod"))
		Event.observe('form_propos_prod', 'submit', valid_form_propos_prod);
	
	//Evenements Browse_model
	if(document.getElementById("browse_model_idModele"))
		Event.observe('browse_model_idModele', 'change', rech_modele);
	if(document.getElementById("browse_model_cats"))
		Event.observe('browse_model_cats', 'change', accessoire_modele);
	//Evénements menu déroulant catégories
	if(document.getElementById("cart")){
		for(var pp = 0; pp < document.getElementById("cart").getElementsByTagName("LI").length; ++pp){
			if(document.getElementById("cart").getElementsByTagName("LI")[pp].className == "rose"){		
				if (this.addEventListener){
					document.getElementById("cart").getElementsByTagName("LI")[pp].addEventListener("mouseover", affich_menu_deroulant, false);
					document.getElementById("cart").getElementsByTagName("LI")[pp].addEventListener("click", click_surcateg, false);
				}
				else{
					document.getElementById("cart").getElementsByTagName("LI")[pp].attachEvent("onmouseover", affich_menu_deroulant);
					document.getElementById("cart").getElementsByTagName("LI")[pp].attachEvent("onclick", click_surcateg);
				}
			}
		}
	}
});

/***************Newsletter*******************/

function chkMail(e){//Vérification du mail avant inscription à la newsletter
    if(!/^.*@.*\..*$/.test(document.getElementById("mail_news").value)){//Mail incorrect
		Event.stop(e);
        alert('Erreur: Le champ email est absent ou invalide');
	}
}

function remp_champ(){//On quitte le champ de saisie du mail, si celui-ci est vide, on remet "Votre email"
	if(document.getElementById("mail_news").value == '')
		document.getElementById("mail_news").value = 'Votre email';
}

function effac_champ(){//On clique sur le champ de saisie du mail, si celui-ci contient "Votre email", il est effacé
	if(document.getElementById("mail_news").value == 'Votre email')
		document.getElementById("mail_news").value = '';
}

/***************Recherche*******************/

function submitSearch(e){//Lancement de la recherche
	Event.stop(e);
    if(document.getElementsByName("q").item(0).value.length < 3)//Recherche incorrecte
        alert('Votre recherche doit comporter au moins 3 caractères.');
    else//On lance la recherche
        document.getElementById("search").submit();
}

function search_putmarq(){//On sélectionne une marque sur le résultat de la recherche
    window.location='/index.php?id=search&q=' + document.getElementById("search_query").value + '&categorie=' + document.getElementById("idCateg").value + '&marq=' + document.getElementById("marque").options[document.getElementById("marque").selectedIndex].text;
}

function search_putmod(){//On sélectionne un modèle sur le résultat de la recherche
    window.location = '/index.php?id=search&q=' + document.getElementById("search_query").value + '&categorie=' + document.getElementById("idCateg").value + '&marq='+ document.getElementById("marque").options[document.getElementById("marque").selectedIndex].text + '&modeleID=' + document.getElementById("modele").options[document.getElementById("modele").selectedIndex].value;
}

/****************** Formulaire de proposition de produit ******/

function valid_form_propos_prod(e){//Vérification des données saisies
	var error = '';
    if(document.getElementById("email_from").value == '') 
		error += "- Email\n";
    if(document.getElementById("nom_from").value == '') 
		error += "- Nom\n";
    if(document.getElementById("prenom_from").value == '') 
		error += "- Prénom\n";
    if(document.getElementById("sujetmail").value == '') 
		error += "- Sujet du Mail\n";
    if(error != ''){
        alert('Erreur: Veuillez renseigner les champs suivants:\n' + error);
		Event.stop(e);
	}
}

/******************Menu déroulant********************/
var act_surcat;
var timeout_menu = 400;//délai avant fermeture du menu déroulant
var tabtimeout = new Array();

function affich_menu_deroulant(e){//Affiche le menu déroulant
	var esp_gauch = 0;
	if (!e.target)
		esp_gauch = document.getElementById("content").offsetLeft + document.getElementById("cart").offsetLeft;
	var lien = recup_lien(e);
	if(lien.id)
		sur_categ = lien.id;
	else
		return;
	//On masque les autres menus déroulant d'ouvert
	masq_all_menu(sur_categ);
	act_surcat = sur_categ;
	if(sur_categ != "" && document.getElementById("menu_" + sur_categ)){
		desactiv_timeout();
		masq_select();
		var lon = 0;
		if(document.getElementById(sur_categ).offsetLeft == 0){
			for(var o = 0; o < document.getElementById("cart").getElementsByTagName("LI").length && document.getElementById("cart").getElementsByTagName("LI")[o].firstChild.id != sur_categ ; o++)
				lon += document.getElementById("cart").getElementsByTagName("LI")[o].offsetWidth;
		}
		else
			lon = document.getElementById(sur_categ).offsetLeft;
		document.getElementById("menu_" + sur_categ).style.top = (document.getElementById("cart").offsetTop + document.getElementById(sur_categ).offsetHeight) + "px";
		document.getElementById("menu_" + sur_categ).style.left = (esp_gauch + (lon)) + "px";
		document.getElementById("menu_" + sur_categ).style.display = "block";
		//On enregistrement les événements
		Event.observe('menu_' + sur_categ, 'mouseout', masq_menu_deroulant);
		Event.observe('menu_' + sur_categ, 'mouseover', desactiv_timeout);
		Event.observe(sur_categ, 'mouseout', masq_menu_deroulant);
	}
}

function masq_menu_deroulant(){
	tabtimeout[((tabtimeout) ? tabtimeout.length : 0)] = window.setTimeout(function () {masq_all_menu("");}, timeout_menu);
}

function desactiv_timeout(){
	for(var o = 0; o < (tabtimeout.length); ++o){
		window.clearTimeout(tabtimeout[o]);
		delete tabtimeout[o];
	}
}

function click_surcateg(e){//On clique sur la catégorie, si le menu est affiché, il est masqué sinon il est affiché
	var esp_gauch = 0;
	if (!e.target)
		esp_gauch = document.getElementById("content").offsetLeft + document.getElementById("cart").offsetLeft;
	var lien = recup_lien(e);
	if(!lien.id)
		return;
	if(document.getElementById("menu_" + lien.id).style.display == "none")//Le menu est affiché
		affich_menu_deroulant(e);
	else//Les menus sont masqués
		masq_all_menu("");
	Event.stop(e);
}

function masq_all_menu(categ){//Masque tous  les menus déroulants
	if(act_surcat && act_surcat != "" && categ != act_surcat){
		document.getElementById("menu_" + act_surcat).style.display = "none";
		document.getElementById("menu_" + act_surcat).style.left = "0px";
		//On affiche les select
		aff_select();
		Event.stopObserving('menu_' + sur_categ, 'mouseout', masq_menu_deroulant);
		Event.stopObserving('menu_' + sur_categ, 'mouseover', desactiv_timeout);
		Event.stopObserving(sur_categ, 'mouseout', masq_menu_deroulant);
		act_surcat = "";
	}
	desactiv_timeout();
}

/************Défilement des mobiles********************/
var timeout_defil = 130;
var defil;
function arret_defil(){//Arret du défilement
	window.clearTimeout(defil);
}

function text_mobile(e){//Affichage du nom du téléphone
	if (!e.target)
		elt = window.event.srcElement;
	else
		elt = e.target;
	supp_text_mobile();
	if(elt.getAttribute("alt"))
		document.getElementById("nom_tel").appendChild(document.createTextNode(elt.getAttribute("alt")));
}

function supp_text_mobile(){//Suppression du texte contenant le nom du téléphone
	if(document.getElementById("nom_tel").childNodes.length>0)
		document.getElementById("nom_tel").removeChild(document.getElementById("nom_tel").firstChild);
}

function defil_mobile(){//Défilement des téléphones
	defil = window.setTimeout(function () {
		var long_affich = document.getElementById("defil_tel").parentNode.offsetWidth;
		document.getElementById("defil_tel").style.left = (document.getElementById("defil_tel").offsetLeft + 30) + "px";
		if(((longueur_tel * -1) + document.getElementById("defil_tel").parentNode.offsetWidth + document.getElementById("defil_tel").lastChild.offsetWidth) < document.getElementById("defil_tel").offsetLeft){
			var taille_tel = document.getElementById("defil_tel").lastChild.offsetWidth;
			var clone = document.getElementById("defil_tel").lastChild.cloneNode(true);
			if (this.addEventListener){
				clone.addEventListener("mouseover", text_mobile, false);
				clone.addEventListener("mouseout", supp_text_mobile, false);
			}
			else{
				clone.attachEvent("onmouseover", text_mobile, false);
				clone.attachEvent("onmouseout", supp_text_mobile, false);
			}
			document.getElementById("defil_tel").style.left = (document.getElementById("defil_tel").offsetLeft - taille_tel) + "px";
			document.getElementById("defil_tel").removeChild(document.getElementById("defil_tel").lastChild);
			document.getElementById("defil_tel").insertBefore(clone, document.getElementById("defil_tel").childNodes[0]);
		}
		if(document.getElementById("defil_tel").offsetLeft)
			defil_mobile();
	}, timeout_defil);
}

/*************Affichage de la page fianet**************/

function aff_fianet(e){//Affiche la fenêtre fianet
	Event.stop(e);
	window.open('http://www.fia-net.com/certif/certificat.asp?key=2992','certificat','width=620,height=382','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=no,dependent=yes');
}

/******************Partie vidéo********************/

function action_video(e){//Affichage de la description de la vidéo en cours ou de la liste complète des vidéos
	var lien = recup_lien(e).href;
	var id_video;
	if(/id_video=([0-9]+)/.test(lien)){//On veut afficher la description de la vidéo
		id_video = /id_video=([0-9]+)/.exec(lien);
		id_video = id_video[1];
		document.getElementById("link_show").style.color="#777";
		document.getElementById("desc_show").style.color="#000";
		Event.stop(e);
	}
	else{//On souhaite afficher la zone + de vidéos
		document.getElementById("link_show").style.color="#000";
		document.getElementById("desc_show").style.color="#777";
	} 
	new Ajax.Request("/inc/inc.videos.php", {
		method: "post", 
		parameters: ((id_video>0) ? "id_video=" + id_video : ""), 
		onSuccess: function(xhr){
			//On affiche les données renvoyées
			document.getElementById("video_text").innerHTML = xhr.responseText;
			//Inscription des événements, ici clic pour affichage d'une autre vidéo
			for(var p = 0; p < document.getElementById("video_text").getElementsByTagName("a").length; p++){
				if(/video=/i.test(document.getElementById("video_text").getElementsByTagName("a")[p].href)){
					if (document.getElementById("video_text").getElementsByTagName("a")[p].addEventListener)
							document.getElementById("video_text").getElementsByTagName("a")[p].addEventListener("click", affich_autre_video, false);
					else
						document.getElementById("video_text").getElementsByTagName("a")[p].attachEvent("onclick", affich_autre_video);
				}
			}
		}
	});
}

function affich_autre_video(e){//Affichage d'une autre vidéo
	var lien = recup_lien(e).href;
	if(/video=[0-9]+/.test(lien)){
		id_video = /video=([0-9]+)/.exec(lien)
		Event.stop(e);
		new Ajax.Updater('module_video', "/inc/inc.videos.php", {
			method: "post", 
			parameters: lien.substring((lien.lastIndexOf("?")+1),lien.length+(lien.length-(lien.lastIndexOf("?")+1))), 
			evalScripts: true
		});
		//Mise à jour du lien pour la description du produit
		document.getElementById("desc_show").href = "/index.php?id_video=" + id_video[1];
	}
}

/*******************Image en grand************/

function img_grande(e){//Affichage de l'image taille réelle
	Event.stop(e);
	var monMasque = Masque.create();
	//On ajoute l'image
	var p_img = document.createElement("p");
	p_img.setAttribute("style", "text-align:center");
	var img = document.createElement("img");
	img.src = recup_lien(e).href;
	p_img.appendChild(img);
	monMasque.addNode(p_img);
}

/********* Affichage d'un masque *********/

var Masque = {//Le masque
	create: function() {
		//On masque les select
	    masq_select();
		//On crée le masque
		var masque = document.createElement("div");
		masque.id = "masque";
		masque.className = "fond_couleur";
		masque.style.cssText = "position:absolute;z-index:99;top:0px;left:0px;filter:alpha(opacity=70);-moz-opacity:0.70;opacity: 0.70;";
		masque.style.height = document.body.scrollHeight + "px";
		masque.style.width = document.body.scrollWidth + "px";
		document.body.appendChild(masque);
		//On affiche la zone supérieure
		var div_int = document.createElement("div");
		div_int.style.cssText = "background:white;position:absolute;z-index:100;top:100px;border:1px solid #999;";
		var p = document.createElement("p");
		p.className="lien_forfait";
		p.style.cssText =  "margin:0;text-align:right;padding-right:5px;";
		var a = document.createElement("a");
		a.id = "lien_ferm";
		a.href = "";
		a.appendChild(document.createTextNode("Fermer"));
		p.appendChild(a);
		div_int.appendChild(p);
		document.body.appendChild(div_int);
		//Créer un autre div à l'intérieur
		this.masq = masque;
		this.div = div_int;
		//Ajout des événements de fermeture du masque
		Event.observe('masque', 'click', this.del);
		Event.observe('lien_ferm', 'click', this.del);
		return this;
	},
  
	addNode: function(node) {//On ajoute un noeud
		this.div.appendChild(node);
		this.centrer();
	},
  
	addHTML: function(htmlText) {//On ajoute du code HTML
		var div_int = document.createElement("div");
		div_int.id = "contenuFen";
		this.div.appendChild(div_int);
		div_int.innerHTML = htmlText;
		this.div.style.width = div_int.offsetWidth;
		this.centrer();
	},
	
	centrer: function(){//On centre le div
		this.div.style.left = ((document.body.scrollWidth / 2) - this.div.offsetWidth / 2) + "px";
		this.div.scrollIntoView(true);
	},
	
	del: function(e){//On supprime le masque
		Event.stop(e);
		document.body.removeChild(document.getElementById("masque"));
		document.body.removeChild(document.body.lastChild);
		//On réaffiche les select
		aff_select();
	},
	
	replaceHTML: function(htmlText) {//On remplace  le contenu dela fenêtre
		if(document.getElementById("contenuFen"))
			document.getElementById("contenuFen").innerHTML = htmlText;
		else
			this.addHTML(htmlText);
		this.centrer();
	}
}

/**********Envoi du lien à un ami****************************/

function formulaire_envoi_lien(e){//Affichage du formulaire d'envoi de lien
	Event.stop(e);
	var lien = recup_lien(e).href;
	new Ajax.Request(lien + "&type=ajax", {
		method: "get", 
		onSuccess: function(xhr){
			//On affiche les données renvoyées
			monMasque = Masque.create();
			monMasque.addHTML(xhr.responseText);
			//on bloque la validation du formulaire
			Event.observe('sendURL', 'submit', 
				function(e) {//On valide le formulaire d'envoi de lien
					Event.stop(e);
					if(true == form_check(e)){
						var form = $("sendURL");
						new Ajax.Request(form.action, {
							method: form.method, 
							parameters: form.serialize(), 
							onSuccess: function(xhr2){
								monMasque.replaceHTML(xhr2.responseText);
							}
						});
					}
				}
			);
		}
	});
}

function form_check(e){//"Verification" du formulaire d'envoi à un ami
	if (!/^[a-zA-Z0-9\-\_]+.?[a-zA-Z0-9\-\_\.]+@[a-zA-Z0-9\-\_\.]+.?[a-zA-Z0-9\-\_]+$/g.test(document.getElementById('destMail').value)){
	    Event.stop(e);
		alert("Vous devez entrer un email valide pour le destinataire");
		return false;
    }
	return true;
}

/**********Ouverture lien dans une nouvelle fenêtre, évite le target _blank*********/

function nouvelle_fenetre(e){//Ouverture du lien de la source dans une nouvelle fenêtre
	Event.stop(e);
	window.open(recup_lien(e).href);
} 

/*****************Impression page*******************/

function imprime(e){//Imprime la page actuelle
	Event.stop(e);
	window.print();
}

/***********Fonctions utiles*****************************/

function recup_lien(e){//Récupère le lien de l'événement
	if (!e.target)
		lien = e.srcElement;
	else
		lien = e.target;
	while(!/^a$/i.test(lien.tagName) && !/^body$/i.test(lien.tagName))
		lien = lien.parentNode;
	return lien;
}

function text_html(txt){//Formatage de texte pour les adresses html
	txt=txt.replace(/\//g, "*");
	txt=txt.replace(/ /g, "_");
	txt=txt.replace(/[éèêë]/g, "e");
	txt=txt.replace(/[ç]/g, "c");
	txt=txt.replace(/[àâä]/g, "a");
	return txt.toLowerCase();
}

function aff_select(){//Affichage des select
	for(var i = 0; i < document.body.getElementsByTagName("select").length; i++)
		document.body.getElementsByTagName("select")[i].style.visibility = "visible";
}

function masq_select(){//Masquage des select
	for(var i = 0; i < document.body.getElementsByTagName("select").length; i++)
		document.body.getElementsByTagName("select")[i].style.visibility = "hidden";
}
