﻿function isEmpty(s)
{   return ((s == null) || (s.length == 0));
}


function isWhitespace(s)
{	var i;
	var whitespace=" \t\n\r";

	if (isEmpty(s)) return true;

	for (i = 0; i < s.length; i++)
	{	var c = s.charAt(i);	

		if (whitespace.indexOf(c) == -1) 
			return false;
	}

	return true;
}


function isInteger(champ) 
{	var err = 0;
	string = champ;
	var valid = "0123456789";
	var temp;

// Test si le caractre est bien un chiffre 
	for (var i=0; i< string.length; i++) 
	{	temp = "" + string.substring(i, i+1);

		if (valid.indexOf(temp) == "-1") 
			err = 1;
	}

	if (err==1) 
	{	return false;	
	}
	else
		return true;
}


function isFloat(champ) 
{	var err = 0;
	string = champ;
	var valid = "0123456789.";
	var temp;

// Test si le caractre est bien un chiffre 
	for (var i=0; i< string.length; i++) 
	{	temp = "" + string.substring(i, i+1);

		if (valid.indexOf(temp) == "-1") 
			err = 1;
	}

	if (err==1) 
	{	return false;	
	}
	else
		return true;
}


function isAlphaNum(champ)
{	if ((champ=="")||(isWhitespace(champ)))
	{	return false;
	}
	else 
	{	if (isNaN(champ))   
		{	return true;
		}
		else
		{	return false;
		}
	}
}


function isEmail(mail)
{	var i = 1;
	var sLength = mail.length;

	while ((i < sLength) && (mail.charAt(i) != "@"))
	{ 	i++;
	}

	if ((i >= sLength) || (mail.charAt(i) != "@")) 
		return false;
	else 
		i += 2;

	while ((i < sLength) && (mail.charAt(i) != "."))
	{ 	i++;
	}

	if ((i >= sLength - 1) || (mail.charAt(i) != ".")) 
		return false;
	else 
		return true;
}


function isDate(champ)
{	if ((champ=="")||(isWhitespace(champ)))	
	{	return false;
	}
	else	
	{	var err=0;
		Aujourdhui = new Date();
		var valid="0123456789/";
		var temp;

		// Test si le caractre est bien un chiffre ou /
		for (var i=0; i< champ.length; i++) 
		{	temp = "" + champ.substring(i, i+1);

			if (valid.indexOf(temp) == "-1") 
				err = 1;
		}

		// Test que la chaine de caractre a bien une longueur de 10
		if (champ.length != 10) 
			err=1;

		b = champ.substring(0, 2) // day
		c = champ.substring(2, 3) // '/'
		d = champ.substring(3, 5) // month
		e = champ.substring(5, 6) // '/'
		f = champ.substring(6, 10) // year

		// Test que le jours est entre 1 et 31
		if (isNaN(b))
		{	err = 1;
		}
		else
		{	if (b<1 || b>31) 
				err = 1;
		}

		// Test du sparateur
		if (c != '/') 
			err = 1;

		// Test que le mois est entre 1 et 12
		if (isNaN(d))
		{	err = 1;
		}
		else
		{	if (d<1 || d>12) 
			err = 1;
		}

		// Test du sparateur
		if (e != '/') 
			err = 1;

		// Test sur l'anne
		if (isNaN(f))
		{	err = 1;
		}

		// Test sur les mois de 31 jours
		if (d==4 || d==6 || d==9 || d==11)
		{	if (b==31) 
				err=1;
		}

		// Test pour le mois de Fevrier
		if (d==2)
		{	if (b>29) 
				err=1;

			if (b==29 && ( (f/400)!=parseInt(f/400) && ( (f/4)!=parseInt(f/4) || (f/100)==parseInt(f/100) ) )) 
				err=1;
		}

		if (err==1) 
		{	return false;
		}
		else	
			return true;
	}
}

