// Fonction pour savoir dans quelle partie on se trouve.
function afficheNav(id){
	var elmtNav = document.getElementById('nav');
	var elmtTitre = elmtNav.getElementsByTagName('a');
	for (i=0; i<elmtTitre.length; i++){
		elmtTitre[i].className = 'navOff';
	}
	document.getElementById('lienNav_'+id).className = 'navOn';
}

// Fonction pour savoir sur quelle image on se trouve.
function imageSelect(id){
	var elmtChiffre = document.getElementById('colChiffre');
	var elmtNum = elmtChiffre.getElementsByTagName('a');
	for (i=0; i<elmtNum.length; i++){
		elmtNum[i].className = 'petitNumOff';
	}
	var elmtBlock = document.getElementById('colRight2');
	var elmt = elmtBlock.getElementsByTagName('div');
	for (i=0; i<elmt.length; i++){
		elmt[i].className = 'photosOff';
	}
	document.getElementById('num_'+id).className = 'petitNumOn';
	document.getElementById('photo_'+id).className = 'photosOn';
	
	// On trouve la hauteur du div qui accueil la photo et texte pour redimensionner la colonne de gauche a la meme hauteur.
	var hauteur = document.getElementById('colRight2').offsetHeight;
	document.getElementById('arbo').style.height = hauteur+"px";
	document.getElementById('fondArbo').style.height = (hauteur-54)+"px";
	document.getElementById('contenuArbo').style.height = (hauteur-70)+"px";
}

// Fonction pour agrandir le block de texte du milieu dans une photo est plus grande sur la droite.
function redimensionne(departH){
	var hauteur = document.getElementById('colMiddle').offsetHeight;
	if (hauteur <= 463){
		document.getElementById('text').style.height = (463-departH)+"px";
		document.getElementById('fondText').style.height = (463-54-departH)+"px";
		document.getElementById('contenuText').style.height = (463-70-departH)+"px";
	}
}

// Fonction pour changer de class.
function changeClass(elmt,myClass){
	document.getElementById(elmt).className = myClass;
}

