// JavaScript Document

window.onload = function()
{
	cSocieteClient = "MP";
	cStatutClient = "V";
	Gestion_cadeaux_avant_creation_panier('Source');
	Affichage_Panier();
}

function Titre(cRayon, cCode) {
	Element.update("tab", cCode);
	if (document.getElementById("tab"+cCode).style.display == "") 
		Element.hide("tab"+cCode);
	else {
		var parametresURL = 'fam=' + cRayon + '&c1=' + cCode + '&rnd=' + Math.random();
		new Ajax.Request('include/titre.asp', {asynchronous: false, method: 'get', parameters: parametresURL, onComplete: AfficherTitre});
	}
}

function AfficherTitre(originalRequest)
{
	var cRayon = document.getElementById("rayon").innerHTML;
	var cCode = document.getElementById("tab").innerHTML;
	Element.hide("tab"+cCode);
	if (originalRequest.responseText != "") {
		var aTitre = originalRequest.responseText.split("~");
		var cContenuDiv = '';
		for(var i = 1; i <= aTitre.length; i++) {
			var oTitre = eval("(" + aTitre[i - 1] + ")");
			cContenuDiv = cContenuDiv + '<li><a class="nodeco" href="liste.asp?rayon=' + cRayon + '&c1=' + cCode + '&c2=' + oTitre.CODE + '"><font class=h5mauve>' + unescape(oTitre.NOM) + '</font></a></li>';
		}
		Element.update("tab"+cCode, cContenuDiv);
	}
	Element.show("tab"+cCode);
}

function ModifPrefs(magazine, client) {
	var valeur;
	if (document.getElementById(magazine).checked)
		valeur = true;
	else
		valeur = false;
	var parametresURL = 'clcode=' + client + '&mag=' + magazine + '&valeur=' + valeur + '&rnd=' + Math.random();
	new Ajax.Request('include/preferes.asp', {asynchronous: false, method: 'get', parameters: parametresURL, onComplete: function(request) {cResultat = request.responseText;} });		
}

function Rafraichir(Arcode) {
	if ((Arcode != undefined) && (Arcode != '')) {
		Element.update('refArticle',Arcode);
	}
	var parametresURL = 'arcode=' + texteHTML(document.getElementById('refArticle')) + '&c1=<% =lcC1 %>&c2=<% =lcC2 %>&c3=<% =lcC3 %>&rnd=' + Math.random();
	new Ajax.Request('include/article-centre.asp', {asynchronous: false, method: 'get', parameters: parametresURL, onComplete: function(request) {cResultat = request.responseText;} });
	document.getElementById('centre').innerHTML = cResultat;
}

function ChangeChoix() {
	Rafraichir(document.getElementById('choix').value);
}

function Panier(cCode) {
	if (cCode == "") 
		cCode = texteHTML(document.getElementById('refArticle'))
		
	var parametresURL = 'ref=' + cCode + '&qte=1&rnd=' + Math.random();
	new Ajax.Request('include/ajout-panier.asp', {asynchronous: false, method: 'get', parameters: parametresURL, onComplete: function(request) {cResultat2 = request.responseText;} });
	if (cResultat2 == "1") {
		alert("L'article a été ajouté à votre panier...");
		cSocieteClient = "MP";
		cStatutClient = "V";
		Gestion_cadeaux_avant_creation_panier('Source');
		Affichage_Panier();
	}
}

function Affichage_Panier() {
	//Récupérer le nombre d'article dans le panier et le total
	var parametresURL = 'rnd=' + Math.random();
	new Ajax.Request('include/article-panier.asp', {asynchronous: false, method: 'get', parameters: parametresURL, onComplete: function(request) {cResultat = request.responseText;} });
	var oPanier = eval("(" + cResultat + ")")
	Element.update('panier-nbre', oPanier.NBRE);
	Element.update('panier-total', unescape(oPanier.TOTAL));
}