function compareDate(date1, date2)
{	// Fonction de comparaison des dates au format JJ/MM/AAAA
	// Renvoie:
	// -1: si erreur de format de date
	// 0: si date1 = date2
	// 1: si date1 > date2
	// 2: si date2 > date1

	if (!isDate(date1) || !isDate(date2))
	{	return -1;
	}
	else
	{	tableau_date1 = date1.split('/');
		tableau_date2 = date2.split('/');
		
		varDate1 = new Date(tableau_date1[2], tableau_date1[1] - 1, tableau_date1[0]);
		varDate2 = new Date(tableau_date2[2], tableau_date2[1] - 1, tableau_date2[0]);
		
		if (!(varDate1 < varDate2) && !(varDate1 > varDate2))
		{	return 0;
		}
		else
		{	if (varDate1 > varDate2)
			{	return 1;
			}
			else
			{	return 2;
			}
		}
	}
	
}
	
function random_tab( tab_)
{	var i;
	var Num;
	var Nbr = tab_.length;
	var Tab = new Array();
	//-- Copie le contenu
	Tab = Tab.concat(tab_);
	//-- Lance la boucle
	while( Nbr> 0)
	{	//-- Recup nombre aleatoire
		Num = Math.floor(Math.random() * Nbr);
		//-- 1 de moins a traiter
		Nbr--;
	    //-- Stock l'element tire
		szTmp = Tab[Num];
		//-- Decalage les valeur du tableau
		for( i= Num; i < Nbr; i++)
			Tab[i] = Tab[i+1]
		//-- Stock l'element tire en fin
			Tab[ Nbr] = szTmp;
	}
	//-- On peut remettre dans l'ordre du tirage
	Tab.reverse();
	//-- Retourne resultat
	return( Tab);
}  

function popup(url, param)
{	window.open(url, '_blank', param);
}

function recup(chaine)
{	chaine = chaine.replace(/§/g, "\'");
	chaine = chaine.replace(/µ/g, "\"");
	return chaine;	
}

// Fonction permettant le passage d'une chaine HTML dans une fonction Javascript
function recupJavascript(chaine)
{	chaine = chaine.replace(/\n/g, "<br />");
	chaine = chaine.replace(/"/g, "&quot;");
	chaine = chaine.replace(/\'/g, "&acute;");

	return chaine;
}


function print_size(taille)
{	if (Math.floor(taille / Math.pow(2, 10)) == 0)
	{	return taille + 'o';
	}
	else
	{	if (Math.floor(taille / Math.pow(2, 20)) == 0)
		{	return Math.floor(taille / Math.pow(2, 10) * 100) / 100 + 'ko';
		}
		else
		{	if (Math.floor(taille / Math.pow(2, 30)) == 0)
			{	return Math.floor(taille / Math.pow(2, 20) * 100) / 100 + 'Mo';
			}
			else
			{	if (Math.floor(taille / Math.pow(2, 40)) == 0)
				{	return Math.floor(taille / Math.pow(2, 30) * 100) / 100 + 'Go';
				}
				else
				{	if (Math.floor(taille / Math.pow(2, 50)) == 0)
					{	return Math.floor(taille / Math.pow(2, 40) * 100) / 100 + 'To';
					}
				}
			}
		}
	}
}

function language(lang)
{	//alert((location.href.indexOf('#') == -1 ? location.href + '?langue=' + lang : location.href.substring(0, location.href.indexOf('#')) + '&langue=' + lang));
	location.href = (location.href.indexOf('?') == -1 ? (location.href.indexOf('#') == -1 ? location.href + '?langue=' + lang : location.href.substring(0, location.href.indexOf('#')) + '?langue=' + lang) : (location.href.indexOf('langue') == -1 ? (location.href.indexOf('#') == -1 ? location.href + '&langue=' + lang : location.href.substring(0, location.href.indexOf('#')) + '&langue=' + lang) : location.href.substring(0, location.href.indexOf('langue')) + 'langue=' + lang + location.href.substring(location.href.indexOf('langue') + 9, location.href.length)));
}
