﻿// JavaScript Document

function clientSideInclude(id, url)
{
	var req = false;
	
	// For Safari, Firefox, and other non-MS browsers
	if (window.XMLHttpRequest)
	{
		try
		{
			req = new XMLHttpRequest();
		}
		catch (e)
		{
			req = false;
		}
	}
	else if (window.ActiveXObject)
	{
		// For Internet Explorer on Windows
		try
		{
			req = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				req = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				req = false;
			}
		}
	}
	
	var element = document.getElementById(id);
	
	if (!(element))
	{
		alert("Mauvais id " + id + "passé à la fonction clientSideInclude. Un élément div ou span est nécessaire pour cet id dans votre page.");
		return;
	}
	if (req)
	{
		// Synchronous request, wait till we have it all
		req.open('GET', url, false);
		req.send(null);
		element.innerHTML = req.responseText;
	}
	else element.innerHTML = "Désolé, votre navigateur ne supporte pas les objets XMLHTTPRequest. Cette page nécessite Internet Explorer 5 ou +, Firefox, Safari ou tout autre navigateur compatible.";
}

function xhr()
{
	var xhr_object = null; 
	 
	if (window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
	else if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else
	{
		// XMLHttpRequest non supporté par le navigateur 
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
		return; 
	} 
	
	return xhr_object;
}

function int(quoi)
{
	return parseInt(quoi);
}

function str_replace(a, b, str)
{
	return str_replace2(str, a, b);
}

function str_replace2(SRs, SRt, SRu)
{
	var SRRi = SRs.indexOf(SRt);
	var SRRr = '';
	
	if (SRRi == -1) return SRs;
	SRRr += SRs.substring(0,SRRi) + SRu;
	if ((SRRi+SRt.length) < SRs.length) SRRr += str_replace2(SRs.substring(SRRi + SRt.length, SRs.length), SRt, SRu);
	return SRRr;
}



//-----------------------------------------------------------------------------------------------------------------------------------------------------
// GESTION DES DIV
//-----------------------------------------------------------------------------------------------------------------------------------------------------
var couleurOmbre = '#000000'; // couleur de l'ombre des popups
var couleurBordure = '#82786F'; // couleur de la bordure des popups
var degreOpacite = 7; // opacité de l'ombre (nombre entier compris entre 0 et 10)

function ouvrirDiv(larg, haut)
{
	//document.location.replace('#top');
	var divOmbre = document.createElement('div');	
	divOmbre.setAttribute('id','divOmbre');
	divOmbre.style.backgroundColor = couleurOmbre;
	divOmbre.style.display = 'block';
	divOmbre.style.filter = 'alpha(opacity = ' + degreOpacite*10 + ')';
	divOmbre.style.height = '100%';
	divOmbre.style.left = 0;
	divOmbre.style.opacity = degreOpacite/10;
	divOmbre.style.position = 'absolute';
	divOmbre.style.top = 0;
	divOmbre.style.width = '100%';
	divOmbre.style.zIndex = 1000000;
	
	var divForm = document.createElement('div');	
	divForm.setAttribute('id','divForm');
	divForm.style.backgroundColor='#FFFFFF';
	divForm.style.border='solid 1px ' + couleurBordure;
	divForm.style.display = 'block';
	divForm.style.height = haut+'px';
	divForm.style.left = ((document.body.clientWidth/2)-(larg/2))+'px';
	divForm.style.overflow = 'auto';
	divForm.style.position = 'absolute';
	divForm.style.textAlign = 'center';
	divForm.style.top = (document.body.clientHeight/2)+'px';
	divForm.style.verticalAlign = 'top';
	divForm.style.width = larg+'px';
	divForm.style.zIndex = 1000001;
	
	var page = document.getElementsByTagName('body');
	page[0].appendChild(divOmbre);
	page[0].appendChild(divForm);
}

function fermerDiv()
{
	var divForm = document.getElementById('divForm');
	var parent = divForm.parentNode;	
	parent.removeChild(divForm);
	
	var divForm = document.getElementById('divOmbre');
	var parent = divForm.parentNode;	
	parent.removeChild(divForm);
	
	document.body.style.overflow = 'auto';
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
// GESTION DES TRADUCTIONS
//-----------------------------------------------------------------------------------------------------------------------------------------------------
function chargelang(url,lang,sid)
{
	ouvrirDiv(800,160);
	var divForm = document.getElementById('divForm');
	
	divForm.innerHTML = '';
	divForm.innerHTML = '<span style="text-align:center;text-transform:none;"><br />Traduction en cours, veuillez patienter...<br /><br /><img alt="Chargement, veuillez patienter..." src="img/ajax-loader.gif" style="vertical-align:text-top;" /><br /></span>';
	
	var xhr_envoyerTrad = new xhr();	
	xhr_envoyerTrad.open('post','_lang.php', false);	
	xhr_envoyerTrad.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	xhr_envoyerTrad.setRequestHeader('Set-Cookie', 'PHPSESSID='+sid);
	
	var donnees = 'page='+url+'&lang='+lang;
	xhr_envoyerTrad.send(donnees);
	
	if(xhr_envoyerTrad.responseText == 'erreur')
	{
		divForm.innerHTML = '';
		divForm.innerHTML = '<span style="text-align:center;text-transform:none;"><br />Erreur de traduction !!!<br /><br /><input class="input_btn" name="bt_reloadlang" onclick="chargelang(\''+lang+'\');" type="button" value="OK" /><br /></span>';
	}
	else
	{
		//window.location.replace(url);
		window.location.replace(xhr_envoyerTrad.responseText.substring(xhr_envoyerTrad.responseText.indexOf('http://',0),xhr_envoyerTrad.responseText.length));
		divForm.innerHTML = '';
		fermerDiv();
	}
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
// GESTION DU FORMULAIRE DE CONTACT
//-----------------------------------------------------------------------------------------------------------------------------------------------------
function envoyerContact()
{
	var divContact = document.getElementById('contactForm');
	
	ouvrirDiv(800,160);
	var divForm = document.getElementById('divForm');
	divForm.style.backgroundColor='#000000';
	
	var nom = document.getElementById('txt_nom');
	var prenom = document.getElementById('txt_pnom');
	var tel = document.getElementById('txt_tel');
	var email = document.getElementById('txt_email');
	var objet = document.getElementById('txt_objet');
	var commentaire = document.getElementById('txt_commentaire');
	
	divForm.style.textAlign = 'center';
	divForm.innerHTML = '';
	divForm.innerHTML = '<span style="text-align:center;text-transform:none;"><br />Envoi en cours, veuillez patienter...<br /><br /><img alt="Chargement, veuillez patienter..." src="img/ajax-loader.gif" style="vertical-align:text-top;" /><br /></span>';
	
	var xhr_envoyerContact = new xhr();
	xhr_envoyerContact.open('post','htm/_contact.php', true);
	xhr_envoyerContact.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	
	var donnees = 'nom='+nom.value+'&prenom='+prenom.value+'&tel='+tel.value+'&email='+email.value+'&objet='+objet.value+'&commentaire='+commentaire.value;
	xhr_envoyerContact.send(donnees);
	
/*	if (xhr_envoyerContact.responseText == 'ok')
	{*/
		alert("Envoi terminé !");
		divForm.innerHTML = '';
		fermerDiv();
/*	}
	else
	{
		divForm.innerHTML = '';
		divForm.innerHTML = '<span style="text-align:center;text-transform:none;"><br /><span style="text-transform:uppercase;">Opération annulée :</span> Un problème est survenu pendant l\'envoi !!!<br /><br /><button name="bt_fermer" onclick="fermerDiv();" type="submit" value="Fermer">Fermer</button><br /></span>';
	}*/
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
// GESTION DE L'INSCRIPTION A LA NEWSLETTER
//-----------------------------------------------------------------------------------------------------------------------------------------------------
function inscriptionNews()
{
	var email = document.getElementById('txt_courriel');
	var divChargement = document.getElementById('input_nl');
	
	if (email.value == '') alert('Erreur !\r\nVous devez saisir un email.');
	else
	{
		var test = false;
		
		if (email.value.length>0)
		{
			var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,4}$/
			if (reg.test(email.value)) test = true;
		}
		
		if (test == true)
		{
			divChargement.style.textAlign = 'center';
			divChargement.style.paddingTop = '2px';
			divChargement.innerHTML = ' <img alt="Chargement, veuillez patienter..." src="img/ajax-loader.gif" style="vertical-align:text-top;" /> ';
			
			var xhr_envoyerNews = new xhr();
			
			xhr_envoyerNews.open('post','php/_news.php',false);		
			xhr_envoyerNews.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
			
			var donnees = 'email='+ email.value;		
			xhr_envoyerNews.send(donnees);
			
			if(xhr_envoyerNews.responseText == 'existant') alert('Cet email est déjà enregistré pour recevoir notre newsletter !');
			else if(xhr_envoyerNews.responseText == 'enregistre') alert('Vous êtes désormais enregistré pour recevoir notre Newsletter !\r\nMerci de votre confiance.');
			else alert('Erreur d\'enregistrement !\r\nVeuillez réessayer.');
			
			divChargement.style.textAlign = 'left';
			divChargement.innerHTML = ' <input alt="Votre courriel" id="txt_courriel" name="txt_courriel" onfocus="this.select();" size="15" type="text" value="Votre courriel" /><input class="input_btn" name="bt_courriel" onclick="inscriptionNews();" type="button" value="OK" /> ';
		}
		else alert ('Erreur de saisie !\r\nVotre courriel n\'est pas au format email.');
	}	
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
// DIVERS
//-----------------------------------------------------------------------------------------------------------------------------------------------------
// Fonction pour changer la visiblité d'une balise dont l'ID est passée en paramètre
function toggleVisibility(tagId, aff)
{
  if (!(document.getElementById))
  {
		msg = 'Votre navigateur est trop ancien pour profiter de votre visite\n';
		msg += 'Veuillez le mettre à jour ou vous en procurer un autre';
		return false;
  }
  var tagToToggle;
	
  try
  {
		// On tente de récupérer la balise cible dont on doit changer la visibilité
		tagToToggle = document.getElementById(tagId);
  }
  catch (e)
  {
		// Si échec de la récupération de la balise cible
		alert('Je n\'ai pas pu trouver la balise cible');
  }
	
  try
  {
		// Seulement pour les non IE
		if ((tagToToggle.style.display == 'none') && (aff == 1)) tagToToggle.style.display = 'block';
		if ((tagToToggle.style.display == 'block') && (aff == 0)) tagToToggle.style.display = 'none';
  }
  catch (e) {}
	
  // Pour IE
  if ((tagToToggle.style.visibility == 'hidden') && (aff == 1)) tagToToggle.style.visibility = 'visible';
  if ((tagToToggle.style.visibility == 'visible') && (aff == 0)) tagToToggle.style.visibility = 'hidden';
}

// Fonction UTF8 Encode
function utf8_encode ( argString ) {
    var string = (argString+''); // .replace(/\r\n/g, "\n").replace(/\r/g, "\n");

    var utftext = "";
    var start, end;
    var stringl = 0;

    start = end = 0;
    stringl = string.length;
    for (var n = 0; n < stringl; n++) {
        var c1 = string.charCodeAt(n);
        var enc = null;

        if (c1 < 128) {
            end++;
        } else if (c1 > 127 && c1 < 2048) {
            enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
        } else {
            enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
        }
        if (enc !== null) {
            if (end > start) {
                utftext += string.substring(start, end);
            }
            utftext += enc;
            start = end = n+1;
        }
    }

    if (end > start) {
        utftext += string.substring(start, string.length);
    }

    return utftext;
}

function utf8_decode ( str_data ) {
    var tmp_arr = [], i = 0, ac = 0, c1 = 0, c2 = 0, c3 = 0;
    
    str_data += '';
    
    while ( i < str_data.length ) {
        c1 = str_data.charCodeAt(i);
        if (c1 < 128) {
            tmp_arr[ac++] = String.fromCharCode(c1);
            i++;
        } else if ((c1 > 191) && (c1 < 224)) {
            c2 = str_data.charCodeAt(i+1);
            tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
            i += 2;
        } else {
            c2 = str_data.charCodeAt(i+1);
            c3 = str_data.charCodeAt(i+2);
            tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3;
        }
    }

    return tmp_arr.join('');
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------