// Fonctions de preload et de swap image.
function MM_preloadImages() {
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() {
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() {
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// Changement automatique apres sélection d'un champ select.
function MM_jumpMenu(selObj,restore){
  eval("location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

// Ouverture de popup
function ouvreFenetre(nom, adresse, hauteur, largeur){
	var top = (screen.height-hauteur)/2;
	var left = (screen.width-largeur)/2;
	toto = window.open(adresse, nom, "scrollbars=yes,toolbar=no,menubar=no,resizable=no,top="+top+",left="+left+",height="+hauteur+",width="+largeur);
	toto.focus();
}

// Fonction pour savoir si une checkbox est selectionné.
function AnySelected(champs){
    for (i=0; i<champs.length; i++) {
        if (champs[i].checked) return true;
    }
    return false;
}

// Fonction pour selectionné ou deselectionné toute les checkbox en cochant une checkbox maitre.
function selectAll(cas, choix){
	//test si on a plusieur ligne
	if(choix.length>0){
		if (cas.checked){
			for (i=0; i<choix.length; i++){
				choix[i].checked = true;
			}
		}
		else {
			for (i=0; i<choix.length; i++){
				choix[i].checked = false;
			}
		}
	}
	else {
		if (cas.checked){
			choix.checked = true;
		}
		else {
			choix.checked = false;
		}
	}
}

// Fonction pour avoir la taille des scroll de la page.
function getPageScroll(){

    var xScroll, yScroll;

    if (self.pageYOffset) {
        yScroll = self.pageYOffset;
        xScroll = self.pageXOffset;
    } else if (document.documentElement && document.documentElement.scrollTop){ // Explorer 6 Strict
        yScroll = document.documentElement.scrollTop;
        xScroll = document.documentElement.scrollLeft;
    } else if (document.body) { // all other Explorers
        yScroll = document.body.scrollTop;
        xScroll = document.body.scrollLeft;   
    }

    arrayPageScroll = new Array(xScroll,yScroll)
    return arrayPageScroll;
}

// Fonction qui retourne les tailles de la pages.
function getPageSize(){
   
    var xScroll, yScroll;
   
    if (window.innerHeight && window.scrollMaxY) {   
        xScroll = window.innerWidth + window.scrollMaxX;
        yScroll = window.innerHeight + window.scrollMaxY;
    } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
        xScroll = document.body.scrollWidth;
        yScroll = document.body.scrollHeight;
    } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
        xScroll = document.body.offsetWidth;
        yScroll = document.body.offsetHeight;
    }
   
    var windowWidth, windowHeight;
   
    // console.log(self.innerWidth);
    // console.log(document.documentElement.clientWidth);

    if (self.innerHeight) {    // all except Explorer
        if(document.documentElement.clientWidth){
            windowWidth = document.documentElement.clientWidth;
        } else {
            windowWidth = self.innerWidth;
        }
        windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
        windowWidth = document.documentElement.clientWidth;
        windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
        windowWidth = document.body.clientWidth;
        windowHeight = document.body.clientHeight;
    }   
   
    // for small pages with total height less then height of the viewport
    if(yScroll < windowHeight){
        pageHeight = windowHeight;
    } else {
        pageHeight = yScroll;
    }

    // console.log("xScroll " + xScroll)
    // console.log("windowWidth " + windowWidth)

    // for small pages with total width less then width of the viewport
    if(xScroll < windowWidth){   
        pageWidth = xScroll;       
    } else {
        pageWidth = windowWidth;
    }
    // console.log("pageWidth " + pageWidth)

    arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
    return arrayPageSize;
}

// Fonction pour ouvrir la plaquette.
function plaquette(){
	var elmt = document.getElementById('pop');
    elmt.style.display = 'block';
	elmt.onclick = function(){
		document.getElementById('iframe').style.display = 'none';
		document.getElementById('pop').style.display = 'none';	
	}

    var frame = document.getElementById('iframe');
    frame.style.display = 'block';
    frame.src = 'plaquette/plaquette.php';
   
    var arrayPageSize = getPageSize();
    var arrayPageScroll = getPageScroll();
   
    frame.style.left = parseInt((arrayPageSize[2]/2)-490) + 'px';
    frame.style.top = parseInt((arrayPageSize[3]/2)-171.5+arrayPageScroll[1]) + 'px';
   
    elmt.style.width = arrayPageSize[0] + 'px';
    elmt.style.height = arrayPageSize[1] + 'px';
}


////////////////////////////
//                        //
//   FORMULAIRES FRONT    //
//                        //
////////////////////////////

var messErreur = "";

// Fonction test de champ vide.
function testVide(champ){
	if (champ.value.length == 0){
		champ.focus();
		return 'non';
    }
    if (champ.value.length > 0){
        var tout_espaces='oui';
    	for (var i = 0; i < champ.value.length; i++){
        	if (champ.value.substring(i, i + 1) != ' '){ tout_espaces='non'; }
      	}
      	if (tout_espaces=='oui'){
			champ.focus();
			return 'non';
      	}
    } return 'ok';
}

// Fonction pour verifier le numero de telephone.
function verifTel(telephone){
	if (telephone.value != ''){
		var reg_tel = /^[0-9]{2}(\s[0-9]{2}){4}$/
		if (!(reg_tel.exec(telephone.value)!=null)){
			messErreur = "Votre numéro de téléphone n'est pas au bon format.";
			telephone.focus(); // on selectionne le champ concerné.
			return 'non';
		}
		else {
			return 'ok';
		}
	}
	else {
		messErreur = "Vous n'avez pas indiqué votre téléphone.";
		telephone.focus(); // on selectionne le champ concerné.
		return 'non';
	}
}

// Fonction de vérification de saisie code postal francais.
function verifCp(cp){
	if (cp.value != ''){
		var reg_cp = /^[0-9]{5}$/
		if (!(reg_cp.exec(cp.value)!=null)){
			messErreur = "Votre code postal n'est pas valide.";
			cp.focus(); // on selectionne le champ concerné.
			return 'non';
		}
		else {
			return 'ok';
		}
	}
	else {
		messErreur = "Vous n'avez pas indiqué de code postal.";
		cp.focus(); // on selectionne le champ concerné.
		return 'non';
	}
} 

// Fonction de vérification de saisie d'email au bon format.
function verifMail(email){
	if (email.value != ''){
		var reg_mail = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/
		if (!(reg_mail.exec(email.value)!=null)){
			messErreur = "Votre adresse email n'est pas valide.";
			email.focus(); // on selectionne le champ concerné.
			return 'non';
		}
		else {
			return 'ok';
		}
	}
	else {
		messErreur = "Vous n'avez pas indiqué d'adresse email.";
		email.focus(); // on selectionne le champ concerné.
		return 'non';
	}
}

// Fonction pour afficher le message d'erreur des formulaires.
function afficheMessErreur(messErreur){
	document.getElementById('messErreur').innerHTML = messErreur;
	document.getElementById('messErreur').style.display = 'block';
}

// Verification des coordonnées prospect.
function verifPros(form) {
	if (testVide(form.Dep) != 'ok') {afficheMessErreur("Le département du projet est obligatoire."); return 'non'}
	if (testVide(form.Resultat) != 'ok') {afficheMessErreur("La commune du projet est obligatoire."); return 'non'}
	if (testVide(form.idCommunes) != 'ok') {afficheMessErreur("Sélectionnez votre commune dans la liste déroulante."); return 'non'}
	if (AnySelected(form.Orientation) == false) {afficheMessErreur("L'orientation du projet est obligatoire."); return 'non'}
	if (AnySelected(form.Dimension) == false) {afficheMessErreur("La surface du projet est obligatoire."); return 'non'}
	if (AnySelected(form.Delais) == false) {afficheMessErreur("L'échéance du projet est obligatoire."); return 'non'}	
	if (testVide(form.Nom) != 'ok') {afficheMessErreur("Veuillez indiquer votre nom."); return 'non'}
	if (testVide(form.Prenom) != 'ok') {afficheMessErreur("Veuillez indiquer votre prénom."); return 'non'}
	if (verifTel(form.Tel1) != 'ok') {afficheMessErreur(messErreur); return 'non'}
	if (verifMail(form.Email) != 'ok') {afficheMessErreur(messErreur); return 'non'}
	return 'ok';
} 
function valPros() {
	if (verifPros(document.Projet)=='ok') {
		document.Projet.but.disabled = true;
		document.Projet.but.value = 'patientez...';
		document.Projet.submit();
	}
}

// Verification des coordonnées prospect.
function verifProsVilla(form) {
	if (testVide(form.Dep) != 'ok') {afficheMessErreur("Le département du projet est obligatoire."); return 'non'}
	if (testVide(form.Resultat) != 'ok') {afficheMessErreur("La commune du projet est obligatoire."); return 'non'}
	if (testVide(form.idCommunes) != 'ok') {afficheMessErreur("Sélectionnez votre commune dans la liste déroulante."); return 'non'}
	if (AnySelected(form.Dimension) == false) {afficheMessErreur("La surface du projet est obligatoire."); return 'non'}
	if (AnySelected(form.Delais) == false) {afficheMessErreur("L'échéance du projet est obligatoire."); return 'non'}	
	if (testVide(form.Nom) != 'ok') {afficheMessErreur("Veuillez indiquer votre nom."); return 'non'}
	if (testVide(form.Prenom) != 'ok') {afficheMessErreur("Veuillez indiquer votre prénom."); return 'non'}
	if (verifTel(form.Tel1) != 'ok') {afficheMessErreur(messErreur); return 'non'}
	if (verifMail(form.Email) != 'ok') {afficheMessErreur(messErreur); return 'non'}
	return 'ok';
} 
function valProsVilla() {
	if (verifProsVilla(document.Projet)=='ok') {
		document.Projet.but.disabled = true;
		document.Projet.but.value = 'patientez...';
		document.Projet.submit();
	}
}

// Verification du formulaire de question.
function verifQues(form) {
	if (testVide(form.Nom) != 'ok') {afficheMessErreur("Veuillez indiquer votre nom."); return 'non'}
	if (testVide(form.Prenom) != 'ok') {afficheMessErreur("Veuillez indiquer votre prénom."); return 'non'}
	if (testVide(form.Adresse) != 'ok') {afficheMessErreur("Veuillez indiquer votre adresse."); return 'non'}
	if (verifCp(form.Cp) != 'ok') {afficheMessErreur(messErreur); return 'non'}
	if (testVide(form.Ville) != 'ok') {afficheMessErreur("Veuillez indiquer votre ville."); return 'non'}
	if (verifTel(form.Tel1) != 'ok') {afficheMessErreur(messErreur); return 'non'}
	if (verifMail(form.Email) != 'ok') {afficheMessErreur(messErreur); return 'non'}
	if (testVide(form.Texte) != 'ok') {afficheMessErreur("N'oubliez pas de poser votre question."); return 'non'}
	return 'ok';
} 
function valQues() {
	if (verifQues(document.Question)=='ok') {
		document.Question.but.disabled = true;
		document.Question.but.value = 'patientez...';
		document.Question.submit();
	}
}

// Verification du formulaire de prospection.
function verifPro(form) {
	//if (testVide(form.Genre) != 'ok') {afficheMessErreur("Quel est votre profil ?"); return 'non'}
	if (testVide(form.NomEnt) != 'ok') {afficheMessErreur("Veuillez indiquer le nom de votre entreprise."); return 'non'}
	if (testVide(form.NomContact) != 'ok') {afficheMessErreur("Nous n'avez pas indiquer votre nom."); return 'non'}
	if (testVide(form.PrenomContact) != 'ok') {afficheMessErreur("Nous n'avez pas indiquer votre prénom."); return 'non'}
	if (verifMail(form.Email) != 'ok') {afficheMessErreur(messErreur); return 'non'}
	if (testVide(form.Adresse) != 'ok') {afficheMessErreur("L'adresse de l'entreprise est obligatoire."); return 'non'}
	if (verifTel(form.Tel) != 'ok') {afficheMessErreur(messErreur); return 'non'}
	if (testVide(form.Texte) != 'ok') {afficheMessErreur("Veuillez indiquer votre message."); return 'non'}
	//if (testVide(form.Activite) != 'ok') {afficheMessErreur("L'activité de l'entreprise est obligatoire."); return 'non'}
	//if (form.Fax.value != ''){ if (verifTel(form.Fax) != 'ok') {afficheMessErreur("Votre numéro de fax n'est pas au bon format."); return 'non'} }
	//if (form.Mobile.value != ''){ if (verifTel(form.Mobile) != 'ok') {afficheMessErreur("Votre numéro de mobile n'est pas au bon format."); return 'non'} }
	//if (testVide(form.Fonction) != 'ok') {afficheMessErreur('Votre fonction est obligatoire.'); return 'non'}
	return 'ok';
} 
function valPro() {
	if (verifPro(document.Prospection)=='ok') {
		document.Prospection.but.disabled = true;
		document.Prospection.but.value = 'patientez...';
		document.Prospection.submit();
	}
}


////////////////////////////
//                        //
//         AJAX           //
//                        //
////////////////////////////

// Fonction HttpRequest.
function file(fichier){
	//On teste le navigateur
	if ( window.XMLHttpRequest ){ // On teste si le navigateur est Firefox
		xhr_object = new XMLHttpRequest();
	}
	else if ( window.ActiveXObject ){ // Sinon, on teste si c'est 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;
	}
}

// Pour afficher une image et son descriptif.
function ajaxImg(idDiv,pageScript){
	texte = file(pageScript);
	document.getElementById(idDiv).innerHTML = texte;
}

// Fonctions pour afficher une liste déroulante en fonction de ce que l'on tappe.
function rechercheAjax(valeur,idDiv,pageScript,option,nomForm,nomId){
	if (valeur.length < 2){
		document.getElementById(idDiv).style.display = 'none';
		document[nomForm][nomId].value = '';
	}
	else {
		texte = file(pageScript+'&valeur='+escape(valeur)+'&option='+option);
		if (texte != '0'){
			document.getElementById(idDiv).style.display = 'block';
			document.getElementById(idDiv).innerHTML = texte;
		}
		else {
			document.getElementById(idDiv).style.display = 'none';
			document[nomForm][nomId].value = '';
		}
	}
}
function selection(valeur,id,idDiv,nomForm,nomId,champs,option,nomOp){
	document[nomForm][champs].value = valeur;
	document[nomForm][nomId].value = id;
	document[nomForm][nomOp].value = option;
	document.getElementById(idDiv).style.display = 'none';
}

function ajaxPub(valeur, pageScript){
	file(pageScript+'&valeur='+valeur);
}
function ajaxAdh(valeur, pageScript){
	file(pageScript+'&valeur='+valeur);
}