function comparerDates(date1, date2) {
    var millisecondes = date2 - date1;
    var secondes = millisecondes / 1000;
    var minutes = secondes / 60;
    var heures = minutes / 60;
    var jours = heures / 24;
    return jours;
}

function mettreDateAuFormatChaine(date) {
	var j = date.getDate();
	var m = date.getMonth() + 1;
	var a = date.getFullYear();
	return padl(j.toString(), 2, "0") + "/" + padl(m.toString(), 2, "0") + "/" + a.toString();
}

function mettreDateAuFormatChaineTextuelle(date) {
	aMois = new Array();
	aMois[1]  = "janvier";
	aMois[2]  = "février";
	aMois[3]  = "mars";
	aMois[4]  = "avril";
	aMois[5]  = "mai";
	aMois[6]  = "juin";
	aMois[7]  = "juillet";
	aMois[8]  = "août";
	aMois[9]  = "septembre";
	aMois[10] = "octobre";
	aMois[11] = "novembre";
	aMois[12] = "décembre";
	
	var j = date.getDate();
	var m = date.getMonth() + 1;
	var a = date.getFullYear();
	
	return (j == 1 ? "1er" : j.toString()) + " " + aMois[m] + " " + a.toString();
}

function mettreChaineAuFormatDate(chaine) {
	var j = parseInt(chaine.split("/")[0], 10); // jour
	var m = parseInt(chaine.split("/")[1], 10); // mois
	var a = parseInt(chaine.split("/")[2], 10); // année
	var d = new Date(0);
	d.setDate(j);
	d.setMonth(m-1);
	d.setFullYear(a); 
	return d;  
}

function isDate(d) {
	// Cette fonction permet de vérifier la validité d'une date au format jj/mm/aaaa
	
	if (d == "") // si la variable est vide on retourne faux
		return false;
	
	var e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{4})$");
	
	if (!e.test(d)) // On teste l'expression régulière pour valider la forme de la date
		return false; // Si pas bon, retourne faux
	
	// On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
	var j = parseInt(d.split("/")[0], 10); // jour
	var m = parseInt(d.split("/")[1], 10); // mois
	var a = parseInt(d.split("/")[2], 10); // année
	
	// Définition du dernier jour de février
	// Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
	if (a%4 == 0 && a%100 !=0 || a%400 == 0) var fev = 29;
	else var fev = 28;
	
	// Nombre de jours pour chaque mois
	var nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);
	
	// Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourne faux
	return (m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] && a > 1900 && a <= 2099);
}

function supprimerAccents(chaine)
{
	var tmpCh;
	tmpCh = chaine;
	tmpCh = tmpCh.replace(/[ç]/gi,"c");
	tmpCh = tmpCh.replace(/[áâàä]/gi,"a");
	tmpCh = tmpCh.replace(/[éêèë]/gi,"e");
	tmpCh = tmpCh.replace(/[íîìï]/gi,"i");
	tmpCh = tmpCh.replace(/[óôòö]/gi,"o");
	tmpCh = tmpCh.replace(/[úûùü]/gi,"u");
	return tmpCh;
}

function supprimerAccentsMajuscules(chaine)
{
	var tmpCh;
	tmpCh = chaine;
	tmpCh = tmpCh.replace(/[Ç]/g,"C");
	tmpCh = tmpCh.replace(/[ÁÂÀÄ]/g,"A");
	tmpCh = tmpCh.replace(/[ÉÊÈË]/g,"E");
	tmpCh = tmpCh.replace(/[ÍÎÌÏ]/g,"I");
	tmpCh = tmpCh.replace(/[ÓÔÒÖ]/g,"O");
	tmpCh = tmpCh.replace(/[ÚÛÙÜ]/g,"U");
	return tmpCh;
}

function empty(s)
{
	for(var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if ((c != ' ') && (c != '\n') && (c != '')) return false;
	}
	return true;
}

function isLowerCase(chaine)
{
	var reg = /^[^A-Z]{1,}$/;
	return (reg.exec(chaine) != null);
}

function isUpperCase(chaine)
{
	var reg = /^[^a-z]{1,}$/;
	return (reg.exec(chaine) != null);
}

function proper(chaine)
{
	chaine = supprimerAccentsMajuscules(chaine);
	return chaine.replace(/\b[a-zA-Zçáâàäéêèëíîìïóôòöúûùü]+\b/g, function(word) {return word.substring(0,1).toUpperCase() + word.substring(1).toLowerCase();});
}

function isNull(valeur)
{
	return (valeur == null);
}

String.prototype.trim       = function()         {return this.replace(/(^\s*)|(\s*$)/g, "");};
String.prototype.ltrim      = function()         {return this.replace(/^\s*/g, "");};
String.prototype.rtrim      = function()         {return this.replace(/\s*$/g, "");};
String.prototype.endsWith   = function(suffixe)  {return this.length - suffixe.length == this.lastIndexOf(suffixe);};
String.prototype.startsWith = function(prefixe)  {return 0 == this.indexOf(prefixe);};
String.prototype.isBlank    = function()         {return null != this.match(/^\s*$/);};
String.prototype.left       = function(nbrCarac) {return this.substr(0, nbrCarac);};
String.prototype.right      = function(nbrCarac) {return this.substr(this.length - nbrCarac, nbrCarac);};
String.prototype.slash      = function()         {return this.replace(/[/]/g, " / ");};

function padl(chaine, largeur, caractere)
{
	var cChaine = chaine
	while (cChaine.length < largeur) cChaine = caractere + cChaine;
	return(cChaine);
}

function padr(chaine, largeur, caractere)
{
	var cChaine = chaine
	while (cChaine.length < largeur) cChaine = cChaine + caractere;
	return(cChaine);
}

function padNum(nombre, nbrChiffres)
{
	var cChaine = nombre.toString();
	while (cChaine.length < nbrChiffres) cChaine = '0' + cChaine;
	return(cChaine);
}

function addListener(element, baseName, handler)
{
	if (element.addEventListener != undefined)
		// Navigateur # IE
		element.addEventListener(baseName, handler, false);
	else
		// Navigateur = IE
		element.attachEvent('on' + baseName, handler);
}

function texteHTML(element)
{
	var cRetour = "";
	if (element.innerText != undefined) {
		cRetour = element.innerText;
		cRetour = cRetour.trim();
		if (cRetour.length == 0)
			cRetour = element.innerHTML;
	}
	else
		cRetour = element.textContent;
	
	return (cRetour.trim());
}

function format(nValeur, nNbreDecimales, cSeparateur, cSymboleMonetaire)
{
	// Formate un nombre
	var deci = Math.round(Math.pow(10,nNbreDecimales) * (Math.abs(nValeur) - Math.floor(Math.abs(nValeur)))) ; 
	var val = Math.floor(Math.abs(nValeur));
	if ((nNbreDecimales == 0) || (deci == Math.pow(10,nNbreDecimales))) {
		val = Math.floor(Math.abs(nValeur));
		deci = 0;
	}
	var val_format = val + "";
	var nb = val_format.length;
	for(var i=1; i<4; i++) {
		if (val >= Math.pow(10,(3*i))) {
			val_format = val_format.substring(0,nb-(3*i)) + cSeparateur + val_format.substring(nb-(3*i));
		}
	}
	if (nNbreDecimales > 0) {
		var decim = ""; 
		for(var j=0; j<(nNbreDecimales - deci.toString().length); j++) {
			decim += "0";
		}
		deci = decim + deci.toString();
		val_format = val_format + "." + deci;
	}
	if (parseFloat(nValeur) <0 )
		val_format = "-" + val_format;
	if (arguments.length == 4)
		val_format = val_format + " " + cSymboleMonetaire
	
	return val_format;
}

function strReverse(cChaine)
{
	var cChaineRetournee = "";
	for(var i=cChaine.length - 1; i>=0; i--) {
		cChaineRetournee = cChaineRetournee + cChaine.charAt(i);
	}
	return cChaineRetournee;
}

